[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
Hello & Welcome to our community. Is this your first visit? Đăng Ký
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 79 1 2 3 11 51 ... CuốiCuối
Kết quả 1 đến 10 của 783
  1. #1
    Thành Viên Tâm Huyết tvnnam's Avatar
    Ngày tham gia
    Apr 2014
    Đang ở
    Hưng Yên
    Bài viết
    1,692
    Thanks
    488
    Thanked 979 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 L­u 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},
    {"L­u Tiªn QuÇn",0,2,13},
    }
    },
    [3]=
    {
    szName = "§ai l­ng",
    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:

    Do­wnload 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?

    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

  2. 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)

  3. #2
    Thà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 Linux

    Update 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é!

  4. The Following 2 Users Say Thank You to greentears For This Useful Post:

    lythelong (23-04-16), remesouth (19-03-19)

  5. #3
    Thành Viên Tâm Huyết tvnnam's Avatar
    Ngày tham gia
    Apr 2014
    Đang ở
    Hưng Yên
    Bài viết
    1,692
    Thanks
    488
    Thanked 979 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

    Làm 1 bài đóng góp trước..... để 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 l­ng", 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 nh­ng nhËn lÊy", tbOpt)
    end


    function get_normal_item()
    local tbOpt =
    {
    --{"NhËn 5 viªn KNB.", cszb},
    {"H­ng 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 L­u 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",
    "L­u 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 L­u 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},
    {"L­u Tiªn QuÇn",0,2,13},
    }
    },
    [3]=
    {
    szName = "§ai l­ng",
    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ẻ SPOILER
    Lầ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

  6. 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)

  7. #4
    Thành Viên heodat139's Avatar
    Ngày tham gia
    Nov 2014
    Bài viết
    116
    Thanks
    48
    Thanked 6 Times in 5 Posts

    Icon14 Ðề: Tổng hợp tất cả sever + update + Fix lỗi ....Tất tần tật từ A->Z Sever Linux

    Up cho bài viết 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é!

  8. #5
    Thành Viên lntinh's Avatar
    Ngày tham gia
    Jun 2015
    Bài viết
    68
    Thanks
    27
    Thanked 19 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 Linux

    Nhữ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é!

  9. #6
    Thành Viên Tâm Huyết tvnnam's Avatar
    Ngày tham gia
    Apr 2014
    Đang ở
    Hưng Yên
    Bài viết
    1,692
    Thanks
    488
    Thanked 979 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

    Trích dẫn Gửi bởi lntinh [Only registered and activated users can see links. ]
    Nhữ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
    ok. thank Bạn đã góp ý có gì đóng góp topic cho vui bạn nhé
    CTV- GIẢI ĐÁP THẮC MẮC JX LINUX OFF

  10. 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)

  11. #7
    Thành Viên lntinh's Avatar
    Ngày tham gia
    Jun 2015
    Bài viết
    68
    Thanks
    27
    Thanked 19 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 Linux

    Trích dẫn Gửi bởi tvnnam [Only registered and activated users can see links. ]
    ok. thank Bạn đã góp ý có gì đóng góp topic cho vui bạn nhé
    tí nữa mình viết bài add KTC chi tiết cho bạn nào chưa biết hoặc ko làm đc như hướng dẫn của Mod Vipbk
    Khách viếng thăm hãy cùng lntinh xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  12. 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)

  13. #8
    Thà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 Linux

    ok đã 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é!

  14. #9
    Thà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 Linux

    Cá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é!

  15. #10
    Thành Viên Tâm Huyết tvnnam's Avatar
    Ngày tham gia
    Apr 2014
    Đang ở
    Hưng Yên
    Bài viết
    1,692
    Thanks
    488
    Thanked 979 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

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

  16. 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)

 

 
Trang 1 của 79 1 2 3 11 51 ... CuốiCuối

Các Chủ đề tương tự

  1. [JX] Nhờ các Cao thủ chuyên về Linux viết giúp cẩm nang Ebook 1.0 sever linux
    Bởi tvnnam trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 6
    Bài viết cuối: 15-02-17, 08:16 PM
  2. [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: 524
    Bài viết cuối: 12-04-16, 10:54 PM
  3. [JX] [HELP] JX-LINUX - nhờ pro nào chỉ dùm cách fix exp trong sever linux
    Bởi id_nothing trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 6
    Bài viết cuối: 31-05-15, 08:26 AM
  4. [JX] (HOT) cách reg ac sever 6.0 linux có sẵn trong sever
    Bởi caothiengthien trong diễn đàn Võ Lâm Truyền Kỳ (Jx Server)
    Trả lời: 3
    Bài viết cuối: 30-04-14, 10:57 PM
  5. [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: 43
    Bài viết cuối: 09-11-12, 11:15 AM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 06:01 PM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.