hai07dv
01-03-13, 08:48 PM
Mình chã biết gì về mongodb nhưng cũng code được đoạn quy đổi ra KNB ingame <= code tham khảo từ cuốn sách php for mongoDB :D
Pác nào đã test cokiemvn.tk thì biết là có chức năng nhận free 50.000 KNB nhé
======================
OK...giờ mình hướng dẫn thế này
Các pác tích hợp thẻ nạp (XU) của ngân lượng hoặc bảo kim => tài khoản nhận được XU lưu trữ trong database MYSQL acc_db => account (tự tạo field này nhé vì mysql dễ thở hơn)
Sau đó thì ở web thêm chức năng quy đổi XU => KNB ingame
Đây là code mình tạo bao gồm check nhân vật đã tạo chưa => chưa tạo thì không đổi được và ngược lại (demo của mình tiền nạp là biến zingxu)
<?php
include_once("inc/conn.php"); //add thư viện
include_once("inc/function.php");//add thư viện
login_check(); //check đăng nhập hay chưa
//truy vấn csdl mysql
$query=$db->query("Select * from account where id=".intval($_COOKIE["usersid"])." and password='".str_check($_COOKIE["password"])."'");
if($rs=$db->fetch_array($query))
{
$zingxu=$rs["zingxu"]; //lấy giá trị zingxu lưu vô biến $zingxu (1)
$name=$rs["name"]; //lấy tên tài khoản lưu vô biến $name (2)
}
$m = new Mongo(); //tạo kết nối tới mongodb
$con=$m->ygzj_dev->player; //kết nối tới data ygzj_dev sau đó kết nối tiếp tới table player
//nếu nhấn quy đổi thì thực hiện chức năng
if(isset($_POST['submit']))
{
//xét zingxu phải lớn hơn 0 mới đổi được
if($rs["zingxu"] > 0)
{
//tìm tài khoản trong player theo biến $name ở (2)
$document = array("accname" => "$name");
$player=$con->findOne($document);
// nếu chưa tạo nhân vật thì báo lỗi
if(empty($player))
{
$no="Bạn chưa tạo nhân vật";
}
// nếu tạo rồi thì tiếp tục
else
{
// lấy giá trị KNB đang có trong tài khoản
foreach ($player as $document)
{
$gold= $player["gold"];
}
// tạo biến $knb = KNB ingame + zingxu trong tài khoản <= cơ bản đó là cộng dồn KNB thôi =))
$knb=$zingxu+$gold;
// cập nhật dữ liệu mongodb
$cursor = $con->update(array("accname" => "$name"),array('$set' => array("gold" =>new MongoInt32($knb))));
// thông báo đổi thành công
$no="Đổi $zingxu XU sang $knb KNB thành công";
// xóa zingxu trong tài khoản đi
$query=$db->query("update account set zingxu=0 where id=".$rs["id"]);
// thông báo trừ zingxu
$zx="Bạn bị trừ $zingxu Xu trong tài khoản";
}
}
// thông báo lỗi zingxu = 0
else
{
$no="Xin lỗi Xu không đủ để đổi KNB, Vui lòng nạp thêm";
}
}
?>
Những cái biến thông báo thì add ở chỗ nào tùy bạn với mẫu <?php echo $no; ?> và <?php echo $zx; ?>
Gà quá nên chỉ biết code đơn sơ thế thôi .......pro nào code tốt hơn thì public nhé :))
Hjx........Bị té xe ...đâm ra buồn share mấy thứ làm được .....em gõ chữ có 1 tay thôi các pác ak.... :((:(( tay kia treo cổ rùi
Pác nào đã test cokiemvn.tk thì biết là có chức năng nhận free 50.000 KNB nhé
======================
OK...giờ mình hướng dẫn thế này
Các pác tích hợp thẻ nạp (XU) của ngân lượng hoặc bảo kim => tài khoản nhận được XU lưu trữ trong database MYSQL acc_db => account (tự tạo field này nhé vì mysql dễ thở hơn)
Sau đó thì ở web thêm chức năng quy đổi XU => KNB ingame
Đây là code mình tạo bao gồm check nhân vật đã tạo chưa => chưa tạo thì không đổi được và ngược lại (demo của mình tiền nạp là biến zingxu)
<?php
include_once("inc/conn.php"); //add thư viện
include_once("inc/function.php");//add thư viện
login_check(); //check đăng nhập hay chưa
//truy vấn csdl mysql
$query=$db->query("Select * from account where id=".intval($_COOKIE["usersid"])." and password='".str_check($_COOKIE["password"])."'");
if($rs=$db->fetch_array($query))
{
$zingxu=$rs["zingxu"]; //lấy giá trị zingxu lưu vô biến $zingxu (1)
$name=$rs["name"]; //lấy tên tài khoản lưu vô biến $name (2)
}
$m = new Mongo(); //tạo kết nối tới mongodb
$con=$m->ygzj_dev->player; //kết nối tới data ygzj_dev sau đó kết nối tiếp tới table player
//nếu nhấn quy đổi thì thực hiện chức năng
if(isset($_POST['submit']))
{
//xét zingxu phải lớn hơn 0 mới đổi được
if($rs["zingxu"] > 0)
{
//tìm tài khoản trong player theo biến $name ở (2)
$document = array("accname" => "$name");
$player=$con->findOne($document);
// nếu chưa tạo nhân vật thì báo lỗi
if(empty($player))
{
$no="Bạn chưa tạo nhân vật";
}
// nếu tạo rồi thì tiếp tục
else
{
// lấy giá trị KNB đang có trong tài khoản
foreach ($player as $document)
{
$gold= $player["gold"];
}
// tạo biến $knb = KNB ingame + zingxu trong tài khoản <= cơ bản đó là cộng dồn KNB thôi =))
$knb=$zingxu+$gold;
// cập nhật dữ liệu mongodb
$cursor = $con->update(array("accname" => "$name"),array('$set' => array("gold" =>new MongoInt32($knb))));
// thông báo đổi thành công
$no="Đổi $zingxu XU sang $knb KNB thành công";
// xóa zingxu trong tài khoản đi
$query=$db->query("update account set zingxu=0 where id=".$rs["id"]);
// thông báo trừ zingxu
$zx="Bạn bị trừ $zingxu Xu trong tài khoản";
}
}
// thông báo lỗi zingxu = 0
else
{
$no="Xin lỗi Xu không đủ để đổi KNB, Vui lòng nạp thêm";
}
}
?>
Những cái biến thông báo thì add ở chỗ nào tùy bạn với mẫu <?php echo $no; ?> và <?php echo $zx; ?>
Gà quá nên chỉ biết code đơn sơ thế thôi .......pro nào code tốt hơn thì public nhé :))
Hjx........Bị té xe ...đâm ra buồn share mấy thứ làm được .....em gõ chữ có 1 tay thôi các pác ak.... :((:(( tay kia treo cổ rùi