Đăng nhập

View Full Version : [KT] Xin Cách fix lửa trại ko nhận dc như trong code



chaulenba
24-08-14, 07:03 PM
local tbLuaTrai = Npc:GetClass("LuaTrai");

function tbLuaTrai:OnDialog()
tbLuaTrai:ChampionFlagNpc(me, him);
end
---------
function tbLuaTrai:ChampionFlagNpc(pPlayer, pNpc)
self:dotlua(pPlayer, pNpc);
end

function tbLuaTrai:dotlua(pPlayer, pNpc)
tbLuaTrai.SKILL_ID = 391;
tbLuaTrai.NPC_ID = 20170;
tbLuaTrai.EXISTENTIME = Env.GAME_FPS * 3600 * 24;
tbLuaTrai.BASEMULTIP = 100000;
tbLuaTrai.TITLE_GROUP = 4;
tbLuaTrai.TITLE_ID = 1;
if (0 == me.nTeamId) then
me.Msg("Tổ đội mới có thể đốt lửa");
me.CallClientScript({"AutoAi:Resume"});
return 0;
end
if me.IsAccountLock() ~= 0 then
Dialog:Say("Tài khoản đang khóa");
return 0;
end
if me.nLevel < 120 then
Dialog:Say("Dưới cấp 120 k thể đốt");
return 0;
end


pPlayer.CastSkill(self.SKILL_ID, 1, -1, pPlayer.GetNpc().nIndex);
local nNpcMapId, nNpcPosX, nNpcPosY = pPlayer.GetWorldPos();
nNpcPosX=1607;
nNpcPosY=3246;
local tbNpc = Npc:GetClass("gouhuonpc");
local pGouNpc = KNpc.Add2(self.NPC_ID, 1, -1, nNpcMapId, nNpcPosX, nNpcPosY);
tbNpc:InitGouHuo(pGouNpc.dwId, 0, self.EXISTENTIME, 5, 90, self.BASEMULTIP, 0, 0);
tbNpc:StartNpcTimer(pGouNpc.dwId)
me.Msg(string.format("Ngươi đã đốt lửa tại Đạo hương Thôn nhận được 10v đồng."));
GlobalExcute({"Dialog:GlobalNewsMsg_GS", "Người chơi <color=red>" ..me.szName.. "<color> đã đốt lửa tại Đạo hương Thôn nhận được 10v đồng."});
me.SendMsgToFriend("Hảo hữu [" ..me.szName.. "] đã đốt lửa tại Đạo hương Thôn nhận được 10v đồng.");
Player:SendMsgToKinOrTong(me, " đã đốt lửa tại Đạo hương Thôn nhận được 10v đồng.", 0);
me.AddJbCoin(100000);
pNpc.Delete();
--local nNpc = self.NPC_ID
--if not nNpc then
--local pGouNpc1 = KNpc.Add2(20016, 1, -1, nNpcMapId, nNpcPosX, nNpcPosY);
--end
end
Đã liên kết được nhưng nhấn vào đốt chỉ có phái hoa bắn đùng đùng mà không thấy nhận được gì hết. Mong anh em xem sai chỗ nào? Thank nhiều.



Bạn tham gia clbgamesvn để làm gì ? (gợi ý câu trả lời: hoc hoi dev game)

Sesshomaru
25-08-14, 12:25 AM
me.Msg(string.format("Ngươi đã đốt lửa tại Đạo hương Thôn nhận được 10v đồng."));

Xóa bỏ dòng này thử xem.
Lưu ý 2 điều:
-Lần sau hỏi code thì đặt code vào thẻ PHP
-Code lỗi thì phải xem GS nó báo lỗi dòng nào,file nào.Rồi căn cứ theo GS báo lỗi mà sửa.

satthupro95
25-08-14, 12:41 AM
Chuyển cái hàm me.AddJbCoin(100000); cho lên ngay chỗ pPlayer.CastSkill(self.SKILL_ID, 1, -1, pPlayer.GetNpc().nIndex); thành


pPlayer.CastSkill(self.SKILL_ID, 1, -1, pPlayer.GetNpc().nIndex);
me.AddJbCoin(100000);

na.ilusm89
25-08-14, 01:04 AM
nNpcPosX=1607;
nNpcPosY=3246;

Xem lại đoạn này nó get tới Tọa độ gọi ra có thể cái lửa trại bạn gọi ra vẫn ở thành nhưng chỗ get tọa độ kia thì NPC sẻ mọc ra thêm ở 1 map nào đó mà bạn ko hay =)) thử đốt xong ra map tương dương hán thủy chổ cây chuối xem nó xuất hiện lửa trại ở đó ko :)

satthupro95
25-08-14, 02:41 AM
nNpcPosX=1607;
nNpcPosY=3246;

Xem lại đoạn này nó get tới Tọa độ gọi ra có thể cái lửa trại bạn gọi ra vẫn ở thành nhưng chỗ get tọa độ kia thì NPC sẻ mọc ra thêm ở 1 map nào đó mà bạn ko hay =)) thử đốt xong ra map tương dương hán thủy chổ cây chuối xem nó xuất hiện lửa trại ở đó ko :)

.................................................. ..................................

satthupro95
25-08-14, 03:35 AM
Ở đoạn

pPlayer.CastSkill(self.SKILL_ID, 1, -1, pPlayer.GetNpc().nIndex);
local nNpcMapId, nNpcPosX, nNpcPosY = pPlayer.GetWorldPos();
nNpcPosX=1607;
nNpcPosY=3246;
local tbNpc = Npc:GetClass("gouhuonpc");
local pGouNpc = KNpc.Add2(self.NPC_ID, 1, -1, nNpcMapId, nNpcPosX, nNpcPosY);
tbNpc:InitGouHuo(pGouNpc.dwId, 0, self.EXISTENTIME, 5, 90, self.BASEMULTIP, 0, 0);

Sau khi script chạy sẽ gọi thêm con NPC có ID là self.NPC_ID tại bản đồ bạn đang đứng ở tọa độ nNpcPosX=1607; nNpcPosY=3246;. Có thể xóa 2 tọa độ nNpcPosX và nNpcPosY để nó gọi NPC có ID là self.NPC_ID ở ngay chỗ bạn đứng.

chaulenba
25-08-14, 06:13 AM
Thank mấy vip đã trả lời, để mình làm thử các cách trên xem, kết quả sẽ hồi báo.