PDA

View Full Version : [KT] Xin script NPC thoát khỏi đảo



na.ilusm89
08-06-13, 03:01 PM
Ai Biết Chỉnh NPC Ngoài Đảo --- Và cái Scrip quy định mỗi lần lên đảo mà phãi ra đảo phải bỏ ra 50V ĐỒng như nào ko cho mình xin với :(

VD : Thoát khỏi đảo lần 1 - 20V
lần 2 - 50V ấy

mrkutepro
08-06-13, 03:16 PM
Ai Biết Chỉnh NPC Ngoài Đảo --- Và cái Scrip quy định mỗi lần lên đảo mà phãi ra đảo phải bỏ ra 50V ĐỒng như nào ko cho mình xin với :(

VD : Thoát khỏi đảo lần 1 - 20V
lần 2 - 50V ấy

Hút vãi3:-O



Hai nhân hai là mấy ? (trả lời bằng số)

na.ilusm89
08-06-13, 03:30 PM
Hút vãi3:-O



Hai nhân hai là mấy ? (trả lời bằng số)

Hút :)) Làm thì phải triệt để Khỏi phãi Bung Cho Sợ thím 2 :)~

cuga95
08-06-13, 03:42 PM
Npc thì có thể dùng npc đó hoặc add Npc khác. Script thì đơn giản mà

Check đồng
if đủ 50 vạn then

Trừ đồng
Hàm move về thôn hay thành thị nào đó
end

linhpl2001
08-06-13, 03:53 PM
Hút :)) Làm thì phải triệt để Khỏi phãi Bung Cho Sợ thím 2 :)~

bác muốn hút pm thienthanpenho_online

làm lấy tiền uống cafe :D

làm = bạc tầm thường làm = đồng mới bảnh

satthupro95
08-06-13, 04:31 PM
Tìm script của thằng NPC trên đảo :
sử dụng hàm me.NewWorld add 1 map vào hoặc dùng hàm thoát khỏi đảo của thẻ GM
Dùng hàm kiểm tra
Sử dụng tiếp If then
ra =))

__Jie__
08-06-13, 04:32 PM
Ai Biết Chỉnh NPC Ngoài Đảo --- Và cái Scrip quy định mỗi lần lên đảo mà phãi ra đảo phải bỏ ra 50V ĐỒng như nào ko cho mình xin với :(

VD : Thoát khỏi đảo lần 1 - 20V
lần 2 - 50V ấy
Dễ mà nhỉ
Cách 1 :

function tbtest0:RoiDao()
local nCount = me.GetTask(10000, 1)
local nGiaRoiDaoSo1 = me.GetTask(10000, 1) * 200000;-- diem gia tri task luc dau la 1 * 20 van là 20v lần 1 , lan 2 40v , lan 3 , 80v
if me.GetJbCoin() < nGiaRoiDaoSo1 then -- kiem tra so dong
Dialog:Say("Nhà ngươi không có đủ đồng để thực hiện rời đảo");
return 0;
end
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end

satthupro95
08-06-13, 04:34 PM
Dễ mà nhỉ

function tbtest0:RoiDao()
local nCount = me.GetTask(10000, 1)
local nGiaRoiDaoSo1 = me.GetTask(10000, 1) * 200000;-- diem gia tri task luc dau la 1 * 20 van là 20v lần 1 , lan 2 40v , lan 3 , 80v
if me.GetJbCoin() < nGiaRoiDaoSo1 then -- kiem tra so dong
Dialog:Say("Nhà ngươi không có đủ đồng để thực hiện rời đảo");
return 0;
end
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end

Cái này hay này chủ thread :))
Nhớ khai thêm task 10000

na.ilusm89
08-06-13, 04:50 PM
Dễ mà nhỉ
Cách 1 :

function tbtest0:RoiDao()
local nCount = me.GetTask(10000, 1)
local nGiaRoiDaoSo1 = me.GetTask(10000, 1) * 200000;-- diem gia tri task luc dau la 1 * 20 van là 20v lần 1 , lan 2 40v , lan 3 , 80v
if me.GetJbCoin() < nGiaRoiDaoSo1 then -- kiem tra so dong
Dialog:Say("Nhà ngươi không có đủ đồng để thực hiện rời đảo");
return 0;
end
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end



Đã làm như bác nhưng khi rời đảo nó ko trừ đồng mà vẫn rời đảo được mới akay

cái task 10000 khai như nào bác nhỉ :D

satthupro95
08-06-13, 04:53 PM
Đã làm như bác nhưng khi rời đảo nó ko trừ đồng mà vẫn rời đảo được mới akay

cái task 10000 khai như nào bác nhỉ :D
Bạn đã thêm task 10000 và khai báo nó ở trên đầu file chưa

linhpl2001
08-06-13, 04:53 PM
Dễ mà nhỉ
Cách 1 :

function tbtest0:RoiDao()
local nCount = me.GetTask(10000, 1)
local nGiaRoiDaoSo1 = me.GetTask(10000, 1) * 200000;-- diem gia tri task luc dau la 1 * 20 van là 20v lần 1 , lan 2 40v , lan 3 , 80v
if me.GetJbCoin() < nGiaRoiDaoSo1 then -- kiem tra so dong
Dialog:Say("Nhà ngươi không có đủ đồng để thực hiện rời đảo");
return 0;
end
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end


công nhận bác này tốt thiệt toàn giúp newbi hút máu :))

__Jie__
08-06-13, 04:55 PM
công nhận bác này tốt thiệt toàn giúp newbi hút máu :))

Đỡ hơn vài người code này viết 2' mà bảo pm kiếm ít tiền cafe [-(

na.ilusm89
08-06-13, 05:01 PM
Bạn đã thêm task 10000 và khai báo nó ở trên đầu file chưa

Chưa Cụ thể Hoàn chỉnh 1 Scrip + task đó như nào Bác :D cái này hơi khó hiểu chút

cuga95
08-06-13, 05:03 PM
Chưa Cụ thể Hoàn chỉnh 1 Scrip + task đó như nào Bác :D cái này hơi khó hiểu chút

Task thêm vào setting/player/task_def.txt

satthupro95
08-06-13, 05:04 PM
local tbtest0 = Npc:GetClass("roidao");
tbtest0.TaskId_Count = 1;
tbtest0.TASK_GROUP_ID1 = 10000;
function tbtest0:RoiDao()
local nCount = me.GetTask(10000, 1)
local nGiaRoiDaoSo1 = me.GetTask(10000, 1) * 200000;-- diem gia tri task luc dau la 1 * 20 van là 20v l?n 1 , lan 2 40v , lan 3 , 80v
if me.GetJbCoin() < nGiaRoiDaoSo1 then -- kiem tra so dong
Dialog:Say("Nhà ng??i kh?ng có ?? ??ng ?? th?c hi?n r?i ??o");
return 0;
end
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end

Vào setting\player\task_def.txt khai thêm 1 dòng
10000 1 1 Task lưu lần lên đảo

<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>

linhpl2001
08-06-13, 05:12 PM
Đỡ hơn vài người code này viết 2' mà bảo pm kiếm ít tiền cafe [-(

muốn kiếm tiền thì phải học
ko học bỏ tiền

:)) hút máu mà đi xin thì bó tay

__Jie__
08-06-13, 05:21 PM
muốn kiếm tiền thì phải học
ko học bỏ tiền

:)) hút máu mà đi xin thì bó tay

Lý tưởng khác nhau , không cùng đạo.

Cái gì mà kiếm dc thì kiếm cho đáng , mấy cái linh tinh linh tang , kiếm kiểu này có ngày lên topic gamezone b-(

na.ilusm89
08-06-13, 05:23 PM
local tbtest0 = Npc:GetClass("roidao");
tbtest0.TaskId_Count = 1;
tbtest0.TASK_GROUP_ID1 = 10000;
function tbtest0:RoiDao()
local nCount = me.GetTask(10000, 1)
local nGiaRoiDaoSo1 = me.GetTask(10000, 1) * 200000;-- diem gia tri task luc dau la 1 * 20 van là 20v l?n 1 , lan 2 40v , lan 3 , 80v
if me.GetJbCoin() < nGiaRoiDaoSo1 then -- kiem tra so dong
Dialog:Say("Nhà ng??i kh?ng có ?? ??ng ?? th?c hi?n r?i ??o");
return 0;
end
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end

Vào setting\player\task_def.txt khai thêm 1 dòng
10000 1 1 Task lưu lần lên đảo

<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>


Không Phãi bác Ý em là Em cũng làm rồi nhưng nó bị lỗi chổ ra 1 lần mà ko bị trừ tiền mới hỏi đầy đủ chứ task thì biết rồi coi có làm đúng như mình làm ko thôi để còn biết mà :D

satthupro95
08-06-13, 05:25 PM
Không Phãi bác Ý em là Em cũng làm rồi nhưng nó bị lỗi chổ ra 1 lần mà ko bị trừ tiền mới hỏi đầy đủ chứ task thì biết rồi coi có làm đúng như mình làm ko thôi để còn biết mà :D

Phải chia ra 2 cái
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, nCount + 1); -- Add từ 0 lên 1
me.AddJbCoin(-x);-- Trừ lần đầu x tự add số cần trừ vào
return
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end

__Jie__
08-06-13, 05:26 PM
Không Phãi bác Ý em là Em cũng làm rồi nhưng nó bị lỗi chổ ra 1 lần mà ko bị trừ tiền mới hỏi đầy đủ chứ task thì biết rồi coi có làm đúng như mình làm ko thôi để còn biết mà :D
Xem GS báo lỗi thế nào chụp tấm hình post lên mới biết.

Chứ code đó hình như không lỗi . Tốt nhất chụp lại chổ bạn code và bức hình GS báo khi rời đảo 8-x

__Jie__
08-06-13, 05:33 PM
Phải chia ra 2 cái
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, nCount + 1); -- Add từ 0 lên 1
me.AddJbCoin(-x);-- Trừ lần đầu x tự add số cần trừ vào
return
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end

if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end

Không cần chia vì Jie đã viết nêu task đầu tiên = 0 thì Jie gán thẳng là 1 rồi
Nên khi nó x task thì sẽ tính từ 1 * lên

na.ilusm89
09-06-13, 07:20 PM
Đã Thêm NPC rời đc khỏi đảo trừ đồng rồi nhưng cái Hàm này thiếu phần mỡ khóa Kỳ trân các bác ạ....

Bình thường dùng thẻ GM kích thoát khỏi đảo là mỡ được kỳ trân các..... Dùng hàm này Thoát đc khỏi đảo rồi nhưng mà nó không sử dụng được kỳ trân các .... Ai fixx nốt nào :D

nghichtu91
09-06-13, 07:32 PM
Đã Thêm NPC rời đc khỏi đảo trừ đồng rồi nhưng cái Hàm này thiếu phần mỡ khóa Kỳ trân các bác ạ....

Bình thường dùng thẻ GM kích thoát khỏi đảo là mỡ được kỳ trân các..... Dùng hàm này Thoát đc khỏi đảo rồi nhưng mà nó không sử dụng được kỳ trân các .... Ai fixx nốt nào :D

<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>

__Jie__
09-06-13, 08:22 PM
GM.tbGMRole:FreeHim

Thoát khỏi thiên lao

na.ilusm89
09-06-13, 09:03 PM
GM.tbGMRole:FreeHim

Thoát khỏi thiên lao



Đoạn Scrip này của em thì thêm cái đoạn code đó ở đâu bác :D


local tbNpc = Npc:GetClass("roidao");
tbNpc.TaskId_Count = 1;
tbNpc.TASK_GROUP_ID1 = 10000;
function tbNpc:OnDialog()
local szMsg = "Bạn Đã Vi Phạm (<color=red>Nội Quy<color>)Của Sever.<enter>Đã Đưa Ra.<enter>Nên Bị Nhốt Trên Đảo Này.<enter>Muốn Trở Lại Với Giang Hồ.<enter>Hãy Nhấn Rời Đảo.<enter>Mỗi Lần Rời Đảo Bị Trừ x2 Số Đồng Đã Mất.<enter>Lần Đầu Rời Đảo Là 20 Vạn Đồng.";
local tbOpt = {
{"<color=green><pic=135>Rời Khỏi Đảo<pic=135><color>", self.RoiDao, self},
{"Tôi đã hiểu"},
};
Dialog:Say(szMsg, tbOpt);

end


function tbNpc:RoiDao()
local nCount = me.GetTask(10000, 1)
local nGiaRoiDaoSo1 = me.GetTask(10000, 1) * 200000;-- diem gia tri task luc dau la 1 * 20 van là 20v l?n 1 , lan 2 40v , lan 3 , 80v
if me.GetJbCoin() < nGiaRoiDaoSo1 then -- kiem tra so dong
Dialog:Say("Nhà ngươi không có đủ đồng để thực hiện rời đảo");
return 0;
end
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end

__Jie__
09-06-13, 10:53 PM
Đoạn Scrip này của em thì thêm cái đoạn code đó ở đâu bác :D


local tbNpc = Npc:GetClass("roidao");
tbNpc.TaskId_Count = 1;
tbNpc.TASK_GROUP_ID1 = 10000;
function tbNpc:OnDialog()
local szMsg = "Bạn Đã Vi Phạm (<color=red>Nội Quy<color>)Của Sever.<enter>Đã Đưa Ra.<enter>Nên Bị Nhốt Trên Đảo Này.<enter>Muốn Trở Lại Với Giang Hồ.<enter>Hãy Nhấn Rời Đảo.<enter>Mỗi Lần Rời Đảo Bị Trừ x2 Số Đồng Đã Mất.<enter>Lần Đầu Rời Đảo Là 20 Vạn Đồng.";
local tbOpt = {
{"<color=green><pic=135>Rời Khỏi Đảo<pic=135><color>", self.RoiDao, self},
{"Tôi đã hiểu"},
};
Dialog:Say(szMsg, tbOpt);

end


function tbNpc:RoiDao()
local nCount = me.GetTask(10000, 1)
local nGiaRoiDaoSo1 = me.GetTask(10000, 1) * 200000;-- diem gia tri task luc dau la 1 * 20 van là 20v l?n 1 , lan 2 40v , lan 3 , 80v
if me.GetJbCoin() < nGiaRoiDaoSo1 then -- kiem tra so dong
Dialog:Say("Nhà ngươi không có đủ đồng để thực hiện rời đảo");
return 0;
end
if me.GetTask(10000,1) == 0 then
me.SetTask(10000, 1, 1);
end
me.AddJbCoin(-nGiaRoiDaoSo1);-- tru so dong tuong ung
me.NewWorld(1,1615,3265);-- dua ve dao map nao do tuy
me.SetTask(10000, 1, nCount + 1);
end

Tôi chỉ giúp bạn đến đây thôi . Nếu tôi làm nữa thì xem nhưng tôi code cho bạn hết rồi ;))

Đây là 4rum trao đổi kiến thức nên bước tiếp theo tôi chỉ gợi ý bạn

Truyền thêm nPlayerId ( có thể xem từ thẻ GM ) .

Việc còn lại là ở bạn ;))

Ngoài cách trên còn 1 hàm khai báo sẳn trong con NPC trên đảo rồi