 
- Diễn đàn
- CLB NGHIÊN CỨU & PHÁT TRIỂN MMORPG
- Võ Lâm Truyền Kỳ (Jx Server)
- [JX] Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever Linux VL
				Kết quả 1 đến 10 của 783
			
		- 
	16-07-15, 10:06 AM #1Thành Viên Tâm Huyết  
 - Ngày tham gia
- Apr 2014
- Đang ở
- Hưng Yên
- Bài viết
- 1,692
- Thanks
- 488
- Thanked 984 Times in 521 Posts
 Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever Linux VL- Để thuận tiện cho các ACE theo dõi và học hỏi devgame JX linux 1 cách nhanh chóng và thuận tiện nhất 
 - Tổng hợp các sever Linux + update mới và hoàn thiện nhất đồng thời H/D cách fix lỗi để sever Linux ngày càng hoàn chỉnh hơn
 
 Mong ACE ủng hộ nhiệt tình và có những bài viết có ích và phù hợp với nội dung chủ đề ( trừ nội dung online)..............
 ... Có thể coi đây là tiền thân để tổng hợp cho ebook JX LINUX sau này ............... Thân !!! TVNNAM...
 
 1.Nguồn: Mình đã tổng hợp các sever Linux update mới nhất fix 1 số lỗi tiềm ẩn sever cũ trước đó. các bạn có thể tham khảo link:
 
 [Only registered and activated users can see links. ]
 
 
 2.Tổng hợp H/D fix 1 số lỗi trên trên sever linux ACE tham khảo khảo
 
 1. Lỗi đồ Minh Phượng do sai res:
 
 [Only registered and activated users can see links. ]
 
 Settings -> item goldequipres.txt
 Settings -> item->004 goldequip.txt
 
 đồng bộ SV + Client
 
 2. bỏ Event trong bản Ver3:
 
 vào setting->droprate
 vào sữa các file npcdroprate10.ini -> npcdroprate119.ini
 
 sửa
 [Main]
 Count=55 thành Count=54
 
 xóa nội dụng này
 [55]
 Genre=6
 Detail=1
 Particular=1311
 RandRate=33000
 
 3. fix lỗi vào phái để làm nhiệm vụ và ko add skill:
 
 Sever nào khi vô phái cho full skill của phái .
 Vậy config như thế nào để làm nhiệm vụ mới có skill
 [Only registered and activated users can see links. ]
 
 down về rùi chép vào server, file được share là nofont, file này sẽ fix vấn đề của bạn.
 
 4.Share tool jxEdit - edit một vài thứ trong server hay mới nhất:
 
 Chỉnh tỷ lệ rớt đồ
 Dùng chỉnh tỷ lệ rớt đồ trong các file droprate : mở file droprate, nạp danh sách item, chỉnh các thông số, add item vào file droprate, và save lại. Tính năng này chưa có chỉnh rớt tiền.
 
 
 Chỉnh shop
 Chỉnh các item có trong shop Hiệu thuốc, Thợ rèn, Tạp hóa, ....: nạp danh sách shop trong file buysell.txt, chọn 1 shop để hiện danh sách hàng trong shop, chọn 1 món hàng và add vào shop, save lại.
 Lưu ý : server TSBD không có file Settings/item/mask.txt nên phần mềm sẽ báo lỗi thiếu file này. Bạn chỉ cần tạo file mask.txt có 2 dòng trắng là xong.
 
 
 Tìm kiếm nội dung
 Dùng để tìm 1 câu nào đó trong các file. Ví dụ bạn muốn biết tất cả các task nào đã được dùng trong các script (để tạo task mới không trùng) thì : nhập "SetTask(" vào chuỗi cần tìm, chọn đường dẫn bắt đầu tìm là folder script, nhấn nút Tìm kiếm, thì bạn sẽ được danh sách các file script có chuỗi SetTask. Ví dụ nữa : bạn biết 1 NPC nào đó có nói câu "Ban can co lenh bai" nhưng không biết file script của Npc này là file nào, thì bạn dùng chức năng này để tìm ra file có chứa câu nói đó.
 
 
 Cách sử dụng
 Download về có 2 file, bỏ vào trong folder của server (cùng cấp với các folder Settings, Script).
 
 Link download :
 [Only registered and activated users can see links. ]
 [Only registered and activated users can see links. ]
 
 5. Chỉnh kinh nghiệm và số tiền:
 
 Chép settings\npc\player\level_exp.txt từ server qua client
 settings/ gamesetting.ini/ [ServerConfig] ExpRate= 500 để 100 giống VNG
 MoneyRate=100 nên 20
 
 6. chỉnh giới hạn giờ chơi:
 
 sever và client: player_limittime.ini/ CloseLimit=1
 
 
 7. thêm + bớt maps trong linux gần giống như jx win.... có thể tham khảo chi tiết trong ebook 4.1:
 
 lấy ví dụ:
 Mục Maps trong server gồm có:
 *File có tên WorldSet.ini -----File này chứa các ID của từng maps được mở để chơi game.
 Cấu trúc của Flie này như sau Đây là mẫu WorldSet.ini của mình)
 
 
 
 [Init]
 Count=35 ----- Đây là số thông báo số Maps được mở.
 [World]
 World00=53------Ba Lăng Huyện
 World01=59------Thiên Vương Bang
 World02=65------Sơn Động Thiên Vương Đảo
 World03=67------Tầng 2 Sơn Động Định Hồ
 World04=71------Mê Cung Bạch Thuỷ Động
 World05=77------Mê Cung Yến Tử Động
 World06=73------Mê Cung Phục Lưu Động
 World07=115----Cái Bang Phái
 World08=80------Dương Châu
 World09=116----Tầng 1 Địa Hạ Mê Cung(Tường Vân Động)
 World10=9-------Trường Giang Nguyên Đầu
 World11=340----Mạc Cao Quật
 World12=336----Phong Lăng Độ
 World13=326----Tống Kim(Khu vuc binh nguyen (so cap))
 World14=19------Kiếm Các Tây Nam
 World15=131----Côn Lôn Phái
 World16=25------Đường Môn Phái
 World17=13------Nga Mi Phái
 World18=49------Thiên Nhẫn Giáo
 World19=103----Thiếu Lâm Phái
 World20=154----Thuý Yên Phái
 World21=81------Võ Đang Phái
 World22=22------Mê Cung Bạch Vân Động
 World23=243-----Lâm Du Quan
 World24=1--------Phượng Tường
 World25=11------Thành Đô
 World26=37------Biện Kinh
 World27=78------Tương Dương
 World28=55------Đào Hoa Nguyên
 World29=176-----Lâm An
 World30=162-----Phu Đại Lý
 World31=242-----Đảo Tẩy Tuỷ
 World32=244-----Trường Bạch Sơn Bắc Lộc
 World33=24------Mê Cung Hưỡng Thuỷ Động
 World34=23------Mê Cung Thần Tiên Động
 
 
 Phân tích:
 Vậy ở đây Count là thông số hiển thị ,tức là thống kê số maps được mở trong game.
 World00=53 là thứ tự và ID của maps được mở.Mỗi mẫu WorldSet.ini thì luôn bắt đầu phần thứ tự maps từ “World00=x”(x L à ID maps tuỳ ý) và tiếp tục “World01=…”
 “World02=…”
 “World03=…”
 Sau “=” là ID maps bạn muốn mở.
 Sau khi đã hoàn thành số maps cần mở thì đếm lại số “World…=…” mà mình mở được rồi điền vào chỗ Count sau dấu “=”
 VD: Mình mở đến “World50” thì mình sẽ khai ở Count là Count=51 .Vì World bắt đầu từ 00 mà.
 *Các dữ liệu của map trong mục Maps của server:
 Một dữ liệu maps gồm các mục như: 1 file có tên maps đó với đuôi *.wor , 1 mục mang tên maps(trong đó có các mục tên như vầy “v_089”,” v_089” tuỳ ở dữ liệu maps mà có các mục tên khác nhau.DỰa vào đó bạn cũng có thể kiểm tra xem maps nào có dữ liệu và maps nào không có dữ liệu.Trong các mục “v_089” thì lại có các file có đuôi *.dat
 *File Maplist.ini trong thư mục Settings:
 File này có liên quan đến maps nhưng không nằm trong mục Maps của server mà nằm trong mục Settings của server.
 File này chứa các ID Maps , Đường dẫn đến dữ liệu maps , tên hiển thị của từng maps trong game.
 Các bạn chú ý: để mở được các maps thì bạn phải dựa vào ID Maps.Tức là ID mà bạn mở trong WorldSet.ini là các ID có thong tin trong Maplist.ini[COLOR="Silver"]
 
 8. droprate:
 
 + trong settings/droprate/npcdroprate.ini
 [Main]
 Count=50
 RandRange=1000000
 MagicRate=100
 MoneyRate=10
 MoneyScale=50
 MinItemLevel=2
 MinItemLevelScale=20
 MaxItemLevel=10
 MaxItemLevelScale=10
 
 
 9.sửa event bắt đầu và hết hạn:
 
 .Tìm đến foder tên event, rồi sửa file head.lua.Ví dụ event xchristmas2007:
 /script/event/xmas07_makesnowman/head.lua
 Sửa lại 2 dòng sau
 Code:
 xmas07_makeSnowMan_S = 14062400 -- Cái này có nghĩa là 00h 00 phút ngày 24 tháng 06 năm 2014, sửa lên ngày cao ngày bắt đầu event
 xmas07_makeSnowMan_E = 14072324 --tương tự ngày kết thúc event
 xmas07_makeSnowMan_UseTime = 14072424 --tương tự hạn dùng vp
 +Bạn muốn biết nó làm việc thế nào về các event thì vào script/activitysys/config trong đó chứa tất cả folder các sự kiện event + 1 vài chức năng. Event giáng sinh, noel : 2,37,1010
 +Random quái rớt event bạn chỉ cần vào script/activitysys/npcfunlib.lua: trong file này sẽ có những hàm chỉnh tỷ lệ rơi bằng file hay bằng script. Có 1 vài sự kiện nó sẽ include đường dẫn drop trong config.
 +Npc event liên quan thì bạn chỉ cần chỉnh ngày trong config folder thì npc sẽ xuất hiện. Đa số là như vậy, nhưng bạn cần fai kiểm tra những file gọi npc trong config hoặc trong autoexc cho chắc chắn
 
 10. tắt hộp quà:
 
 tắt hộp quà
 có 3 cách :
 
 1. * Cách sửa: không cho s3relay chạy event đó nữa:
 Mở file gateway/s3relay/relaysetting/task/tasklist.ini
 Tìm file và Xóa bỏ:
 Ví dụ Code:
 [Task_58]
 TaskFile=menglanjie_06.lua
 hoặc đổi tên file trên để s3 không load file đó nữa (do không tìm thấy file)
 
 Xong vào game test
 
 Cách 2: cho các vật phẩm rớt ra của event đó vào vật phẩm đen không nhặt trong auto là đc
 
 cách 3: tìm tên và xóa event đó trong script/event hoặc chép đè update này vào sẽ không còn event đó nữa: [Only registered and activated users can see links. ] hướng dẫn thì mình đã bày trong topic... lật lại là thấy nhé
 
 -- tiện ai chỉ mình cái file droprate của mấy cái cọc gỗ ở thôn, tên là gì đc không :3
 như bạn nói cũng đc... nhưng mình phải biết tên file đó và chỉnh từng map.... ví dụ :
 * Cách sửa: không cho s3relay chạy event đó nữa:
 Mở file gateway/s3relay/relaysetting/task/tasklist.ini
 Xóa bỏ:
 Code:
 [Task_58]
 TaskFile=menglanjie_06.lua
 hoặc đổi tên file trên để s3 không load file đó nữa (do không tìm thấy file)
 cái file droprate của mấy cái cọc gỗ ở thôn lên google dịch sau đó dùng chức năng tìm kiếm trên sever là đc
 Xong vào game test
 
 
 11.fix lỗi bang hội ko nâng cấp được:
 
 vào : getway/s3relay/setting/tong : chỉnh trong tong_level_data. ở dòng đầu tiên có 2 số 0 ở cột thứ 3 thứ 4 ấy. bác chỉnh thành 10 với 8 là đẳng cấp 1 vẫn nâng max tác phường
 cái số 6720 tiếp theo sau 2 số 0 ở tong_level_data đấy bác là cột cống hiến. chỉnh nó lên 672000 rồi lấy tiền vạn gửi ngân quỹ xog chuyển qua thành ngân quỹ kiến thiết là xài tẹt :d hoặc ko thì copy của t cho nhanh
 0 10 8 672000 960 0 0 0
 1 3 6 672000 2880 3 3 3
 2 6 6 1344000 8640 3 3 6
 3 8 6 2016000 21600 4 3 9
 4 9 8 3360000 33600 5 3 9
 5 10 8 504000
 
 
 12. Cách bật/tắt các sự kiện cũng như việt hóa:
 
 Bạn chỉnh trong s3relay/relaysetting/task/tasklist.ini, file này nó quy định gọi file để chạy dạng timer vậy đó. Nói sơ lun, Count của nó khai báo tổng id task khai báo + 1, cách thức gọi thì làm theo những cái có sẵn. Mún nó không chạy 1 id task nào mà mình khai thì thêm ở dưới nó ExcutedCount=-1 là nó sẽ ko chạy. Điều chỉnh thời gian thì bạn chỉnh ở những file .lua ở relaysetting/task, ví dụ cho bạn ỏ dưới đó
 Code:
 function TaskShedule()
 TaskName("Phong L¨ng §é 0:25") --tên sự kiện, muốn viết gì cũng được cũng ko quan trọng.
 TaskTime(10,00); --giờ event sẽ được chạy
 
 --ÉèÖüä¸ôʱ¼ä£¬µ¥Î»Îª·ÖÖÓ
 TaskInterval(1440) --60·ÖÖÓÒ»´Î ---nó sẽ chạy suốt trong cái interval timer. Ở đây là mặc định mỗi h nó chạy 1 lần 60*24 = 1440 (60: phút , 24: giờ)
 
 --ÉèÖô¥·¢´ÎÊý£¬0±íʾÎÞÏÞ´Î� �� �ý
 TaskCountLimit(0) --cái này mình ko rõ lắm chưa sử dụng nhìu nên toàn để mặc dịnh là 0
 OutputMsg("=================PHONG LANG DO RUN=================="); --dang print thôi
 end
 
 function TaskContent()
 GlobalExecute("dwf \\script\\missions\\fengling_ferry\\fldmap_boat1.l ua fenglingdu_main()") --gọi hàm bạn đã viết ở folder script
 end
 
 function GameSvrConnected(dwGameSvrIP)
 end
 function GameSvrReady(dwGameSvrIP)
 end
 
 
 13.code nhận vòng sáng và danh hiệu jx linux
 
 Thêm dòng này lên đầu:
 Code:
 Include("\\script\\global\\titlefuncs.lua")
 
 
 Code:
 IncludeLib("SETTING")
 Include("\\script\\lib\\awardtemplet.lua")
 Include("\\script\\item\\gamemaster\\gm.lua")
 Include("\\script\\dailogsys\\dailogsay.lua")
 Include("\\script\\global\\fuyuan.lua")
 --Include("\\script\\global\\hotrothem.lua")
 
 
 function abcxyz(nindex)
 Title_AddTitle(nindex, 1, 4302359);
 Title_ActiveTitle(nindex);
 SetTask(1122, nindex);
 end
 function DanhHieu()
 local szTitle = "<npc>moi ban chon danh hieu"
 local tbOpt =
 {
 {"VL Kiet xuat", abcxyz,{85}},
 {"VL Minh Chu", abcxyz,{188}},
 {"Ngu Long", abcxyz,{165}},
 {"Ngu Long", abcxyz,{150}},
 {"Ngu Long", abcxyz,{189}},
 {"Tuyet The Cao Thu", abcxyz,{235}},
 {"Manh Long Tranh Ba", abcxyz,{228}},
 {"Manh Long Tranh Ba", abcxyz,{263}},
 {"Tho¸t"},
 }
 CreateNewSayEx(szTitle, tbOpt)
 end
 
 
 14.Hỏi về cách việt hoá server và font chữ:
 
 Dùng notepad++, xem thêm dưới đây:
 [Only registered and activated users can see links. ]
 [Only registered and activated users can see links. ]
 [Only registered and activated users can see links. ]
 
 
 15. code add đồ xanh :
 
 tbDoXanh =
 {
 [1]=
 {
 szName = "D©y chuyÒn",
 tbEquip =
 {
 {"Toµn th¹ch h¹ng liªn",0,4,0},
 {"Lôc PhØ Thóy Hé Th©n phï ",0,4,1},
 }
 },
 [2]=
 {
 szName = "¸o gi¸p",
 tbEquip =
 {
 {"ThÊt B¶o Cµ Sa",0,2,0},
 {"Ch©n Vò Th¸nh Y",0,2,1},
 {"Thiªn NhÉn MËt Trang",0,2,2},
 {"Gi¸ng Sa Bµo",0,2,3},
 {"§êng Nghª gi¸p",0,2,4},
 {"V¹n Lu Quy T«ng Y",0,2,5},
 {"TuyÒn Long bµo",0,2,6},
 {"Long Tiªu ®¹o Y",0,2,8},
 {"Cöu VÜ B¹ch Hå trang",0,2,9},
 {"TrÇm H¬ng sam",0,2,10},
 {"TÝch LÞch Kim Phông gi¸p",0,2,11},
 {"V¹n Chóng TÒ T©m Y",0,2,12},
 {"Lu Tiªn QuÇn",0,2,13},
 }
 },
 [3]=
 {
 szName = "§ai lng",
 tbEquip =
 {
 {"Thiªn Tµm Yªu §¸i",0,6,0},
 {"B¹ch Kim Yªu §¸i",0,6,1},
 }
 },
 [4]=
 {
 szName = "Giµy",
 tbEquip =
 {
 {"Cöu TiÕt X¬ng VÜ Ngoa",0,5,0},
 {"Thiªn Tµm Ngoa",0,5,1},
 {"Kim Lò hµi",0,5,2},
 {"Phi Phông Ngoa",0,5,3},
 }
 },
 [5]=
 {
 szName = "Bao tay",
 tbEquip =
 {
 {"Long Phông HuyÕt Ngäc Tr¹c",0,8,0},
 {"Thiªn Tµm Hé UyÓn",0,8,1},
 }
 },
 [6]=
 {
 szName = "Nãn",
 tbEquip =
 {
 {"Tú L« m·o",0,7,0},
 {"Ngò l·o qu¸n",0,7,1},
 {"Tu La Ph¸t kÕt",0,7,2},
 {"Th«ng Thiªn Ph¸t Qu¸n",0,7,3},
 {"YÓm NhËt kh«i",0,7,4},
 {"TrÝch Tinh hoµn",0,7,5},
 {"¤ Tµm M·o",0,7,6},
 {"Quan ¢m Ph¸t Qu¸n",0,7,7},
 {"¢m D¬ng V« Cùc qu¸n",0,7,8},
 {"HuyÒn Tª DiÖn Tr¸o",0,7,9},
 {"Long HuyÕt §Çu hoµn",0,7,10},
 {"Long L©n Kh«i",0,7,11},
 {"Thanh Tinh Thoa",0,7,12},
 {"Kim Phông TriÓn SÝ ",0,7,13},
 }
 },
 [7]=
 {
 szName = "Vò khÝ c©n chiÕn",
 tbEquip =
 {
 {"HuyÒn ThiÕt KiÕm",0,0,0},
 {"§¹i Phong §ao",0,0,1},
 {"Kim C« Bæng",0,0,2},
 {"Ph¸ Thiªn KÝch",0,0,3},
 {"Ph¸ Thiªn chïy",0,0,4},
 {"Th«n NhËt Tr·m",0,0,5},
 }
 },
 [8]=
 {
 szName = "Ngäc béi",
 tbEquip =
 {
 {"Long Tiªn H¬ng Nang",0,9,0},
 {"D¬ng Chi B¹ch Ngäc",0,9,1},
 }
 },
 [9]=
 {
 szName = "Vò khÝ tÇm xa",
 tbEquip =
 {
 {"B¸ V¬ng Tiªu",0,1,0},
 {"To¸i NguyÖt §ao",0,1,1},
 {"Khæng Tíc Linh",0,1,2},
 }
 },
 [10]=
 {
 szName = "NhÉn",
 tbEquip =
 {
 {"Toµn Th¹ch Giíi ChØ ",0,3,0},
 }
 },
 }
 function laydoxanh()
 if check_faction() == 1 then
 Talk(1, "", "Gia nhËp m«n ph¸i míi cã thÓ nhËn trang bÞ ")
 return
 end
 local tbOpt = {}
 for i=1, getn(tbDoXanh) do
 tinsert(tbOpt, {tbDoXanh[i].szName, laydoxanh1, {i}})
 end
 
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 CreateNewSayEx("<npc>Xin mêi lùa chän trang bÞ:", tbOpt)
 end
 function laydoxanh1(nType)
 local tbEquip = %tbDoXanh[nType]["tbEquip"]
 local tbOpt = {}
 for i=1, getn(tbEquip) do
 tinsert(tbOpt, {tbEquip[i][1], laydoxanh2, {i, nType}})
 end
 
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 local szTitle = format("<npc>Xin mêi lùa chän trang bÞ:")
 CreateNewSayEx(szTitle, tbOpt)
 end
 function laydoxanh2(nIndex, nType)
 local tbOpt = {}
 tinsert(tbOpt, {"Kim", laydoxanh3, {nIndex, nType, 0}})
 tinsert(tbOpt, {"Méc", laydoxanh3, {nIndex, nType, 1}})
 tinsert(tbOpt, {"Thñy", laydoxanh3, {nIndex, nType, 2}})
 tinsert(tbOpt, {"Háa", laydoxanh3, {nIndex, nType, 3}})
 tinsert(tbOpt, {"Thæ ", laydoxanh3, {nIndex, nType, 4}})
 
 
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 local szTitle = format("<npc>Chän hÖ:")
 CreateNewSayEx(szTitle, tbOpt)
 end
 function laydoxanh3(nIndex, nType, nSeries)
 g_AskClientNumberEx(0, 60, "Sè lîng:", {laydoxanh4, {nIndex, nType, nSeries}})
 end
 function laydoxanh4(nIndex, nType, nSeries, nCount)
 local tbEquipSelect = %tbDoXanh[nType]["tbEquip"][nIndex]
 for i=1,nCount do AddItem(tbEquipSelect[2], tbEquipSelect[3], tbEquipSelect[4], 10, nSeries, 100, 10) end
 end
 
 
 16.Cách tắt/Bật Cẩm nang hoàng kim :
 
 bạn vào droprate trong setting . tìm các mục droprate từ 1x đến 9x rồi tìm tới ID quy định cẩm nang hoàng kim rồi xóa cái rate nó đi là ko rớt . Còn nếu muốn dùng đc phải lấy script của update2.1 cgalaxy . ( lấy cái script của cẩm nang . và nhớ chọn đúng đường dẫn quy định đến Script đó )
 
 
 17. cách thêm op vào phi phong: Phi phong vô cực bị lổi,chỉ sài được phi phong khấp thần trở xuống
 
 Tải vài update 4 của boynhay mở file goldeqiup.txt lên rồi copy mấy cái dòng phi phong mà bị lỗi trong đó bỏ qua cái sv của bạn đang chơi . nhớ đồng bộ client vs sv.
 
 
 18. Chỉnh map load sv Linux:
 
 Chỉnh ở file này: gateway\s3relay\settings\worldset.txt
 Ví dụ mình chỉnh như này là chỉ load map Ba lăng huyện:
 Code:
 MAP_ID GAMESVR_SET_1 GAMESVR_SET_2 GAMESVR_SET_3 GAMESVR_SET_4 GAMESVR_SET_5 GAMESVR_SET_6 GAMESVR_SET_7 GAMESVR_SET_8 GAMESVR_SET_9 GAMESVR_SET_10 GAMESVR_SET_11 GAMESVR_SET_12 GAMESVR_SET_13 GAMESVR_SET_14 GAMESVR_SET_15 GAMESVR_SET_16 ±¸×¢
 53 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 °ÍÁêÏØ
 Muốn mở thêm map khác thì copy cả dòng 53 rồi paste xuống dưới, sửa số 53 thành ID map muốn mở, ID map xem ở maplist.ini.
 
 
 19.script add item:
 
 - Huyền Tinh khoáng thạch:
 Code:
 AddItem(6,1,147,cấp,0,0,0) --cấp từ 1 - 10
 - Các loại khoáng thạch ép đồ tím và ép HKMP:
 Code:
 AddItem(6,1,149,1,0,0,0) --đá hiện 1
 AddItem(6,1,150,1,hệ,0,0) --đá ẩn 1, hệ Kim Mộc Thủy Hỏa Thổ tương ứng 0 1 2 3 4
 AddItem(6,1,151,1,0,0,0) --đá hiện 2
 AddItem(6,1,152,1,hệ,0,0) --đá ẩn 2, hệ như trên
 AddItem(6,1,153,1,0,0,0) --đá hiện 3
 AddItem(6,1,154,1,hệ,0,0) --đá ẩn 3, hệ như trên
 - Sát thủ giản:
 Code:
 AddItem(6,1,400,90,hệ,0,0) --hệ Kim Mộc Thủy Hỏa Thổ tương ứng 0 1 2 3 4
 - 3 loại Thủy Tinh:
 Code:
 AddEventItem(239) --Lam Thủy Tinh
 AddEventItem(240) --Tử Thủy Tinh
 AddEventItem(241) --Lục Thủy Tinh
 - Phúc duyên:
 Code:
 AddItem(6,1,122,1,0,0,0) --tiểu
 AddItem(6,1,123,1,0,0,0) --trung
 AddItem(6,1,124,1,0,0,0) --đại
 - Đồ phổ HKMP: file magicscript.txt từ dòng 241 - 393
 
 
 20.Nhiệm vụ dã tẩu ? muốn tăng lần huỷ bỏ lên thì phải làm như thế nào ? và làm nv không giới hạn:
 
 vào file th dã tẩu sửa lại. (season.lua)
 
 if nNum>=40 then
 Say("Ha! Ha! V?thi誹 h蕺p n祔! M鏸 ng祔 l祄 40 l莕 l? r錳! Ng祔 mai tr?l筰 nh?", 0);
 return 0;
 end;
 ở line 47 file seasonnpc.lua script/global
 sửa cái 40 này
 còn giới hạn hình như dòng 664 mycacel > 2
 
 
 21.Làm sao xoá item trong 1 shop ?
 
 Tất cả npc dược ở thành thị đều include vào npc dược ở Tương Dương nên bác chỉ cần xóa item này ở đây là được. Hoặc việt hóa nguyên npc này là all tất dược ở thành thị.
 Nhưng bác lần vào Npc dược ở Tương Dương thì nó lại ko có quy định các mã item 015 2019 2036 ví dụ thế mà chỉ có lệnh đối thoại. Nhưng bác nhìn lên đầu file script NPC này nó sẽ quy định item ở file good hay buysell gì đó. Bác lần đến chỗ file đó có đường dẫn luôn, mở thư mục đó nó có nhiều file định dang là .txt nên mở excel lên là được.
 
 Nếu bác Việt hóa rồi thì tìm trong thư mục đó ( gồm cả good, buysell,... ko nhớ nữa) có 1 file quy định tên item và ID mở nó lên tìm dòng chứa tên là Hồi thiên..... >>>> ô bên cạnh có id là cũng chả nhớ nốt lắm 20XX gì hay sao ấy.
 
 Nhớ lấy ID cần xóa cụ thể là 20xx. Mở file good hoặc buys ( vì ko nhớ nên bác cứ mở file nào thấy toàn số và số trên là 20xx dưới là quy định ô gán item 234 235 666 777 dạng như thế này) ctrl + f cho lẹ gõ tìm 20xx id cần xóa và xóa thôi. Run lại sever
 
 
 22.Điểm tiềm năng tự động cộng max 20 điểm khi vào môn phái
 
 NPC tiếp dẫn môn phái ko add sẵn skill (thư mục cho vào script\global\, file cho vào server\settings\ )
 kiếm chùm nào mà AddMagic... vd: AddMagic(275,20) - số 20 chuyển về 1 or 0
 
 
 23.lỗi giao dịch và Lỗi bày bán hàng SV linux:
 
 Download file này : [Only registered and activated users can see links. ]
 giải nén ra được thư mục lang, chép đè vào thư mục lang/sever1
 
 
 24.Giúp về hàm lệnh bài admin
 
 Bạn muốn thêm LB Admin và game thì bạn có thể thêm nó là 1 vật phẩm trong questkey.txt đó. Gán res cho nó, không thì xài cái res cũ của LB Tân thủ hay j j đó cũng được. Rồi thêm chức năng admin cho nó, rồi dùng lệnh lấy ra mà xài.
 
 25.Chỉnh thời gian mất item rơi trên mặt đất trong jx Linux
 
 bạn vào Settings\obj mở file ObjData.txt lên bằng excel rồi tìm cột LifeTime cột này quy định thời gian item tồn tại dưới đất. số càng lớn thì time mấy càng lâ càng nhỏ thì càng mau
 
 
 26.Tắt Event với Thông Báo Linux cho s3relay ko load nữa!
 
 bạn vào gateway/s3relay/relayseting/task/task.ini mở nó lên rồi thêm đoạn này dưới event bạn muốn tắt, ExcutedCount=-1, chẳng hạn
 TaskFile=miao-ru-2200.lua
 ExcutedCount=-1
 
 
 
 27. Còn đây là tất cả các npc của tống kim báo danh
 
 jxser\server1\script\global\ÌØÊâÓõØ\ËÎ� �� �� �ð±¨Ãûµã\npc
 
 
 28.Lỗi map vi sơn đảo
 
 cách fix đơn giản thôi khi các bạn dùng lệnh bài lên thì đừng chạy ra liền đứng im ở đó khoản 5 10s gì đó rồi chạy ra.
 
 
 29.Vượt Ải Linux chỉnh Vượt Ải 1 người hoặc 2 ngừoi
 
 script\missions\challengeoftime\npc\dragonboat_mai n.lua
 
 if (GetTeamSize() < 4) then
 Say("Xin lçi! §éi tham gia 'NhiÖm vô Th¸ch thøc thêi gian' cÇn ph¶i cã Ýt nhÊt <color=red>4<color> ngêi!",0)
 return
 end
 Sửa lại số 4 tùy ý
 
 
 
 30.Giúp về Hút hít linux
 
 Bạn mở file magicattrib.txt tại đường dẫn: Server\settings\item\004\magicattrib.txt
 Tại cột thứ 5, bạn gióng từ trên xuống, tìm giá trị 136. Đấy là dòng quy định hút sinh lực
 Bạn chỉnh lại giá trị tại cột 13, 14 cao lên là dc.
 
 Tương tự giá trị 137 là hút nội lực.
 Giá trị 139 là Kỹ năng vốn có.
 Giá trị 114 là Kháng tất cả.
 Giá trị 115 là Tốc độ đánh.
 Giá trị 88 là Phục hồi sinh lực.
 Giá trị 92 là Phục hồi nội lực.
 Vân vân....
 
 Sau khi đã chỉnh tại server, bạn copy file magicattrib.txt sang client tại đường dẫn tương tự để đồng bộ hóa. Vào game thưởng thức thành quả
 
 Bạn cũng có thể thay đổi giá trị lên cao hơn. Ví dụ tại dòng 65, hút sinh lực 1 - 3%, bạn đổi thành 3 - 5%, các dòng tiếp theo cứ thế tăng lên.
 Kỹ năng vốn có + 3, 5, 7, 9
 --> server toàn đồ xanh khủng, khỏi cần hoàng kim với đồ tím...
 
 
 
 31. đường dẫn npc nhận bạn đồng hành linux
 
 \server1\script\task\partner.
 đường dẫn NPC Hàng Rong linux : jxser\server1\script\global\Áã··¹¦ÄÜ.lua
 
 
 32.hướng dẫn xóa bớt map load gameserver linuxx
 
 gateway\s3relay\settings\worldset.txt
 Bonus thêm 1 số tên Map đã dịch
 333-hoa sơn phái
 341-bắc thảo nguyên
 512-vân trung đạo
 513-bách hoa cốc
 853-862 viêm đế bảo tàng
 872-biện kinh nguyên thanh âm
 871-lâm an thanh âm
 874-biện kinh yên kì
 873-lâm an yên kì
 863-trại bào
 868-hoang mạc chiến trường
 876-cổ thành chiến trường
 882-tái trạo bào chuẩn bị chiến trường
 886-hoang thạch lĩnh xung đột chiến trường
 889-ngọc lầm trở túc chiến trường
 892-phạm đảo bí cảnh
 896-cửu châu cốc
 901-thất tịch hoạt động
 926-kích cổ truyền hoa hoạt động
 935-thiên trì bí cảnh hoạt động tầng 1
 947-thiên trì bí cảnh tầng 10
 949-thí điểm cốc
 957-sấm quan mật thất
 958-quỷ mộc nhân trường
 959-tân lưỡng thủy động
 960-hoàng thành ti lôi đài
 961-khổi quỷ mộc nhân chuẩn bị
 962-viêm đế bảo tàng thạch chuẩn bị
 968-nguyệt ca đảo
 969-nguyệt ca bí cốc
 967-vô danh bí cảnh
 
 
 
 33.Về Tính Năng phong vân bảo điện:
 
 Thêm code sau vào Lễ quan:
 
 Include("\\script\\event\\bingo_machine\\bingo_mac hine_gs.lua")
 
 function PVBD()
 OpenBingoMachine()
 end
 
 Nguyên liệu dùng hàm :
 
 
 function nguyenlieu()
 AddStackItem(200,6,1,2312,1,0,0,0)
 AddStackItem(200,6,1,2312,1,0,0,0)
 AddStackItem(200,6,1,2312,1,0,0,0)
 end
 
 
 
 34.Thần Hành Phù trong Ver3 tranminhdo không hiển thị nhưng vẫn sử dụng được Và script add thần hành phù vào NPC luôn
 
 Tải bản patch 2.1 của cgalaxy hoặc patch của yoken . vào data copy các file . dmjx01.pak đến dmjx06.pak . sau đó chép qua client đang sử dụng . đồng thời nhớ khai báo file pak vào trong pakage.ini ngoài client
 Script nhận thần hành phù :
 AddItem(6,1,x,1,0,0,0)
 Trong đó X là số Item của thần hành phù hoặc các Item nằm trong setting/item/004/magicscript.txt
 vào đó seach Thần hành phù rồi lấy ID của nó bỏ vào . hình như là cột số 3 ( bỏ cái cột Name ra )
 
 
 
 35.Hỏi về cách sửa điểm tinh lực hỗn thạch trên trang bị jx linux
 
 Tinh lực tài phú sửa trong normal.txt server1 và gateway nhé
 
 thần hành phù[: shenxingfu.lua
 
 
 
 
 36.Thêm lệnh dofile vào hàm main của script muốn reload
 
 file Lễ Quan:
 Tìm hàm main:
 Mình thêm vào như sau:
 Code:
 function main()
 dofile("script/global/•ÈË_Àñ¹Ù.lua");
 dialog_main()
 end
 Chú ý bên trong dofile là đường dẫn chính xác tới file cần reload (dạng no font) : ở đây là Lễ Quan
 Như vậy trong game mỗi khi bấm vào Lễ Quan thì tự động thực hiện lệnh dofile: reload lại file này
 Các file script khác làm tương tự
 
 
 
 37.Cách hiển thị tiếng việt trong notepad++ cũng như excel
 
 [Only registered and activated users can see links. ]
 [Only registered and activated users can see links. ]
 
 
 
 
 
 38. Code nhận skill 15x:
 
 function cap150()
 mp = GetFaction()
 if GetLevel() >= 150 then
 if GetTask(5009) == 0 then
 if mp == "shaolin" then
 AddMagic(1055,1)
 AddMagic(1056,1)
 AddMagic(1057,1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña ThiÕu L©m ")
 elseif mp == "tianwang" then
 AddMagic(1058,1)
 AddMagic(1059,1)
 AddMagic(1060,1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Thiªn V¬ng ")
 elseif mp == "tangmen" then
 AddMagic(1069,1)
 AddMagic(1070,1)
 AddMagic(1071,1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña §êng M«n ")
 elseif mp == "wudu" then
 AddMagic(1066,1)
 AddMagic(1067,1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Ngò §éc ")
 elseif mp == "emei" then
 AddMagic(1061,1)
 AddMagic(1062,1)
 AddMagic(1014,1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Nga My ")
 elseif mp == "cuiyan" then
 AddMagic(1063,1)
 AddMagic(1065,1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Thóy Yªn ")
 elseif mp == "gaibang" then
 AddMagic(1073,1)
 AddMagic(1074,1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña C¸i Bang ")
 elseif mp == "tianren" then
 AddMagic(1075,1)
 AddMagic(1076,1)
 SetTask(5009,GetTask(5009)+1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Thiªn NhÉn ")
 elseif mp == "wudang" then
 AddMagic(1078,1)
 AddMagic(1079,1)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Vâ §ang ")
 elseif mp == "kunlun" then
 AddMagic(1080,1)
 AddMagic(1081,20)
 SetTask(5009,GetTask(5009)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña C«n L«n ")
 end
 else
 Talk(1, "", "Ng¬i ®· nhËn råi kh«ng thÓ nhËn n÷a.")
 end
 else
 Talk(1, "", "N©ng ®Õn 150 råi h·y ®Õn t×m ta")
 end
 end
 mấy con số 1 phía sau AddMagic là cấp độ skill . có thể add bao nhiêu tùy
 
 
 
 39.Item gọi boss cả đại và tiểu:
 
 HD cụ thể cho bác luôn này
 
 1. Bác theo đường dẫn này đây là file lễ quan /home/jxser/server1/script/global/·ÈË_Àñ¹Ù.lua
 
 mở nó ra bác viết đoạn script này để đối thoại với lễ quan nhận lệnh bài gọi boss
 
 function main()
 dofile("script/global/tieungao/duatopnhanthuong.lua");
 local tbSay = {}
 tinsert(tbSay,"Lay lenh bai goi boss./lenhbaigoiboss")
 tinsert(tbSay,"Ket thuc doi thoai./Quit")
 Say("Dai hiep can gi:", getn(tbSay), tbSay)
 
 end;
 
 function lenhbaigoiboss()
 for i =1,10 do--lap 10 lan de lay 10 cai lenh bai
 AddItem(6,1,1022,0,0,0)
 end
 end;
 
 2. Vào script\item\bosscharm.lua tìm đoạn
 local tbUseOnlyInMap =
 {
 586,587,588,589,590,591,592,593,594,595,596,597,59 8,599,600,601,602,603,604,
 }
 sử thành thêm ,53 nữa
 local tbUseOnlyInMap =
 {
 586,587,588,589,590,591,592,593,594,595,596,597,59 8,599,600,601,602,603,604,53
 }
 
 3. Restart sever, đối thoại với NPC lễ quan lấy lệnh bài rồi ra chiến.
 chú ý gọi boss ngoài thôn Ba lăng huyện nhé
 
 Hoặc tự thêm bằng cách sau:
 Tạo con boss Hk mới trên nền boss tiểu hoàng kim. Có 3 boss tiểu, rớt đồ được quy định file drop riêng đó. Độ nó thành 10 boss Đại được mà. Hay lấy em Nhím thay máu, skill, hình ảnh, drop.ini, id.... của nó cũng được. khai báo thêm trong tasklist nữa là có boss mới
 còn Boss tiểu sửa được rớt đồ như sever win
 
 
 40.Các tắt event , drop vật phẩm khi train quái tại các map trong JX Linux
 
 Tại đường dẫn : settings/droprate
 
 Sửa các file ini . bỏ giá trị có thông tin sau :
 
 Genre=0
 Detail=6
 Particular=4
 RandRate=500
 
 
 
 
 41.Xóa tài khoản nhân vật
 
 dùng Navicat -->Login vào server linux
 Nhấn vào database: server1
 tiếp đến mở table: Role
 Tìm dòng nào có tài khoản mà bạn muốn xóa thì xóa nó đi!
 Ví dụ: tài khoản tvnnam
 Thì tìm trong table Role, cái nào có Account là tvnnam thì xóa hết là ok
 
 
 
 42.hướng dẫn đánh ra đồ ngon
 
 [Only registered and activated users can see links. ]
 
 
 
 43.mỗi lần trùng sinh từ 190 sau khi trùng sinh xong không về lv 10 mà vẫn ở lv 190
 
 jxser -> sever1 - > script -> global -> mở file translife.lua
 
 Tìm đến dòng thứ 57 "local nBaseLevel = 190" thay cái số 190 thành cấp mà muốn chuyển sinh về. -- để 1 hoặc 10 cho giống VNG
 
 trùng sinh thì xem 2 file file fuyuan.lua và translife.lua
 
 
 
 44.Thêm lệnh dofile vào hàm main của script muốn reload
 
 ví dụ:
 file Lễ Quan:
 Tìm hàm main:
 Mình thêm vào như sau:
 Code:
 function main()
 dofile("script/global/•ÈË_Àñ¹Ù.lua");
 dialog_main()
 end
 Chú ý bên trong dofile là đường dẫn chính xác tới file cần reload (dạng no font) : ở đây là Lễ Quan
 Như vậy trong game mỗi khi bấm vào Lễ Quan thì tự động thực hiện lệnh dofile: reload lại file này
 Các file script khác làm tương tự
 
 
 
 45.cách xóa dữ liệu nhân vật:
 
 có rất nhiều cách để Xóa dữ liệu .
 nếu dùng Navicat ta có thể xóa từng nhân vật được.
 Nếu dùng lệnh trên Centos thì nó lại càng dễ sử dụng và nhanh . nhưng có thể bạn sẽ không hình dung được dữ liệu nó nằm ở chỗ nào
 Mình thì mình dùng cách thủ công bằng WinSCP.
 1. đăng nhập vào
 2. ra đường dẫn root/var/lib/mysql/server1 --> xóa hết các file có trong foder server1
 3. vào centos gõ : service mysqld stop đợi chạy . sau đó . service mysqld start
 
 
 
 46. add Vật phẩm vào Kỳ Trân Các
 
 Tham khảo video sau: [Only registered and activated users can see links. ]
 
 
 
 
 47. Code thêm skill 15x
 
 code chung:
 AddMagic(idskill,levelskill)
 
 idskill: ở trong Skills.txt
 levelskill: tối đa là 60
 
 VD:
 
 function skill15x()
 mp = GetFaction()
 if GetLevel() >= 150 then
 if GetTask(5007) == 0 then
 if mp == "shaolin" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña ThiÕu L©m ")
 elseif mp == "tianwang" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Thiªn V¬ng ")
 elseif mp == "tangmen" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña §êng M«n ")
 elseif mp == "wudu" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Ngò §éc ")
 elseif mp == "emei" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Nga My ")
 elseif mp == "cuiyan" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Thóy Yªn ")
 elseif mp == "gaibang" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña C¸i Bang ")
 elseif mp == "tianren" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Thiªn NhÉn ")
 elseif mp == "wudang" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña Vâ §ang ")
 elseif mp == "kunlun" then
 AddMagic(x,y)
 SetTask(5007,GetTask(5007)+1)
 Talk(1,"","Chóc mõng b¹n ®· häc ®îc tuyÖt kü 150 cña C«n L«n ")
 end
 else
 Talk(1, "", "Ng¬i ®· nhËn råi kh«ng thÓ nhËn n÷a.")
 end
 else
 Talk(1, "", "N©ng ®Õn 150 råi h·y ®Õn t×m ta")
 end
 end
 
 trong đó ! x là id skill cần add , y là cấp độ skill bạn muốn
 
 Task 5007 kiểm tra số lần nhận skill.
 điều kiện ghi rõ ở trên
 
 
 
 48.Việt Hóa Đồ Phổ Hoàng Kim Linux
 
 Check lại file atlas_compound trong settings\item\004 rồi đồng bộ qua client
 
 
 
 49.Tắt ủy thác jx linux
 
 jxser\server1\script\global\judgeoffline.lua
 
 
 50.file script nv hoàng kim
 script/task/newtask
 
 51.file quy định đồ tím trong sever linux
 
 magicattriblevel.txt
 magicattriblevel_index.txt
 
 52.Hướng dẫn Việt hóa cho bạn nào chưa biết
 Các bạn đang gặp vấn đề việt hóa Script không biết đường dẫn File .lua của npc muốn VH ở đâu? Đơn giản thôi các bạn làm như sau:
 Những thứ cần là:
 
 1)Thư mục Map của server Linux VNG
 
 [Only registered and activated users can see links. ]
 
 2) Tool Add Npc (Cái này trong các server cũ có đó VD: LTG 1.3 chẳng hạn)
 
 [Only registered and activated users can see links. ]
 
 Chẳng hạn các bạn tải Server LTG 1.3 về giải nén nó ra được thư mục Server trong Server vào thư mục Maps xóa hết đi chỉ để lại WorldSet.ini. Rồi Copy Maps của Server Linux VNG vào đây.
 
 Sau đó bật WorldSet.ini lên mở Map có NPC các bạn cần việt hóa. Quay trở lại mở File SwordConfig.ini chỉnh lại đường dẫn cho đúng đến Server LTG 1.3 như mình chẳng hạn. Rồi bật cái NPCtools lên sẽ thấy Map mình đã mở rồi tìm Npc cần VH thôi các bạn sẽ thấy đường dẫn đến File .lua đó tìm đến là chiến thôi. Đường dẫn ở đây là ở Script của Server Linux VNG nha chứ không phải của Server LTG 1.3 đâu nha, chẳng qua mình lấy LTG 1.3 để lấy NPCtools thôi.
 
 3.dịch TQ ở trang vietphrase.com và nhớ cài font trung quốc nhé
 
 -Lưu ý muốn bật Tool được các bạn hãy dùng File WorldSet.ini của server cũ nha thì tool mới chạy được.
 -Mấy NPC NV Hoàng Kim, Long Ngũ, Bang Hội, nói chung là tiếng Tàu... không được add cứng trên map mà add trong script, sẽ được tự thực hiện khi chạy GS, nên chúng ta đổi tên trong script đó, vào Game sẽ hiển thị tên NPC lại!
 
 53.Chia sẻ một số mẹo nhỏ soạn thảo file .lua
 
 [Only registered and activated users can see links. ]
 
 54.Share cách FIX BẢNG XẾP HẠNG
 
 [Only registered and activated users can see links. ]
 
 55.Share cái mấy cái event cho jx linux cho ai cần
 
 event : mừng Sinh nhật VLTK, Phúc-Lộc Thọ, Giáng sinh đánh quái ở thôn và thành thị ra vật phẩm.
 event : mâm ngũ quả, trung thu làm bánh, trung thu đổi lồng đèn đánh quái 9x ra.
 
 link: [Only registered and activated users can see links. ]
 
 56.Tặng anh em mấy bộ giao diện và Ui thời tiền sữ !
 - Dành cho các bạn đổi gió !
 - Dành cho các bạn nào mở onl hút máu theo CTC !
 Link : [Only registered and activated users can see links. ]
 Ui võ lâm miễn phí của HOÀN MỸ KIẾM HIỆP
 [Only registered and activated users can see links. ]
 
 57.Cách thay đổi hình nền Intro đăng nhập Jx Linux Đơn Giản
 Đầu tiên các bạn phải có bộ Ui ( Chỉ lần phần Intro )
 Ở đây mình chia sẻ bạn Link Ui CTC cả bộ. rồi mình sẽ hướng dẫn tiếp
 Link : [Only registered and activated users can see links. ]
 
 Sau khi tải về và đem nhét thư mục Ui và Spr vào Client thì chắc chắn nó sẽ hiện Ui CTC
 Để Thay đổi hình ảnh mà ko làm mất giao diện thanh máu hay thanh công cụ bên dưới
 Các bạn vào Ui/Ui3 Xóa 2 file .ini đi
 Tiếp tục vào Ui/Ui3/UiNewLogin Xóa 2 File ini kia. Chỉ còn chừa lại File : µÇ½¹ý³Ì±³¾°´°¿Ú.ini
 
 Rồi như vậy là các bạn sẽ thay đổi được hình .
 Để thay đổi hình các bạn tìm hình phù hợp để bỏ vào Spr như của cái Ui nhé !!
 Share luôn cái link intro Jx : [Only registered and activated users can see links. ]
 
 58.fix Vô Hình Độc + vh jx linux
 
 Về vh mọi người sử dụng jxstudio để vh
 dùng notepad hiện chữ tàu bằng cách:
 Bạn mở notepad++ =>Encoding=>Characters sets=> Chinese=>GB2312
 chú ý cài font china và cop file sang máy thật để làm nhé
 
 fix Vô Hình Độc( do skill vô hình độc dùng để đi săn nguyên liệu event nên vng mới fix lại chỉ còn giảm tốc độ) ta fix lại như sau:
 Mặc định skill Vô Hình Độc nghe đâu VNG fix phải sử dụng skill thì mới có tác dụng(mình chỉ chơi vl thu phí hồi đó thôi nên k biết rõ vụ này),giờ mình hd fix lại như bình thường
 Tìm đến đường dẫn \script\skill\wudu.lua
 Mặc định:
 PHP Code:
 wuxing_gu={ --无形蛊
 fastwalkrun_p={{{1,-10},{25,-50},{26,-50}},{{1,18*2},{20,18*2}}}
 },
 Sửa lại thành:
 PHP Code:
 wuxing_gu={ --无形蛊
 fastwalkrun_p={{{1,-10},{25,-50},{26,-50}},{{1,18*2},{20,18*2}}},
 poisondamage_v={
 [1]={{1,5},{20,25}},
 [2]={{1,20},{20,20}},
 [3]={{1,25},{2,25}}
 }
 },
 
 59. Share chức năng Admin tích hợp sẵn trong lệnh bài
 share cái Lệnh bài admin cho anh em ai chưa có thì dùng có hết hướng dẫn bên trong
 muốn add thêm chức năng thì vào server1\script\item\ib\lenhbaiadmin.lua
 link: [Only registered and activated users can see links. ]
 
 60. Fix chế tạo đồ tím bằng huyền tinh được 6 dòng
 script\item\compound\equip_compound.lua
 
 Bạn tìm dòng trong code sau
 Code:
 function genDesItemsInfo( arynNecessaryItemIdx ) local aryDesItemInfo = {};
 for i = 1, 5 do
 local arynMagLvl = { 0, 0, 0, 0, 0, 0 };
 Thay đổi số 5 thành sô 6 là được nhé
 
 61.Lỗi đồ Minh Phượng xích lân là do sai res:
 
 [Only registered and activated users can see links. ]
 
 Settings -> item goldequipres.txt
 Settings -> item->004 goldequip.txt
 
 62. Fix lệnh bài GM bị thành bất minh đạo cụ
 
 1. lỗi do chưa đồng bộ
 2. thiếu spr
 3. có thể client chưa update mới nhất
 
 63. chỉnh tỷ lệ rơi đồ trong event
 
 \server1\settings\droprate mấy file ini mở ra xem và so sánh với server1\settings\item\004\magicscript.txt
 
 VD : mình lấy Hép quµ Sinh nhËt 6 1 1099 làm ví dụ, Lưu ý dòng chữ đỏ nhé
 
 mở file trong droprate lên có dòng
 
 [51]
 Genre=6
 Detail=1
 Particular=1099
 RandRate=3500 <--- đây là chỉ số rớt ra khi giết quái chỉ cần chỉnh về =0 là dc
 64. Chỉnh trang bị “không thể phá hủy” và tỉ lệ rơi đồ maxop:
 
 Chỉnh trang bị “không thể phá hủy” và tỉ lệ rơi đồ maxop:
 - không thể phá hủy:
 Bạn mở file magicattrib.txt tại đường dẫn: Server\settings\item\004\magicattrib.txt
 
 Tại cột thứ 5, bạn gióng từ trên xuống, tìm giá trị 136. Đấy là dòng quy định hút sinh lực
 Bạn chỉnh lại giá trị tại cột 13, 14 cao lên là dc.
 
 
 
 Tương tự giá trị 137 là hút nội lực.
 Giá trị 139 là Kỹ năng vốn có.
 Giá trị 114 là Kháng tất cả.
 Giá trị 115 là Tốc độ đánh.
 Giá trị 88 là Phục hồi sinh lực.
 Giá trị 92 là Phục hồi nội lực.
 Vân vân....
 
 
 
 Sau khi đã chỉnh tại server, bạn copy file magicattrib.txt sang client tại đường dẫn tương tự để đồng bộ hóa. Vào game thưởng thức thành quả
 
 Bạn cũng có thể thay đổi giá trị lên cao hơn. Ví dụ tại dòng 65, hút sinh lực 1 - 3%, bạn đổi thành 3 - 5%, các dòng tiếp theo cứ thế tăng lên.
 Kỹ năng vốn có + 3, 5, 7, 9
 --> server toàn đồ xanh khủng, khỏi cần hoàng kim với đồ tím...
 Mang set động xác may mắn 100% + ăn quế hoa tửu, thiên sơn bảo lộ, treo auto là ra nhé
 
 65. code nhận 1 lần cho jxlinux
 
 function hotrotanthu()
 if GetTask(5000) <= 0 then
 AddItem(6,1,4328,0,0,0)
 AddStackItem(100,4,417,1,1,0,0,0)
 Earn(1000000)
 SetTask(5000,GetTask(5000)+1)
 else
 Talk(1,"no","b¹n ®• nhËn råi")
 end
 end
 
 
 PHP Code:
 function hotrotanthu()
 local a = GetTask(1)
 if (a == 1) then
 Talk(1,"no","b¹n ®• nhËn råi")
 else
 AddItem(6,1,4328,0,0,0)
 AddStackItem(100,4,417,1,1,0,0,0)
 Earn(1000000)
 SetTask(1,1)
 Talk(1,"no","NhËn thµnh c«ng ")
 end
 end
 
 66. add vật phẩm khóa
 
 add vật phẩm khóa
 Code:
 Include("\\script\\lib\\awardtemplet.lua")
 Code:
 tbAwardTemplet:GiveAwardByList({tbProp = {6,1,71,1,0,0}, nExpiredTime=1440, nBindState=-2}, "test", 1);
 
 - Hạn sử dụng: nExpiredTime có 2 cách tính:
 tính bằng phút: 1 ngày = 1440 phút
 hoặc tính đến ngày hết hạn, ví dụ nExpiredTime=20140601 tức là thời hạn sử dụng đến 00h00 - 01/06/2014
 - "test" cái này hình như ghi gì cũng dc
 - Số 1 cuối cùng là số lượng
 - Nếu muốn ko khóa thì xóa bỏ "nBindState=-2"
 
 
 Ví dụ: code trên add Tiên Thảo Lộ khóa vĩnh viễn, hạn sử dụng 1 ngày
 
 67. việt hóa đồ phổ HK
 
 việt hóa đồ phổ HK
 chép vào đường dẫn này nhé \\settings\\item\\huangjintupu.txt đã việt hóa
 
 [Only registered and activated users can see links. ]
 
 68. Cách thêm hoặc chỉnh sửa opt cho skill gồm 2 bước:
 - Khai báo thêm opt trong skills.txt
 - Thêm vào trong script của skill môn phái
 
 sau đó đồng bộ sever qua client..... rất ngắn gọn phải ko? rất ngắn gọn phải ko? 
 
 69. file điều chỉnh công thức và tỉ lệ ép đồ tím
 settings/item/004/magicattriblevel từ cột L trong excel đổ đi nhé bạn
 thần bí thương nhân
 \\script\\vng_feature\\thuongnhanthanbi\\moruongfo ur\\openchestfour.lua
 
 
 70. Cần giúp đỡ về lỗi không biết gì luôn với cái luyện skill 12x của sv Cgalaxy
 
 f mp() ~= 0 then
 if HaveMagic(mangskill[mp()]) > 0 then
 expskill = 30000
 if GetSkillState(440) == 1 then
 expskill = 60000
 end
 Clear120SkillExpLimit()
 Set120SkillID(mangskill[mp()])
 Add120SkillExp (expskill)
 end
 end
 
 1 - kiểm tra môn phái
 2 - Clear120SkillExpLimit() -- xóa giới hạn
 3 - Set120SkillID(mangskill[mp()]) - Set ID Skill 12x cần add Exp
 4 - Add120SkillExp (expskill) - Add exp cho skill 12x vừa set ở trên
 
 Clear120SkillExpLimit()
 Bạn chỉ cần dùng hàm này là xóa cái Exp giới hạn trên 1 ngày của nhân vật.
 Xong thích thì luyện skill không thì add exp bao nhiêu tùy mình
 Còn exp quy định để lên cấp xem trong Script/skill
 
 
 
 3.Hàm trong JX Server Linuxx
 
 1.Các hàm cơ bản trong JX LINUX
 Say: nói chuyện có lựa chọn
 
 Cú pháp: Say(“Câu nói của NPC”,số lựa chọn,“Lựa chọn 1”,“lựa chọn 2”,……“lựa chọn n”)
 
 N = số lựa chọn
 
 Vd : Say(“Chao mung ban!”,2,”Ta muon di xa phu/goxaphu”,”Nhan tien ghe qua”)
 
 Vậy n = 2
 
 Talk: nói chuyện không lựa chọn
 
 Cú pháp: Talk(<số câu nói>,”<hàm chạy khi kết thúc câu nói >”,”Câu nói”)
 Vd: Talk(1,”no”,”Chao ban den voi JX Offline!”)
 
 function no()
 end;
 
 Như vậy sau khi chạy hàm Talk,nó sẽ Hiện câu ”Chao ban den voi JX Offline!” rồi chạy hàm no
 
 SetTask,SetTaskTemp,SetMissionV,SetGlbMissionV: Tạo giá trị nhiệm vụ
 
 Cú pháp 4 hàm này như nhau và cấu trúc chung là
 
 SetTask(idnhiệmvụ,giátrịnhiệmvụ)
 
 SetTaskTemp(idnhiệmvụ,giátrịnhiệmvụ)
 
 SetMissionV(idnhiệmvụ,giátrịnhiệmvụ)
 
 SetGlbMissionV(idnhiệmvụ,giátrịnhiệmvụ)
 
 Chú ý : +SetTask sẽ đặt giá trị nhiệm vụ và giữ nguyên khi thoát hoặc tắt server
 
 +SetTaskTemp sẽ đặt giá trị nhiệm vụ và chỉ giữ khi online,khi tắt server hay thoát thì nó mất tác dụng và quay về 0 thì phải
 
 +SetMissionV và SetGlbMissionV sẽ đặt giá trị nhiệm vụ đó cho cả Server đang chạy
 
 Vd:SetTask(20,3)
 
 Nghĩa là thiết đặt nhiệm vụ có Id 20 với giá trị là 3
 
 4 hàm này có ích khi dung cấu trúc rẽ nhánh(if,then..) và khi viết nhiệm vụ
 
 Ban đầu khi chưa thiết đặt nhiệm vụ có id đó thì giá trị của nó đang là 0
 
 GetTask,GetTaskTemp,GetMissionV,GetGlbMissionV: Kiểm tra giá trị nhiệm vụ
 
 Cú pháp 4 hàm này như nhau và cấu trúc chung là
 
 GetTask(idnhiệmvụ)
 GetTaskTemp(idnhiệmvụ)
 GetMissionV(idnhiệmvụ)
 GetGlbMissionV(idnhiệmvụ)
 
 Tương tự GetTask sẽ lấy giá trị nhiệm vụ có id là idnhiệmvụ ,hiệu lực được mãi khi Set về 0 lại,còn GetTaskTemp sẽ mất hiệu lực khi tắt Server hay out.GetMissionV và GetGlbMissionV có tác dụng cho cả server, chúng cũng hữu dụng cho việc code nhiệm vụ và xài cấu trúc rẽ nhánh cho hàm chạy thời gian cho Server!
 
 SetByte,SetBit:Thiết đạt giá trị cho byte bit
 
 Cú pháp : SetBit(Value, BitNo, BitValue)
 
 SetByte(Value, ByteNo, ByteValue)
 
 Chưa xài nên ko có Vd sr L
 
 GetByte,GetBit:Kiểm tra giá trị Byte,Bit
 
 Cú pháp : GetBit(Value, BitNo)
 
 GetByte(Value, ByteNo)
 
 Chưa xài nên ko có Vd sr L
 
 Include: thêm đường dẫn file khác
 
 Cú pháp: Include(“Đường dẫn file”)
 
 Vd: Include(“\\Script\\Global\\Serverlib.lua”)
 
 Chú ý : Đường dẫn file phải bắt đầu là \\ rồi sau đó là đường dẫn File nhưng thay \ là \\(phải là 2 nét \\)
 
 1 Cách khác nếu file muốn khai vào ngang hàng(chung thư mục) với file đang mở
 
 Khi đó cú pháp là
 
 Include(“tênfile”)
 
 Vd:Include(“abcdef.lua”)
 
 PutMessage: thêm thông báo
 
 Cú pháp: PutMessage(Câu nói,id)
 
 Chưa xài bao giờ nên ko có vdL
 
 AddGlobalNews,AddGlobalTimeNews,AddGlobalCountNews ,AddLocalNews,AddLocalTimeNews,AddLocalCountNews:T hêm thong báo lên phía trên Game(giống như câu thong báo người nào làm nv dã tẩu dc đồ hk trong VLTK VNG ấy)
 
 Cú pháp từng hàm
 
 AddGlobalNews(“Câu thông báo”)
 
 AddGlobalTimeNews(“Câu thông báo”, Năm,tháng,ngày,giờ,phút)
 
 AddGlobalCountNews(“Câu thông báo”,số lần lặp (thì phải))
 
 AddLocalNews(“Câu thông báo”)
 
 AddLocalTimeNews(“Câu thông báo”, Năm,tháng,ngày,giờ,phút)
 
 AddLocalCountNews(“Câu thông báo”,số lần lặp (thì phải))
 
 Vd từng hàm
 
 AddGlobalNews(“Chao ban den voi JX Offline!”)
 
 AddGlobalTimeNews(“Chao ban den voi JX Offline!”,2009,06,29,19,50)
 
 AddGlobalCountNews(“Chao ban den voi JX Offline!”,1)
 
 AddLocalNews(“Chao ban den voi JX Offline!”)
 
 AddLocalTimeNews(“Chao ban den voi JX Offline!”,2009,06,29,19,50)
 
 AddLocalCountNews(“Chao ban den voi JX Offline!”,1)
 
 AddRepute: thêm danh vọng
 
 Cú pháp :AddRepute(sốđiểmthêmvào)
 Vd:AddRepute(50)
 
 GetRepute: kiểm tra điểm danh vọng
 
 Cú pháp :GetRepute()
 
 GetNpcIdx:lấy id của npc thì phải
 
 Cú pháp: chưa biếtL
 
 SetTimer: cài đặt file chạy sau mỗi n giây trong hàm
 
 Cú pháp: SetTimer(thời gian*18,id file muốn chạy trong settings\timertask.txt)
 
 Thời gian là giây
 
 Vd:SetTimer(60*18,1)
 Sau 60 giây sẽ chạy file có id 1 trong Timertask.txt
 
 Lưu ý file dc chạy thì sẽ được duyệt bằng hàm function OnTimer() thôi,có nghĩa là sẽ chạy file đó và các câu lệnh chứa trong hàm function OnTimer()
 
 StopTimer():thôi ko chạy file đã được dùng hàm function OnTimer()
 
 Cú pháp : StopTimer()
 GetRestTime:chưa biết
 
 GetTimerId :Lấy id của file đang được chạy bằng hàm SetTimer và các hàm set thời gian như SetTimer
 
 Cú pháp : GetTimerId()
 
 IsCaptain:có phải đội trường hay là chủ PT không(ko nhớ rõ)
 
 Cú pháp : IsCaptain()
 
 Dùng như sau: kiểm tra xem người này có phải đội trưởng ko: if (IsCaptain() ~= -1) then Talk(1,””,”Ban la doi truong”)
 
 Có nghĩa là nếu là đội trưởng thì nói “Ban la doi truong”
 
 ~= có nghĩa là khác
 
 -1 là giá trị chưa có hay giá trị ko đúng
 
 Ko hiểu bạn có thể hiểu cách 2 là : if (IsCaptain() == 1) then Talk(1,””,”Ban la doi truong”)
 
 GetTeam:lấy id PT
 
 Cú pháp :GetTeam()
 
 GetTeamSize:đếm số thành viên trong PT
 
 Cú pháp :GetTeamSize()
 
 LeaveTeam:rời PT
 
 Cú pháp :LeaveTeam()
 
 Msg2Player:nhắn tin tới người chơi
 
 Cú pháp :Msg2Player(“câu nói”)
 
 Vd:Msg2Player(“Chao ban!”)
 
 Nó sẽ send câu “Chao ban” đến khu vục chat trên kênh thế giới dưới dạng chữ màu đỏ
 
 Msg2Team:nhắn tin tới PT
 
 Cú pháp:Msg2Team(“câu nói”)
 
 Vd:Msg2Team(“Chao ban!”)
 
 Msg2SubWorld:nhắn tin tới Server đang chạy
 
 Cú pháp:Msg2SubWorld(“câu nói”)
 
 Vd:Msg2SubWorld(“Chao ban!”)
 
 Msg2Region:nhắn tin tới 1 cụm Server là cha của Server đang chạy
 
 Cú pháp:Msg2Region(“câu nói”)
 
 Vd:Msg2Region(“Chao ban!”)
 
 Vd này nói rằng trong các Server VNG,kỳ sơn là con của cụm TP2(vd thôi) thì nó sẽ gửi tin tới các máy chủ trong cụm TP2 luôn
 
 Msg2GM:nhắn tin tới GameMaster
 
 Cú pháp:Msg2GM(“câu nói”)
 
 Vd:Msg2GM(“Chao GameMaster!”)
 
 Msg2IP:nhắn tin tới IP được chọn
 
 Cú pháp:Msg2IP(IP,ID,“câu nói”)
 
 GetInfo:lấy thong tin của nhân vật(dùng trong hàm ghi vào File Log của Server Xuân thu)
 
 Cú pháp:GetInfo()
 
 Khi này nó sẽ xuất ra các giá trị sau của người chơi:Tên,Level,IP,Máu,Mana,Thể Lực,tiền..
 
 GetIP:lấy IP của người chơi
 
 Cú pháp:GetIP()
 
 SetPos:tạo điểm quay về khi xài thổ địa phù
 
 Cú pháp:SetPos(tọa độ x*32,tọa độ y*32)
 
 Khi này nó sẽ tạo điểm phù về tại id map đang đứng và tại tọa độ x,y trong hàm trên
 
 GetPos:lấy tọa độ x,y,id map tạo điềm phù về
 
 Cú pháp:GetPos()
 
 Nó sẽ xuất ra tọa độ x,y,id map
 
 GetWorldPos:lấy id,tọa độ x,y tại map đang đứng,id là id map đang đứng
 
 Cú pháp:GetWorldPos()
 
 Nó sẽ xuất ra id map ,tọa độ x,y
 
 NewWorld:sang map khác
 
 Cú pháp:NewWorld (id map muốn qua,tọa độ x*8,tọa độ y *16)
 
 DropItem:làm rơi đồ từ NPC thì phải chưa xài
 
 Cú pháp: DropItem(NpcId, tên hoặc ID item)
 
 AddItem:thêm vật dụng
 
 Cú pháp: AddItem(nItemClass, nDetailType, nParticularType, nLevel, nSeries, nLuck, nItemLevel)
 
 nItemClass = id cột ItemGenre trong các file Item
 
 chú thích idnItemClass
 
 1:máu ,mana,các thứ trong potion.txt
 
 0:đồ ,ngựa,vkhí…
 
 nDetailType = id cột DetailType trong các file Item
 
 chú thích id nDetailType
 
 0:vũ khí cầm tay(meleeweapon.txt)
 
 1:vũ khí đường môn(rangeweapon.txt)
 
 2:áo(armor.txt)
 
 3:nhẫn(ring.txt)
 
 4:dây chuyền(amulet.txt)
 
 5:giày(boot.txt)
 
 6:yêu đái(belt.txt)
 
 7:đầu khôi(helm.txt)
 8:hô uyển(cuff.txt)
 
 9:hương nang,ngọc bội(pendant.txt)
 10:ngựa(horse.txt)
 
 11:mặt nạ(mask.txt) –Hiên nay ko add trực tiếp dc vì ko gắn vào dc trang bị và GD Ko Load Nó
 
 nParticularType = id cột ParticularType trong các file Item
 
 nLevel = id cột µÈ¼¶ (cột L) trong các file Item
 
 nSeries:hệ món đồ (0,1,2,3,4) == (kim,mộc,thủy,hỏa,thổ)
 
 nLuck(may mắn)
 
 nItemLevel:level Item,test rồi id nhiu cũng vậy sao ấy ^^
 
 AddEventItem:thêm item trong questkey.txt
 
 Cú pháp:AddEventItem(“tên item”) hoặc AddEventItem(id item)
 
 Tên item = tên trong cột Ãû³Æ(cột đầu)
 
 id item = cột DetailType
 
 hình như GS giờ chỉ load tới id 255 à
 
 DelItemóa item
 
 Cú phápelItem(“tên item”) hoặc DelItem(id item)
 
 Tương tự như AddEventItem ta tìm dc id item và Tên item = tên trong cột Ãû³Æ(cột đầu)
 
 HaveItem:kiểm tra có item không
 
 Cú pháp:HaveItem(id)
 
 Tương tự như AddEventItem ta tìm dc id item và Tên item = tên trong cột Ãû³Æ(cột đầu)
 
 GetItemCount:đếm coi có bao nhiêu item đó trong F4
 
 Cú pháp:HaveItemCount(“tên item”) hay HaveItemCount(id item)
 
 Tương tự như AddEventItem ta tìm dc id item và Tên item = tên trong cột Ãû³Æ(cột đầu)
 
 AddMagic:thêm Skill
 
 Cú pháp:AddMagic(idSkill,levelskill)
 
 idSkill ta kiếm trong File Skills.txt trong Settings ,cột SkillId
 
 level tối đa của Skill là 63
 
 DelMagicóa Skill
 
 Cú phápelMagic(idskill)
 
 idSkill ta kiếm trong File Skills.txt trong Settings ,cột SkillId
 
 HaveMagic:có skill hay ko
 
 Cú pháp:HaveMagic(idskill)
 
 idSkill ta kiếm trong File Skills.txt trong Settings ,cột SkillId
 
 GetMagicLevel:kiểm tra cấp độ của skill
 
 Cú pháp:GetMagicLevel(idskill)
 
 idSkill ta kiếm trong File Skills.txt trong Settings ,cột SkillId
 
 AddMagicPoint:thêm điểm kỹ năng
 
 Cú pháp:AddMagicPoint(số điểm)
 
 GetMagicPoint:kiểm tra số điểm tiềm năng còn lại bao nhiêu
 
 Cú pháp:GetMagicPoint()
 
 SubWorldID2Idx:kiểm tra xem Map này dc mở trong WorldSet.ini hay chưa
 
 Cú pháp: SubWorldID2Idx (id map)
 
 Id map trong maplist.ini
 
 AddLeadExp: Thêm kinh nghiệm cho quản lý tỗ đội [mức lãnh đạo]
 
 Cú pháp: AddLeadExp(số điểm)
 
 GetLeadLevel: Kiểm tra kinh nghiệm của quản lý tổ đội
 
 Cú pháp: GetLeadExp()
 
 SetFightState:thiết đặt trạng thái chiến đấu
 
 Cú pháp: SetFightState(0 hoặc 1)
 
 0 == ko thể “bụp “ nhau còn 1 là có thể
 
 GetFightState: Kiểm tra trạng thái chiến đấu
 
 Cú pháp: GetFightState ()
 
 AddNpc :thêm NPC vào map
 
 Cú pháp :AddNpc(Id Npc,nLevel, nSubWorldIndex, nPosX, nPosY )
 
 Id Npc:bằng STT của npc khi coi = excel file Npcs.txt – 2
 
 nLevel:level NPC
 
 nSubWorldIndex, nPosX, nPosY:Id map,tọa độ x,y
 
 DelNpcóa Npc
 
 Cú pháp elNpc(id)
 
 Id Npc:bằng STT của npc khi coi = excel file Npcs.txt – 2
 
 SetNpcScript:đặt script cho NPC
 
 Cú pháp :SetNpcScript(AddNpc(Id Npc,nLevel, nSubWorldIndex, nPosX, nPosY ),”script”)
 
 Hay cách 2 là
 
 A = AddNpc(Id Npc,nLevel, nSubWorldIndex, nPosX, nPosY )
 
 SetNpcScript(A,”script”)
 
 Ví dụ cho rõ nè
 
 AddNpc(62,100,53,202,202)
 
 SetNpcScript(AddNpc(62,100,53,202,202),”\\script \\abc.lua”)
 
 Cách 2 nè: e = AddNpc(62,100,53,202,202)
 
 SetNpcScript(e,”\\script\\abc.lua”)
 
 SetRevPos:cài điểm quay về khi phù
 
 Cú pháp: SetRevPos(id map,tọa độ x *8,tọa độ y *16)
 
 Hay SetRevPos(id trong RevivePos.ini)
 
 Theo cách SetRevPos(id trong RevivePos.ini) thì tôi sẽ mô tả 1 ví dụ và mô tả revivepos.ini
 
 1 file revivepos.ini như sau
 
 [Id map]
 
 region=0,4 –Các điểm nhớ,mỗi điểm có 1 giá trị
 
 0=tọa độ x *8*32, tọa độ y *8*32
 
 1= tọa độ x *8*32, tọa độ y *8*32
 
 ………………………………………
 
 Ví dụ tôi đang ở ba lang có id là 53 và xài hàm SetRevPos(19) thì nó sẽ tìm [ID map] == 53 rồi tìm giá trị 19 = 52032,101696
 
 SetTempRevPos:tương tự SetRevPos nhưng out ra là hết tác dụng
 
 GetCamp và GetCurCamp:kiểm tra màu Pk của nhân vật
 
 Cú pháp: GetCamp()
 
 GetCurCamp()
 
 SetCurCamp,SetCamp:thiết đặt màu pk
 
 Cú pháp: SetCamp(id)
 
 SetCurCamp(id)
 
 Id màu pk như sau
 
 Vang = 1
 
 xanh = 3
 
 tim = 2
 
 Do = 4
 
 Hong = 5
 
 RestoreCamp:phục hồi màu pk chưa xài bao giờ
 
 Cú pháp: RestoreCamp()
 
 GetFaction:kiểm tra tên môn phái
 
 Cú pháp: GetFaction()
 
 SetFaction:đạt tên môn phái
 
 Cú pháp: SetFaction(“Tên môn phái”)
 
 Tên môn phái trong settings\faction\ ÃÅÅÉÉ趨.ini
 
 GetColdR, GetLightR, GetFireR, GetPoisonR, GetPhyR:kiểm tra kháng băng,kháng lôi,kháng hỏa,kháng độc,PTVL
 
 Cú pháp :GetColdR()
 
 GetLightR()
 
 GetFireR()
 
 GetPoisonR()
 
 GetPhyR()
 
 SetColdR, SetLightR, SetFireR, SetPoisonR, SetPhyR:thiết đặt kháng băng,kháng lôi,kháng hỏa,kháng độc,PTVL
 
 Cú pháp :SetColdR(số điểm)
 
 SetLightR(số điểm)
 
 SetFireR(số điểm)
 
 SetPoisonR(số điểm)
 
 SetPhyR(số điểm)
 
 GetExp:kiểm tra Exp
 
 Cú pháp: GetExp()
 
 AddExp:thêm Exp
 
 Cú pháp: AddExp(số điểm)
 
 AddOwnExp:tương tự AddExp
 
 GetLife, GetMana, GetStamina:kiểm tra máu,mana,thể lực
 
 Cú pháp: GetExp(),GetMana(),GetStamina()
 
 RestoreLife, RestoreMana, RestoreStamina:phục hồi máu,mana,thể lực đầy lại
 
 Cú pháp: RestoreLife (),RestoreMana (),RestoreStamina ()
 
 GetDefend, GetSex, GetSeries, GetName, GetUUID, GetLeadExp, GetLeadLevel, GetLevel, GetRestAP, GetRestSP, GetLucky, GetEng, GetDex, GetStrg, GetVit, GetCash:kiểm tra phòng ngự,giới tính,hệ,tên,ID người chơi,Exp lãnh đạo,Level lãnh đạo,level,tiềm năng chưa +,kỹ năng chưa +,may mắn,điểm nội cộng,điểm né tránh,điểm SM,điểm sinh lực,tiền
 
 Cú pháp:
 
 GetDefend(),GetSex(),GetSeries(),GetName(),GetUUID (),GetLeadExp(),GetLeadLevel(),GetLevel(),GetRestA P(),GetRestSP(),GetLucky(),GetEng(),GetDex(),GetSt rg(),GetVit(),GetCash()
 
 Pay, Earn, PrePay:trừ tiền trong người,them tiền,trả lại tiền
 
 Cú pháp: Pay(sốtiền)
 Earn(sốtiền)
 PrePay:chưa rõ
 
 ExeScript: Chạy file script chỉ định
 
 Cú pháp:ExeScript(“Đường Dẫn script”)
 
 Vd:ExeScript(\\Script\\123.lua)
 
 AttackNpc:Tấn công NPC
 
 Cú pháp: AttackNpc(NpcDwid,ÎïÀíÉ˺¦Öµ£¬±ù£¬ »ð£¬µç£¬¶¾£©)
 
 
 
 2.Tổng quan tìm hiểu Câu Lệnh Jx Linux Tổng Hợp
 
 Tổng quan Account_Info SQL database account_tong
 - nExPoint
 - nExPoint1 --Tiền đồng ở tiền trang LA, nếu 1=10 tiền đồng
 - nExPoint2
 - nExPoint3
 - nExPoint4
 - nExPoint5
 - nExPoint6
 - nExPoint7
 
 
 Còn mấy cái trên ai giải thích hộ với ạ
 ____________________________________________
 Hàm Nhận Skill trong Skill.txt
 - AddMagic(x,y) --x là skill = số dòng -1 trong bảng skill.txt, y=Cấp skill
 ___________________________________________
 Hàm Kiểm Tra Nhân Vật
 - GetSex() == x --hàm kiểm tra giới tính, x ứng với 1=nữ, 0=nam.
 - SetSeries(x) --hàm chuyển hệ, x=0, 1,2,3,4=K,M,T,H,T
 ___________________________________________
 Hàm Chuyển Trạng Thái PK
 - SetCurCamp(x) --x = 1, 2, 3, 4 = Chính, Tà, Trung, Sát Thủ
 - SetCamp(x) Hai dòng trong Hàm luôn luôn đi cùng nhau.
 ____________________________________________
 Hàm Nhận Item GoldEquip.txt
 - AddGoldItem(0,x) -- x là số hàng -1 trong bảng GoldEquip.txt
 ___________________________________________
 Hàm Task Tổng Thể Server
 - SetTask(x,GetTask(x)+y) --x=Chỉ số Task, y=Số lượng điểm cộng vào task x
 - SetTask(x,GetTask(x)-y) --x=Chỉ số Task, y=Số lượng điểm trừ vào task x
 - GetTask(x) == y --Kiểm tra số lượng điểm y trong task x
 Lưu ý: task trong linux các bạn có thể sét tự do mà không cần khai báo , cứ thoải mái ghi Id task mà bạn muốn tạo ở 1 điều kiện nào mà ko sợ bị lỗi
 ____________________________________________
 Hàm QuestKey.txt
 CalcEquiproomItem(4,x,1,-1) --Kiểm tra số lượng item x trong rương
 ConsumEquiproomItem(a,4,x,1,-1) --Xóa Item x, a= số lượng cần xóa
 ___________________________________________
 Hàm MagicScript.txt
 - CalcEquiproomItemCount(6,1,x,y) >= 1 -- Kiểm tra Item x, có cấp độ y có trong rương
 - ConsumeEquiproomItem(a,6,1,x,-1) --Xóa Item x, a= số lượng cần xóa
 - AddItem(6,1,x,0,0,0) --x lá số Item trong bảng ( cột thứ 3 của bảng)
 Lưu ý: ở hàm addItem này các giá trị số 0 gồm giá trị cấp độ, thuộc tính ..., phải chú ý
 
 Hướng dẫn cách sử dụng hàm trong JX Linux
 
 --IncludeLib("FILESYS") : de dung dc ham doc file
 --IncludeLib("TASKSYS"): DE DUNG TASK SYS FILE
 TabFile_GetRowCount(path or tên file muốn đặt) : count data trong file
 TabFile_GetCell(path or tên file muốn đặt,nRow,zNameRow) : dùng để lấy thông tin từng roll mặc định bởi tên đầu tiên của row
 TabFile_Load(path,tên file muốn đặt(vd: "duong")) : kiểm tra file có tồn tại ko (1: có, 0: ko)
 SetAutoHangMapFlag(id so ) : 1 cấm bán hàng + chat trên mọi tầng số
 CountFreeRoomByWH(width,height) : tính ô trống trong rương by chiều dài và rộng
 CalcFreeItemCellCount() : đếm khoảng trống trong hành trang by ô (1 by 1)
 CreateTaskSay({"<dec><npc>".." string want to say","ket thuc/oncancel"})
 GetAccount() : hàm lấy id để đăng nhập nhân vật
 GetLocalDate("%y%m%d") : lấy ngày tháng của computer
 CreateNewSayEx(zTile,tbOption) : tạo một hàm say như sau
 zTile = "test string"
 tbOption =
 {
 {"Option name",function option,paramate}
 }
 ITEM_SetExpiredTime(ItemIndex, 10080);
 
 SyncItem(ItemIndex); dùng sau khi set thời gian expired cho 1 trang bị hoặc 1 vật phẩm nào.
 
 SetItemBindState(index,-2) : khóa bảo hiểm vĩnh viễn (index = AddItem(...) )
 
 GetItemName(nItemIdx) : dùng để lấy tên vật phẩm.
 
 RemoveItemByIndex(nItemIdx) : xóa vật phẩm by index.
 
 CalcEquiproomItemCount( 6, 1, Id Vật Phẩm, Cấp Độ ) : đếm số lượng vật phẩm xếp chồng trong rương dùng cho hàm AddItem(6,1,0...)
 
 ConsumeEquiproomItem(số lượng trừ,6,1,Id Vật Phẩm,-1): del vật phẩm xếp chồng dùng cho vật phẩm AddItem(6..)
 
 CalCEquiproomItem(4,id vật phẩm,1,-1) : đếm số lượng xếp chồng cho vật phẩm questkey
 
 ConsumEquiproomItem(số lượng,4,id vật phẩm,1,-1): del vật phẩm xếp chồng dùng cho questkey
 
 ConsumeItem(3,1,loại vật phẩm (4, or 6 or item),1,Id Vật Phẩm,-1): dùng để kiểm tra vật phẩm có hay ko nếu có thì return 1 và xóa lun vật phẩm hoặc trang bi
 
 ConsumeItem(-1,nItemCount,tbProp[1],tbProp[2],tbProp[3],-1): dùng để đếm số lượng(cả stack) Item 6 có bao nhiêu nếu đúng số lượng nItemCount(lấy từ CalcItemCount) là 1 if not -1, then nó del vật phẩm đó.
 
 CalcItemCount(-1,tbProp[1],tbProp[2],tbProp[3],-1): lấy số lượng Item stack của item 6 trong bảng giao
 
 CalcItemCount(3,tbProp[1],tbProp[2],tbProp[3],-1): nếu return 0: không or 1: có : dùng để xác định có vật phẩm đó trong bảng giao ko .
 
 GiveItemUI("tên của bản giao","chú thích của bảng giao","function de thực hiện bảng giao") : bảng giao vật phẩm or trang bị
 
 GetItemBindState(nItemIndex) : lấy tình trạng của vật phẩm (khóa hay ko khóa)
 
 GetGiveItemUnit(nItemRoom) : trả lại lấy index của vật phẩm bỏ vào bảng giao return IndexItem,nItemRoom: số ô của vật phẩm bỏ vào bảng giao
 
 GetItemProp(index item) : return particular,kind of vật phẩm,id vật phẩm
 
 GetItemStackCount(idxItem): return số lượng item xếp chồng bỏ vào bảng giao by index vật phẩm bỏ vào
 
 GetItemQuality(nItemIndex) : return loại trang bị bỏ vào bảng giao bởi index.
 
 GetItemName(nItemIndex): return lại tên của vật phẩm hoặc trang bị bỏ vào bởi index
 
 DisabledUseTownP(0 or 1) : khóa sử dụng thổ địa phù : 0 mở 1: khóa
 
 ForbidChangePK(0 or 1) : khóa pk 1: khóa ,0 : ko
 
 Msg2Map(id map,str) : dùng thông báo tin nhắn đến nhân vật trong 1 map nào đó
 
 OfflineLive(PlayerIndex) : dùng để out nhân vật dạng ủy thác.
 
 GetLastDiagNpc(); return index npc đối thoại
 
 GetNpcName(nNpcIndex) : return tên npc đối thoại bằng index
 
 SetMissionS(id, Name): Dùng để add tên của nhân vật ở dạng task mission
 
 GetMissionS(id) : lấy tên nhân vật được set bằng missions s bằng id.Lần sửa cuối bởi tvnnam, ngày 28-01-16 lúc 02:56 PM.  CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF 
 
- 
	
The Following 77 Users Say Thank You to tvnnam For This Useful Post:3kiem (24-07-15), 4m4iy3u3m1991 (19-10-18), 6558503 (23-07-15), acma865 (18-07-15), anhtsc (28-09-15), anINTht96 (02-06-16), aphrodite (23-08-16), baronmd (01-08-15), bboybest (10-09-16), bil4i3n (23-08-15), boyganz (22-07-15), brirneyspier (08-08-15), calms1001 (12-03-17), camtoi (20-03-19), caunho1x9x (17-10-15), chaymaumakia (16-12-16), cudacx12 (17-07-15), cutyne (21-10-15), DJneunhu (25-02-17), dongmau (26-04-17), doremon.duk (16-07-15), dovietthai (20-01-16), DuongDaiCaJX (03-10-15), duynguyenjx (05-10-16), emyeusss7 (22-05-16), gakfc1993 (27-07-15), greentears (16-07-15), gztlove114(16-07-15), HAHT169 (01-02-16), hanamnet1 (16-07-15), hcm589 (06-12-15), heodat139 (16-07-15), huhahu92 (02-08-15), huntersun (23-07-15), kenlucky2000 (23-08-15), Keylove_1993 (23-08-15), khungboktvn (12-09-15), lehieuaa (07-11-15), leolion (12-12-15), lntinh (16-07-15), ltt91 (16-07-15), lythelong (23-04-16),manhdendaica(20-09-15), minhkhanh109 (25-11-15), mothaiba123 (16-08-15), mr.truyen (20-08-15), MrHarryPotter (17-07-15), NewbieJX1 (21-02-16), newbleach (15-03-16), ngocht (26-10-15), nguyeenxhair1 (02-04-16), nguyennhuloi (20-02-16), nguyenthinhpha (29-04-16), nobitajx2 (23-07-15), ntgiangdic (17-08-15), phamkhoa1804 (04-11-18), pull1203 (02-02-16), quannd (01-03-16), rioranso (02-01-16), rivalred3490 (09-08-15), satthupro95 (03-04-16), shouljin00 (31-12-15), sogintdemon (24-07-15), songvijx (30-10-15), thanhtunghn (16-07-15), thinkiem (12-02-17), tieudieuphong (09-09-15), trando119 (31-10-15), trankhanhly (21-07-15), tranthaivinh84 (24-10-15), trungkhuyen (07-09-15), ttung11 (05-09-15), tuananhc1 (16-07-15), tuanhdvn (22-07-15), tului (26-04-16), tuyettinh88 (30-04-17), uplever001 (26-10-15)
 
- 
	16-07-15, 10:45 AM #2Thành Viên    
 - Ngày tham gia
- Jul 2011
- Bài viết
- 522
- Thanks
- 269
- Thanked 308 Times in 196 Posts
 Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever LinuxUpdate hạng ở dấu "?" đê  
 
 Diễn đàn CLBGAMESVN thành lập từ năm nào ? (2005)Khách viếng thăm hãy cùng greentears xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
 
- 
	
 
- 
	16-07-15, 11:23 AM #3Thành Viên Tâm Huyết  
 - Ngày tham gia
- Apr 2014
- Đang ở
- Hưng Yên
- Bài viết
- 1,692
- Thanks
- 488
- Thanked 984 Times in 521 Posts
 Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever LinuxLàm 1 bài đóng góp trước.....  để lấy tinh thần cho ACE nào để lấy tinh thần cho ACE nào 
 
 
 fix 1 số lỗi trên trên sever linux
 
 1. Lỗi đồ Minh Phượng do sai res:
 
 Settings -> item goldequipres.txt
 Settings -> item->004 goldequip.txt
 
 đồng bộ SV + Client
 
 2. bỏ Event trong bản V2:
 
 vào setting->droprate
 vào sữa các file npcdroprate10.ini -> npcdroprate119.ini
 
 sửa
 [Main]
 Count=55 thành Count=54
 
 xóa nội dụng này
 [55]
 Genre=6
 Detail=1
 Particular=1311
 RandRate=33000
 
 
 3. fix lỗi đồ MP:
 
 [Only registered and activated users can see links. ]
 
 
 4. fix lỗi vào phái để làm nhiệm vụ và ko add skill:
 
 Sever này khi vô phái cho full skill của phái .
 Vậy config như thế nào để làm nhiệm vụ mới có skill vậy mọi người (tại mình thấy mọi người bảo đây là sever của VNG thì phần nhiệm vụ đã viết full rồi chứ ? )
 [Only registered and activated users can see links. ]
 
 dow về rùi chép vào server, nên việt hóa nofont vì file được share là nofont, file này sẽ fix vấn đề của bạn.
 
 
 5. Lỗi nv đường môn:
 
 Mình chơi sever JX Linux 6.0 , thì thấy quest lv 10 để nhận skill của Đường môn bị lỗi.
 Cụ thể là sau khi nhận nhiệm vụ ở phòng võ công ( nó bảo tới thành đô tìm mai nương lấy ma vũ châm ) nhưng khi mình đến nói chuyện với Npc Mai Nương thì chỉ như nói chuyện bình thường, không có dấu hiệu của quest gì cả .Quest tới đó bị dán đoạn không làm đc tiếp .
 Vậy fix lỗi này như thế nào mọi người ?
 Code:
 script\西南北区\成都\成都\职能npc\西南 北区-成都府--杂货店老板对话.lua
 (link nofont) script\Î÷Äϱ±Çø\³É¶¼\³É¶¼\Ö°ÄÜ npc\Î÷Äϱ±Çø-³É¶¼¸®--ÔÓ»õµêÀϰå¶Ô»°.lua
 Code:
 elseif (UTask_tm == 10*256+40) then --唐门唐鹤10级任务
 Say("玛瑙戒指很漂亮,500两一个,不买 会后悔!", 3, "买玛瑙戒指. /ring", "交易/yes", "不交易/no")
 Đoạn trên là kiểm tra nhân vật hiện đang làm nhiệm vụ cấp 10 đường môn hay ko
 
 Thay vì gặp Mai Nuơng thì gặp chủ tiệm tạp hóa !
 
 =====================
 
 Mình làm được rồi .
 Lại làm phiền mod lần nữa vậy, cho hỏi cái file " Î÷Äϱ±Çø-³É¶¼¸®--ÔÓ»õµêÀϰå¶Ô»°.lua " nó quy định quest môn phái của Đường môn từ 10 đến 90 luôn hay nó chỉ quy định 1 vài quest , Vậy nếu mình làm các quest môn phái khác của đường môn mà gặp lỗi tương tự thì tìm file nào ? Và nếu cũng gặp lỗi tương tự cho các phái khác thì phải tìm ở file nào ?
 Cảm ơn !
 - Chỉ có nhiệm vụ cấp 10 thôi vì các nhiệm vụ khác nhau phải gặp NPC khác nhau
 - Dùng chức năng Find in Files của notepad++, với Đường Môn thì mình search 唐门, phái khác tuơng tự[COLOR="Silver"]
 
 
 6.Share tool jxEdit - edit một vài thứ trong server hay mới nhất:
 
 Chỉnh tỷ lệ rớt đồ
 Dùng chỉnh tỷ lệ rớt đồ trong các file droprate : mở file droprate, nạp danh sách item, chỉnh các thông số, add item vào file droprate, và save lại. Tính năng này chưa có chỉnh rớt tiền.
 
 
 Chỉnh shop
 Chỉnh các item có trong shop Hiệu thuốc, Thợ rèn, Tạp hóa, ....: nạp danh sách shop trong file buysell.txt, chọn 1 shop để hiện danh sách hàng trong shop, chọn 1 món hàng và add vào shop, save lại.
 Lưu ý : server TSBD không có file Settings/item/mask.txt nên phần mềm sẽ báo lỗi thiếu file này. Bạn chỉ cần tạo file mask.txt có 2 dòng trắng là xong.
 
 
 Tìm kiếm nội dung
 Dùng để tìm 1 câu nào đó trong các file. Ví dụ bạn muốn biết tất cả các task nào đã được dùng trong các script (để tạo task mới không trùng) thì : nhập "SetTask(" vào chuỗi cần tìm, chọn đường dẫn bắt đầu tìm là folder script, nhấn nút Tìm kiếm, thì bạn sẽ được danh sách các file script có chuỗi SetTask. Ví dụ nữa : bạn biết 1 NPC nào đó có nói câu "Ban can co lenh bai" nhưng không biết file script của Npc này là file nào, thì bạn dùng chức năng này để tìm ra file có chứa câu nói đó.
 
 Nhân vật
 Cái này dùng để edit chỉ số các nhân vật khi khởi tạo
 
 Tài khoản
 Cái này dùng để tạo tài khoản (có set ngày hết hạn), bạn dùng cái này hoặc JxStartup cũng được. Nhập IP, password, nhấn nút Nạp danh sách; sau đó có thể tạo tài khoản mới hoặc xóa tài khoản cũ.
 
 Cách sử dụng
 Download về có 2 file, bỏ vào trong folder của server (cùng cấp với các folder Settings, Script).
 
 Link download :
 [Only registered and activated users can see links. ]
 [Only registered and activated users can see links. ]
 
 
 7.Share cách FIX BẢNG XẾP HẠNG hàng CÙI:
 
 Chào các bạn,
 Rãnh rỗi sinh nông nỗi, mình mạn phép share ra cách làm bảng xếp hạng "Cùi" của mình. Còn những cách fix khác nhưng có lẽ nhiều bạn chỉ cần có là được ^^.
 
 Bắt đầu:
 
 I. Nội dung file UI:
 1. Đối với Server NoFont
 _ Đường Link NoFont: Ui/Ui3/Ê÷ÐÍÅÅÃûÖ÷Ìâ.ini
 
 2. Đối với Server Font:
 _ Đường Link Font: Ui/Ui3/树型排名主题.ini
 
 3. Nội dung file:
 
 II. Cách FIX xếp hạng:
 126_ID=10234
 Nhìn vào file UI, các bạn có thấy những số ID này không??? Chính nó là mấu chốt. Ở đây ID 10234 là của "Dương Châu thập đại Anh Hùng". Các bạn hãy thử dùng hàm
 Code:
 //Ladder_NewLadder(nLadderId, szName, nValue, 0);
 function testRank()
 local szName = GetName();
 local nValue = 1000;
 local nLadderId = 10234;
 Ladder_NewLadder(nLadderId , szName, nValue, 0);
 end
 Và kiểm tra trên bảng xếp hạng xem sao. Dựa vào đó bạn thử sửa ID của cao thủ võ lâm thành số 13000. Rồi sau đó chạy code:
 Code:
 //Ladder_NewLadder(nLadderId, szName, nValue, 0);
 function testRank()
 local szName = GetName();
 local nValue = GetLevel();
 local nLadderId = 13000;
 Ladder_NewLadder(nLadderId , szName, nValue, 0);
 end
 Chắc tới đây các bạn đã biết cách làm "BẢNG XẾP HẠNG CÙI" rồi chứ ^^. Đây có thể là cách cùi bắp nhưng sử dụng tốt. Còn muốn cho xếp hạng pro lên, chuẩn xác hơn thì suy nghĩ và phát triển lên nữa nào ^^. Còn cái xếp hạng ở dấu ? thì dùng cách khác, đòi hỏi "khả năng" tốt hơn. Còn xếp hạng cá nhân các bạn coi trong script\misc\rank mà tìm hiểu nhé.
 
 Cập nhật thêm
 Thấy có một số bạn đã làm được rồi nhưng bị dấu "-" trên bảng. Mình xin mách nước cách "fix".
 1_Flag=-1
 Bỏ dấu "-" chỗ này đi. Là hết ^^.
 
 Nói rõ hơn là đường dẫn file Ui. tức là tạo file theo cây thư mục mình ghi ở đầu bài tại client nhé. Còn phần script thì bạn thêm vào lễ quan hay đại ở đâu cũng được để test. Còn muốn cho chuyên nghiệp thì các bạn có thể thêm code vào file levelup để nó tự cập nhật mỗi khi lên cấp. Hoặc thêm vào xa phu để gamer di chuyển là nó cập nhật mới data... hoặc thêm luôn vào file quy định lúc login vào để nó cập nhật........ Mấy cái ID mà <10000 các bạn chỉnh lại hết thành >13000 đi là được. ^^[COLOR="Silver"]
 
 8. Chỉnh kinh nghiệm và số tiền:
 
 Chép settings\npc\player\level_exp.txt từ server qua client
 settings/ gamesetting.ini/ [ServerConfig] ExpRate= 500 để 100 giống VNG
 MoneyRate=100 nên 20
 
 
 
 9. thêm + bớt maps trong linux gần giống như jx win.... có thể tham khảo chi tiết trong ebook 4.1:
 
 lấy ví dụ:
 Mục Maps trong server gồm có:
 *File có tên WorldSet.ini -----File này chứa các ID của từng maps được mở để chơi game.
 Cấu trúc của Flie này như sau Đây là mẫu WorldSet.ini của mình)
 
 
 
 [Init]
 Count=35 ----- Đây là số thông báo số Maps được mở.
 [World]
 World00=53------Ba Lăng Huyện
 World01=59------Thiên Vương Bang
 World02=65------Sơn Động Thiên Vương Đảo
 World03=67------Tầng 2 Sơn Động Định Hồ
 World04=71------Mê Cung Bạch Thuỷ Động
 World05=77------Mê Cung Yến Tử Động
 World06=73------Mê Cung Phục Lưu Động
 World07=115----Cái Bang Phái
 World08=80------Dương Châu
 World09=116----Tầng 1 Địa Hạ Mê Cung(Tường Vân Động)
 World10=9-------Trường Giang Nguyên Đầu
 World11=340----Mạc Cao Quật
 World12=336----Phong Lăng Độ
 World13=326----Tống Kim(Khu vuc binh nguyen (so cap))
 World14=19------Kiếm Các Tây Nam
 World15=131----Côn Lôn Phái
 World16=25------Đường Môn Phái
 World17=13------Nga Mi Phái
 World18=49------Thiên Nhẫn Giáo
 World19=103----Thiếu Lâm Phái
 World20=154----Thuý Yên Phái
 World21=81------Võ Đang Phái
 World22=22------Mê Cung Bạch Vân Động
 World23=243-----Lâm Du Quan
 World24=1--------Phượng Tường
 World25=11------Thành Đô
 World26=37------Biện Kinh
 World27=78------Tương Dương
 World28=55------Đào Hoa Nguyên
 World29=176-----Lâm An
 World30=162-----Phu Đại Lý
 World31=242-----Đảo Tẩy Tuỷ
 World32=244-----Trường Bạch Sơn Bắc Lộc
 World33=24------Mê Cung Hưỡng Thuỷ Động
 World34=23------Mê Cung Thần Tiên Động
 
 
 Phân tích:
 Vậy ở đây Count là thông số hiển thị ,tức là thống kê số maps được mở trong game.
 World00=53 là thứ tự và ID của maps được mở.Mỗi mẫu WorldSet.ini thì luôn bắt đầu phần thứ tự maps từ “World00=x”(x L à ID maps tuỳ ý) và tiếp tục “World01=…”
 “World02=…”
 “World03=…”
 Sau “=” là ID maps bạn muốn mở.
 Sau khi đã hoàn thành số maps cần mở thì đếm lại số “World…=…” mà mình mở được rồi điền vào chỗ Count sau dấu “=”
 VD: Mình mở đến “World50” thì mình sẽ khai ở Count là Count=51 .Vì World bắt đầu từ 00 mà.
 *Các dữ liệu của map trong mục Maps của server:
 Một dữ liệu maps gồm các mục như: 1 file có tên maps đó với đuôi *.wor , 1 mục mang tên maps(trong đó có các mục tên như vầy “v_089”,” v_089” tuỳ ở dữ liệu maps mà có các mục tên khác nhau.DỰa vào đó bạn cũng có thể kiểm tra xem maps nào có dữ liệu và maps nào không có dữ liệu.Trong các mục “v_089” thì lại có các file có đuôi *.dat
 *File Maplist.ini trong thư mục Settings:
 File này có liên quan đến maps nhưng không nằm trong mục Maps của server mà nằm trong mục Settings của server.
 File này chứa các ID Maps , Đường dẫn đến dữ liệu maps , tên hiển thị của từng maps trong game.
 Các bạn chú ý: để mở được các maps thì bạn phải dựa vào ID Maps.Tức là ID mà bạn mở trong WorldSet.ini là các ID có thong tin trong Maplist.ini[COLOR="Silver"]
 
 
 10. chỉnh giới hạn giờ chơi:
 
 sever và client: player_limittime.ini/ CloseLimit=1
 
 11. droprate:
 
 + trong settings/droprate/npcdroprate.ini
 [Main]
 Count=50
 RandRange=1000000
 MagicRate=100
 MoneyRate=10
 MoneyScale=50
 MinItemLevel=2
 MinItemLevelScale=20
 MaxItemLevel=10
 MaxItemLevelScale=10
 
 12.sửa event bắt đầu và hết hạn:
 
 .Tìm đến foder tên event, rồi sửa file head.lua.Ví dụ event xchristmas2007:
 /script/event/xmas07_makesnowman/head.lua
 Sửa lại 2 dòng sau
 Code:
 xmas07_makeSnowMan_S = 14062400 -- Cái này có nghĩa là 00h 00 phút ngày 24 tháng 06 năm 2014, sửa lên ngày cao ngày bắt đầu event
 xmas07_makeSnowMan_E = 14072324 --tương tự ngày kết thúc event
 xmas07_makeSnowMan_UseTime = 14072424 --tương tự hạn dùng vp
 +Bạn muốn biết nó làm việc thế nào về các event thì vào script/activitysys/config trong đó chứa tất cả folder các sự kiện event + 1 vài chức năng. Event giáng sinh, noel : 2,37,1010
 +Random quái rớt event bạn chỉ cần vào script/activitysys/npcfunlib.lua: trong file này sẽ có những hàm chỉnh tỷ lệ rơi bằng file hay bằng script. Có 1 vài sự kiện nó sẽ include đường dẫn drop trong config.
 +Npc event liên quan thì bạn chỉ cần chỉnh ngày trong config folder thì npc sẽ xuất hiện. Đa số là như vậy, nhưng bạn cần fai kiểm tra những file gọi npc trong config hoặc trong autoexc cho chắc chắn
 
 13. tắt hộp quà:
 
 tắt hộp quà
 có 3 cách :
 
 1. * Cách sửa: không cho s3relay chạy event đó nữa:
 Mở file gateway/s3relay/relaysetting/task/tasklist.ini
 Tìm file và Xóa bỏ:
 Ví dụ Code:
 [Task_58]
 TaskFile=menglanjie_06.lua
 hoặc đổi tên file trên để s3 không load file đó nữa (do không tìm thấy file)
 
 Xong vào game test
 
 Cách 2: cho các vật phẩm rớt ra của event đó vào vật phẩm đen không nhặt trong auto là đc
 
 cách 3: tìm tên và xóa event đó trong script/event hoặc chép đè update này vào sẽ không còn event đó nữa: [Only registered and activated users can see links. ] hướng dẫn thì mình đã bày trong topic... lật lại là thấy nhé
 
 Chúc thành công !!!
 
 vào đây chỉnh bạn nhé: NPC hỗ trợ server1\script\global\namcung\namcung_gm.lua nhớ chỉnh xong SAVE lại chạy lại SecureCRT
 
 sao không vào setting/droprate sữa mấy cái file đó lại là nó không rơi nữa, mình chỉ biết cách này vì chơi jxwin có mấy sever thường sài droprate bằng file *.txt
 ai biết cách nào chỉnh trong script thì hướng dẫn mình luôn.
 
 
 -- tiện ai chỉ mình cái file droprate của mấy cái cọc gỗ ở thôn, tên là gì đc không :3
 như bạn nói cũng đc... nhưng mình phải biết tên file đó và chỉnh từng map.... ví dụ :
 * Cách sửa: không cho s3relay chạy event đó nữa:
 Mở file gateway/s3relay/relaysetting/task/tasklist.ini
 Xóa bỏ:
 Code:
 [Task_58]
 TaskFile=menglanjie_06.lua
 hoặc đổi tên file trên để s3 không load file đó nữa (do không tìm thấy file)
 
 Xong vào game test
 
 cái file droprate của mấy cái cọc gỗ ở thôn lên google dịch sau đó dùng chức năng tìm kiếm trên sever là đc
 
 14.fix lỗi bang hội ko nâng cấp được:
 
 vào : getway/s3relay/setting/tong : chỉnh trong tong_level_data. ở dòng đầu tiên có 2 số 0 ở cột thứ 3 thứ 4 ấy. bác chỉnh thành 10 với 8 là đẳng cấp 1 vẫn nâng max tác phường
 cái số 6720 tiếp theo sau 2 số 0 ở tong_level_data đấy bác là cột cống hiến. chỉnh nó lên 672000 rồi lấy tiền vạn gửi ngân quỹ xog chuyển qua thành ngân quỹ kiến thiết là xài tẹt :d hoặc ko thì copy của t cho nhanh
 0 10 8 672000 960 0 0 0
 1 3 6 672000 2880 3 3 3
 2 6 6 1344000 8640 3 3 6
 3 8 6 2016000 21600 4 3 9
 4 9 8 3360000 33600 5 3 9
 5 10 8 504000
 
 15.Hàm pay tiền ở nhiệm vụ 50 cái bang:
 
 -- Lâm an người đi đường NPC tiểu thái giám # Cái Bang 50 cấp nhiệm vụ #
 
 function main()
 UTask_gb = GetTask(8)
 if (UTask_gb == 50*256+40) then -- script viet hoa By [Only registered and activated users can see links. ] ´ứìÅ50ẳảẩẻẻủ
 Talk(2,"L50_pay","Người nào?","Ta là người nhà Tào công công, từ quê mang theo ít đồ hiếu kính ông ta, phiền ngài thông báo một tiếng!")
 else
 Talk(1,"","Tiểu thái dám: đi ra! đi ra!, ta không muốn thấy mặt nhà ngươi lấp ló trước Hoàng cung")
 end
 end;
 
 function L50_pay()
 Say("Người thân! Người thân ra sao? nếu là tới hiếu kính thì củng phải lót tay chút chứ?",2,"Hối lộ 3000 lượng! /L50_pay_yes","Không cho /L50_pay_no")
 end;
 
 function L50_pay_yes()
 if (GetCash() >= 3000) then
 Pay(3000)
 Talk(1,"after_pay","Biết biết đây là 3000 lượng , hiếu kính ngài uống rượu !")
 else
 Talk(1,"","Thật keo kiệt! đi mau!")
 end
 end;
 
 function after_pay()
 NewWorld(177, 1569, 3169)
 Msg2Player("Hối lộ 3000 cho tiểu thái giám , hắn để cho ngươi vào ngự vườn hoa liễu ")
 Talk(1,"","Dạ/ừ , cái này còn kém không nhiều lắm , Tào công công bây giờ ở ngự vườn hoa, ngươi đi nơi đó tìm ổng đi !")
 end
 
 function L50_pay_no()
 end;[COLOR="Silver"]
 
 
 16.Kích hoạt GM và tích hợp thêm quyền hạn cho GM:
 
 Tớ hướng dẫn theo hướng của Server linux mà trước nay anh em hay làm nhé. ai biết rồi thì đóng góp thêm để các bạn khác cùng phát triễn.
 
 Nói sơ qua về GM , Có trong DS GM khi tạo nhân vật đến lễ quan để kích hoạt Tên và Tool GM.
 Nhân vật có trong Danh sách GM nói chuyện với lễ quan sẻ có dòng đầu tiên là kích hoạt GM biến thành chử faction thành chử Tím có Skill GM và đạo cụ GM.
 
 Đây là file .lua lễ quan : \script\global\·ÈË_Àñ¹Ù.lua
 Khai báo DS những nhân vật và tài khoản là GM : Tìm dòng : local tbGMAccount
 Biến khai báo dữ liệu array gồm danh sách tên tài khoản của GM. khai tên tài khoản vào ds đó
 Code:
 local tbGMAccount = {"gm001", "gm002", "gm003", "gm004", "gm005"}
 Vậy là những tài khoản này sau khi nói chuyện với lễ quan sẻ được kích hoạt GM.
 
 Nhưng chưa xong đâu , còn 1 File lua nữa sẻ check xem có quền sử dụng đạo cụ GM không.
 
 File : \script\global\gmrole.lua
 
 file Quy định chức năng quyền hạn và lệnh GM , ở đây ngoài tên tài khoản ra còn check thêm tên nhân vật GM trong tài khoản. nếu không thì bấm vào đạo cụ GM sẻ ko hiện hay biến mất
 
 Tìm dòng : tbGmRole.tbAccount
 
 Khai báo tên tài khoản và nhân vật vủa mình vào biến Array tbAccount. Đây là biến array 2 chiều , đầu tiên tên tài khoản , tiếp theo là tên nhân vật. Ai muốn set tài khoản có nhiều nhân ật GM thì chú ý ở mảng array thứ 2 là dc. Còn ko am hiểu lắm cứ dùng y gốc 1 tài khoản 1 GM.
 
 Sau khi nhập DS xong upload lên khở động Server vào nhận vật và tài khoản dc xác định GM đến lễ quan mà vọc nhé.Quyền hạn điều ở cái ạo cụ GM tên là truyền tống quyền trượng.
 Không biết tỏng Client của anh em có tên này ko hay do setting lung tung nó ra cái bất minh đạo cụ củng nên.
 
 GM mặc định có 2 chức năng , 1 di chuyển bằng tọa độ và ID map (dùng tra boss và set map , set stasion )
 2 là tra tên nhân vật, vị trí như vạn sự thông sau đó trace đến nhân vật đó.
 
 2 cái chức năng này chả tân tiến tí nào , tớ có viết thêm tính năng dùng để debug lỗi và item trong cái tool GM nữa đễ rảnh thì share lên cho anh em gmrole.lua
 
 Têm tính năng tạo Item , ngựa, đồ xanh, đồ tím , đồ hoàng kim cho GM.
 
 Tìm dòng :
 Code:
 function tbGmRole:GMC_Menu()
 xem xuống dưới khoản 7 dòng Chú ý biến array local tbOpt ,
 Khai báo thêm trong DS array
 
 Code:
 {"T¹o Items", g_AskClientStringEx, {"0,10,9,1,0,0", 0, 256, "NhËp vµo Item Code", {self.TaoItem, {self}} }},
 Sau đó coppy function này vào dưới chử end của funcrion GMC_menu()
 
 Code:
 function tbGmRole:TaoItem(szItem)
 local szICode = lib:Split(szItem, ",");
 local n = getn(szICode);
 if (n ~= 1) then
 if (n < 6) then Talk(1, "", format("Sai Item Code. ThiƠu trêng yªu cÇu <color=yellow>%s<color>",n)); return end
 if (n > 7) then Talk(1, "", format("Sai Item Code. Qu¸ nhỉu trêng d÷ liÖu <color=yellow>%s<color>",n)); return end
 local itclass = tonumber(szICode[1]);
 local ittype = tonumber(szICode[2]);
 local itid = tonumber(szICode[3]);
 local itlv = tonumber(szICode[4]);
 local itseri = tonumber(szICode[5]);
 local itluck = tonumber(szICode[6]);
 local itmagic = tonumber(szICode[7]);
 if (itlv < 0) then Talk(1, "", format("CÊp ®é măn ®å kh«ng ®îc thÊp qu¸ <color=yellow>%s<color>",itlv)); return end
 if (itlv > 10) then Talk(1, "", format("ChØ hæ trî ®Ơn cÊp 10. HiÖn t¹i nhËp vµo <color=yellow>%s<color>",itlv)); return end
 if (itmagic == nil) then itmagic=0; end
 AddItem(itclass,ittype,itid,itlv,itseri,itluck,itm agic);
 else
 local EquipId = tonumber(szICode[1]);
 AddGoldItem(0, EquipId);
 end
 end
 Rồi xong GM có tính năng mới tạo Item để test. Mặc định để item con ngựa xích long câu.
 
 Muốn tạo Item Hoàng kim thì xóa hết . đánh cái ID hoàng kim là dc . IG hoàng kim trong goldequip.txt
 Ví dụ : đánh vào 3878 là hiểu
 
 Tốt nhất tự làm 1 cái thẻ GM cho bản thân đỡ phải cực .
 
 Code lệnh bài GM mình làm đây . share cho mọi người phát triển nhanh
 Ưu điểm : mang theo bên người muốn dùng chỗ nào cũng được, có hàm dofile muốn test script nhanh cu'' dung winscp sửa trực tiếp rồi tét luôn tại chỗ
 Nhược điểm : Chưa thấy nhược điểm
 
 Cách add ntn thì cũng như add thêm 1 item vào nhé
 
 Code:
 Include("\\script\\lib\\awardtemplet.lua")
 Include("\\script\\dailogsys\\dailogsay.lua")
 Include("\\script\\global\\fuyuan.lua")
 Include("\\script\\missions\\leaguematch\\npc\\off icer.lua")
 Include("\\script\\lib\\log.lua")
 function main()
 dofile("script/item/bthhh1995.lua")
 local tbSay = {}
 tinsert(tbSay,"Test lung lung./test")
 tinsert(tbSay,"NhËn 20 cÊp ®é./capdo")
 tinsert(tbSay,"Trang bÞ Cùc PhÈm/cucphkhac")
 tinsert(tbSay,"Ta muèn lÊy vËt phÈm./show_item")
 -- tinsert(tbSay,"Ta muèn nhËn tiÒn ®ång./moreitem")
 tinsert(tbSay,"NhËn ®iÓm/hotro")
 tinsert(tbSay,"Trang bÞ hiÕm/fifong")
 tinsert(tbSay,"Thay ®æi tr¹ng th¸i/trangthai")
 -- tinsert(tbSay,"LÊy ngùa/layngua")
 -- tinsert(tbSay,"NhËn Skill 180/nhanskill180")
 tinsert(tbSay,"Tho¸t/no")
 Say(" LÖnh Bµi Hç Trî Test Game - By Bthhh1995", getn(tbSay), tbSay)
 return 1
 end
 
 function test()
 --AddGoldItem(0, 6)
 for i=1,1 do
 AddItem(6,1,1,0,0,0)
 end
 end
 
 function capdo()
 for i=1,20 do
 AddOwnExp(1000000000000)
 end
 
 end
 SKILL_180 = {1220,1221,1223,1222,1224,1225,1227,1226,1228,1229 }
 local tbEquipFreeCell =
 {
 {2, 1}, {2, 2}, {1, 1}, {1, 2}, {2, 1}, --¾±´ø£¬¶¥´÷£¬ÉϽ䣬»¤Ýó£¬Ñ ü´ø
 {2, 3}, {2, 4}, {2, 2}, {1, 2}, {1, 1}, --?¢ÎÎäÆ÷£¬Ñ¥×Ó£¬Ñü×¹£¬Ï� �½ä
 }
 
 local tbFactionSeries =
 {
 [1] = {1, 2},
 [2] = {3, 4},
 [3] = {5, 6},
 [4] = {7, 8},
 [5] = {9, 10},
 }
 function trangthai()
 local tbSay = {}
 tinsert(tbSay,"PK ChÝnh Ph¸i./mauvang")
 tinsert(tbSay,"PK Tµ Ph¸i./mautim")
 tinsert(tbSay,"PK Trung LËp./mauxanh")
 tinsert(tbSay,"PK S¸t Thñ./maudo")
 tinsert(tbSay,"Tho¸t/no")
 Say(" LÖnh Bµi Hç Trî Test Game - By Bthhh1995 ", getn(tbSay), tbSay)
 end
 function mauvang()
 SetCurCamp(1)
 SetCamp(1)
 end
 function mautim()
 SetCurCamp(2)
 SetCamp(2)
 end
 function mauxanh()
 SetCurCamp(3)
 SetCamp(3)
 end
 function maudo()
 SetCurCamp(4)
 SetCamp(4)
 end
 
 function no()
 end
 local tbFreeItem =
 {
 {szName="Håi Thiªn T¸i T¹o CÈm Nang", tbProp={6,1,1781,1,0,0}, tbParam={60}},
 {szName="Nh¹c v¬ng kiÕm", tbProp={6,1,2340,0,0,0}},
 {szName="Qu¶ huy hoµng cao cÊp.", tbProp={6,1,1075,1,0,0}},
 {szName="Khiªu chiªn lÔ bao", tbProp={6,1,2006,1,0,0}},
 {szName="-ThËp Toµn §¹i Bæ-", tbProp={6,1,1399,1,0,0}},
 {szName="Viªm §ª ®å b¶o", tbProp={6,1,2805,1,0,0}},
 {szName="Tèng kim bÝ b¶o", tbProp={6,1,2741,1,0,0}},
 {szName="§¹i lùc", tbProp={6,1,2517,1,0,0}},
 {szName="-H·n HuyÕt Long C©u-", tbProp={0,10,18,1,0,0}, nWidth=2, nHeigth=3},
 }
 
 
 function nhanskill180()
 local nFaction = GetLastFactionNumber() + 1
 if nFaction==0 then
 Say("Kh«ng cã m«n ph¸i mµ ®åi nhËn skill thÊt truyÒn, ta kh«ng cã thêi gian ®ïa víi ng¬i", 0)
 return
 else
 for i=1,10 do
 if (nFaction==i) then
 if (HaveMagic(SKILL_180[i]) == -1) then
 AddMagic(SKILL_180[i],20)
 Say("B¹n häc ®îc kü n¨ng cÊp 180 <color=yellow>"..GetSkillName(SKILL_180[i]), 0)
 else
 Say("Ng¬i ®· cã kü n¨ng thÊt truyÒn råi, ®õng tham lam", 0)
 return
 end
 end
 end
 end
 end
 function cucphkhac()
 dohoangkim()
 end
 function bachkim()
 local tbOpt =
 {
 {"ThiÕu l©m", bktl},
 {"Thiªn v¬ng", bktv},
 {"®êng m«n", bkdm},
 {"Ngò ®éc", bk5d},
 {"Nga mi", bknm},
 {"Thuý yªn", bkty},
 {"C¸i bang", bkcb},
 {"Thiªn nhÉn", bktn},
 {"Vâ ®ang", bkvd},
 {"C«n l«n", bkcl},
 {"Trë l¹i", dialog_main},
 {"Tho¸t"},
 }
 CreateNewSayEx("<npc>Chän m«n ph¸i?", tbOpt)
 end
 function bktl()
 AddGoldItem(0, 11)
 AddGoldItem(0, 6)
 end
 function bktv()
 AddGoldItem(0, 16)
 AddGoldItem(0, 21)
 AddGoldItem(0, 26)
 end
 function bknm()
 AddGoldItem(0, 31)
 end
 function bkty()
 AddGoldItem(0, 46)
 end
 function bk5d()
 AddGoldItem(0, 61)
 end
 function bkdm()
 AddGoldItem(0, 71)
 AddGoldItem(0, 76)
 AddGoldItem(0, 81)
 end
 function bkcb()
 AddGoldItem(0, 96)
 end
 function bktn()
 AddGoldItem(0, 101)
 end
 function bkvd()
 for i=4346,4355 do
 AddPlatinaItem(3, i)
 end
 end
 function bkcl()
 AddGoldItem(0, 126)
 end
 function hacthan()
 for i=3890,3894 do
 AddGoldItem(0, i)
 end
 end
 function matna1()
 for i=4493,4523 do
 AddGoldItem(0, i)
 end
 end
 function matna2()
 for i=4524,4554 do
 AddGoldItem(0, i)
 end
 end
 function matna3()
 for i=4555,4585 do
 AddGoldItem(0, i)
 end
 end
 function matna4()
 for i=4586,4616 do
 AddGoldItem(0, i)
 end
 end
 function matna5()
 for i=4617,4630 do
 AddGoldItem(0, i)
 end
 end
 function nukim()
 if GetSex() == 1 then
 SetSeries(0)
 KickOutSelf()
 else
 Talk(1,"","Ng¬i lµ Pª §ª µ ?")
 end
 end
 function hotro()
 local tbOpt =
 {
 -- {"T¨ng kinh nghiÖm", kn},
 {"LÊy 100 tiÒn ®ång", tiendong},
 {"TiÒn", tien},
 {"TÈy ®iÓm", clear_attibute_point},
 {"Danh väng,Phóc duyªn", danhvongphucduyen},
 {"Tµi l·nh ®¹o", lanhdao},
 -- {"§iÓm Kü N¨ng", pointkynang},
 -- {"§iÓm TiÒm N¨ng", pointtiemnang},
 {"Trë l¹i", main},
 {"Tho¸t"},
 }
 CreateNewSayEx("<npc>Anh cÇn g×?", tbOpt)
 end
 function pointkynang()
 AddMagicPoint(100)
 CreateNewSayEx("<npc>B¹n nhËn ®îc 100 ®iÓm kü n¨ng", tbOpt)
 KickOutSelf()
 end;
 
 function pointtiemnang()
 AddProp(1000)
 CreateNewSayEx("<npc>B¹n nhËn ®îc 10000 ®iÓm tiÒm n¨ng", tbOpt)
 end;
 
 
 function lanhdao()
 for i=1,20 do
 AddLeadExp(10000000)
 end
 end
 
 function kn()
 for i=1,80 do
 AddOwnExp(1000000000)
 end
 end
 
 function tien1()
 Earn(1000000)
 end
 
 
 function tien()
 Earn(100000000)
 end
 
 function danhvongphucduyen()
 AddRepute(100000);
 FuYuan_Start();
 FuYuan_Add(100000);
 CreateNewSayEx("<npc>B¹n nhËn ®îc 10000 ®iÓm", tbOpt)
 end
 function conghien()
 AddContribution(100000)
 end
 
 function trungsinh()
 AddReBorn(10)
 end
 function gm_functionboss()
 for i =1,10 do
 AddItem(6,1,1022,0,0,0)
 end
 end
 function moreitem()
 local tab_Content = {
 " LÊy 100 tiÒn ®ång /tiendong",
 -- " LÊy VK HKMP /bachkim",
 -- " LÊy 1000v lîng /tienvan",
 -- " LÊy Cùc PhÈm /tbcucph",
 -- "LÖnh bµi gäi boss /goiboss",
 "Vßng s¸ng danh hiÖu/vongsa",
 " Th«i kh«ng lÊy g× n÷a hãt."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 function tienvan()
 Earn(10000000)
 end;
 function tbcucph()
 cucpham()
 end;
 
 function tiendong()
 
 AddStackItem(100,4,417,1,1,0,0,0) -- nhan 100 tien dong
 end;
 function goiboss()
 AddItem(6,1,1022,0,0,0)
 end
 
 function vongsa()
 n_title = 3000 -- S?a ID danh hi?u vào
 local nServerTime = GetCurServerTime()+ 1728000; --20*24*60*60
 local nDate = FormatTime2Number(nServerTime);
 local nDay = floor(mod(nDate,1000000) / 10000);
 local nMon = mod(floor(nDate / 1000000) , 100)
 local nTime = nMon * 1000000 + nDay * 10000
 Title_AddTitle(n_title, 2, nTime)
 Title_ActiveTitle(n_title)
 end
 function layngua()
 local tbOpt =
 {
 {"Ngùa nhãm 1", vip1},
 {"Ngùa nhãm 2", vip2},
 {"Ngùa nhãm 3", vip3},
 -- {"Ngùa nhãm 4", vip4},
 -- {"Ngùa b¸ ®¹o", nguabadao},
 {"Trë l¹i", dialog_main},
 {"Tho¸t"},
 }
 CreateNewSayEx("<npc>Anh cÇn g×?", tbOpt)
 end
 function nguabadao()
 AddGoldItem(0, 4480)
 AddGoldItem(0, 4366)
 AddGoldItem(0, 5093)
 AddGoldItem(0, 5097)
 
 end
 function vip1()
 AddItem(0,10,6,10,0,0,0)
 AddItem(0,10,7,10,0,0,0)
 AddItem(0,10,8,10,0,0,0)
 AddItem(0,10,9,10,0,0,0)
 AddItem(0,10,10,10,0,0,0)
 
 end
 function vip2()
 AddItem(0,10,11,10,0,0,0)
 AddItem(0,10,12,10,0,0,0)
 AddItem(0,10,13,10,0,0,0)
 AddItem(0,10,14,10,0,0,0)
 AddItem(0,10,15,10,0,0,0)
 
 end
 function vip3()
 AddItem(0,10,16,10,0,0,0)
 AddItem(0,10,17,10,0,0,0)
 AddItem(0,10,18,10,0,0,0)
 AddItem(0,10,19,10,0,0,0)
 AddItem(0,10,20,10,0,0,0)
 
 end
 function vip4()
 AddItem(0,10,21,10,0,0,0)
 AddItem(0,10,22,10,0,0,0)
 AddItem(0,10,23,10,0,0,0)
 AddItem(0,10,24,10,0,0,0)
 AddItem(0,10,25,10,0,0,0)
 
 end
 
 function level_up_to150()
 local nCurLevel = GetLevel()
 if nCurLevel >= 150 then
 if ST_IsTransLife() == 1 then
 Talk(1, "", "Ng¬i ®· ®¹t cÊp 150 råi.")
 else
 Talk(1, "", "§i chuyÓn sinh tríc ®i råi trë l¹i th¨ng cÊp.")
 end
 return
 end
 local nAddLevel = 150 - nCurLevel
 ST_LevelUp(nAddLevel)
 end
 
 
 
 
 function choose_faction()
 if check_faction() ~= 1 then
 Talk(1, "", "Ng¬i ®· gia nhËp m«n ph¸i.")
 return
 end
 local nSeries = GetSeries() + 1
 local tbOpt = {}
 for i=1, getn(%tbFactionSeries[nSeries]) do
 local nIndex = %tbFactionSeries[nSeries][i]
 tinsert(tbOpt, {%tbFaction[nIndex].szShowName, set_faction, {nIndex}})
 end
 tinsert(tbOpt, {"Trë vª", dialog_main})
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 CreateNewSayEx("<npc>Mét khi gia nhËp m«n ph¸i kh«ng thÓ thay ®æi, h·y suy nghÜ kü.", tbOpt)
 end
 
 function set_faction(nIndex)
 local szTitle = format("<npc>X¸c nhËn muèn gia nhËp m«n ph¸i ?<color=yellow>%s<color> m«n ph¸i?", %tbFaction[nIndex].szShowName)
 local tbOpt =
 {
 {"X¸c nhËn!", do_set_faction, {nIndex}},
 {"Trë vª.", choose_faction},
 {"Kªt thóc ®èi tho¹i."},
 }
 CreateNewSayEx(szTitle, tbOpt)
 end
 
 
 function show_equip(nFactionId, nSubFactionId)
 local tbEquip = %tbFaction[nFactionId]["tbEquip"][nSubFactionId]
 local tbEquipName = tbEquip["tbEquipName"]
 local nFirstEquipId = tbEquip["nFirstEquipId"]
 local tbOpt = {}
 for i=1, getn(tbEquipName) do
 tinsert(tbOpt, {tbEquipName[i], get_equip, {i, nFirstEquipId + i - 1}})
 end
 tinsert(tbOpt, {"Trë vª", show_faction})
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 local szTitle = format("<npc>LÊy ®å %s Kim ¤", tbEquip.szFaction)
 CreateNewSayEx(szTitle, tbOpt)
 end
 
 function get_equip(nIndex, nEquipId)
 local nWidth = %tbEquipFreeCell[nIndex][1]
 local nHeigth = %tbEquipFreeCell[nIndex][2]
 if CountFreeRoomByWH(nWidth, nHeigth) < 1 then
 Talk(1, "", format("CÇn Ut nhÊt 1 c¸i %dx%d tói ®eo lng", nWidth, nHeigth))
 return
 end
 AddGoldItem(0, nEquipId)
 end
 function daithanhbikip15x()
 AddItem(6,1,30446,0,0,0)
 end
 function show_item()
 local tbOpt = {}
 local nCount = getn(%tbFreeItem)
 local szOption = ""
 for i=1, nCount-1 do
 szOption = format("NhËn %s", %tbFreeItem[i].szName)
 tinsert(tbOpt, {szOption, get_item, {i}})
 end
 szOption = format("NhËn %s", %tbFreeItem[nCount].szName)
 tinsert(tbOpt, {szOption, get_single_item, {nCount}})
 tinsert(tbOpt, {"NhËn cùc phÈm giíi chØ...", get_normal_item})
 tinsert(tbOpt, {"NhËn ®¹i thµnh bÝ kÝp 150", daithanhbikip15x})
 tinsert(tbOpt, {"Trë vª.", main})
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 CreateNewSayEx("<npc>l·o phu n¬i nµy ca h¬i thë nham vËt phÈm nhng nhËn lÊy", tbOpt)
 end
 
 
 function get_normal_item()
 local tbOpt =
 {
 --{"NhËn 5 viªn KNB.", cszb},
 {"Hng Bang Chi Giíi", xb_jz},
 {"TrÊn Nh¹c Chi Giíi", zy_jz},
 {"Thîng Ph¬ng Chi Giíi", sf_jz},
 {"Thiªn Hµ Giíi", sh_jz},
 {"§O Hoµng Chi Giíi", dh_jz},
 {"Thiªn Tö Chi Giíi", tz_jz},
 {"ThO Tóc Toµn Giíi", sz_jz},
 {"Cµn Kh«n Giíi ChØ (Cùc phÈm)", jz08},
 {"L·nh B¸ Nguyªn Méng Chi Giíi (Míi)", jz08x},
 {"Trë vÒ.", main},
 {"Kªt thóc ®èi tho¹i."},
 }
 CreateNewSayEx("<npc>L·o phu ca mét sè man cùc phÈm, ngêi cÇn thøc g× ?", tbOpt)
 end
 
 function fifong()
 local tbOpt =
 {
 {"Phi phong", phiphong},
 {"Ên", an},
 {"Trang søc", trangsuc},
 -- {"Vò liÖt", vuliet},
 -- {"Huynh ®Ö", huynhde},
 -- {"Cè s¬n", coson},
 -- {"D¬ng thÇn", duongthan},
 {"VËt PhÈm Kh¸c", huytinh},
 {"Trë l¹i", main},
 {"Tho¸t"},
 }
 CreateNewSayEx("<npc>Chän item", tbOpt)
 end
 function trangsuc()
 local tbOpt =
 {
 {"Trang søc 1", trangsuc1},
 {"Trang søc 2", trangsuc2},
 -- {"Trang søc 3", trangsuc3},
 {"Trë l¹i", main},
 {"Tho¸t"},
 }
 CreateNewSayEx("<npc>Chän item", tbOpt)
 end
 function an23()
 local tbOpt =
 {
 {"Ên 1", an1},
 {"Ên 2", an2},
 {"Ên 3", an3},
 {"Ên 4", an4},
 {"Trë l¹i", main},
 {"Tho¸t"},
 }
 CreateNewSayEx("<npc>Chän item", tbOpt)
 end
 
 function huytinh()
 dotim()
 end
 
 
 function matna()
 local tbOpt =
 {
 {"MÆt n¹ 1", matna1},
 {"MÆt n¹ 2", matna2},
 {"MÆt n¹ 3", matna3},
 {"MÆt n¹ 4", matna4},
 {"MÆt n¹ 5", matna5},
 {"Trë l¹i", main},
 {"Tho¸t"},
 }
 CreateNewSayEx("<npc>Chän item", tbOpt)
 end
 
 function an4()
 for i=5161,5197 do
 AddGoldItem(0, i)
 end
 end
 function an3()
 for i=5131,5161 do
 AddGoldItem(0, i)
 end
 end
 function an2()
 for i=5098,5130 do
 AddGoldItem(0, i)
 end
 end
 function coson()
 AddGoldItem(0, 4441)
 AddGoldItem(0, 4445)
 AddGoldItem(0, 4449)
 AddGoldItem(0, 4453)
 AddGoldItem(0, 4457)
 AddGoldItem(0, 4461)
 AddGoldItem(0, 4465)
 AddGoldItem(0, 4469)
 end
 function huynhde()
 for i=4436,4437 do
 AddGoldItem(0, i)
 end
 for i=4481,4482 do
 AddGoldItem(0, i)
 end
 end
 function vuliet()
 for i=5208,5212 do
 AddGoldItem(0, i)
 end
 end
 function pro1()
 for i=430,441 do
 AddGoldItem(0, i)
 end
 end
 function dongsat()
 for i=494,497 do
 AddGoldItem(0, i)
 end
 for i=378,379 do
 AddGoldItem(0, i)
 end
 end
 function duongthan()
 for i=514,520 do
 AddGoldItem(0, i)
 end
 end
 function phiphong()
 for i=3465,3490 do
 AddGoldItem(0, i)
 end
 end
 function an()
 for i=3205,3234 do
 AddGoldItem(0, i)
 end
 end
 function trangsuc1()
 for i=3542,3554 do
 AddGoldItem(0, i)
 end
 for i=3491,3506 do
 AddGoldItem(0, i)
 end
 end
 function trangsuc2()
 AddGoldItem(0,3506)
 AddGoldItem(0,3880)
 AddGoldItem(0,3881)
 AddGoldItem(0,3882)
 AddGoldItem(0,3883)
 AddGoldItem(0,3884)
 AddGoldItem(0,3885)
 AddGoldItem(0,3886)
 AddGoldItem(0,3887)
 AddGoldItem(0,3888)
 end
 
 function cszb()
 AddEventItem(343)
 AddEventItem(343)
 AddEventItem(343)
 AddEventItem(343)
 AddEventItem(343)
 end
 function xb_jz()
 AddGoldItem(0, 508)
 end
 function zy_jz()
 AddGoldItem(0, 509)
 end
 function sf_jz()
 AddGoldItem(0, 510)
 end
 function sh_jz()
 AddGoldItem(0, 511)
 end
 function dh_jz()
 AddGoldItem(0, 530)
 end
 function tz_jz()
 AddGoldItem(0, 531)
 end
 function sz_jz()
 AddGoldItem(0, 498)
 end
 function jz08()
 AddGoldItem(0, 3878)
 end
 function jz08x()
 AddGoldItem(0, 3541)
 end
 
 function get_item(nIndex)
 local nMaxCount = CalcFreeItemCellCount()
 g_AskClientNumberEx(0, nMaxCount, "Xin mêi ®a vµo nhËn lÊy", {get_item_back, {nIndex}})
 end
 
 function get_item_back(nIndex, nCount)
 if nCount <= 0 then
 return
 end
 if CalcFreeItemCellCount() < nCount then
 Talk(1, "", format("CÇn Ut nhÊt <color=yellow>%d<color> tói kh«ng gian...", nCount))
 return
 end
 local szLogTitle = format("[liguan]get_free_item_%s", %tbFreeItem[nIndex].szName)
 tbAwardTemplet:GiveAwardByList(%tbFreeItem[nIndex], szLogTitle, nCount)
 end
 
 function get_single_item(nIndex)
 local tbItem = %tbFreeItem[nIndex]
 if CountFreeRoomByWH(tbItem.nWidth, tbItem.nHeigth) < 1 then
 Talk(1, "", format("CÇn Ut nhÊt 1 %dx%d µÄ±³°ü¿O¼ä", tbItem.nWidth, tbItem.nHeigth))
 return
 end
 local szLogTitle = format("[liguan]get_free_item_%s", tbItem.szName)
 tbAwardTemplet:GiveAwardByList(tbItem, szLogTitle)
 end
 
 function clear_attibute_point()
 local tbOpt =
 {
 {"TÈy ®iÓm kü n¨ng", clear_skill},
 {"TÈy ®iÓm ti?m n¨ng", clear_prop},
 {"Trë vÒ", main},
 {"KOt thóc ®èi tho¹i."},
 }
 CreateNewSayEx("<npc>Ng¬i quyOt u muèn tÈy tñy?", tbOpt)
 end
 
 function clear_skill()
 local tbOpt =
 {
 {"X¸c nhËn", do_clear_skill},
 {"§Ó ta suy nghÜ l¹i."},
 {"Trë v?", clear_attibute_point},
 }
 CreateNewSayEx("<npc>Ng¬i vÉn quyOt u muèn tÈy tñy?", tbOpt)
 end
 
 function do_clear_skill()
 local i = HaveMagic(210) -- ÇṦ¸íÝâ²ï×÷
 local j = HaveMagic(400) -- ¡°½ï¸»¼·Æ¶¡±¸íÝâ²ï×÷
 local n = RollbackSkill() -- Çå³ý¼¼Äܲ¢·µ»ØËùÓм¼ÄÜ?ã£� �°üµ¨ÇṦµÈÌØÊâ¼¼ÄÜ£?
 local x = 0
 if (i ~= -1) then i = 1; x = x + i end -- Õ⸽¾äÅжÏÊÇÅųý´Óδѧ¹ýÇ á¹¦µÄÈË·µ»Ø-1´Ó¶øµ¼Ö¢µãÊý¼ÆËã´íÎóÇé¿ö
 if (j ~= -1) then x = x + j end
 local rollback_point = n - x -- °Ñ¼¼Äܵ㵱×ö¿ÕÏеãÊý·µ»¹£ ¬µ«ÏÈ?Û³ýÇṦµ?
 if (rollback_point + GetMagicPoint() < 0) then -- Èç¹ûÏ´³É¸Ë¸ºÊý£¬Ôòµ±×÷0£¨� �ªÒÔºó¶µ´ÎÏ´µã±£?ô£?
 rollback_point = -1 * GetMagicPoint()
 end
 AddMagicPoint(rollback_point)
 if (i ~= -1) then AddMagic(210, i) end -- Èç¹ûѧ¹uÇṦÔ?¼Ó»ØÔÓеȼ¶
 if (j ~= -1) then AddMagic(400, j) end -- Èç¹ûѧ¹u¡°½ï¸»¼Aƶ¡±Ý¬Ñù´¦ µí
 Msg2Player("TÈy tñy thµnh c«ng! Ng¬i ca "..rollback_point.." ®iÓm kü n¨ng ®Ó ph©n phèi l¹i.")
 KickOutSelf()
 end
 
 function clear_prop()
 local tbOpt =
 {
 {"X¸c nhËn", do_clear_prop},
 {"§Ó ta suy nghÜ l¹i."},
 {"Trë v?", clear_attibute_point},
 }
 CreateNewSayEx("<npc>Ng¬i vÉn quyOt u muèn tÈy tñy?", tbOpt)
 end
 
 function do_clear_prop()
 local base_str = {35,20,25,30,20} -- ÎåÐÐÈËÎïµÄÌìÉúÊôÐÔÖµ
 local base_dex = {25,35,25,20,15}
 local base_vit = {25,20,25,30,25}
 local base_eng = {15,25,25,20,40}
 local player_series = GetSeries() + 1
 
 local Utask88 = GetTask(88)
 AddStrg(base_str[player_series] - GetStrg(1) + GetByte(Utask88, 1)) -- ½«ÒÑ·ÖÅäDZÄÜÖØÖ·£¨task(88)ÊÇÈ ÎÎñÖÐÖ±½Ó½±µøµÄ¸¦¸¿¡¢Éí·¨ µÈ£©
 AddDex(base_dex[player_series] - GetDex(1) + GetByte(Utask88, 2))
 AddVit(base_vit[player_series] - GetVit(1) + GetByte(Utask88, 3))
 AddEng(base_eng[player_series] - GetEng(1) + GetByte(Utask88, 4))
 end
 
 function write_info()
 tbInputDialog:InputServer()
 end
 function dotim() local tab_Content = {
 "Vò KhÝ/weapon",
 "Y Phôc/shirt",
 "§Ønh M¹o/hat",
 "Hæ UyÓn/glove",
 "Yªu §¸i/belt",
 "Hµi Tö/shoe",
 "VËt phÈm hæ trî/khoangth",
 "MÆt n¹/manat",
 "Trang bÞ b¹ch kim/bachkim",
 "KÕt thóc ®èi tho¹i."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 
 function weapon()
 local tab_Content = {
 "KiÕm/kiem",
 "§ao/dao",
 "Bæng/bong",
 "Th¬ng/kick",
 "Chïy/chuy",
 "Song §ao/songdao",
 "Phi Tiªu/phitieu",
 "Phi §ao/phidao",
 "Tô TiÔn/tutien",
 "KÕt thóc ®èi tho¹i."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 
 function kiem()
 AddQualityItem(2,0,0,0,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,0,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,0,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,0,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,0,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function dao()
 AddQualityItem(2,0,0,1,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,1,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,1,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,1,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,1,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function bong()
 AddQualityItem(2,0,0,2,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,2,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,2,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,2,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,2,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function kick()
 AddQualityItem(2,0,0,3,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,3,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,3,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,3,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,3,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function chuy()
 AddQualityItem(2,0,0,4,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,4,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,4,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,4,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,4,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function songdao()
 AddQualityItem(2,0,0,5,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,5,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,5,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,5,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,0,5,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function phitieu()
 AddQualityItem(2,0,1,0,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,0,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,0,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,0,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,0,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function phidao()
 AddQualityItem(2,0,1,1,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,1,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,1,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,1,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,1,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function tutien()
 AddQualityItem(2,0,1,2,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,2,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,2,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,2,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,1,2,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function shirt()
 local tab_Content = {
 "ThÊt B¶o Cµ Sa/aothieulam",
 "Ch©n Vò Th¸nh Y/aovodang",
 "Thiªn NhÉn MËt Trang/aothiennhan",
 "Gi¸ng Sa Bµo/sabao",
 "§êng Nghª Gi¸p/dng",
 "V¹n Lu Quy T«ng Y/aocaibang",
 "TuyÒn Long Bµo/longbao",
 "Long Tiªu §¹o Y/daoy",
 "Cöu VÜ B¹ch Hå Trang/hotrang",
 "TrÇm H¬ng Sam/huongsam",
 "TÝch LÞch Kim Phông Gi¸p/kimphung",
 "V¹n Chóng TÒ T©m Y/tamy",
 "Lu Tiªn QuÇn/tienquan",
 "KÕt thóc ®èi tho¹i."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 
 function aothieulam()
 AddQualityItem(2,0,2,0,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,0,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,0,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,0,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,0,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function aovodang()
 AddQualityItem(2,0,2,1,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,1,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,1,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,1,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,1,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function aothiennhan()
 AddQualityItem(2,0,2,2,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,2,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,2,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,2,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,2,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function sabao()
 AddQualityItem(2,0,2,3,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,3,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,3,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,3,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,3,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function dng()
 AddQualityItem(2,0,2,4,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,4,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,4,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,4,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,4,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function aocaibang()
 AddQualityItem(2,0,2,5,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,5,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,5,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,5,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,5,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function longbao()
 AddQualityItem(2,0,2,6,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,6,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,6,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,6,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,6,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function daoy()
 AddQualityItem(2,0,2,8,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,8,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,8,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,8,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,8,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function hotrang()
 AddQualityItem(2,0,2,9,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,9,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,9,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,9,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,9,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function huongsam()
 AddQualityItem(2,0,2,10,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,10,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,10,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,10,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,10,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function kimphung()
 AddQualityItem(2,0,2,11,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,11,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,11,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,11,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,11,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function tamy()
 AddQualityItem(2,0,2,12,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,12,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,12,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,12,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,12,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function tienquan()
 AddQualityItem(2,0,2,13,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,13,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,13,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,13,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,2,13,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function hat()
 local tab_Content = {
 "Tú L« M·o/lomao",
 "Ngò L·o Qu¸n/laoquan",
 "Tu La Ph¸t KÕt/phatket",
 "Th«ng Thiªn Ph¸t Qu¸n/phatquan",
 "YÓm NhËt Kh«i/nhatkhoi",
 "TrÝch Tinh Hoµn/tinhhoan",
 "¤ Tµm M·o/tammao",
 "Quan ¢m Ph¸t Qu¸n/quanam",
 "¢m D¬ng V« Cùc Qu¸n/amduong",
 "HuyÒn Tª DiÖn Tr¸o/dientrao",
 "Long HuyÕt §Çu Hoµn/longhuyet",
 "Long L©n Kh«i/lankhoi",
 "Thanh Tinh Thoa/tinhthoa",
 "Kim Phông TriÓn SÝ/triensi",
 "KÕt thóc ®èi tho¹i."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 
 function lomao()
 AddQualityItem(2,0,7,0,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,0,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,0,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,0,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,0,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function laoquan()
 AddQualityItem(2,0,7,1,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,1,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,1,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,1,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,1,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function phatket()
 AddQualityItem(2,0,7,2,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,2,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,2,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,2,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,2,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function phatquan()
 AddQualityItem(2,0,7,3,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,3,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,3,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,3,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,3,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function nhatkhoi()
 AddQualityItem(2,0,7,4,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,4,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,4,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,4,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,4,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function tinhhoan()
 AddQualityItem(2,0,7,5,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,5,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,5,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,5,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,5,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function tammao()
 AddQualityItem(2,0,7,6,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,6,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,6,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,6,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,6,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function quanam()
 AddQualityItem(2,0,7,7,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,7,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,7,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,7,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,7,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function amduong()
 AddQualityItem(2,0,7,8,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,8,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,8,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,8,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,8,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function dientrao()
 AddQualityItem(2,0,7,9,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,9,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,9,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,9,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,9,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function longhuyet()
 AddQualityItem(2,0,7,10,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,10,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,10,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,10,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,10,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function lankhoi()
 AddQualityItem(2,0,7,11,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,11,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,11,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,11,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,11,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function tinhthoa()
 AddQualityItem(2,0,7,12,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,12,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,12,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,12,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,12,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function triensi()
 AddQualityItem(2,0,7,13,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,13,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,13,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,13,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,7,13,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function glove()
 local tab_Content = {
 "Long Phông HuyÕt Ngäc Tr¹c/ngoctrac",
 "Thiªn Tµm Hé UyÓn/houyen",
 "KÕt thóc ®èi tho¹i."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 
 function ngoctrac()
 AddQualityItem(2,0,8,0,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,8,0,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,8,0,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,8,0,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,8,0,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function houyen()
 AddQualityItem(2,0,8,1,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,8,1,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,8,1,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,8,1,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,8,1,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function belt()
 local tab_Content = {
 "Thiªn Tµm Yªu §¸i/thientamyeu",
 "B¹ch Kim Yªu §¸i/bachkim",
 "KÕt thóc ®èi tho¹i."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 
 function thientamyeu()
 AddQualityItem(2,0,6,0,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,6,0,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,6,0,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,6,0,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,6,0,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function bachkim()
 AddQualityItem(2,0,6,1,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,6,1,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,6,1,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,6,1,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,6,1,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function shoe()
 local tab_Content = {
 "Cöu TiÕt X¬ng VÜ Ngoa/cuutien",
 "Thiªn Tµm Ngoa/thientam",
 "Kim Lò Hµi/kimlu",
 "Phi Phông Ngoa/phiphung",
 "KÕt thóc ®èi tho¹i."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 
 function cuutien()
 AddQualityItem(2,0,5,0,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,0,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,0,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,0,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,0,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function thientam()
 AddQualityItem(2,0,5,1,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,1,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,1,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,1,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,1,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function kimlu()
 AddQualityItem(2,0,5,2,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,2,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,2,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,2,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,2,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 
 
 function phiphung()
 AddQualityItem(2,0,5,3,10,0,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,3,10,1,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,3,10,2,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,3,10,3,0,-1,-1,-1,-1,-1,-1)
 AddQualityItem(2,0,5,3,10,4,0,-1,-1,-1,-1,-1,-1)
 end
 function khoangth()
 local tab_Content = {
 "HuyÒn tinh/huytin",
 "kho¸ng th¹ch/kdb",
 "S¸t thñ gi¶n/stg",
 "Thñy tinh/thuyti",
 "Phóc duyªn/phucd",
 "KÕt thóc."
 }
 Say(" Muèn lÊy g× th× click ! ", getn(tab_Content), tab_Content);
 end;
 
 function huytin()
 AddItem(6,1,147,1,0,0,0)
 AddItem(6,1,147,2,0,0,0)
 AddItem(6,1,147,3,0,0,0)
 AddItem(6,1,147,4,0,0,0)
 AddItem(6,1,147,5,0,0,0)
 AddItem(6,1,147,6,0,0,0)
 AddItem(6,1,147,7,0,0,0)
 AddItem(6,1,147,8,0,0,0)
 AddItem(6,1,147,9,0,0,0)
 AddItem(6,1,147,10,0,0,0)
 end
 
 
 function kdb()
 AddItem(6,1,149,1,0,0,0)
 AddItem(6,1,150,1,1,0,0)
 AddItem(6,1,150,1,2,0,0)
 AddItem(6,1,150,1,3,0,0)
 AddItem(6,1,150,1,4,0,0)
 
 AddItem(6,1,151,1,0,0,0)
 AddItem(6,1,152,1,1,0,0)
 AddItem(6,1,152,1,2,0,0)
 AddItem(6,1,152,1,3,0,0)
 AddItem(6,1,152,1,4,0,0)
 
 AddItem(6,1,153,1,0,0,0)
 AddItem(6,1,154,1,1,0,0)
 AddItem(6,1,154,1,2,0,0)
 AddItem(6,1,154,1,3,0,0)
 AddItem(6,1,154,1,4,0,0)
 end
 
 
 function stg()
 AddItem(6,1,400,90,1,0,0)
 AddItem(6,1,400,90,2,0,0)
 AddItem(6,1,400,90,3,0,0)
 AddItem(6,1,400,90,4,0,0)
 end
 
 function thuyti()
 AddEventItem(239)
 AddEventItem(240)
 AddEventItem(241)
 end
 
 function phucd()
 AddItem(6,1,122,1,0,0,0)
 AddItem(6,1,123,1,0,0,0)
 AddItem(6,1,124,1,0,0,0)
 end
 function bachkim()
 local tbOpt =
 {
 {"ThiÕu l©m", bktl},
 {"Thiªn v¬ng", bktv},
 {"®êng m«n", bkdm},
 {"Ngò ®éc", bk5d},
 {"Nga mi", bknm},
 {"Thuý yªn", bkty},
 {"C¸i bang", bkcb},
 {"Thiªn nhÉn", bktn},
 {"Vâ ®ang", bkvd},
 {"C«n l«n", bkcl},
 {"Tho¸t"},
 }
 CreateNewSayEx("<npc>Chän m«n ph¸i?", tbOpt)
 end
 function bktl()
 AddGoldItem(0, 11)
 AddGoldItem(0, 6)
 end
 function bktv()
 AddGoldItem(0, 16)
 AddGoldItem(0, 21)
 AddGoldItem(0, 26)
 end
 function bknm()
 AddGoldItem(0, 31)
 end
 function bkty()
 AddGoldItem(0, 46)
 end
 function bk5d()
 AddGoldItem(0, 61)
 end
 function bkdm()
 AddGoldItem(0, 71)
 AddGoldItem(0, 76)
 AddGoldItem(0, 81)
 end
 function bkcb()
 AddGoldItem(0, 96)
 end
 function bktn()
 AddGoldItem(0, 101)
 end
 function bkvd()
 for i=4346,4355 do
 AddPlatinaItem(3, i)
 end
 end
 function bkcl()
 AddGoldItem(0, 126)
 end
 function manat() local tab_Content = {
 "MÆt n¹ /hacthan",
 "MÆt n¹ 1/matna1",
 "MÆt n¹ 2/matna2",
 "MÆt n¹ 3/matna3",
 "MÆt n¹ 4/matna4",
 "MÆt n¹ 5/matna5",
 "KÕt thóc."
 }
 Say("Chän lo¹i mÆt n¹", getn(tab_Content), tab_Content);
 end;
 
 function hacthan()
 for i=3890,3894 do
 AddGoldItem(0, i)
 end
 end
 function matna1()
 for i=4493,4523 do
 AddGoldItem(0, i)
 end
 end
 function matna2()
 for i=4524,4554 do
 AddGoldItem(0, i)
 end
 end
 function matna3()
 for i=4555,4585 do
 AddGoldItem(0, i)
 end
 end
 function matna4()
 for i=4586,4616 do
 AddGoldItem(0, i)
 end
 end
 function matna5()
 for i=4617,4630 do
 AddGoldItem(0, i)
 end
 end
 function dohoangkim()
 local szTitle = "Hæ trîi t©n thñ - Test"
 local tbOpt =
 {
 {"Trang BÞ Tö M·ng", tumang},
 {"Trang BÞ Kim ¤", kimo},
 {"Trang BÞ B¹ch Hæ", bachho},
 {"Trang BÞ XÝch L©n", xichlan},
 {"Trang BÞ Minh Phîng", minhphuong},
 --{"Trang BÞ §»ng Long", danglong},
 {"Thoi ta khong cÇn"},
 }
 CreateNewSayEx(szTitle, tbOpt)
 end
 function xichlan()
 local tab_Content = {
 "Roi Khoi/no",
 "Thieu Lam Quyen/#sexichlan(1)",
 "Thieu Lam Bong/#sexichlan(2)",
 "Thieu Lam Dao/#sexichlan(3)",
 "Thien Vuong Chuy/#sexichlan(4)",
 "Thien Vuong Thuong/#sexichlan(5)",
 "Thien Vuong Dao/#sexichlan(6)",
 "Nga My kiem/#sexichlan(7)",
 "Nga My chuong/#sexichlan(8)",
 "Thuy Yen Dao/#sexichlan(9)",
 "Thuy yen Song Dao/#sexichlan(10)",
 "Ngu Doc Chuong/#sexichlan(11)",
 "Ngu Doc Dao/#sexichlan(12)",
 "Duong Mon Phi Dao/#sexichlan(13)",
 "Duong Mon No/#sexichlan(14)",
 "Trang sau/xichlan2",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function xichlan2()
 local tab_Content = {
 "Roi Khoi/no",
 "Duong Mon Phi Tieu/#sexichlan(15)",
 "Cai Bang Rong/#sexichlan(16)",
 "Cai Bang Bong/#sexichlan(17)",
 "Thien Nhan Kich/#sexichlan(18)",
 "Thien Nhan Dao/#sexichlan(19)",
 "Vo Dang Kiem/#sexichlan(20)",
 "Vo Dang Quyen/#sexichlan(21)",
 "Con Lon Dao/#sexichlan(22)",
 "Con Lon Kiem/#sexichlan(23)",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function sexichlan(nId)
 for i = 2515, 2524 do
 AddGoldItem(0,10*nId+i-10)
 end
 end
 function minhphuong()
 local tab_Content = {
 "Roi Khoi/no",
 "Thieu Lam Quyen/#seminhphuong(1)",
 "Thieu Lam Bong/#seminhphuong(2)",
 "Thieu Lam Dao/#seminhphuong(3)",
 "Thien Vuong Chuy/#seminhphuong(4)",
 "Thien Vuong Thuong/#seminhphuong(5)",
 "Thien Vuong Dao/#seminhphuong(6)",
 "Nga My kiem/#seminhphuong(7)",
 "Nga My chuong/#seminhphuong(8)",
 "Thuy Yen Dao/#seminhphuong(9)",
 "Thuy yen Song Dao/#seminhphuong(10)",
 "Ngu Doc Chuong/#seminhphuong(11)",
 "Ngu Doc Dao/#seminhphuong(12)",
 "Duong Mon Phi Dao/#seminhphuong(13)",
 "Duong Mon No/#seminhphuong(14)",
 "Trang sau/minhphuong2",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function minhphuong2()
 local tab_Content = {
 "Roi Khoi/no",
 "Duong Mon Phi Tieu/#seminhphuong(15)",
 "Cai Bang Rong/#seminhphuong(16)",
 "Cai Bang Bong/#seminhphuong(17)",
 "Thien Nhan Kich/#seminhphuong(18)",
 "Thien Nhan Dao/#seminhphuong(19)",
 "Vo Dang Kiem/#seminhphuong(20)",
 "Vo Dang Quyen/#seminhphuong(21)",
 "Con Lon Dao/#seminhphuong(22)",
 "Con Lon Kiem/#seminhphuong(23)",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function seminhphuong(nId)
 for i = 2745, 2754 do
 AddGoldItem(0,10*nId+i-10)
 end
 end
 function danglong()
 local tab_Content = {
 "Roi Khoi/no",
 "Thieu Lam Quyen/#sedanglong(1)",
 "Thieu Lam Bong/#sedanglong(2)",
 "Thieu Lam Dao/#sedanglong(3)",
 "Thien Vuong Chuy/#sedanglong(4)",
 "Thien Vuong Thuong/#sedanglong(5)",
 "Thien Vuong Dao/#sedanglong(6)",
 "Nga My kiem/#sedanglong(7)",
 "Nga My chuong/#sedanglong(8)",
 "Thuy Yen Dao/#sedanglong(9)",
 "Thuy yen Song Dao/#sedanglong(10)",
 "Ngu Doc Chuong/#sedanglong(11)",
 "Ngu Doc Dao/#sedanglong(12)",
 "Duong Mon Phi Dao/#sedanglong(13)",
 "Duong Mon No/#sedanglong(14)",
 "Trang sau/danglong2",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function danglong2()
 local tab_Content = {
 "Roi Khoi/no",
 "Duong Mon Phi Tieu/#sedanglong(15)",
 "Cai Bang Rong/#sedanglong(16)",
 "Cai Bang Bong/#sedanglong(17)",
 "Thien Nhan Kich/#sedanglong(18)",
 "Thien Nhan Dao/#sedanglong(19)",
 "Vo Dang Kiem/#sedanglong(20)",
 "Vo Dang Quyen/#sedanglong(21)",
 "Con Lon Dao/#sedanglong(22)",
 "Con Lon Kiem/#sedanglong(23)",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function sedanglong(nId)
 for i = 2975, 2984 do
 AddGoldItem(0,10*nId+i-10)
 end
 end
 function bachho()
 local tab_Content = {
 "Roi Khoi/no",
 "Thieu Lam Quyen/#sebachho(1)",
 "Thieu Lam Bong/#sebachho(2)",
 "Thieu Lam Dao/#sebachho(3)",
 "Thien Vuong Chuy/#sebachho(4)",
 "Thien Vuong Thuong/#sebachho(5)",
 "Thien Vuong Dao/#sebachho(6)",
 "Nga My kiem/#sebachho(7)",
 "Nga My chuong/#sebachho(8)",
 "Thuy Yen Dao/#sebachho(9)",
 "Thuy yen Song Dao/#sebachho(10)",
 "Ngu Doc Chuong/#sebachho(11)",
 "Ngu Doc Dao/#sebachho(12)",
 "Duong Mon Phi Dao/#sebachho(13)",
 "Duong Mon No/#sebachho(14)",
 "Trang sau/bachho2",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function bachho2()
 local tab_Content = {
 "Roi Khoi/no",
 "Duong Mon Phi Tieu/#sebachho(15)",
 "Cai Bang Rong/#sebachho(16)",
 "Cai Bang Bong/#sebachho(17)",
 "Thien Nhan Kich/#sebachho(18)",
 "Thien Nhan Dao/#sebachho(19)",
 "Vo Dang Kiem/#sebachho(20)",
 "Vo Dang Quyen/#sebachho(21)",
 "Con Lon Dao/#sebachho(22)",
 "Con Lon Kiem/#sebachho(23)",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function sebachho(nId)
 for i = 2285, 2294 do
 AddGoldItem(0,10*nId+i-10)
 end
 end
 function kimo()
 local tab_Content = {
 "Roi Khoi/no",
 "Thieu Lam Quyen/#sekimo(1)",
 "Thieu Lam Bong/#sekimo(2)",
 "Thieu Lam Dao/#sekimo(3)",
 "Thien Vuong Chuy/#sekimo(4)",
 "Thien Vuong Thuong/#sekimo(5)",
 "Thien Vuong Dao/#sekimo(6)",
 "Nga My kiem/#sekimo(7)",
 "Nga My chuong/#sekimo(8)",
 "Thuy Yen Dao/#sekimo(9)",
 "Thuy yen Song Dao/#sekimo(10)",
 "Ngu Doc Chuong/#sekimo(11)",
 "Ngu Doc Dao/#sekimo(12)",
 "Duong Mon Phi Dao/#sekimo(13)",
 "Duong Mon No/#sekimo(14)",
 "Trang sau/kimo2",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function kimo2()
 local tab_Content = {
 "Roi Khoi/no",
 "Duong Mon Phi Tieu/#sekimo(15)",
 "Cai Bang Rong/#sekimo(16)",
 "Cai Bang Bong/#sekimo(17)",
 "Thien Nhan Kich/#sekimo(18)",
 "Thien Nhan Dao/#sekimo(19)",
 "Vo Dang Kiem/#sekimo(20)",
 "Vo Dang Quyen/#sekimo(21)",
 "Con Lon Dao/#sekimo(22)",
 "Con Lon Kiem/#sekimo(23)",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function sekimo(nId)
 for i = 2055, 2064 do
 AddGoldItem(0,10*nId+i-10)
 end
 end
 function tumang()
 local tab_Content = {
 "Roi Khoi/no",
 "Thieu Lam Quyen/#setumang(1)",
 "Thieu Lam Bong/#setumang(2)",
 "Thieu Lam Dao/#setumang(3)",
 "Thien Vuong Chuy/#setumang(4)",
 "Thien Vuong Thuong/#setumang(5)",
 "Thien Vuong Dao/#setumang(6)",
 "Nga My kiem/#setumang(7)",
 "Nga My chuong/#setumang(8)",
 "Thuy Yen Dao/#setumang(9)",
 "Thuy yen Song Dao/#setumang(10)",
 "Ngu Doc Chuong/#setumang(11)",
 "Ngu Doc Dao/#setumang(12)",
 "Duong Mon Phi Dao/#setumang(13)",
 "Duong Mon No/#setumang(14)",
 "Trang sau/tumang2",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function tumang2()
 local tab_Content = {
 "Roi Khoi/no",
 "Duong Mon Phi Tieu/#setumang(15)",
 "Cai Bang Rong/#setumang(16)",
 "Cai Bang Bong/#setumang(17)",
 "Thien Nhan Kich/#setumang(18)",
 "Thien Nhan Dao/#setumang(19)",
 "Vo Dang Kiem/#setumang(20)",
 "Vo Dang Quyen/#setumang(21)",
 "Con Lon Dao/#setumang(22)",
 "Con Lon Kiem/#setumang(23)",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y lùa chon M«n Ph¸i", getn(tab_Content), tab_Content);
 end
 function setumang(nId)
 for i = 1825, 1834 do
 AddGoldItem(0,10*nId+i-10)
 end
 end
 
 function cucpham()
 local tab_Content = {
 -- "Set Hoµng Kim M«n Ph¸i /sethkmp",
 -- "Set Xich L©n /setxl",
 "Set Cùc PhÈm §éng S¸t /cpds",
 -- "MÆt N¹ GM /matnagm",
 -- "Set Minh Phîng /setmp",
 -- "Set Song Long /setsonglo",
 -- "Phi Phong /phip",
 -- "Trang Søc /trangs",
 -- "Kim Ên /kiman",
 -- "Tæng Hîp /tongh",
 -- "LÊy 100 ti?n ®ång /tiendong",
 -- "LÊy 1000v lîng /tienvan",
 -- "M¹c b¾c th¶o nguyªn lÖnh /macblb",
 "Th«i kh«ng lÊy g× n÷a h?t."
 }
 Say(" Muèn lÊy thªm c¸i g× nµo ? ", getn(tab_Content), tab_Content);
 end;
 
 function macblb()
 AddItem(6,1,1448,1,0,0)
 end
 function kiman()
 AddGoldItem(0,3214)
 AddGoldItem(0,3224)
 AddGoldItem(0,3234)
 end
 function tongh()
 AddGoldItem(0,3506)
 AddGoldItem(0,3530)
 AddGoldItem(0,3541)
 AddGoldItem(0,3880)
 AddGoldItem(0,3881)
 AddGoldItem(0,3882)
 AddGoldItem(0,3883)
 AddGoldItem(0,3884)
 AddGoldItem(0,3885)
 AddGoldItem(0,3886)
 AddGoldItem(0,3887)
 AddGoldItem(0,3888)
 end
 
 function phip()
 AddGoldItem(0,3466)
 AddGoldItem(0,3467)
 AddGoldItem(0,3468)
 AddGoldItem(0,3469)
 AddGoldItem(0,3470)
 AddGoldItem(0,3471)
 AddGoldItem(0,3472)
 AddGoldItem(0,3473)
 AddGoldItem(0,3474)
 AddGoldItem(0,3475)
 AddGoldItem(0,3476)
 AddGoldItem(0,3477)
 AddGoldItem(0,3478)
 AddGoldItem(0,3479)
 AddGoldItem(0,3480)
 AddGoldItem(0,3481)
 AddGoldItem(0,3482)
 AddGoldItem(0,3483)
 AddGoldItem(0,3484)
 AddGoldItem(0,3485)
 AddGoldItem(0,3486)
 AddGoldItem(0,3487)
 AddGoldItem(0,3488)
 AddGoldItem(0,3489)
 AddGoldItem(0,3490)
 end
 
 function trangs()
 AddGoldItem(0,3507)
 AddGoldItem(0,3508)
 AddGoldItem(0,3509)
 AddGoldItem(0,3510)
 AddGoldItem(0,3511)
 AddGoldItem(0,3512)
 AddGoldItem(0,3513)
 AddGoldItem(0,3514)
 AddGoldItem(0,3515)
 AddGoldItem(0,3516)
 AddGoldItem(0,3517)
 AddGoldItem(0,3518)
 AddGoldItem(0,3519)
 AddGoldItem(0,3520)
 end
 
 function matnagm()
 --AddItem(0,11,2,1,0,10,10,10,10,10,10,10,gio,day,mo nth,nam)
 AddItem(0,11,0,367,0,10,10,10,10,10,10,10,gio,day, month,nam)
 AddItem(0,11,0,368,0,10,10,10,10,10,10,10,gio,day, month,nam)
 end
 
 
 
 function cpds()
 AddGoldItem(0,494)
 AddGoldItem(0,495)
 AddGoldItem(0,496)
 AddGoldItem(0,497)
 end
 
 
 
 function setsonglo()
 local tab_Content = {
 "Rêi khái/no",
 "Thi?u L©m quy?n/#setsonglo1(1)",
 "Thi?u L©m c«n/#setsonglo1(2)",
 "Thi?u L©m ®ao/#setsonglo1(3)",
 "Thiªn V¬ng chïy/#setsonglo1(4)",
 "Thiªn V¬ng th¬ng/#setsonglo1(5)",
 "Thiªn V¬ng ®ao/#setsonglo1(6)",
 "Nga My ki?m/#setsonglo1(7)",
 "Nga My chëng/#setsonglo1(8)",
 "Nga My buff/#setsonglo1(9)",
 "Thóy Yªn ®ao/#setsonglo1(10)",
 "Thóy Yªn song ®ao/#setsonglo1(11)",
 "Ng? §éc chëng/#setsonglo1(12)",
 "Ng? §éc ®ao/#setsonglo1(13)",
 "Ng? §éc bïa/#setsonglo1(14)",
 "Trang sau/setsonglo2",
 
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y chän chøc n¨ng mµ b¹n muèn", getn(tab_Content), tab_Content);
 end
 function setsonglo2()
 local tab_Content = {
 "Rêi khái/no",
 "§êng M«n phi ®ao/#setsonglo1(15)",
 "§êng M«n tô tiÔn/#setsonglo1(16)",
 "§êng M«n phi tiªu/#setsonglo1(17)",
 "§êng M«n bÉy/#setsonglo1(18)",
 "C¸i Bang rång/#setsonglo1(19)",
 "C¸i Bang bæng/#setsonglo1(20)",
 "Thiªn NhÉn k?ch/#setsonglo1(21)",
 "Thiªn NhÉn ®ao/#setsonglo1(22)",
 "Thiªn NhÉn bïa/#setsonglo1(23)",
 "Vâ §ang kh? /#setsonglo1(24)",
 "Vâ §ang ki?m/#setsonglo1(25)",
 "C«n L«n ®ao/#setsonglo1(26)",
 "C«n L«n ki?m/#setsonglo1(27)",
 "C«n L«n bïa/#setsonglo1(28)",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y chän chøc n¨ng mµ b¹n muèn", getn(tab_Content), tab_Content);
 end
 function setsonglo1(nId)
 for i=2975,2985 do AddGoldItem(0,10*nId+i-10) end
 end
 
 
 function sethkmp()
 local tab_Content = {
 "Rêi khái/no",
 "Thi?u L©m quy?n/#sethkmp1(1)",
 "Thi?u L©m c«n/#sethkmp1(2)",
 "Thi?u L©m ®ao/#sethkmp1(3)",
 "Thiªn V¬ng chïy/#sethkmp1(4)",
 "Thiªn V¬ng th¬ng/#sethkmp1(5)",
 "Thiªn V¬ng ®ao/#sethkmp1(6)",
 "Nga My ki?m/#sethkmp1(7)",
 "Nga My chëng/#sethkmp1(8)",
 "Nga My buff/#sethkmp1(9)",
 "Thóy Yªn ®ao/#sethkmp1(10)",
 "Thóy Yªn song ®ao/#sethkmp1(11)",
 "Ng? §éc chëng/#sethkmp1(12)",
 "Ng? §éc ®ao/#sethkmp1(13)",
 "Ng? §éc bïa/#sethkmp1(14)",
 "Trang sau/sethkmp2",
 
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y chän chøc n¨ng mµ b¹n muèn", getn(tab_Content), tab_Content);
 end
 function sethkmp2()
 local tab_Content = {
 "Rêi khái/no",
 "§êng M«n phi ®ao/#sethkmp1(15)",
 "§êng M«n tô tiÔn/#sethkmp1(16)",
 "§êng M«n phi tiªu/#sethkmp1(17)",
 "§êng M«n bÉy/#sethkmp1(18)",
 "C¸i Bang rång/#sethkmp1(19)",
 "C¸i Bang bæng/#sethkmp1(20)",
 "Thiªn NhÉn k?ch/#sethkmp1(21)",
 "Thiªn NhÉn ®ao/#sethkmp1(22)",
 "Thiªn NhÉn bïa/#sethkmp1(23)",
 "Vâ §ang kh? /#sethkmp1(24)",
 "Vâ §ang ki?m/#sethkmp1(25)",
 "C«n L«n ®ao/#sethkmp1(26)",
 "C«n L«n ki?m/#sethkmp1(27)",
 "C«n L«n bïa/#sethkmp1(28)",
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y chän chøc n¨ng mµ b¹n muèn", getn(tab_Content), tab_Content);
 end
 function sethkmp1(nId)
 for i=1,5 do AddGoldItem(0,5*nId+i-5) end
 end
 
 function setxl()
 local tab_Content = {
 "Roi Khoi/no",
 "Thieu Lam Quyen/#setxl1(1)",
 "Thieu Lam Bong/#setxl1(2)",
 "Thieu Lam Dao/#setxl1(3)",
 "Thien Vuong Chuy/#setxl1(4)",
 "Thien Vuong Thuong/#setxl1(5)",
 "Thien Vuong Dao/#setxl1(6)",
 "Nga My kiem/#setxl1(7)",
 "Nga My chuong/#setxl1(8)",
 "Thuy Yen Dao/#setxl1(9)",
 "Thuy yen Song Dao/#setxl1(10)",
 "Ngu Doc Chuong/#setxl1(11)",
 "Ngu Doc Dao/#setxl1(12)",
 "Duong Mon Phi Dao/#setxl1(13)",
 "Duong Mon No/#setxl1(14)",
 "Trang sau/setxl2",
 
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y chän chøc n¨ng mµ b¹n muèn", getn(tab_Content), tab_Content);
 end
 function setxl2()
 local tab_Content = {
 "Roi Khoi/no",
 "Duong Mon Phi Tieu/#setxl1(15)",
 "Cai Bang Rong/#setxl1(16)",
 "Cai Bang Bong/#setxl1(17)",
 "Thien Nhan Kich/#setxl1(18)",
 "Thien Nhan Dao/#setxl1(19)",
 "Vo Dang Kiem/#setxl1(20)",
 "Vo Dang Quyen/#setxl1(21)",
 "Con Lon Dao/#setxl1(22)",
 "Con Lon Kiem/#setxl1(23)",
 
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y chän chøc n¨ng mµ b¹n muèn", getn(tab_Content), tab_Content);
 end
 function setxl1(nId)
 for i=2515,2525 do AddGoldItem(0,10*nId+i-10) end
 end
 
 function setmp()
 local tab_Content = {
 "Roi Khoi/no",
 "Thieu Lam Quyen/#setmp1(1)",
 "Thieu Lam Bong/#setmp1(2)",
 "Thieu Lam Dao/#setmp1(3)",
 "Thien Vuong Chuy/#setmp1(4)",
 "Thien Vuong Thuong/#setmp1(5)",
 "Thien Vuong Dao/#setmp1(6)",
 "Nga My kiem/#setmp1(7)",
 "Nga My chuong/#setmp1(8)",
 "Thuy Yen Dao/#setmp1(9)",
 "Thuy yen Song Dao/#setmp1(10)",
 "Ngu Doc Chuong/#setmp1(11)",
 "Ngu Doc Dao/#setmp1(12)",
 "Duong Mon Phi Dao/#setmp1(13)",
 "Duong Mon No/#setmp1(14)",
 "Trang sau/setmp2",
 
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y chän chøc n¨ng mµ b¹n muèn", getn(tab_Content), tab_Content);
 end
 function setmp2()
 local tab_Content = {
 "Roi Khoi/no",
 "Duong Mon Phi Tieu/#setmp1(15)",
 "Cai Bang Rong/#setmp1(16)",
 "Cai Bang Bong/#setmp1(17)",
 "Thien Nhan Kich/#setmp1(18)",
 "Thien Nhan Dao/#setmp1(19)",
 "Vo Dang Kiem/#setmp1(20)",
 "Vo Dang Quyen/#setmp1(21)",
 "Con Lon Dao/#setmp1(22)",
 "Con Lon Kiem/#setmp1(23)",
 
 }
 Say("Xin chµo <color=yellow>"..GetName().."<color>, h·y chän chøc n¨ng mµ b¹n muèn", getn(tab_Content), tab_Content);
 end
 function setmp1(nId)
 for i=2745,2755 do AddGoldItem(0,10*nId+i-10) end
 end
 
 function tienvan()
 Earn(1000000000)
 end;
 
 function tiendong()
 
 AddStackItem(100,4,417,1,1,0,0,0) -- nhan 100 tien dong
 
 end;
 
 
 17. Cách bật/tắt các sự kiện cũng như việt hóa:
 
 Bạn chỉnh trong s3relay/relaysetting/task/tasklist.ini, file này nó quy định gọi file để chạy dạng timer vậy đó. Nói sơ lun, Count của nó khai báo tổng id task khai báo + 1, cách thức gọi thì làm theo những cái có sẵn. Mún nó không chạy 1 id task nào mà mình khai thì thêm ở dưới nó ExcutedCount=-1 là nó sẽ ko chạy. Điều chỉnh thời gian thì bạn chỉnh ở những file .lua ở relaysetting/task, ví dụ cho bạn ỏ dưới đó
 Code:
 function TaskShedule()
 TaskName("Phong L¨ng §é 0:25") --tên sự kiện, muốn viết gì cũng được cũng ko quan trọng.
 TaskTime(10,00); --giờ event sẽ được chạy
 
 --ÉèÖüä¸ôʱ¼ä£¬µ¥Î»Îª·ÖÖÓ
 TaskInterval(1440) --60·ÖÖÓÒ»´Î ---nó sẽ chạy suốt trong cái interval timer. Ở đây là mặc định mỗi h nó chạy 1 lần 60*24 = 1440 (60: phút , 24: giờ)
 
 --ÉèÖô¥·¢´ÎÊý£¬0±íʾÎÞÏÞ´Î� �ý
 TaskCountLimit(0) --cái này mình ko rõ lắm chưa sử dụng nhìu nên toàn để mặc dịnh là 0
 OutputMsg("=================PHONG LANG DO RUN=================="); --dang print thôi
 end
 
 function TaskContent()
 GlobalExecute("dwf \\script\\missions\\fengling_ferry\\fldmap_boat1.l ua fenglingdu_main()") --gọi hàm bạn đã viết ở folder script
 end
 
 function GameSvrConnected(dwGameSvrIP)
 end
 function GameSvrReady(dwGameSvrIP)
 end
 
 18.code nhận vòng sáng và danh hiệu jx linux
 
 Thêm dòng này lên đầu:
 Code:
 Include("\\script\\global\\titlefuncs.lua")
 
 
 Code:
 IncludeLib("SETTING")
 Include("\\script\\lib\\awardtemplet.lua")
 Include("\\script\\item\\gamemaster\\gm.lua")
 Include("\\script\\dailogsys\\dailogsay.lua")
 Include("\\script\\global\\fuyuan.lua")
 --Include("\\script\\global\\hotrothem.lua")
 
 
 function abcxyz(nindex)
 Title_AddTitle(nindex, 1, 4302359);
 Title_ActiveTitle(nindex);
 SetTask(1122, nindex);
 end
 function DanhHieu()
 local szTitle = "<npc>moi ban chon danh hieu"
 local tbOpt =
 {
 {"VL Kiet xuat", abcxyz,{85}},
 {"VL Minh Chu", abcxyz,{188}},
 {"Ngu Long", abcxyz,{165}},
 {"Ngu Long", abcxyz,{150}},
 {"Ngu Long", abcxyz,{189}},
 {"Tuyet The Cao Thu", abcxyz,{235}},
 {"Manh Long Tranh Ba", abcxyz,{228}},
 {"Manh Long Tranh Ba", abcxyz,{263}},
 {"Tho¸t"},
 }
 CreateNewSayEx(szTitle, tbOpt)
 end
 
 19.Hỏi về việt hoá server
 
 Dùng notepad++, xem thêm dưới đây:
 [Only registered and activated users can see links. ]
 [Only registered and activated users can see links. ]
 [Only registered and activated users can see links. ]
 
 20. code add đồ xanh :
 
 tbDoXanh =
 {
 [1]=
 {
 szName = "D©y chuyÒn",
 tbEquip =
 {
 {"Toµn th¹ch h¹ng liªn",0,4,0},
 {"Lôc PhØ Thóy Hé Th©n phï ",0,4,1},
 }
 },
 [2]=
 {
 szName = "¸o gi¸p",
 tbEquip =
 {
 {"ThÊt B¶o Cµ Sa",0,2,0},
 {"Ch©n Vò Th¸nh Y",0,2,1},
 {"Thiªn NhÉn MËt Trang",0,2,2},
 {"Gi¸ng Sa Bµo",0,2,3},
 {"§êng Nghª gi¸p",0,2,4},
 {"V¹n Lu Quy T«ng Y",0,2,5},
 {"TuyÒn Long bµo",0,2,6},
 {"Long Tiªu ®¹o Y",0,2,8},
 {"Cöu VÜ B¹ch Hå trang",0,2,9},
 {"TrÇm H¬ng sam",0,2,10},
 {"TÝch LÞch Kim Phông gi¸p",0,2,11},
 {"V¹n Chóng TÒ T©m Y",0,2,12},
 {"Lu Tiªn QuÇn",0,2,13},
 }
 },
 [3]=
 {
 szName = "§ai lng",
 tbEquip =
 {
 {"Thiªn Tµm Yªu §¸i",0,6,0},
 {"B¹ch Kim Yªu §¸i",0,6,1},
 }
 },
 [4]=
 {
 szName = "Giµy",
 tbEquip =
 {
 {"Cöu TiÕt X¬ng VÜ Ngoa",0,5,0},
 {"Thiªn Tµm Ngoa",0,5,1},
 {"Kim Lò hµi",0,5,2},
 {"Phi Phông Ngoa",0,5,3},
 }
 },
 [5]=
 {
 szName = "Bao tay",
 tbEquip =
 {
 {"Long Phông HuyÕt Ngäc Tr¹c",0,8,0},
 {"Thiªn Tµm Hé UyÓn",0,8,1},
 }
 },
 [6]=
 {
 szName = "Nãn",
 tbEquip =
 {
 {"Tú L« m·o",0,7,0},
 {"Ngò l·o qu¸n",0,7,1},
 {"Tu La Ph¸t kÕt",0,7,2},
 {"Th«ng Thiªn Ph¸t Qu¸n",0,7,3},
 {"YÓm NhËt kh«i",0,7,4},
 {"TrÝch Tinh hoµn",0,7,5},
 {"¤ Tµm M·o",0,7,6},
 {"Quan ¢m Ph¸t Qu¸n",0,7,7},
 {"¢m D¬ng V« Cùc qu¸n",0,7,8},
 {"HuyÒn Tª DiÖn Tr¸o",0,7,9},
 {"Long HuyÕt §Çu hoµn",0,7,10},
 {"Long L©n Kh«i",0,7,11},
 {"Thanh Tinh Thoa",0,7,12},
 {"Kim Phông TriÓn SÝ ",0,7,13},
 }
 },
 [7]=
 {
 szName = "Vò khÝ c©n chiÕn",
 tbEquip =
 {
 {"HuyÒn ThiÕt KiÕm",0,0,0},
 {"§¹i Phong §ao",0,0,1},
 {"Kim C« Bæng",0,0,2},
 {"Ph¸ Thiªn KÝch",0,0,3},
 {"Ph¸ Thiªn chïy",0,0,4},
 {"Th«n NhËt Tr·m",0,0,5},
 }
 },
 [8]=
 {
 szName = "Ngäc béi",
 tbEquip =
 {
 {"Long Tiªn H¬ng Nang",0,9,0},
 {"D¬ng Chi B¹ch Ngäc",0,9,1},
 }
 },
 [9]=
 {
 szName = "Vò khÝ tÇm xa",
 tbEquip =
 {
 {"B¸ V¬ng Tiªu",0,1,0},
 {"To¸i NguyÖt §ao",0,1,1},
 {"Khæng Tíc Linh",0,1,2},
 }
 },
 [10]=
 {
 szName = "NhÉn",
 tbEquip =
 {
 {"Toµn Th¹ch Giíi ChØ ",0,3,0},
 }
 },
 }
 function laydoxanh()
 if check_faction() == 1 then
 Talk(1, "", "Gia nhËp m«n ph¸i míi cã thÓ nhËn trang bÞ ")
 return
 end
 local tbOpt = {}
 for i=1, getn(tbDoXanh) do
 tinsert(tbOpt, {tbDoXanh[i].szName, laydoxanh1, {i}})
 end
 
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 CreateNewSayEx("<npc>Xin mêi lùa chän trang bÞ:", tbOpt)
 end
 function laydoxanh1(nType)
 local tbEquip = %tbDoXanh[nType]["tbEquip"]
 local tbOpt = {}
 for i=1, getn(tbEquip) do
 tinsert(tbOpt, {tbEquip[i][1], laydoxanh2, {i, nType}})
 end
 
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 local szTitle = format("<npc>Xin mêi lùa chän trang bÞ:")
 CreateNewSayEx(szTitle, tbOpt)
 end
 function laydoxanh2(nIndex, nType)
 local tbOpt = {}
 tinsert(tbOpt, {"Kim", laydoxanh3, {nIndex, nType, 0}})
 tinsert(tbOpt, {"Méc", laydoxanh3, {nIndex, nType, 1}})
 tinsert(tbOpt, {"Thñy", laydoxanh3, {nIndex, nType, 2}})
 tinsert(tbOpt, {"Háa", laydoxanh3, {nIndex, nType, 3}})
 tinsert(tbOpt, {"Thæ ", laydoxanh3, {nIndex, nType, 4}})
 
 
 tinsert(tbOpt, {"Kªt thóc ®èi tho¹i."})
 local szTitle = format("<npc>Chän hÖ:")
 CreateNewSayEx(szTitle, tbOpt)
 end
 function laydoxanh3(nIndex, nType, nSeries)
 g_AskClientNumberEx(0, 60, "Sè lîng:", {laydoxanh4, {nIndex, nType, nSeries}})
 end
 function laydoxanh4(nIndex, nType, nSeries, nCount)
 local tbEquipSelect = %tbDoXanh[nType]["tbEquip"][nIndex]
 for i=1,nCount do AddItem(tbEquipSelect[2], tbEquipSelect[3], tbEquipSelect[4], 10, nSeries, 100, 10) end
 end
 
 
 
 
 
 Chú ý bài viết có nội dung dài phải cho vào thẻ SPOILERLần sửa cuối bởi tvnnam, ngày 18-07-15 lúc 01:39 PM.  CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF 
 
- 
	
The Following 20 Users Say Thank You to tvnnam For This Useful Post:acma865 (18-07-15), dongnguyen0510 (16-07-15), doremon.duk (16-07-15), HAHT169 (04-02-16), hcm589 (06-12-15), lehieuaa (07-11-15), lengoctuandng (22-07-15), mr.truyen (20-08-15), MrHarryPotter (17-07-15), nguyennhuloi (20-02-16), nhoccon1011 (16-07-15), ntrungviet (26-02-16), phuchuands (04-02-16), phuongcoi (20-07-15), shouljin00 (17-07-15), songvijx (30-10-15), thanhtunghn (16-07-15), tieudieuphong (09-09-15), vovanson (16-07-15), [DN]Never (17-07-15) 
 
- 
	16-07-15, 11:23 AM #4 Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever Linux Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever LinuxUp cho bài viết  mặc dù không dev jx linux mặc dù không dev jx linux Khách viếng thăm hãy cùng heodat139 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé! Khách viếng thăm hãy cùng heodat139 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
 
- 
	16-07-15, 02:18 PM #5Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever LinuxNhững dòng 1 2 3 này nọ bác in Hoa hoặc in đậm lên cho người đọc dễ phân biệt nhé bác  Khách viếng thăm hãy cùng lntinh xây dựng diễn đàn CLBGAMESVN vững mạnh nhé! Khách viếng thăm hãy cùng lntinh xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
 
- 
	16-07-15, 02:40 PM #6Thành Viên Tâm Huyết  
 - Ngày tham gia
- Apr 2014
- Đang ở
- Hưng Yên
- Bài viết
- 1,692
- Thanks
- 488
- Thanked 984 Times in 521 Posts
 Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever Linux CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF 
 
- 
	
Các thành viên gởi lời cảm ơn đến tvnnam vì bài viết này !lehieuaa (07-11-15) 
 
- 
	16-07-15, 03:24 PM #7Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever LinuxKhách viếng thăm hãy cùng lntinh xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
 
- 
	
Các thành viên gởi lời cảm ơn đến lntinh vì bài viết này !tvnnam (16-07-15) 
 
- 
	16-07-15, 04:05 PM #8Thành Viên    
 - Ngày tham gia
- May 2010
- Bài viết
- 36
- Thanks
- 9
- Thanked 21 Times in 7 Posts
 Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever Linuxok đã giải quyết xong ! 
 cảm ơn bác  Lần sửa cuối bởi doremon.duk, ngày 16-07-15 lúc 04:45 PM. Khách viếng thăm hãy cùng doremon.duk xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
 
- 
	16-07-15, 04:06 PM #9Thành Viên    
 - Ngày tham gia
- May 2014
- Bài viết
- 144
- Thanks
- 22
- Thanked 88 Times in 12 Posts
 Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever LinuxCám ơn tvnam nhiều lắm , dù gì thì nhìn vào script Linux không biết gì hết , đang định chuyển sang linux ! bạn nào cài được trên win XP thì giúp mình nha ! cài lỗi hoài chán ghê ! nhận mình 1 thank nhé tvnam  Khách viếng thăm hãy cùng vovanson xây dựng diễn đàn CLBGAMESVN vững mạnh nhé! Khách viếng thăm hãy cùng vovanson xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
 
- 
	16-07-15, 04:32 PM #10Thành Viên Tâm Huyết  
 - Ngày tham gia
- Apr 2014
- Đang ở
- Hưng Yên
- Bài viết
- 1,692
- Thanks
- 488
- Thanked 984 Times in 521 Posts
 Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever LinuxHàm trong JX Server [Full] Function[Full] 
 
 Cái này dành cho các bạn mới vào nghề thôi nhé pro chắc khỏi xem
 
 Start
 
 Say: nói chuyện có lựa chọn
 
 Cú pháp: Say(“Câu nói của NPC”,số lựa chọn,“Lựa chọn 1”,“lựa chọn 2”,……“lựa chọn n”)
 
 N = số lựa chọn
 
 Vd : Say(“Chao mung ban!”,2,”Ta muon di xa phu/goxaphu”,”Nhan tien ghe qua”)
 
 Vậy n = 2
 
 Talk: nói chuyện không lựa chọn
 
 Cú pháp: Talk(<số câu nói>,”<hàm chạy khi kết thúc câu nói >”,”Câu nói”)
 Vd: Talk(1,”no”,”Chao ban den voi JX Offline!”)
 
 function no()
 end;
 
 Như vậy sau khi chạy hàm Talk,nó sẽ Hiện câu ”Chao ban den voi JX Offline!” rồi chạy hàm no
 
 SetTask,SetTaskTemp,SetMissionV,SetGlbMissionV: Tạo giá trị nhiệm vụ
 
 Cú pháp 4 hàm này như nhau và cấu trúc chung là
 
 SetTask(idnhiệmvụ,giátrịnhiệmvụ)
 
 SetTaskTemp(idnhiệmvụ,giátrịnhiệmvụ)
 
 SetMissionV(idnhiệmvụ,giátrịnhiệmvụ)
 
 SetGlbMissionV(idnhiệmvụ,giátrịnhiệmvụ)
 
 Chú ý : +SetTask sẽ đặt giá trị nhiệm vụ và giữ nguyên khi thoát hoặc tắt server
 
 +SetTaskTemp sẽ đặt giá trị nhiệm vụ và chỉ giữ khi online,khi tắt server hay thoát thì nó mất tác dụng và quay về 0 thì phải
 
 +SetMissionV và SetGlbMissionV sẽ đặt giá trị nhiệm vụ đó cho cả Server đang chạy
 
 Vd:SetTask(20,3)
 
 Nghĩa là thiết đặt nhiệm vụ có Id 20 với giá trị là 3
 
 4 hàm này có ích khi dung cấu trúc rẽ nhánh(if,then..) và khi viết nhiệm vụ
 
 Ban đầu khi chưa thiết đặt nhiệm vụ có id đó thì giá trị của nó đang là 0
 
 GetTask,GetTaskTemp,GetMissionV,GetGlbMissionV: Kiểm tra giá trị nhiệm vụ
 
 Cú pháp 4 hàm này như nhau và cấu trúc chung là
 
 GetTask(idnhiệmvụ)
 GetTaskTemp(idnhiệmvụ)
 GetMissionV(idnhiệmvụ)
 GetGlbMissionV(idnhiệmvụ)
 
 Tương tự GetTask sẽ lấy giá trị nhiệm vụ có id là idnhiệmvụ ,hiệu lực được mãi khi Set về 0 lại,còn GetTaskTemp sẽ mất hiệu lực khi tắt Server hay out.GetMissionV và GetGlbMissionV có tác dụng cho cả server, chúng cũng hữu dụng cho việc code nhiệm vụ và xài cấu trúc rẽ nhánh cho hàm chạy thời gian cho Server!
 
 SetByte,SetBit:Thiết đạt giá trị cho byte bit
 
 Cú pháp : SetBit(Value, BitNo, BitValue)
 
 SetByte(Value, ByteNo, ByteValue)
 
 Chưa xài nên ko có Vd sr L
 
 GetByte,GetBit:Kiểm tra giá trị Byte,Bit
 
 Cú pháp : GetBit(Value, BitNo)
 
 GetByte(Value, ByteNo)
 
 Chưa xài nên ko có Vd sr L
 
 Include: thêm đường dẫn file khác
 
 Cú pháp: Include(“Đường dẫn file”)
 
 Vd: Include(“\\Script\\Global\\Serverlib.lua”)
 
 Chú ý : Đường dẫn file phải bắt đầu là \\ rồi sau đó là đường dẫn File nhưng thay \ là \\(phải là 2 nét \\)
 
 1 Cách khác nếu file muốn khai vào ngang hàng(chung thư mục) với file đang mở
 
 Khi đó cú pháp là
 
 Include(“tênfile”)
 
 Vd:Include(“abcdef.lua”)
 
 PutMessage: thêm thông báo
 
 Cú pháp: PutMessage(Câu nói,id)
 
 Chưa xài bao giờ nên ko có vdL
 
 AddGlobalNews,AddGlobalTimeNews,AddGlobalCountNews ,AddLocalNews,AddLocalTimeNews,AddLocalCountNews:T hêm thong báo lên phía trên Game(giống như câu thong báo người nào làm nv dã tẩu dc đồ hk trong VLTK VNG ấy)
 
 Cú pháp từng hàm
 
 AddGlobalNews(“Câu thông báo”)
 
 AddGlobalTimeNews(“Câu thông báo”, Năm,tháng,ngày,giờ,phút)
 
 AddGlobalCountNews(“Câu thông báo”,số lần lặp (thì phải))
 
 AddLocalNews(“Câu thông báo”)
 
 AddLocalTimeNews(“Câu thông báo”, Năm,tháng,ngày,giờ,phút)
 
 AddLocalCountNews(“Câu thông báo”,số lần lặp (thì phải))
 
 Vd từng hàm
 
 AddGlobalNews(“Chao ban den voi JX Offline!”)
 
 AddGlobalTimeNews(“Chao ban den voi JX Offline!”,2009,06,29,19,50)
 
 AddGlobalCountNews(“Chao ban den voi JX Offline!”,1)
 
 AddLocalNews(“Chao ban den voi JX Offline!”)
 
 AddLocalTimeNews(“Chao ban den voi JX Offline!”,2009,06,29,19,50)
 
 AddLocalCountNews(“Chao ban den voi JX Offline!”,1)
 
 AddRepute: thêm danh vọng
 
 Cú pháp :AddRepute(sốđiểmthêmvào)
 Vd:AddRepute(50)
 
 GetRepute: kiểm tra điểm danh vọng
 
 Cú pháp :GetRepute()
 
 GetNpcIdx:lấy id của npc thì phải
 
 Cú pháp: chưa biếtL
 
 SetTimer: cài đặt file chạy sau mỗi n giây trong hàm
 
 Cú pháp: SetTimer(thời gian*18,id file muốn chạy trong settings\timertask.txt)
 
 Thời gian là giây
 
 Vd:SetTimer(60*18,1)
 Sau 60 giây sẽ chạy file có id 1 trong Timertask.txt
 
 Lưu ý file dc chạy thì sẽ được duyệt bằng hàm function OnTimer() thôi,có nghĩa là sẽ chạy file đó và các câu lệnh chứa trong hàm function OnTimer()
 
 StopTimer():thôi ko chạy file đã được dùng hàm function OnTimer()
 
 Cú pháp : StopTimer()
 GetRestTime:chưa biết
 
 GetTimerId :Lấy id của file đang được chạy bằng hàm SetTimer và các hàm set thời gian như SetTimer
 
 Cú pháp : GetTimerId()
 
 IsCaptain:có phải đội trường hay là chủ PT không(ko nhớ rõ)
 
 Cú pháp : IsCaptain()
 
 Dùng như sau: kiểm tra xem người này có phải đội trưởng ko: if (IsCaptain() ~= -1) then Talk(1,””,”Ban la doi truong”)
 
 Có nghĩa là nếu là đội trưởng thì nói “Ban la doi truong”
 
 ~= có nghĩa là khác
 
 -1 là giá trị chưa có hay giá trị ko đúng
 
 Ko hiểu bạn có thể hiểu cách 2 là : if (IsCaptain() == 1) then Talk(1,””,”Ban la doi truong”)
 
 GetTeam:lấy id PT
 
 Cú pháp :GetTeam()
 
 GetTeamSize:đếm số thành viên trong PT
 
 Cú pháp :GetTeamSize()
 
 LeaveTeam:rời PT
 
 Cú pháp :LeaveTeam()
 
 Msg2Player:nhắn tin tới người chơi
 
 Cú pháp :Msg2Player(“câu nói”)
 
 Vd:Msg2Player(“Chao ban!”)
 
 Nó sẽ send câu “Chao ban” đến khu vục chat trên kênh thế giới dưới dạng chữ màu đỏ
 
 Msg2Team:nhắn tin tới PT
 
 Cú pháp:Msg2Team(“câu nói”)
 
 Vd:Msg2Team(“Chao ban!”)
 
 Msg2SubWorld:nhắn tin tới Server đang chạy
 
 Cú pháp:Msg2SubWorld(“câu nói”)
 
 Vd:Msg2SubWorld(“Chao ban!”)
 
 Msg2Region:nhắn tin tới 1 cụm Server là cha của Server đang chạy
 
 Cú pháp:Msg2Region(“câu nói”)
 
 Vd:Msg2Region(“Chao ban!”)
 
 Vd này nói rằng trong các Server VNG,kỳ sơn là con của cụm TP2(vd thôi) thì nó sẽ gửi tin tới các máy chủ trong cụm TP2 luôn
 
 Msg2GM:nhắn tin tới GameMaster
 
 Cú pháp:Msg2GM(“câu nói”)
 
 Vd:Msg2GM(“Chao GameMaster!”)
 
 Msg2IP:nhắn tin tới IP được chọn
 
 Cú pháp:Msg2IP(IP,ID,“câu nói”)
 
 GetInfo:lấy thong tin của nhân vật(dùng trong hàm ghi vào File Log của Server Xuân thu)
 
 Cú pháp:GetInfo()
 
 Khi này nó sẽ xuất ra các giá trị sau của người chơi:Tên,Level,IP,Máu,Mana,Thể Lực,tiền..
 
 GetIP:lấy IP của người chơi
 
 Cú pháp:GetIP()
 
 SetPos:tạo điểm quay về khi xài thổ địa phù
 
 Cú pháp:SetPos(tọa độ x*32,tọa độ y*32)
 
 Khi này nó sẽ tạo điểm phù về tại id map đang đứng và tại tọa độ x,y trong hàm trên
 
 GetPos:lấy tọa độ x,y,id map tạo điềm phù về
 
 Cú pháp:GetPos()
 
 Nó sẽ xuất ra tọa độ x,y,id map
 
 GetWorldPos:lấy id,tọa độ x,y tại map đang đứng,id là id map đang đứng
 
 Cú pháp:GetWorldPos()
 
 Nó sẽ xuất ra id map ,tọa độ x,y
 
 NewWorld:sang map khác
 
 Cú pháp:NewWorld (id map muốn qua,tọa độ x*8,tọa độ y *16)
 
 DropItem:làm rơi đồ từ NPC thì phải chưa xài
 
 Cú pháp: DropItem(NpcId, tên hoặc ID item)
 
 AddItem:thêm vật dụng
 
 Cú pháp: AddItem(nItemClass, nDetailType, nParticularType, nLevel, nSeries, nLuck, nItemLevel)
 
 nItemClass = id cột ItemGenre trong các file Item
 
 chú thích idnItemClass
 
 1:máu ,mana,các thứ trong potion.txt
 
 0:đồ ,ngựa,vkhí…
 
 nDetailType = id cột DetailType trong các file Item
 
 chú thích id nDetailType
 
 0:vũ khí cầm tay(meleeweapon.txt)
 
 1:vũ khí đường môn(rangeweapon.txt)
 
 2:áo(armor.txt)
 
 3:nhẫn(ring.txt)
 
 4:dây chuyền(amulet.txt)
 
 5:giày(boot.txt)
 
 6:yêu đái(belt.txt)
 
 7:đầu khôi(helm.txt)
 8:hô uyển(cuff.txt)
 
 9:hương nang,ngọc bội(pendant.txt)
 10:ngựa(horse.txt)
 
 11:mặt nạ(mask.txt) –Hiên nay ko add trực tiếp dc vì ko gắn vào dc trang bị và GD Ko Load Nó
 
 nParticularType = id cột ParticularType trong các file Item
 
 nLevel = id cột µÈ¼¶ (cột L) trong các file Item
 
 nSeries:hệ món đồ (0,1,2,3,4) == (kim,mộc,thủy,hỏa,thổ)
 
 nLuck(may mắn)
 
 nItemLevel:level Item,test rồi id nhiu cũng vậy sao ấy ^^
 
 AddEventItem:thêm item trong questkey.txt
 
 Cú pháp:AddEventItem(“tên item”) hoặc AddEventItem(id item)
 
 Tên item = tên trong cột Ãû³Æ(cột đầu)
 
 id item = cột DetailType
 
 hình như GS giờ chỉ load tới id 255 à
 
 DelItemóa item
 
 Cú phápelItem(“tên item”) hoặc DelItem(id item)
 
 Tương tự như AddEventItem ta tìm dc id item và Tên item = tên trong cột Ãû³Æ(cột đầu)
 
 HaveItem:kiểm tra có item không
 
 Cú pháp:HaveItem(id)
 
 Tương tự như AddEventItem ta tìm dc id item và Tên item = tên trong cột Ãû³Æ(cột đầu)
 
 GetItemCount:đếm coi có bao nhiêu item đó trong F4
 
 Cú pháp:HaveItemCount(“tên item”) hay HaveItemCount(id item)
 
 Tương tự như AddEventItem ta tìm dc id item và Tên item = tên trong cột Ãû³Æ(cột đầu)
 
 AddMagic:thêm Skill
 
 Cú pháp:AddMagic(idSkill,levelskill)
 
 idSkill ta kiếm trong File Skills.txt trong Settings ,cột SkillId
 
 level tối đa của Skill là 63
 
 DelMagicóa Skill
 
 Cú phápelMagic(idskill)
 
 idSkill ta kiếm trong File Skills.txt trong Settings ,cột SkillId
 
 HaveMagic:có skill hay ko
 
 Cú pháp:HaveMagic(idskill)
 
 idSkill ta kiếm trong File Skills.txt trong Settings ,cột SkillId
 
 GetMagicLevel:kiểm tra cấp độ của skill
 
 Cú pháp:GetMagicLevel(idskill)
 
 idSkill ta kiếm trong File Skills.txt trong Settings ,cột SkillId
 
 AddMagicPoint:thêm điểm kỹ năng
 
 Cú pháp:AddMagicPoint(số điểm)
 
 GetMagicPoint:kiểm tra số điểm tiềm năng còn lại bao nhiêu
 
 Cú pháp:GetMagicPoint()
 
 SubWorldID2Idx:kiểm tra xem Map này dc mở trong WorldSet.ini hay chưa
 
 Cú pháp: SubWorldID2Idx (id map)
 
 Id map trong maplist.ini
 
 AddLeadExp: Thêm kinh nghiệm cho quản lý tỗ đội [mức lãnh đạo]
 
 Cú pháp: AddLeadExp(số điểm)
 
 GetLeadLevel: Kiểm tra kinh nghiệm của quản lý tổ đội
 
 Cú pháp: GetLeadExp()
 
 SetFightState:thiết đặt trạng thái chiến đấu
 
 Cú pháp: SetFightState(0 hoặc 1)
 
 0 == ko thể “bụp “ nhau còn 1 là có thể
 
 GetFightState: Kiểm tra trạng thái chiến đấu
 
 Cú pháp: GetFightState ()
 
 AddNpc :thêm NPC vào map
 
 Cú pháp :AddNpc(Id Npc,nLevel, nSubWorldIndex, nPosX, nPosY )
 
 Id Npc:bằng STT của npc khi coi = excel file Npcs.txt – 2
 
 nLevel:level NPC
 
 nSubWorldIndex, nPosX, nPosY:Id map,tọa độ x,y
 
 DelNpcóa Npc
 
 Cú pháp elNpc(id)
 
 Id Npc:bằng STT của npc khi coi = excel file Npcs.txt – 2
 
 SetNpcScript:đặt script cho NPC
 
 Cú pháp :SetNpcScript(AddNpc(Id Npc,nLevel, nSubWorldIndex, nPosX, nPosY ),”script”)
 
 Hay cách 2 là
 
 A = AddNpc(Id Npc,nLevel, nSubWorldIndex, nPosX, nPosY )
 
 SetNpcScript(A,”script”)
 
 Ví dụ cho rõ nè
 
 AddNpc(62,100,53,202,202)
 
 SetNpcScript(AddNpc(62,100,53,202,202),”\\script \\abc.lua”)
 
 Cách 2 nè: e = AddNpc(62,100,53,202,202)
 
 SetNpcScript(e,”\\script\\abc.lua”)
 
 SetRevPos:cài điểm quay về khi phù
 
 Cú pháp: SetRevPos(id map,tọa độ x *8,tọa độ y *16)
 
 Hay SetRevPos(id trong RevivePos.ini)
 
 Theo cách SetRevPos(id trong RevivePos.ini) thì tôi sẽ mô tả 1 ví dụ và mô tả revivepos.ini
 
 1 file revivepos.ini như sau
 
 [Id map]
 
 region=0,4 –Các điểm nhớ,mỗi điểm có 1 giá trị
 
 0=tọa độ x *8*32, tọa độ y *8*32
 
 1= tọa độ x *8*32, tọa độ y *8*32
 
 ………………………………………
 
 Ví dụ tôi đang ở ba lang có id là 53 và xài hàm SetRevPos(19) thì nó sẽ tìm [ID map] == 53 rồi tìm giá trị 19 = 52032,101696
 
 SetTempRevPos:tương tự SetRevPos nhưng out ra là hết tác dụng
 
 GetCamp và GetCurCamp:kiểm tra màu Pk của nhân vật
 
 Cú pháp: GetCamp()
 
 GetCurCamp()
 
 SetCurCamp,SetCamp:thiết đặt màu pk
 
 Cú pháp: SetCamp(id)
 
 SetCurCamp(id)
 
 Id màu pk như sau
 
 Vang = 1
 
 xanh = 3
 
 tim = 2
 
 Do = 4
 
 Hong = 5
 
 RestoreCamp:phục hồi màu pk chưa xài bao giờ
 
 Cú pháp: RestoreCamp()
 
 GetFaction:kiểm tra tên môn phái
 
 Cú pháp: GetFaction()
 
 SetFaction:đạt tên môn phái
 
 Cú pháp: SetFaction(“Tên môn phái”)
 
 Tên môn phái trong settings\faction\ ÃÅÅÉÉ趨.ini
 
 GetColdR, GetLightR, GetFireR, GetPoisonR, GetPhyR:kiểm tra kháng băng,kháng lôi,kháng hỏa,kháng độc,PTVL
 
 Cú pháp :GetColdR()
 
 GetLightR()
 
 GetFireR()
 
 GetPoisonR()
 
 GetPhyR()
 
 SetColdR, SetLightR, SetFireR, SetPoisonR, SetPhyR:thiết đặt kháng băng,kháng lôi,kháng hỏa,kháng độc,PTVL
 
 Cú pháp :SetColdR(số điểm)
 
 SetLightR(số điểm)
 
 SetFireR(số điểm)
 
 SetPoisonR(số điểm)
 
 SetPhyR(số điểm)
 
 GetExp:kiểm tra Exp
 
 Cú pháp: GetExp()
 
 AddExp:thêm Exp
 
 Cú pháp: AddExp(số điểm)
 
 AddOwnExp:tương tự AddExp
 
 GetLife, GetMana, GetStamina:kiểm tra máu,mana,thể lực
 
 Cú pháp: GetExp(),GetMana(),GetStamina()
 
 RestoreLife, RestoreMana, RestoreStamina:phục hồi máu,mana,thể lực đầy lại
 
 Cú pháp: RestoreLife (),RestoreMana (),RestoreStamina ()
 
 GetDefend, GetSex, GetSeries, GetName, GetUUID, GetLeadExp, GetLeadLevel, GetLevel, GetRestAP, GetRestSP, GetLucky, GetEng, GetDex, GetStrg, GetVit, GetCash:kiểm tra phòng ngự,giới tính,hệ,tên,ID người chơi,Exp lãnh đạo,Level lãnh đạo,level,tiềm năng chưa +,kỹ năng chưa +,may mắn,điểm nội cộng,điểm né tránh,điểm SM,điểm sinh lực,tiền
 
 Cú pháp:
 
 GetDefend(),GetSex(),GetSeries(),GetName(),GetUUID (),GetLeadExp(),GetLeadLevel(),GetLevel(),GetRestA P(),GetRestSP(),GetLucky(),GetEng(),GetDex(),GetSt rg(),GetVit(),GetCash()
 
 Pay, Earn, PrePay:trừ tiền trong người,them tiền,trả lại tiền
 
 Cú pháp: Pay(sốtiền)
 Earn(sốtiền)
 PrePay:chưa rõ
 
 ExeScript: Chạy file script chỉ định
 
 Cú pháp:ExeScript(“Đường Dẫn script”)
 
 Vd:ExeScript(\\Script\\123.lua)
 
 AttackNpc:Tấn công NPC
 
 Cú pháp: AttackNpc(NpcDwid,ÎïÀíÉ˺¦Öµ£¬±ù£¬ »ð£¬µç£¬¶¾£©)Lần sửa cuối bởi tvnnam, ngày 20-07-15 lúc 07:38 AM.  CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF 
 
- 
	
The Following 9 Users Say Thank You to tvnnam For This Useful Post:dovietthai (13-02-16), hiepsirom12 (23-11-18), khungboktvn (12-09-15), lehieuaa (07-11-15), minhhuylatoi (19-04-23), nguyennhuloi (20-02-16), thanhtunghn (16-07-15), trilap2004 (22-05-19), vovanson (16-07-15) 
 
	
		Chọn nhanh
		Võ Lâm Truyền Kỳ (Jx Server)
		Lên trên
	
	
	- Khu vực riêng
- Thiếp lập
- Tin nhắn riêng
- Các theo dõi
- Đang trực tuyến
- Tìm diễn đàn
- Trang chính
- Diễn đàn
- ĐẠI SẢNH CLBGAMESVN
- GIAO LƯU CÙNG DOANH NGHIỆP
- CLB NGHIÊN CỨU & PHÁT TRIỂN MMORPG
					- Mu Server
- Võ Lâm Truyền Kỳ (Jx Server)
- Thiên Long Bát Bộ
- Kiếm Thế Server
- Gunny - Webgame Bắn Súng
- Hiệp Khách Giang Hồ
- Tổng Hợp Các Server Games Khác
- Private Server For Linux
- CHUYÊN ĐỀ WEB GAMES
- Old Archived Server
 
- GIỚI THIỆU CÁC SERVER GAME PRIVATE
- CLB GAMES OFFLINE & THẢO LUẬN GAMES
- CLB WEBMASTER - SECURITY - SOFTWARE
- CHUYÊN MỤC GIẢI TRÍ
- LINH TINH KHÁC
Các Chủ đề tương tự
- 
  [JX] Nhờ các Cao thủ chuyên về Linux viết giúp cẩm nang Ebook 1.0 sever linuxBởi tvnnam trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 6Bài viết cuối: 15-02-17, 08:16 PM
- 
  [JX] Tổng Hợp các sever Linux Hot nhất hiện nay giúp ACE tránh 1 số lỗi sever cũBởi tvnnam trong diễn đàn Võ Lâm Truyền Kỳ (Jx Server)Trả lời: 524Bài viết cuối: 12-04-16, 10:54 PM
- 
  [JX] [HELP] JX-LINUX - nhờ pro nào chỉ dùm cách fix exp trong sever linuxBởi id_nothing trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 6Bài viết cuối: 31-05-15, 08:26 AM
- 
  [JX] (HOT) cách reg ac sever 6.0 linux có sẵn trong severBởi caothiengthien trong diễn đàn Võ Lâm Truyền Kỳ (Jx Server)Trả lời: 3Bài viết cuối: 30-04-14, 10:57 PM
- 
  [JX] Update for sever Tuyệt Đỉnh Võ Lâm [update giáng sinh + tết]Bởi phamngochai2 trong diễn đàn Võ Lâm Truyền Kỳ (Jx Server)Trả lời: 43Bài viết cuối: 09-11-12, 11:15 AM

 
				 
				 
				 
				 
				 
				 
			


 
			
			 
					
					
					
						 Trả lời kèm Trích dẫn
  Trả lời kèm Trích dẫn 
			

 
			 Gửi bởi lntinh
					[Only registered and activated users can see links.
 Gửi bởi lntinh
					[Only registered and activated users can see links.  có gì đóng góp topic cho vui bạn nhé
 có gì đóng góp topic cho vui bạn nhé
						