PDA

View Full Version : [JX] Cao thủ hướng dẫn mình add NPC với



quancoi000
05-01-12, 03:22 PM
như đề, mình đã dùng tool addNPC của david tuấn có sẵn trong ebook 3.1 nhưng toàn bị lỗi server.
ai có thể chỉ cho mình cách add 1 NPC hoàn toàn mới được không? mày mò mấy ngày nay mà chỉ quanh quẩn với việc chỉnh lại NPC tạp hóa và NPC lãnh địa thôi. chứ vấn đề add NPC mới mình làm mãi mà không được. tks rất nhiều.

thaihoa91
05-01-12, 06:51 PM
Dùng tools bị hạn chế nhìu lắm, đa số ko có .dat sẵn để add bằng tools, load gameserver.exe lâu khi add wá nhìu wái bằng tools !

Cách hiệu quả, gọn và ít lag server nhất là add quái bằng hàm LUA !

quancoi000
05-01-12, 08:30 PM
mình không add quái, cái đó mình đọc bên mấy pic kia và cũng hiểu rồi.
cái mình cần là add NPC bán hàng cơ, không phải monster.

thaihoa91
05-01-12, 09:18 PM
mình không add quái, cái đó mình đọc bên mấy pic kia và cũng hiểu rồi.
cái mình cần là add NPC bán hàng cơ, không phải monster.

Quái và NPC chỉ khác nhau 1 thông số thui bạn à !

Quái : AddNPCEx(29,1,53,202,198,2.5,0.5,"\\script\\longngu.lua",5)

NPC đối thoại : AddNPCEx(29,1,53,202,198,2.5,0.5,"\\script\\longngu.lua",6)

Khác nhau 2 cái số đậm đó thui ! Còn lại y chang ! Vì lớp NPC đã bao gồm loại đối thoại, quái hoặc đồng minh, thậm chí player (người chơi) cũng dc tính là 1 NPC !

quancoi000
06-01-12, 12:00 AM
bạn cho mình 1 mẫu về NPC được không?
mình nhớ không nhầm thì NPC nằm ở chỗ script/Global/buonban
phai không nhỉ? :-/

davidtuan25
06-01-12, 11:39 AM
Cái script mình tự viết thì tự nhớ đường dẫn , rồi vào file lua add npc thêm giống anh hòa , rồi sữa lại đường dẫn file script mình viết là xong

quancoi000
06-01-12, 12:32 PM
vậy thì tọa độ NPC và hình ảnh NPC do file nào quy định vậy?

davidtuan25
06-01-12, 12:47 PM
hình ảnh thì để đưồng dẫn file .spr vào
tọa độ thì là tọa độ trong game
thôi đi học đây

jxvietnam
06-01-12, 01:47 PM
vậy thì tọa độ NPC và hình ảnh NPC do file nào quy định vậy?
Tọa độ npc thì bạn lấy nhân vật đi vào game sẽ thấy
Hình ảnh do npcs.txt quy định

quancoi000
06-01-12, 06:44 PM
ý mình là bây giờ cần add 1 chủ tiệm tạp hóa nữa ở Ba Lăng Huyện nhưng với tên khác, hình ảnh thì thế nào cũng được, và 1 tọa độ nào đó.
ví dụ như: Tạp Hóa Thương - Ba Lăng Huyện - 210.215 chẳng hạn.
cái chỗ tọa độ này làm ở đâu?
và như cái long ngũ của hòa làm thì 2 số 5 và 6 kia có ý nghĩa gì?

thaihoa91
06-01-12, 09:02 PM
ý mình là bây giờ cần add 1 chủ tiệm tạp hóa nữa ở Ba Lăng Huyện nhưng với tên khác, hình ảnh thì thế nào cũng được, và 1 tọa độ nào đó.
ví dụ như: Tạp Hóa Thương - Ba Lăng Huyện - 210.215 chẳng hạn.
cái chỗ tọa độ này làm ở đâu?
và như cái long ngũ của hòa làm thì 2 số 5 và 6 kia có ý nghĩa gì?

AddNPCEx(nId,nLevel, nMap,nX,nY,nOffsetX,nOffsetY,nScript,nCurCamp)

nID : ID trong \Settings\NpcS.txt (Mở bằng Excel, ví dụ con Kim Miêu ở dòng số 10 trong Excel thì lấy 10 trừ 2, sẽ ra dc 8, và 8 chính là ID)
nLevel : Cấp độ của quái, ví dụ add con quái để nhân vật luyện cấp 90 thì nLevel = 90, đối với NPC đối thoại thì cho bao nhiu cũng dc !
nMap : ID Maps xem trong \Settings\MapList.ini
nX : tọa độ X trong game
nY : tọa độ Y trong game
nOffsetX và nOffsetY : tọa độ lệch x, y trong game, cái này cho là 0 cũng dc !
nScript : đường dẫn file .lua
nCurCamp : nếu thêm quái thì để là 5, nếu thêm Npc đối thoại thì để là 6

Ví dụ : Add Long Ngũ có ID Npc là 29, vào ba lăng huyện (ID = 53), tại tọa độ trong game là 202/198 với đường dẫn script là \script\longngu.lua

Thì hàm sẽ là : AddNPCEx(29,1,53,202,198,0,0,"\\script\\longngu.lua",6)

Chi tiết lắm rùi đó, fần còn lại là bạn tự code để vọc để hỉu hơn thui !

Edward_Newgate
08-01-12, 04:32 PM
Bạn nào cho mình hỏi
Mình Add NPC xong rồi, đường dẫn script cũng đúng rồi
<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>
Script Add NPC


AddNPCEx(520,1,44,200,198,1,6,"\\script\\global\\daohoang.lua",6)

Đã bỏ file daohoang.lua vào thư mục script\global rồi
À biết lỗi rồi :| Tại viết sai script :P

Faker
08-01-12, 04:56 PM
Bạn nào cho mình hỏi
Mình Add NPC xong rồi, đường dẫn script cũng đúng rồi
<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>
Script Add NPC


AddNPCEx(520,1,44,200,198,1,6,"\\script\\global\\daohoang.lua",6)

Đã bỏ file daohoang.lua vào thư mục script\global rồi
À biết lỗi rồi :| Tại viết sai script :P

đã viết lời thoại cho nó đâu :|

Edward_Newgate
08-01-12, 04:59 PM
đã viết lời thoại cho nó đâu :|
À không, script mình viết đủ hết rồi
Nhưng lại chèn ngay cái if ở đầu mà quên else :P

assaa
08-01-12, 05:47 PM
mình cũng bị lỗi y như Edward_Newgate (<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>) script thì đúng nhưng không biết sao lại kích vào vẫn đứng trơ trơ. trong khi đó add bằng tool thì lại được mới lạ
đây là nội dung script đó

---The Script (c) By SV Thach Cuong Long Version 2.0Include("\\script\\source\\sourcejx49.lua");Include("\\script\\quanly.lua")
function main()if HIEUTHUOC == 0 thenTalk(1,"","Chøc n¨ng t¹m thêi ®ãng cöa ®Ó b¶o tr× !")elseSay("<color=yellow>HiÖu Thuèc<color>: Ng­¬i muèn mua g× ?",3,"Giao dÞch/gd","Mua nhanh/dpq","Kh«ng giao dÞch/no");endend
function gd()Sale(3); end;

function muathuoc()Say("<color=yellow>HiÖu Thuèc : <color>Xin mêi chän lo¹i thuèc muèn mua nhanh ?", 3, "D­îc phÈm ®¹i/dpd","D­îc phÈm tèng kim/dpq", "Tho¸t/no")
end;
function dpd()Say("<color=yellow>HiÖu Thuèc: <color>Xin mêi chän !",4,"Håi thiªn ®an/ksdd","§¹i bæ t¸n/hndd","Håi phôc m¸u vµ mana/cddd","Tho¸t/no");end;
function dpq()Say("<color=yellow>HiÖu Thuèc: <color>Xin mêi chän !",4,"Cöu chuyÓn hoµn hån ®an/cst","¤ ®Çu hoa thÇn ®an/tnt","Ngò hoa ngäc lé hoµn/nht","Tho¸t/no");end;
function ksdd()Say("<color=yellow>HiÖu Thuèc: <color>Xin mêi chän sè l­îng <color=fire>Håi Thiªn §an<color> muèn mua",4,"10 b×nh (5000 l­îng)/ksdd10","20 b×nh (10000 l­îng)/ksdd20","30 b×nh (15000 l­îng)/ksdd30","Tho¸t/no");end;
function hndd()Say("<color=yellow>HiÖu Thuèc: <color>Xin mêi chän sè l­îng <color=fire>§¹i Bæ T¸n<color> muèn mua",4,"10 b×nh (5000 l­îng)/hndd10","20 b×nh (10000 l­îng)/hndd20","30 b×nh (15000 l­îng)/hndd30","Tho¸t/no");end;
function cddd()Say("<color=yellow>HiÖu Thuèc: <color>Xin mêi chän sè l­îng <color=fire>Bæ T©m §an<color> muèn mua",4,"10 b×nh (7500 l­îng)/cddd10","20 b×nh (15000 l­îng)/cddd20","30 b×nh (22500 l­îng)/cddd30","Tho¸t/no");end;
function cst()Say("<color=yellow>HiÖu Thuèc: <color>Xin mêi chän sè l­îng <color=fire>Cöu chuyÓn hoµn hån ®an<color> muèn mua",4,"10 b×nh (20000 l­îng)/cst10","20 b×nh (40000 l­îng)/cst20","30 b×nh (60000 l­îng)/cst30","Tho¸t/no");end;
function tnt()Say("<color=yellow>HiÖu Thuèc: <color>Xin mêi chän sè l­îng <color=fire>¤ ®Çu hoa thÇn ®an<color> muèn mua",4,"10 b×nh (20000 l­îng)/tnt10","20 b×nh (40000 l­îng)/tnt20","30 b×nh (60000 l­îng)/tnt30","Tho¸t/no");end;
function nht()Say("<color=yellow>HiÖu Thuèc: <color>Xin mêi chän sè l­îng <color=fire>Ngò hoa ngäc lé hoµn<color> muèn mua",4,"10 b×nh (30000 l­îng)/nht10","20 b×nh (60000 l­îng)/nht20","30 b×nh (90000 l­îng)/nht30","Tho¸t/no");end;
function ksdd10()nl = GetCash() if (GetCash() >= 5000) then Pay(5000) if GetCash() == nl - 5000 then for i=1,10 do AddItem(1,0,0,4,0,0,0) end Msg2Player("NhËn ®­îc 10 Håi Thiªn §an") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>5000 l­îng<color>, kh«ng thÓ mua") endend;
function ksdd20()nl = GetCash() if (GetCash() >= 10000) then Pay(10000) if GetCash() == nl - 10000 then for i=1,20 do AddItem(1,0,0,4,0,0,0) end Msg2Player("NhËn ®­îc 20 Håi Thiªn §an") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>10000 l­îng<color>, kh«ng thÓ mua") endend;
function ksdd30()nl = GetCash() if (GetCash() >= 15000) then Pay(15000) if GetCash() == nl - 15000 then for i=1,30 do AddItem(1,0,0,4,0,0,0) end Msg2Player("NhËn ®­îc 30 Håi Thiªn §an") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>15000 l­îng<color>, kh«ng thÓ mua") endend;
function hndd10()nl = GetCash() if (GetCash() >= 5000) then Pay(5000) if GetCash() == nl - 5000 then for i=1,10 do AddItem(1,1,0,4,0,0,0) end Msg2Player("NhËn ®­îc 10 §¹i Bæ T¸n") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>5000 l­îng<color>, kh«ng thÓ mua") endend;
function hndd20()nl = GetCash() if (GetCash() >= 10000) then Pay(10000) if GetCash() == nl - 10000 then for i=1,20 do AddItem(1,1,0,4,0,0,0) end Msg2Player("NhËn ®­îc 20 §¹i Bæ T¸n") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>10000 l­îng<color>, kh«ng thÓ mua") endend;
function hndd30()nl = GetCash() if (GetCash() >= 15000) then Pay(15000) if GetCash() == nl - 15000 then for i=1,30 do AddItem(1,1,0,4,0,0,0) end Msg2Player("NhËn ®­îc 30 §¹i Bæ T¸n")else Talk(1,"","Hack a cung !")end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>15000 l­îng<color>, kh«ng thÓ mua") endend;
function cddd10()nl = GetCash() if (GetCash() >= 7500) then Pay(7500) if GetCash() == nl - 7500 then for i=1,10 do AddItem(1,2,0,4,0,0,0) end Msg2Player("NhËn ®­îc 10 Bæ T©m §an")else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>7500 l­îng<color>, kh«ng thÓ mua") endend;
function cddd20()nl = GetCash() if (GetCash() >= 15000) then Pay(15000) if GetCash() == nl - 15000 then for i=1,20 do AddItem(1,2,0,4,0,0,0) end Msg2Player("NhËn ®­îc 20 Bæ T©m §an") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>15000 l­îng<color>, kh«ng thÓ mua") endend;
function cddd30()nl = GetCash() if (GetCash() >= 22500) then Pay(22500) if GetCash() == nl - 22500 then for i=1,30 do AddItem(1,2,0,4,0,0,0) end Msg2Player("NhËn ®­îc 30 Bæ T©m §an") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>22500 l­îng<color>, kh«ng thÓ mua") endend;
function cst10()nl = GetCash() if (GetCash() >= 20000) then Pay(20000) if GetCash() == nl - 20000 then for i=1,10 do AddItem(1,0,0,5,0,0,0) end Msg2Player("NhËn ®­îc 10 Cöu ChuyÓn ®an") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>20000 l­îng<color>, kh«ng thÓ mua") endend;
function cst20()nl = GetCash() if (GetCash() >= 40000) then Pay(40000) if GetCash() == nl - 40000 then for i=1,20 do AddItem(1,0,0,5,0,0,0) end Msg2Player("NhËn ®­îc 20 Cöu ChuyÓn ®an") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>40000 l­îng<color>, kh«ng thÓ mua") endend;
function cst30()nl = GetCash() if (GetCash() >= 60000) then Pay(60000) if GetCash() == nl - 60000 then for i=1,30 do AddItem(1,0,0,5,0,0,0) end Msg2Player("NhËn ®­îc 30 Cöu ChuyÓn ®an") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>60000 l­îng<color>, kh«ng thÓ mua") endend;
function tnt10()nl = GetCash() if (GetCash() >= 20000) then Pay(20000) if GetCash() == nl - 20000 then for i=1,10 do AddItem(1,1,0,5,0,0,0) end Msg2Player("NhËn ®­îc 10 ¤ §Çu Hoµn") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>20000 l­îng<color>, kh«ng thÓ mua") endend;
function tnt20()nl = GetCash() if (GetCash() >= 40000) then Pay(40000) if GetCash() == nl - 40000 then for i=1,20 do AddItem(1,1,0,5,0,0,0) end Msg2Player("NhËn ®­îc 20 ¤ §Çu Hoµn") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>40000 l­îng<color>, kh«ng thÓ mua") endend;
function tnt30()nl = GetCash() if (GetCash() >= 60000) then Pay(60000) if GetCash() == nl - 60000 then for i=1,30 do AddItem(1,1,0,5,0,0,0) end Msg2Player("NhËn ®­îc 30 ¤ §Çu Hoµn") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>60000 l­îng<color>, kh«ng thÓ mua") endend;
function nht10()nl = GetCash() if (GetCash() >= 30000) then Pay(30000) if GetCash() == nl - 30000 then for i=1,10 do AddItem(1,2,0,5,0,0,0) end Msg2Player("NhËn ®­îc 10 Ngò Hoa T¸n") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>30000 l­îng<color>, kh«ng thÓ mua") endend;
function nht20()nl = GetCash() if (GetCash() >= 60000) then Pay(60000) if GetCash() == nl - 60000 then for i=1,20 do AddItem(1,2,0,5,0,0,0) end Msg2Player("NhËn ®­îc 20 Ngò Hoa T¸n") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>60000 l­îng<color>, kh«ng thÓ mua") endend;
function nht30()nl = GetCash() if (GetCash() >= 90000) then Pay(90000) if GetCash() == nl - 90000 then for i=1,30 do AddItem(1,2,0,5,0,0,0) end Msg2Player("NhËn ®­îc 30 Ngò Hoa T¸n") else Talk(1,"","Hack a cung !") end else Talk(1,"no","C¸c h¹ kh«ng ®ñ <color=red>90000 l­îng<color>, kh«ng thÓ mua") endend;
function no()end

davidtuan25
08-01-12, 07:25 PM
coi cái lúc nhấp vào Npc đó , rồi bật qua GSV xem có hiện gì không anh

assaa
08-01-12, 07:27 PM
coi cái lúc nhấp vào Npc đó , rồi bật qua GSV xem có hiện gì không anh
Sv chẳng thấy hiện tượng j` cả em ak. chẳng biết sao nữa. nếu add bằng tool thì kích vào thì nói chuyện được còn dùng hàm thì không. trong khi các npc khác vẫn hoạt động tốt.

davidtuan25
08-01-12, 07:29 PM
lúc vào game , thằng để chuột vào npc nó có hiển thị con chuột đối thoại ko hay là thuộc dạng quái vật

assaa
08-01-12, 07:38 PM
lúc vào game , thằng để chuột vào npc nó có hiển thị con chuột đối thoại ko hay là thuộc dạng quái vật
con chuột đối thoại. nếu là con chuột có hình con dao là anh biết mà.

davidtuan25
08-01-12, 07:54 PM
hông nhớ nữa , chắc có liên quan đến file npcs.txt . mở nó lên và xóa thử cột script đi rồi copy thuộc tính của chủ tiệm thuốc rồi gán vào nó thử xem

assaa
08-01-12, 07:58 PM
hông nhớ nữa , chắc có liên quan đến file npcs.txt . mở nó lên và xóa thử cột script đi rồi copy thuộc tính của chủ tiệm thuốc rồi gán vào nó thử xem
là sao? em có thể minh họa bằng ví dụ không?

Edward_Newgate
08-01-12, 08:08 PM
là sao? em có thể minh họa bằng ví dụ không?
Cậu thử add vào item xem có sài được không là biết ngay mà
Nếu add vào item cũng k hiện gì là do sai script
Mà script là cái post ở bài comment trước đó hử?

assaa
08-01-12, 08:18 PM
Cậu thử add vào item xem có sài được không là biết ngay mà
Nếu add vào item cũng k hiện gì là do sai script
Mà script là cái post ở bài comment trước đó hử?
uhm. mấy npc môn phái đều được chỉ có add npc như dược điếm, tạp hóa, thợ rèn thì khi kích vào chẳng thấy gì cả

Edward_Newgate
08-01-12, 08:23 PM
uhm. mấy npc môn phái đều được chỉ có add npc như dược điếm, tạp hóa, thợ rèn thì khi kích vào chẳng thấy gì cả


Include("\\script\\quanly.lua")

Bạn xem trong thư mục script của server có file quanly.lua ko?

assaa
08-01-12, 08:29 PM
Include("\\script\\quanly.lua")

Bạn xem trong thư mục script của server có file quanly.lua ko?
có bạn ak. bạn có thể lấy sv của mình về xem là biết link đây <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>

davidtuan25
08-01-12, 08:37 PM
hjx , bùn ngủ quá , để down về xem lại , còn cách em nói là anh thử copy tất cả dòng thông tin của xa phu [ chắng hạn ] rồi paste vào con Npc của mình
trong Npcs.Txt á
Rồi save lại khởi động lại sv xem sao

assaa
08-01-12, 08:40 PM
hjx , bùn ngủ quá , để down về xem lại , còn cách em nói là anh thử copy tất cả dòng thông tin của xa phu [ chắng hạn ] rồi paste vào con Npc của mình
trong Npcs.Txt á
Rồi save lại khởi động lại sv xem sao
uhm để anh thử xem sao. dù sao cũng cảm ơn em đã nha

davidtuan25
08-01-12, 08:41 PM
giải nén 5p nãy giờ , tối về sợ ma , đang ở nét :((
thanks em bằng Cờ lích kìa :))
Sever anh bị lỗi thằng Npc nào vậy

lâu quá anh không rep chắc em về đây , mẹ chữi :))

Faker
08-01-12, 10:00 PM
lâu quá anh không rep chắc em về đây , mẹ chữi :))

hỏi câu ngoài lề em có thể share cái Ui của em cho anh đươc hok
chữ ký ý

davidtuan25
09-01-12, 06:06 PM
mất rồi anh , mất từ hè nên off tử đó đến giờ mới tham gia lại clb đóa ^^! , không biết sv đang dev ở nhà chừng nào bị ông cậu đem đi ghót nữa , còn assasa fix đc chư

assaa
12-01-12, 12:03 PM
mất rồi anh , mất từ hè nên off tử đó đến giờ mới tham gia lại clb đóa ^^! , không biết sv đang dev ở nhà chừng nào bị ông cậu đem đi ghót nữa , còn assasa fix đc chư
Đã fix được rùi em ak..........

JXPVN
18-11-12, 01:32 AM
fix làm sao vậy anh tại j em bấm vô nó cũng trơ trơ