PDA

View Full Version : [KT] Xin code fix Khi Đăng Nhập nhân vật Tự về 1 Map.



visaothe123
27-08-14, 12:02 PM
như tiêu đề, pro nào giúp em vào từng fite và cách chỉnh code khi đẵng nhập nhân vật vào game, tự hệ thông đưa về map Vân Trung Trấn, tks mấy pro trước ạh.

anhnhianh
27-08-14, 01:11 PM
như tiêu đề, pro nào giúp em vào từng fite và cách chỉnh code khi đẵng nhập nhân vật vào game, tự hệ thông đưa về map Vân Trung Trấn, tks mấy pro trước ạh.

vào gs\script\player mở file player.lua vào tìm

function Player:_OnLogin(bExchangeServerComing)

thêm vào cuối đoạn

me.NewWorld(idmap,X,Y);
rồi tận hưởng thành quả :))

na.ilusm89
27-08-14, 01:53 PM
vào gs\script\player mở file player.lua vào tìm

function Player:_OnLogin(bExchangeServerComing)

thêm vào cuối đoạn

me.NewWorld(idmap,X,Y);
rồi tận hưởng thành quả :))

đấy là đoạn tối thiểu khi nào out đăng nhập cũng về tọa độ map đó code này bất tiện

Muốn cho mới tạo nhân vật tất cả dồn về 1 map thì nên dùng đoạn này ở gameserver\script\player\playerevent.lua tìm đoạn


function PlayerEvent:OnFirstLogin()

rồi thêm biến cho nó phù về địa điểm chỉ định


me.NewWorld(idmap,X,Y);

visaothe123
27-08-14, 02:19 PM
function Player:_OnLogin(bExchangeServerComing)
local szLoginIp = me.GetPlayerIpAddress() or "???";
if (bExchangeServerComing ~= 1) then
local szLogMsg = string.format("Đăng nhập ip: %s, người chơi đăng nhập", szLoginIp);
me.NewWorld(1,171,191);
local nAddExp, nAddExp1, nAddExp2 = Player.tbOffline:GetAddExp(me);
if (nAddExp > 0) then
local szMsg = string.format("Nhận kinh nghiệm ủy thác rời mạng lần trước %d", nAddExp);
szLogMsg = szLogMsg .. ", " .. szMsg;
end
me.PlayerLog(Log.emKPLAYERLOG_TYPE_LOGIN, szLogMsg);

me.CheckXuanJingTimeOut(7);
me.CallClientScript({"Bank:LoginMsg"});

self:LoginIpHandle(me.dwIp);

em thêm thế này sao không login về đc hả anh???.. anh cho em xin chổ để code me.NewWorld(1,171,191); them vào chổ nào với. tks anh trước

vipbk
27-08-14, 02:27 PM
Đưa vào trong hàm OnLogin nhưng ngoài tất cả các vòng lặp và điều kiện
=> Reload script

anhnhianh
27-08-14, 02:41 PM
Đưa vào trong hàm OnLogin nhưng ngoài tất cả các vòng lặp và điều kiện
=> Reload script

người ta mới dev mà bác nói thế ai mà hiểu đc =))

--- Chế độ gộp bài viết ---



function Player:_OnLogin(bExchangeServerComing)
local szLoginIp = me.GetPlayerIpAddress() or "???";
if (bExchangeServerComing ~= 1) then
local szLogMsg = string.format("Đăng nhập ip: %s, người chơi đăng nhập", szLoginIp);
me.NewWorld(1,171,191);
local nAddExp, nAddExp1, nAddExp2 = Player.tbOffline:GetAddExp(me);
if (nAddExp > 0) then
local szMsg = string.format("Nhận kinh nghiệm ủy thác rời mạng lần trước %d", nAddExp);
szLogMsg = szLogMsg .. ", " .. szMsg;
end
me.PlayerLog(Log.emKPLAYERLOG_TYPE_LOGIN, szLogMsg);

me.CheckXuanJingTimeOut(7);
me.CallClientScript({"Bank:LoginMsg"});

self:LoginIpHandle(me.dwIp);

em thêm thế này sao không login về đc hả anh???.. anh cho em xin chổ để code me.NewWorld(1,171,191); them vào chổ nào với. tks anh trước

bác ko đc là phải rồi cái hàm me.NewWorld của bác add tọa độ thế sao mà hiện đc =))
muốn chắc ăn nhất bác cứ add thẳng vào cuối đoạn trên chữ end là đc \m/

BMK
27-08-14, 03:44 PM
nếu nó gõ vào sub đó thì toi cả server :))

visaothe123
27-08-14, 06:46 PM
Đã thành công rồi, em tks mấy pro nhiều.. cảm ơn rất nhiều ah. :)

Sesshomaru
27-08-14, 06:50 PM
pro Cho e cai code vi du đi, vi tọa độ có 3 loại, loại 5 số.. loại 4 số, lọa 3 số, em k biết điền vào X.Y là loại nào.. pro cho em xin luôn hình minh họa add me.NewWorld nam ở đâu với, em làm sao h chạy game sv k đc.. pro cưu gấp em, em mới dev game nên còn gà lắm.

loại 3 số nhân lần lượt với 8 và 16 sẽ ra loại 4 số
Loại 4 số nhân với 32 sẽ ra loại 5 số
hàm me.NewWorld sử dụng tọa độ loại 4 số.
Dev offline thì cứ từ từ mà ngâm nó mới ngấm.Chưa hiểu biết gì thì đừng có mở online.

visaothe123
27-08-14, 07:28 PM
1111111111111111111111111111111111

satthupro95
27-08-14, 08:05 PM
Dạ em biết rồi, cũng có nhiều cái vấp nga, hiện h thì em cũng biết khoãn 40% về kiếm thế thôi, còn nhiều cái chưa biết lắm.. mong các pro chỉ giáo thêm ạh.
hiện h em đag tìm trên diễn đàg về cách add vòng sáng cho NPC mà tìm hoài k có hướng dẫn nào cả.
các pro cho em xin 1 code + file vào thư mục add vòng sáng Vào NPC đc k ah???.. em tks mấy pro trước.

Xem ở đây nhé bạn <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>

tuantep
18-03-15, 11:50 AM
Cho hỏi mình cho vào cuối hàm _OnLogin thì cứ dùng phù đi đâu đó là nó tự nhảy về đúng chỗ mình set là sao?

vd_tt
18-03-15, 12:08 PM
Cho hỏi mình cho vào cuối hàm _OnLogin thì cứ dùng phù đi đâu đó là nó tự nhảy về đúng chỗ mình set là sao?

bỏ sau
if (nAddExp > 0) then
local szMsg = string.format("Nhận kinh nghiệm ủy thác rời mạng lần trước %d", nAddExp);
szLogMsg = szLogMsg .. ", " .. szMsg;
end

simao
18-07-15, 01:04 AM
xin phép đào lên xíu ;))
Mình muốn lúc nhân vật thoát ở map nào thì khi đăng nhập vẫn ở map đó thì phải làm sao. ?

satthupro95
18-07-15, 01:49 AM
xin phép đào lên xíu ;))
Mình muốn lúc nhân vật thoát ở map nào thì khi đăng nhập vẫn ở map đó thì phải làm sao. ?

check id map rồi lưu điểm hồi thành map đó ở làm logout
Ví dụ:



function Player:_OnLogout(szReason)
local nMapId, nPosX, nPosY = me.GetWorldPos();
me.SetRevivePos(nMapId,1);
if (MODULE_GAMESERVER) then
-- 日志
if (szReason ~= "SwitchServer") then
local szMsg = string.format("Người chơi rời mạng (Cấp: %d, %s: %d, hiện kim và tồn: %d, %s khóa: %d, Bạc khóa: %d,Đồng trong Tiền Trang: %d)",
me.nLevel, IVER_g_szCoinName, me.nCoin, me.nCashMoney + me.nSaveMoney, IVER_g_szCoinName, me.nBindCoin, me.GetBindMoney(),me.nPrestige);
me.PlayerLog(Log.emKPLAYERLOG_TYPE_LOGOUT, szMsg);
me.SetTask(0, 2389, me.nPrestige);
me.SetTask(3004,1,0);--Set Task kiểm tra UI trong player.lua
me.SetTask(3004,2,0);-- Set Task kiểm tra Partner trong Partner_gs.lua
end
end
local tbPlayerTimer = me.GetTempTable("Player").tbTimer;
if (tbPlayerTimer) then
for nRegisterId, tbEvent in pairs(tbPlayerTimer) do
-- 通知调试模块,关闭PlayerTimer
Dbg:PrintEvent("PlayerTimer", "LogoutClose", nRegisterId, me.szName);
-- TODO: FanZai 还不能支持下线不消失的PlayerTimer
Timer:Close(nRegisterId);
end
end
end