Как сделать GK, Buffer, GMshop?

Тема в разделе "Manuals / Мануалы", создана пользователем Maiden7, 14 янв 2018.

  1. В этом мануале мы научимся делать собственно Gate Kepeer'a (ГК), а начнем мы с того, что откроем scripts -> AI.obj
    Там ищем класс teleporter_multi_list.

    Код:
    class 1 clavier : teleporter_multi_list
    property_define_begin
    telposlist_begin Position1
    {"Aden"; 146705; 25840; -2000; 1500; 5 }
    {"Coliseum"; 146440; 46723; -3400; 1500; 0 }
    {"Dark Elven Village"; 9716; 15502; -4500; 1500; 0 }
    {"Dion"; 15744; 142928; -2704; 1500; 2 }
    {"Dwarven Village"; 115120; -178112; -916; 1500; 0 }
    {"Elven Village"; 46890; 51531; -2976; 1500; 0 }
    {"Floran Village"; 17953; 170234; -3504; 1500; 2 }
    {"Giran"; 83458; 148012; -3400; 1500; 3 }
    {"Giran Harbor"; 47935; 186810; -3420; 1500; 0 }
    {"Gludin"; -80826; 149775; -3043; 1500; 0 }
    {"Gludio"; -12694; 122776; -3114; 1500; 1 }
    {"Goddard"; 148024; -55281; -2728; 1500; 7 }
    {"Hardins Academy"; 105846; 109762; -3170; 1500; 3 }
    {"Heine"; 111333; 219345; -3546; 1500; 6 }
    {"Hunter Village"; 117156; 76878; -2670; 1500; 0 }
    {"Ivory Tower"; 85343; 16267; -3640; 1500; 4 }
    {"Orc Village"; -45186; -112459; -236; 1500; 0 }
    {"Oren"; 82956; 53162; -1470; 1500; 4 }
    {"Rune Town"; 43835; -47749; -792; 1500; 0 }
    {"Talking Island"; -84141; 244623; -3729; 1500; 0 }
    telposlist_end
    telposlist_begin Position2
    {"Elven Fortress (10-25)"; 29280; 74942; -3776; 1500; 0 }
    {"Elven Ruins (10-20)"; -112802; 234963; -3688; 1500; 0 }
    {"Ruins of Despair (20-25)"; -20152; 137254; -3896; 1500; 0 }
    {"Wastelands (25-35)"; -16510; 209226; -3664; 1500; 0 }
    {"Execution Grounds (30-40)"; 44691; 148454; -3696; 1500; 0 }
    {"Cruma Tower (40-52)"; 16580; 114178; -3480; 1500; 0 }
    {"Death Pass (35-52)"; 71521; 118056; -3672; 1500; 0 }
    {"Dragon Valley (55-62)"; 122589; 111117; -3760; 1500; 0 }
    {"Dragon Valley Caves (60-78)"; 130816; 114429; -3720; 1500; 0 }
    {"Enchanted Valley (45-55)"; 124798; 61741; -3992; 1500; 0 }
    {"Cemetery (45-58)"; 166612; 20315; -3328; 1500; 0 }
    {"Forbidden GateWay (58-67)"; 185326; 20299; -3272; 1500; 0 }
    {"The Front of Anghel Waterfall (50-60)"; 163341; 91374; -3320; 1500; 0 }
    {"Giants Cave (55-67)"; 174465; 52672; -4368; 1500; 0 }
    {"Forsaken Plains (55-65)"; 167285; 37109; -4008; 1500; 0 }
    {"Toi Enterance (58-78)"; 114645; 21491; -5128; 1500; 0 }
    {"Blazing Swamp (65-77)"; 159546; -13085; -2872; 1500; 0 }
    {"Rune Town Hunting Grounds (58-74)"; 59106; -67593; -3384; 1500; 0 }
    {"Hot Springs (70-78)"; 153889; -101027; -2936; 1500; 0 }
    {"Ketra Orc Outpost (76-87)"; 146600; -68003; -3688; 1500; 0 }
    {"Imperial Tomb (76-82+)"; 186896; -75557; -2832; 1500; 0 }
    {"Forge Of God (78-82+)"; 169453; -116244; -2360; 1500; 0 }
    {"Varka Silenos Outpost (76-87)"; 125809; -40781; -3744; 1500; 0 }
    {"Patriots Necropolis"; -25472; 77728; -3446; 15500; 0 }
    {"Ascetics Necropolis"; -56064; 78720; -3011; 18600; 0 }
    {"Saints Necropolis"; 79296; 209584; -3709; 9800; 0 }
    {"Catacomb of Dark Omens"; -22480; 13872; -3174; 20400; 0 }
    telposlist_end
    telposlist_begin PositionNoblessNeedItemTown
    {"Talking Island Village"; -84141; 244623; -3729; 1; 0 }
    {"The Elven Village"; 46951; 51550; -2976; 1; 0 }
    {"The Dark Elven Village"; 9709; 15566; -4500; 1; 0 }
    {"Orc Village"; -45158; -112583; -236; 1; 0 }
    {"Dwarven Village"; 115120; -178224; -917; 1; 0 }
    {"The Village of Gludin"; -80826; 149775; -3043; 1; 0 }
    {"The Town of Gludio"; -12694; 122776; -3114; 1; 0 }
    {"The Town of Dion"; 15671; 142994; -2704; 1; 0 }
    {"Heine"; 111455; 219400; -3546; 1; 0 }
    {"Town of Oren"; 83011; 53207; -1470; 1; 0 }
    {"Hunters Village"; 117088; 76931; -2670; 1; 0 }
    {"Town of Aden"; 146783; 25808; -2000; 1; 0 }
    {"Rune Castle Town"; 43826; -47688; -792; 1; 0 }
    {"Goddard Castle Town"; 147978; -55408; -2728; 1; 0 }
    {"Hardin's Academy"; 105918; 109759; -3170; 1; 0 }
    {"Giran Harbor"; 47935; 186810; -3420; 1; 0 }
    {"Arena (Gludin Harbor)"; -87328; 142266; -3640; 1; 0 }
    {"Arena (Giran Castle Town)"; 73579; 142709; -3768; 1; 0 }
    {"Coliseum"; 146440; 46723; -3400; 1; 0 }
    telposlist_end
    telposlist_begin PositionNoblessNeedItemField
    {"Dragon Valley"; 122824; 110836; -3727; 1; 0 }
    {"Dragon Valley Death Pass"; 73024; 118485; -3720; 1; 0 }
    {"Brekas Stronghold"; 85389; 131366; -3707; 1; 0 }
    {"Gorgons Flower Garden"; 113553; 134813; -3668; 1; 0 }
    {"Tanor Canyon"; 69373; 155208; -3746; 1; 0 }
    {"Devils Isle Entrance"; 43408; 206881; -3752; 1; 0 }
    {"Lairs of Antharas Entrance"; 131131; 114597; -3720; 1; 0 }
    {"Lairs of Antharas 1"; 147071; 120156; -4520; 1; 0 }
    {"Lairs of Antharas 2"; 151689; 112615; -5520; 1; 0 }
    {"Lairs of Antharas Bridge"; 146425; 109898; -3424; 1; 0 }
    {"Lairs of Antharas Heart"; 154396; 121235; -3808; 1; 0 }
    telposlist_end
    telposlist_begin PositionNoblessNeedItemSSQ
    {"Necropolis Of Sacrifice"; -41184; 206752; -3357; 1; 0 }
    {"Heretics Catacomb"; 39232; 143568; -3651; 1; 0 }
    {"Pilgrims Necropolis"; 45600; 126944; -3686; 1; 0 }
    {"Catacomb Of The Branded"; 43200; 170688; -3251; 1; 0 }
    {"Worshipers Necropolis"; 107514; 174329; -3704; 1; 0 }
    {"Catacomb Of The Apostate"; 74672; 78032; -3398; 1; 0 }
    {"Patriots Necropolis"; -25472; 77728; -3446; 1; 0 }
    {"Catacomb Of The Witch"; 136672; 79328; -3702; 1; 0 }
    {"Ascetics Necropolis"; -56064; 78720; -3011; 1; 0 }
    {"Martyr's Necropolis"; 114496; 132416; -3101; 1; 0 }
    {"Disciples Necropolis"; 168560; -17968; -3174; 1; 0 }
    {"Saints Necropolis"; 79296; 209584; -3709; 1; 0 }
    {"Catacomb of Dark Omens"; -22480; 13872; -3174; 1; 0 }
    {"Catacomb of the Forbidden Path"; 110912; 84912; -4816; 1; 0 }
    telposlist_end
    telposlist_begin PositionNoblessNoItemTown
    {"Talking Island Village"; -84141; 244623; -3729; 1000; 0 }
    {"The Elven Village"; 46951; 51550; -2976; 1000; 0 }
    {"The Dark Elven Village"; 9709; 15566; -4500; 1000; 0 }
    {"Orc Village"; -45158; -112583; -236; 1000; 0 }
    {"Dwarven Village"; 115120; -178224; -917; 1000; 0 }
    {"The Village of Gludin"; -80826; 149775; -3043; 1000; 0 }
    {"The Town of Gludio"; -12694; 122776; -3114; 1000; 0 }
    {"The Town of Dion"; 15671; 142994; -2704; 1000; 0 }
    {"Heine"; 111455; 219400; -3546; 1000; 0 }
    {"Town of Oren"; 83011; 53207; -1470; 1000; 0 }
    {"Hunters Village"; 117088; 76931; -2670; 1000; 0 }
    {"Town of Aden"; 146783; 25808; -2000; 1000; 0 }
    {"Rune Castle Town"; 43826; -47688; -792; 1000; 0 }
    {"Goddard Castle Town"; 147978; -55408; -2728; 1000; 0 }
    {"Hardin's Academy"; 105918; 109759; -3170; 1000; 0 }
    {"Giran Harbor"; 47935; 186810; -3420; 1000; 0 }
    {"Arena (Gludin Harbor)"; -87328; 142266; -3640; 1000; 0 }
    {"Arena (Giran Castle Town)"; 73579; 142709; -3768; 1000; 0 }
    {"Coliseum"; 146440; 46723; -3400; 1000; 0 }
    telposlist_end
    telposlist_begin PositionNoblessNoItemField
    {"Dragon Valley"; 122824; 110836; -3727; 1000; 0 }
    {"Dragon Valley Death Pass"; 73024; 118485; -3720; 1000; 0 }
    {"Brekas Stronghold"; 85389; 131366; -3707; 1000; 0 }
    {"Gorgons Flower Garden"; 113553; 134813; -3668; 1000; 0 }
    {"Tanor Canyon"; 69373; 155208; -3746; 1000; 0 }
    {"Devils Isle Entrance"; 43408; 206881; -3752; 1000; 0 }
    {"Lairs of Antharas Entrance"; 131131; 114597; -3720; 1000; 0 }
    {"Lairs of Antharas 1"; 147071; 120156; -4520; 1000; 0 }
    {"Lairs of Antharas 2"; 151689; 112615; -5520; 1000; 0 }
    {"Lairs of Antharas Bridge"; 146425; 109898; -3424; 1000; 0 }
    {"Lairs of Antharas Heart"; 154396; 121235; -3808; 1000; 0 }
    telposlist_end
    telposlist_begin PositionNoblessNoItemSSQ
    {"Necropolis Of Sacrifice"; -41184; 206752; -3357; 1000; 0 }
    {"Heretics Catacomb"; 39232; 143568; -3651; 1000; 0 }
    {"Pilgrims Necropolis"; 45600; 126944; -3686; 1000; 0 }
    {"Catacomb Of The Branded"; 43200; 170688; -3251; 1000; 0 }
    {"Worshipers Necropolis"; 107514; 174329; -3704; 1000; 0 }
    {"Catacomb Of The Apostate"; 74672; 78032; -3398; 1000; 0 }
    {"Patriots Necropolis"; -25472; 77728; -3446; 1000; 0 }
    {"Catacomb Of The Witch"; 136672; 79328; -3702; 1000; 0 }
    {"Ascetics Necropolis"; -56064; 78720; -3011; 1000; 0 }
    {"Martyr's Necropolis"; 114496; 132416; -3101; 1000; 0 }
    {"Disciples Necropolis"; 168560; -17968; -3174; 1000; 0 }
    {"Saints Necropolis"; 79296; 209584; -3709; 1000; 0 }
    {"Catacomb of Dark Omens"; -22480; 13872; -3174; 1000; 0 }
    {"Catacomb of the Forbidden Path"; 110912; 84912; -4816; 1000; 0 }
    telposlist_end
    property_define_end
    class_end
    Где

    Код:
    {"Catacomb of Dark Omens"; -22480; 13872; -3174; 1000; 0 }
    {"Имя локации"; x; y; z; Стоимость; 0 (налог)}
    Html Gate Kepeer'a:

    Код:
    <html>
    <head>
    <body>
    Gatekeeper Clarissa:
    <br> We Gatekeepers use the will of the Gods to open the doors to time and space and teleport others. Which door would you like to open?
    <br><a action="bypass -h menu_select?ask=-8&reply=1"> Teleport </a>
    <br><a action="bypass -h menu_select?ask=-8&reply=2"> Hunting Grounds </a>
    <br><a action="bypass -h menu_select?ask=-303&reply=518"> Exchange with the Dimension Diamond</a>
    <br><a action="bypass -h menu_select?ask=-19&reply=0"> [Noblesse Only] teleport</a>
    <br><a action="bypass -h menu_select?ask=255&reply=4" msg="811;Monster Derby Track"> Move to Monster Derby Track (Free of Charge)</a>
    <br><a action="bypass -h talk_select">Quest </a>
    </body>
    </html>
    Где reply=1 - это лист локаций в АИ, которые покажет вам ГК. В данном случае это telposlist_begin Position1, то есть:

    Код:
    {"Aden"; 146705; 25840; -2000; 1500; 5 }
    {"Coliseum"; 146440; 46723; -3400; 1500; 0 }
    {"Dark Elven Village"; 9716; 15502; -4500; 1500; 0 }
    {"Dion"; 15744; 142928; -2704; 1500; 2 }
    {"Dwarven Village"; 115120; -178112; -916; 1500; 0 }
    {"Elven Village"; 46890; 51531; -2976; 1500; 0 }
    {"Floran Village"; 17953; 170234; -3504; 1500; 2 }
    {"Giran"; 83458; 148012; -3400; 1500; 3 }
    {"Giran Harbor"; 47935; 186810; -3420; 1500; 0 }
    {"Gludin"; -80826; 149775; -3043; 1500; 0 }
    {"Gludio"; -12694; 122776; -3114; 1500; 1 }
    {"Goddard"; 148024; -55281; -2728; 1500; 7 }
    {"Hardins Academy"; 105846; 109762; -3170; 1500; 3 }
    {"Heine"; 111333; 219345; -3546; 1500; 6 }
    {"Hunter Village"; 117156; 76878; -2670; 1500; 0 }
    {"Ivory Tower"; 85343; 16267; -3640; 1500; 4 }
    {"Orc Village"; -45186; -112459; -236; 1500; 0 }
    {"Oren"; 82956; 53162; -1470; 1500; 4 }
    {"Rune Town"; 43835; -47749; -792; 1500; 0 }
    {"Talking Island"; -84141; 244623; -3729; 1500; 0 }
    То есть, в любой лист можете добавить нужные локации.
    Не слишком обременяя себя мыслительной деятельностью, но обладая усидчивостью и трудолюбием, вы можете сделать глобал ГК всего за несколько часов.

    Делаем GMshop:
    Открываем multisell.txt (папка scripts), там видим следующее:

    Код:
    MultiSell_begin [blackmerchant_weapon] 1is_dutyfree = 1
    selllist={
    {{{[flamberge];1}};{{[crystal_c];573};{[crystal_d];2865}}};
    {{{[stormbringer];1}};{{[crystal_c];573};{[crystal_d];2865}}};
    {{{[sword_of_delusion];1}};{{[crystal_c];1075};{[crystal_d];5375}}};
    {{{[war_pick];1}};{{[crystal_c];573};{[crystal_d];2865}}};
    {{{[war_axe];1}};{{[crystal_c];1075};{[crystal_d];5375}}};
    {{{[crystal_staff];1}};{{[crystal_c];573};{[crystal_d];2865}}};
    {{{[sage's_staff];1}};{{[crystal_c];1075};{[crystal_d];5375}}};
    {{{[cursed_dagger];1}};{{[crystal_c];573};{[crystal_d];2865}}};
    {{{[dark_screamer];1}};{{[crystal_c];1075};{[crystal_d];5375}}};
    {{{[chakram];1}};{{[crystal_c];573};{[crystal_d];2865}}};
    {{{[fist_blade];1}};{{[crystal_c];1075};{[crystal_d];5375}}};
    {{{[crystallized_ice_bow];1}};{{[crystal_c];573};{[crystal_d];2865}}};
    {{{[akat_long_bow];1}};{{[crystal_c];1075};{[crystal_d];5375}}};
    {{{[orcish_glaive];1}};{{[crystal_c];573};{[crystal_d];2865}}};
    {{{[poleaxe];1}};{{[crystal_c];1075};{[crystal_d];5375}}}
    }
    MultiSell_end
    По такому же принципу сделаем наш GMshop. Только вместо кристалов у нас будет адена. Открываем самый конец мультиселла, Пропускаем 2 строчки, и пишем следующее:

    Код:
    MultiSell_begin [Пишем тут любое не использованное название] 575 (любое чило, главное, что бы второго такого не было в мультиселле)is_dutyfree = 1
    is_show_all = 1
    selllist={
    {{{[ring_of_aurakyria];1}};{{[coin_of_luck];5325000}}};
    {{{[ring_of_baium];1}};{{[coin_of_luck];6450000}}};
    {{{[sanddragon's_earing];1}};{{[coin_of_luck];5950000}}};
    {{{[earring_of_antaras];1}};{{[coin_of_luck];8200000}}};
    {{{[earring_of_zaken];1}};{{[coin_of_luck];7520000}}};
    {{{[dragon_necklace];1}};{{[coin_of_luck];8150000}}};
    {{{[necklace_of_valakas];1}};{{[coin_of_luck];12600000}}}
    }
    MultiSell_end
    Где вместо ring_of_aurakyria любой предмет, прописанный в itemdata.txt, после названия итема идет количество,затем мы видим coin_of_luck. Вместо коинов могут быть опять же любые предметы из itemdata.txt, adena, например. Потом идет количество вещей, на которые обменивается наш итем. Хочу предостеречь от распространенной ошибки: после самой последней строчки не должно быть ;. То есть, все строчки у нас выглядят вот так:

    Код:
    {{{[dragon_necklace];1}};{{[coin_of_luck];8150000}}};Последняя должна быть такой:
    {{{[dragon_necklace];1}};{{[coin_of_luck];8150000}}}
    Наш мультиселл готов. Теперь остается только привязать НПС к этому мультиселлу. Для этого подходим к желаемому нпс в игре на правах гма и разговариваем с ним. В чате пашишут имя его хтмлки. Например, galladuchi0001. Лезем в папку хтмл, ищем искомую хтмл-ку, открываем ее блокнотом. Там видим следующую срочку:

    Код:
    <a action="bypass -h menu_select?ask=-303&reply=1">Buy weapon</a>
    Где 1 - это номер мультиселла, который мы указали рядом с именем мультиселла.

    Вот и все, при должном рвении хороший гм шоп (или любой другой обменник) самому. Или скачать готовый, и поправить в нем цены.

    Делаем баффера:
    Открываем свой AI.obj.

    Код:
    class 1 buffer_npc : default_npcparameter_define_begin
    string fnHi "buffer_npc001.htm"
    string fnYouAreChaotic "buffer_npc002.htm"
    string fnNotEnoughAdena "buffer_npc003.htm"
    string fnWait "buffer_npc004.htm"
    int ItemBuff 57
    int Amount 1000
    int Delay 500
    parameter_define_end
    
    
    handler 13 11 // CREATED
    variable_begin
    "myself"
    "_choiceN"
    "_code"
    "_from_choice"
    variable_end
    
    
    push_event // myself
    push_const 704
    add
    fetch_i // i_ai0
    push_const 308
    add
    push_reg_sp
    fetch_i
    push_const 0
    assign4
    shift_sp -1
    handler_end
    
    
    handler 3 38 // TALKED
    variable_begin
    "talker"
    "myself"
    "_choiceN"
    "_code"
    "_from_choice"
    variable_end
    
    
    push_event // talker
    push_const 40
    add
    fetch_i // karma
    push_const 468
    add
    fetch_i4
    push_const 0
    greater
    branch_false L2
    L1
    push_event // myself
    push_const 704
    add
    fetch_i
    push_event // talker
    push_const 40
    add
    fetch_i
    push_parameter fnYouAreChaotic
    func_call 184680516 // func[ShowPage]
    shift_sp -2
    shift_sp -1
    jump L3
    L2
    push_event // myself
    push_const 704
    add
    fetch_i
    push_event // talker
    push_const 40
    add
    fetch_i
    push_parameter fnHi
    func_call 184680516 // func[ShowPage]
    shift_sp -2
    shift_sp -1
    L3
    handler_end
    
    
    handler 32 134 // MENU_SELECTED
    variable_begin
    "talker"
    "ask"
    "reply"
    "myself"
    "_choiceN"
    "_code"
    "_from_choice"
    variable_end
    
    
    push_event // ask
    push_const 160
    add
    fetch_i4
    push_const 201
    negate
    equal
    push_reg_sp
    fetch_i
    branch_false L4
    shift_sp 1
    push_event // myself
    push_const 704
    add
    fetch_i
    push_event // talker
    push_const 40
    add
    fetch_i
    push_parameter ItemBuff
    func_call 184680579 // func[OwnItemCount]
    shift_sp -2
    push_parameter Amount
    greater_equal
    and
    L4
    branch_false L5
    L6
    push_event // myself
    push_const 704
    add
    fetch_i // i_ai0
    push_const 308
    add
    fetch_i4
    push_const 0
    equal
    branch_false L8
    L7
    push_event // myself
    push_const 704
    add
    fetch_i // i_ai0
    push_const 308
    add
    push_reg_sp
    fetch_i
    push_const 1
    assign4
    shift_sp -1
    push_event // myself
    push_const 704
    add
    fetch_i
    push_event // talker
    push_const 40
    add
    fetch_i
    push_parameter ItemBuff
    push_parameter Amount
    func_call 184746114 // func[DeleteItem1]
    shift_sp -3
    shift_sp -1
    push_event // myself
    push_const 704
    add
    fetch_i
    push_event // talker
    push_const 40
    add
    fetch_i
    push_event // reply
    push_const 164
    add
    fetch_i
    push_const 1
    push_const 1
    push_const 1000000
    func_call 184877074 // func[AddUseSkillDesire]
    shift_sp -5
    shift_sp -1
    push_event // myself
    push_const 704
    add
    fetch_i
    push_event // talker
    push_const 40
    add
    fetch_i
    push_parameter fnHi
    func_call 184680516 // func[ShowPage]
    shift_sp -2
    shift_sp -1
    push_event // myself
    push_const 704
    add
    fetch_i
    push_const 1
    push_parameter Delay
    func_call 184680487 // func[AddTimerEx]
    shift_sp -2
    shift_sp -1
    jump L9
    L8
    shift_sp 1
    push_event // myself
    push_const 704
    add
    fetch_i
    push_event // talker
    push_const 40
    add
    fetch_i
    push_parameter fnWait
    func_call 184680516 // func[ShowPage]
    shift_sp -2
    shift_sp -1
    L9
    jump L10
    L5
    shift_sp 1
    push_event // myself
    push_const 704
    add
    fetch_i
    push_event // talker
    push_const 40
    add
    fetch_i
    push_parameter fnNotEnoughAdena
    func_call 184680516 // func[ShowPage]
    shift_sp -2
    shift_sp -1
    L10
    handler_end
    
    
    handler 12 20 // TIMER_FIRED_EX
    variable_begin
    "timer_id"
    "myself"
    "_choiceN"
    "_code"
    "_from_choice"
    variable_end
    
    
    push_event // timer_id
    push_const 236
    add
    fetch_i4
    push_const 1
    equal
    branch_false L12
    L11
    push_event // myself
    push_const 704
    add
    fetch_i // i_ai0
    push_const 308
    add
    push_reg_sp
    fetch_i
    push_const 0
    assign4
    shift_sp -1
    L12
    handler_end
    
    
    class_end
    Далее открываем npcdata, туда вставляем:

    Код:
    npc_begin citizen 14003 [buffer_npc] level=70 acquire_exp_rate=0 acquire_sp=0 unsowing=1 clan={} ignore_clan_list={} clan_help_range=300 slot_chest=[] slot_rhand=[] slot_lhand=[] shield_defense_rate=0 shield_defense=0 skill_list={@s_race_undead;@s_npc_weakness_holy3;@ s_evil_attack;@s_npc_weakness_fire1} npc_ai={[buffer_npc];{[fnHi]=[buffer_npc001.htm]}} category={} race=human sex=female undying=1 can_be_attacked=0 corpse_time=1 no_sleep_mode=0 agro_range=0 ground_high={120;0;0} ground_low={50;0;0} exp=429634528 org_hp=2444.5 org_hp_regen=7.5 org_mp=10000 org_mp_regen=200 collision_radius={8;8} collision_height={24;24} str=60 int=90 dex=50 wit=90 con=60 men=40 base_attack_type=sword base_attack_range=40 base_damage_range={0;0;80;120} base_rand_dam=30 base_physical_attack=688.86373 base_critical=4 physical_hit_modify=4.75 base_attack_speed=253 base_reuse_delay=0 base_magic_attack=470.4 base_defend=295.91 base_magic_defend=216.53 physical_avoid_modify=0 soulshot_count=0 spiritshot_count=0 hit_time_factor=0.6 item_make_list={} corpse_make_list={} additional_make_list={} additional_make_multi_list={} hp_increase=0 mp_increase=0 safe_height=100 npc_end
    Ну и NPC_PCH:

    Код:
    [buffer_npc] = 1014003
    Далее хтмл:

    Код:
    <html><body>Buffer NPC:<br>
    Por solo <font color="LEVEL">1000 adenas</font> te podemos dar auras! Elije aquellas que prefieras!<br>
    <table><tr><td width=80>
    <a action="bypass -h menu_select?ask=-201&reply=273411">[Might]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=266243">[Shield]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=275715">[Focus]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=308226">[Windwalk]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=317443">[Guidance]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=278275">[Agility]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=265218">[Magic Barrier]</a>
    </td><td width=100>
    <a action="bypass -h menu_select?ask=-201&reply=277763">[Acumen]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=271107">[Empower]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=268294">[Bless the Soul]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=271874">[Berserker Spirit]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=267009">[Holy Weapon]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=264964">[Mental Shield]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=275974">[Concrentrarion]</a>
    </td><td width=100>
    <a action="bypass -h menu_select?ask=-201&reply=267267">[Regeneration]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=316931">[Freezing Skin]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=267526">[Bless the Body]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=318214">[Bless the Shield]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=278018">[Haste]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=317955">[Death Wisper]</a><br>
    <a action="bypass -h menu_select?ask=-201&reply=274690">[Kiss Of Eva]</a>
    </td></tr></table>
    </body></html>
    Вам остается написать только хтмлки для функций и добавить NPC в клиент.

    Код:
    string fnYouAreChaotic "buffer_npc002.htm"
    string fnNotEnoughAdena "buffer_npc003.htm"
     

Партнеры