PDA

View Full Version : [KT] xin hướng dẫn truy xuất database người chơi từ 1 NPC hoặc từ 1 item



piorentina3
11-07-22, 11:52 AM
Chào các bác
Xin cho em hỏi làm thế nào truy xuất database của người chơi để hiển thị trong game, vd như lấy tên tài khoản và số đồng hiện có của người chơi để hiện thị lên dialog ạ, đại loại là tài khoản: abc hiện có n đồng trong tài khoản
Cám ơn các bác!

__Jie__
11-07-22, 08:40 PM
nếu bạn muốn lấy thông tin của 1 ai đó , trước hết cần hiểu cấu trúc của server ( me. và pPlayer. )

me là chính bản thân của nhân vật đang thao tác .

pPlayer là bạn or hệ thống đang thay 1 người khác thao tác .


Mỗi 1 nhân vật khi khởi tạo sẽ được hệ thống cấp cho 1 ID (thường trong kiếm thế nó gọi chung chung là nPlayerId)


Để lấy ra dc 1 ID của 1 nhân vật nào đó thì bạn phải biết được Tên của nhân vật.


local nPlayerId = KGCPlayer.GetPlayerIdByName(szRoleName); -- szRoleName chính là tên nhân vật


Sau khi bạn đã có tên ID của nhân vật rồi thì dùng hàm sau để get thông tin tiếp


local pPlayer = KPlayer.GetPlayerObjById(nPlayerId); -- truyền nPlayerId lấy phía trên vào đây,
if not pPlayer then -- chổ này nó sẽ kiểm tra xem bạn vs người chơi muốn lấy có chung 1 GS ko , thông thường chỉ get cục bộ ở 1 GS cố định .
Dialog:Say("Cần đứng cạnh hoặc cùng sub với người chơi");
return 0;
end


Sau khi hoàn thành các bước trên việc còn lại là show gia trị bạn muốn lấy ra thôi


local szMsg = ""..pPlayer.szName.." hiện tại đang có "..pPlayer.nCoin.."";
me.Msg(szMsg);
Dialog:Say(szMsg);

piorentina3
11-07-22, 10:33 PM
xin cám ơn bác, bác có thể cho em hỏi mấy lệnh trên là get thông tin vậy có lệnh set để sửa đổi các thông tin đó đc ko ạ, vd mình muốn set lại số đồng của người chơi đó thì làm thế nào ạ, ý em là set trực tiếp trong game rồi lưu vào database chứ ko phải dùng navicat để set ạ

anubisng
12-07-22, 12:37 AM
xin cám ơn bác, bác có thể cho em hỏi mấy lệnh trên là get thông tin vậy có lệnh set để sửa đổi các thông tin đó đc ko ạ, vd mình muốn set lại số đồng của người chơi đó thì làm thế nào ạ, ý em là set trực tiếp trong game rồi lưu vào database chứ ko phải dùng navicat để set ạ

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g?_nc_cat=103&ccb=1-7&_nc_sid=ae9488&_nc_ohc=HP3oEb-Qc_8AX-_PzOo&_nc_ht=scontent.fhan5-7.fna&oh=03_AVLo4VPgWLF4phHJMFoX9p_S-ACHcaglLqR9gi5T7IIO7A&oe=62F20ECE
Ý bác là ntn hả

piorentina3
12-07-22, 07:54 AM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g?_nc_cat=103&ccb=1-7&_nc_sid=ae9488&_nc_ohc=HP3oEb-Qc_8AX-_PzOo&_nc_ht=scontent.fhan5-7.fna&oh=03_AVLo4VPgWLF4phHJMFoX9p_S-ACHcaglLqR9gi5T7IIO7A&oe=62F20ECE
Ý bác là ntn hả
dạ đúng rồi bác 30 charrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

piorentina3
12-07-22, 08:27 AM
Xin các bác cho em hỏi là dùng lệnh get thì lấy đc các thông số này vậy có lệnh set để chỉnh sửa các thông số đó đc k ạ, vd set số đồng của người chơi về 0 rồi lưu vào database ạ

__Jie__
12-07-22, 12:41 PM
me.nCoin / pPlayer.nCoin -- get so đồng hiện có
me.AddJbcoin(nNumber) / pPlayer.AddJbCoin(nNumber) -- add đồng
me.AddJbcoin( - nNumber) / pPlayer.AddJbCoin( - nNumber) -- trừ đồng