Мануал по созданию сервера!!!!
Качаем сервер тут
http://dump.ru/files/1/192255433/
Пароль на скачку la2base
Пасс на архив
www.la2base.ru
Сервер без геодаты. Для настройки - читайте мануалы по настройке с4 тут же на форуме. Если кто то захочет добавить информации по серверу - в пм.
Еще для сервера:
http://zone-emu.ifolder.ru/1122278 - 1я часть
http://zone-emu.ifolder.ru/1121568 - 2я часть
http://zone-emu.ifolder.ru/1122311 - 3я часть
Вот квадрат геодаты для ТоИ. Очень качественный. Проработанный до фанатизма. Мобы не стреляют сквозь стены, нигде нет невидимых стенок, нигде не застрять.
http://zone-emu.ifolder.ru/1132964
(Это предоставлено форумчанином LCANT - не забудте сказать ему спасибо, нажав допустим здесь.)
Пароль на последние архивы -
http://www.mmozone.ru
Начнем с того, что открываем свой AI.obj (папка scripts)
Там ищем класс 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 (по-моему это налог)}
Хтмл гейкипера:
Gatekeeper Clarissa:
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?
Teleport
Hunting Grounds
Exchange with the Dimension Diamond
[Noblesse Only] teleport
Move to Monster Derby Track (Free of Charge)
Quest
Где 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 }
То есть, в любой лист можете добавить нужные локации.
Не слишком обременяя себя мыслительной деятельностью, но обладая усидчивостью и трудолюбием, вы можете сделать глобал ГК всего за несколько часов.
2) Далее мануал по созданию ГМ-шопа.
Ну тут все проще простого. Открываем свой мультиселл (scripts), там видим следующее:
MultiSell_begin [blackmerchant_weapon] 1
is_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
Что это можеть быть? Люксор, конечно. (обмен кристаллов на веапон).
По такому же принципу сделаем наш гм шоп. Только вместо кри у нас буду адены. Открываем самый конец мультиселла, Пропускаем 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. Лезем в папку хтмл, ищем искомую хтмл-ку, открываем ее блокнотом. Там видим следующую срочку:
Buy weapon
Где 1 - это номер мультиселла, который мы указали рядом с именем мультиселла.
Вот и все, при должном рвении хороший гм шоп (или любой другой обменник) самому. Или скачать готовый, и поправить в нем цены.
_http://dump.ru/files/0/0084470174/ (allcheats - пароль
как сделать собственного бафера.
class 1 buffer_npc : default_npc
parameter_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,
Далее открываем 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
Далее хтмл:
Buffer NPC:
Por solo
1000 adenas te podemos dar auras! Elije aquellas que prefieras!
Вот и все. Вам остается написать только хтмлки для функций
string fnYouAreChaotic "buffer_npc002.htm"
string fnNotEnoughAdena "buffer_npc003.htm", это не сложно, ну и добавить нпц в клиент.
Как почистить весь мусор, после того, как чар был удален. Запрос в скуль.
Перед выполнением рекомендую сделать бэкап БД.
begin tran
delete from bookmark where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from nobless_achievements where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from olympiad_match where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from olympiad_result where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from Quest where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from shortcut_data where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from ssq_user_data where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_ActiveSkill where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_ban where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_blocklist where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_comment where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_deleted where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_friend where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_henna where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_history where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_item where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_log where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_macroinfo where macro_id in (SELECT macro_id FROM user_macro WHERE char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1)));
delete from user_macro where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_mail where id in (SELECT mail_id FROM user_mail_receiver WHERE receiver_id in (select char_id from user_data where (account_id = - 1)));
delete from user_mail where id in (SELECT mail_id FROM user_mail_sender WHERE sender_id in (select char_id from user_data where (account_id = - 1)));
delete from user_mail_receiver where receiver_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_mail_sender where sender_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_newbie where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_nobless where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_punish where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_recipe where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_skill where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_sociality where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_subjob where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete from user_surrender where char_id in (SELECT char_id FROM user_data WHERE (account_id = - 1));
delete FROM user_data WHERE (account_id = - 1);
commit(с)srh
Защищаем гм - аккаунт от брута и тп. вещей.
Качаем amped
[Builder]
UseIPFilter=true
; list of allowed IPs or host names, delimited by ";"
; i.e.: 127.0.0.1;11.22.33.*;11.44.*.*;foo.no-ip.com
IP=**.**.**;****.**.** (ИП гмов, разделенные точками с запятой.)
И закройте все порты, кроме 2106 и 7777. Ну и 1433 для реги.
Скрипт номер раз: регистрация.
В принцепе, должен работать, будучи вставленным в любую страницу, если не работает сделайте его на отдельной странице.
Если вы отите чтобы данные о пользователях: логин, пароль(в Незашифрованном виде), email, icq храниись в БД. то выполните SQL файл который прикреплён к этому сообщению. (Таблица должна быть создана там же где и таблица с аккаунтами для сервера.)
Скрипт №2 - статус сервера (On/Off +кол-во онлайн)
Скрип 3 - кто онлайн
# |
Ник |
Пол |
Левел |
Раса |
Профа |
Клан |
Карма |
Скрипт 4 - ротатор банеров
Нужно создать текстовый файл с именем ads.txt, в котором помещаете ссылки на ваши изображения в таком виде:

Скрипт номер 5 - топ игроков:
Для вставки курсора на страницу:
Сделал сервер, на зайти не могу, набираю акк, пасс, жму логин, и у меня дисконект.
Проблема из-за клиента или из-за протокола.
Когда запускаю start.bat он выдает такую ошибку "Системная библиотека user32.dll перемешена в памяти. Работа приложения будет нарушена. Перемешение произошло из-за того, что библиотека C:\windows\system32\advapi32.dll заняла область адрессов, зарезервированную для системных dll Windows. Обратитесь к поставщику за новой верчией библиотеки."
Это проблема из-за системы(windows), переустанови систему(windows).
Я поставил сервер ла2, вроде всё хорошо работает, но как только я выбираю перса меня сразу выкидывает.
Обнови клиента с оффа.
при попытке соединиться ЛогинСервер выдает следующее:
java.laang.illegalArgumentExpection: Bad Arguments
at javax.crypto.Cipher.doFinal(DashoA12275)
at net.sf.l2j.loginsrver.clientpackets.RequestAuthLog in.
(RequestAuthLogin.java:5
at net.sf.l2j.loginserver.ClientThread.run(ClientThre ad.java:183)
Все из-за клиента, если вы на него устанавливали какие-нибудь патчи.
При заходе в клиент мне пишет file is corupted.
Убей GameGuard.
Скачал сегодня сборку от ST, поставил датапак, всё настроил, логин сервер запустился, запускаю гэйм сервер, сначала всё нормально, но потом после инифиализации квестов вылазит такая ошибка:
Loaded: 254 quests
Initializing SiegeManager
Initializing TownManager
Initializing OlympiadStadiaManager
[Fatal Error] :11:32: Invalid byte 2 of 2-byte UTF-8 sequence.
org.xml.sax.SAXParseException: Invalid byte 2 of 2-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.parsers.DOMPars er.parse(Unknown So
urce)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBu ilderImpl.parse(Unk
nown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at net.sf.l2j.gameserver.script.ScriptDocument. (ScriptDocument.jav
a:4
at net.sf.l2j.gameserver.script.ScriptPackage.addFile s(ScriptPackage.jav
a:76)
at net.sf.l2j.gameserver.script.ScriptPackage.( ScriptPackage.java:
46)
at net.sf.l2j.gameserver.script.faenor.FaenorScriptEn gine.loadPackages(F
aenorScriptEngine.java:112)
at net.sf.l2j.gameserver.script.faenor.FaenorScriptEn gine.(FaenorS
criptEngine.java:69)
at net.sf.l2j.gameserver.script.faenor.FaenorScriptEn gine.getInstance(Fa
enorScriptEngine.java:60)
at net.sf.l2j.gameserver.GameServer.(GameServer .java:517)
at net.sf.l2j.gameserver.GameServer.main(GameServer.j ava:593)
Exception in thread "main" java.lang.NullPointerException
at net.sf.l2j.gameserver.script.faenor.FaenorScriptEn gine.parseScript(Fa
enorScriptEngine.java:180)
at net.sf.l2j.gameserver.script.faenor.FaenorScriptEn gine.parsePackages(
FaenorScriptEngine.java:166)
at net.sf.l2j.gameserver.script.faenor.FaenorScriptEn gine.(FaenorS
criptEngine.java:70)
at net.sf.l2j.gameserver.script.faenor.FaenorScriptEn gine.getInstance(Fa
enorScriptEngine.java:60)
at net.sf.l2j.gameserver.GameServer.(GameServer .java:517)
at net.sf.l2j.gameserver.GameServer.main(GameServer.j ava:593)[/color]
gameserver/data/scripts/playngwithfire.zip
извлеки из него файл, но архив не удаляй!
файл, который извлёк(PlayingWithFire.xml), открой блокнотом, и замени его содержимое на:
поидее можно просто запятые в параметре Chance поменять на точки...
но больше ничего не меняй! =)
Потом Файл/"сохранить как..." жми...
там выбери кодировку UTF-8...
сохрани...
если у тя WinRAR стоит, просто перетащи этот файл обратно в архив.
Можно ли создать NPC в игре???мне надо создать NPC для продажи некоторых вещей!!как это сделать??
Ну ставишь нпц, потом делаешь ему хтмл и в базе надо прописать... ну вобщем где то выше в FAQ написанно подробно как это сделать!
Сделал серв хочу его в инет загнать но есть 1 проблема незнаю как сделать регистрацию акк на саите
1Вариант: скачай себе готовый сайт под ява сборку - там все есть! (l2jz например)
2Вариант: напиши скрипт заполнения таблицы аккаунтов через базу данных.
3 Вариант: используй бат файл startSQLAccountManager.bat с заданными параметрами как CGI скрипт (по моему самое удобное)
Незнаю что делать поставил новые оружие в свой сервер а ах нет на сервере что делать помогите.
Чтоб их видить надо клиент допатчит чтоб они были не только в сервере но и в клиенте !
Как поставить кота с профами и ГМ шоп ?
команда //spawn 12613 создать Solinusa
команда //spawn 12371 создать Puss The Cat
Как сделать приветствие в игру!Я имею ввиду когда вводишь acaunt и password снизу есть приветсвие как сделать чтоб было написанно так-"Мы рады Вас видеть на Lineage2C4-а тут я хочу написать название своего сервера"!!!!!!!!!!
Это надо в системе (lineage2/system/systemmsg-e.dat расскодировать , а потом найти что писало до того (тоесть в оригинале) и заменить, чтоб расскодировать надо использовать l2encdec и L2Clientdat.
У меня стоит свой локальный l2c4j server!полоина дропа из мобов нету!а настраивать очень долго!скиньте мне пожалуйста droplist!Вот держите мой Droplist:
http://l2encore.3dn.ru/Settings/Files/droplist.TXT
запускаете Navicat, открываете базу l2jdb, удаляете свой фаил Droplist, тыкаете Import files и указываете путь до фаила что я выложил...
Как избавиться от Key is not correct!
Апдейт с оффа !
Где изменить скилы ?
Gameserver/data/skills/
Встретился с проблемой.. Обновил клиента с офф сервака.. и долго не мог раскодировать файл l2.ini с помощью l2encdec но встретился с программкой l2initool-она его раскодировала вторым способом, я изменил в ней айпишник и закодировал, теперь не запускается l2.exe даже заставку первоначальную не отображает..
Cколько точно весит закодированный л2.ини? если мне не отказывает память, весить должен 3.29кб. Если больше, пробуй закодировать с другими аргументами. Это раз. А во-вторых, я подразумеваю, что ты не патчил папку систем патчером из л2энкдека и поэтому л2.ехе считает его кривым, т.к. сам непатченный.
Жму Создать игрока ну настраиваю как мне надо рассу и т.д.Нажимаю Создать Никакой Реакции!
1) Нажми кнопку создатьи долго жди. Или выйди из игры при помощи ctrl+alt+del и зайди снова. персы должны уже создаться. (поставь так же приоретет на яву высокий, тогда все ок будет)
2) А, ну если 2 байта пишет, то скорее всего тебе надо просто удалить файлик PlayingWithFire. Он в этой сборке глючный.
На сборке СТ не работает коты с профами, тоесть коты работают, но проффы не дают
В СТ сборках в конфиге нужно включать котика не false или true а писать цифры!!!
1 только первая профа
1,2 первая и вторая
1,2,3 котик будет давать все три профы.
Как убрать копирайты которые появляються привходе на сервер?
/system/systemmsg-e.dat раскодировать через l2clientdat. потом найти (ctr + f)
что писало в оригинале, и заменить на что тебе надо
Если это про то когда заходиш за чара, то надо просто изминить в игре через админ панель, или в папке server .txt фаил изминить.
Как поставить табличку чтобы перед тем как войдти на сервер писало правило ?
Файл options.config найди следущее и поставь там true:
# Show L2J License when player enter game.
ShowL2JLicense = True
Установка MySQL
Устанавливаем MySQL. Можно ничего не настраивать и просто жать Next. Когда установка завершится вас спросят запустить ли конфигуратор. Нажмите да, запустится конфигуратор. Он попросит вас зарегистрироваться, но этого делать не обязательно, выберите самый последний вариант (Skip login). В одном из окон конфигурации вас попросят ввести пароль. Укажите любой пароль и запомните его, он вам ещё понадобится.
Установка J2SE(TM)
Запустите jdk-1_5_0_02-windows-i586-p.exe и просто дождитесь окончания установки.
Установка NaviCat
Установите Navicat. Запустите его и нажмите File -> New connection. Введите любое имя, хост оставьте localhost. Логин оставьте root и пароль тот что вы вводили при установке MySQL. Нажмите ОК.
В столбике слева появится соединение (называться будет именем которые вы указали). Нажмите на него правой кнопкой и выберите New Database. Введите в вернем поле l2jdb и нажмите OK. Можете закрыть NaviCat.
Установка l2j-server
Распакуйте архив l2j-server-ST.zip в отдельную директорию, назовём её к примеру server
Распаковываем содержимое архива в только что созданную папку.
Должно получится следующие:
В каталоге D:\server лежит 4 папки
Gameserver
Login
Sql
Tools
http://img150.imageshack.us/my.php?image=019fi.gif
Заходим в папку Tools:находим там файл database_installer.bat и изменяем (правый клик > изменить):
set mysqlBinPath=C:\Program Files\MySQL\MySQL Server 5.0\bin (путь к вашему mysql, по необходимости исправьте)
REM LOGINSERVER
set lsuser=root
set lspass= Ставим свой пароль который ввели в MySQL
set lsdb=l2jdb
set lshost=localhost
REM GAMESERVER
set gsuser=root
set gspass=Ставим свой пароль который ввели в MySQL
set gsdb=l2jdb
set gshost=localhost
Если вы делали всё как я написал, то вам нужно только указать здесь свой пароль в строках set lspass и set gspass.
Если вы установили MySQL в другую папку или другую версию MySQL, поменяйте путь к папке bin своей MySQL в стороке set mysqlBinPath.
Сохраняем и запускаем этот файл.
Видим следующие:
1 - Создание архивной копии базы данных сервера авторизации.
2 - Полная инсталяция сервера авторизации.
3 - Обновить таблицы в базе данных сервера авторзации.
4 - Перейти к установке Сервера игры.
5 - Выйти.
Введите значение:
Вводим 2
Очистка БД: l2jdb и установка сервера авторизации.
Cервер авторизации установлен.
Для продолжения нажмите любую клавишу . . .
1 - Создание архивной копии базы данных сервера игры.
2 - Полная инсталяция сервера игрыи.
3 - Обновить таблицы в базе данных сервера игры.
4 - Перейти к установке дополнительных параметров.
5 - Выйти.
Вводим 2
Обновление сервера игры.
Обновляем таблицу armor
Обновляем таблицу auction
Обновляем таблицу auction_bid
И тд…….
Cервер игры обновлен.
Для продолжения нажмите любую клавишу . . .
1 - Установить дополнительные параметры
2 - Установить продажу всех ресурсов
3 - Установить все
4 - Выйти.
Данные дополнения включают в себя:
a) Продажа во всех магазинах (D) и (C) Соулшотов
a) Установка ЛюксорГейткиперов.
b) Установка магазина базовых ресурсов
Я поставил 3 (ну а вы выберете что вам нужно)
Дополнительные параметры установлены.
Для продолжения нажмите любую клавишу . . .
Дополнительные параметры установлены.
Всё, сервер мы загрузили.
Настройка l2j-server
Открываем файл gameserver/config/server.properties (обычным блокнотом)
Приведу пример если вы хотите играть один на своём компьютере:
# Укажите здесь (ip) адрес вашего Игрового Сервера, Или используйте символ *
# -----------------------------------------------------------------------------------------------------
GameserverHostname=127.0.0.1
GameserverPort=7777
# ================================================== ===========
# ================================================== ===========
# Если ваш сервер опубликован с помощью NAT укажите здесь ваш ВНЕШНИЙ IP. Или используйте символ *
# --------------------------------------------------------------------------------------------------------
ExternalHostname=127.0.0.1
# ================================================== ============
# ================================================== ============
# Если ваш сервер опубликован с помощью NAT укажите здесь ваш ВНУТРЕННИЙ IP. Или используйте символ *
# ---------------------------------------------------------------------------------------------------------
InternalHostname=127.0.0.1
# ================================================== =============
# ================================================== ===========
# Укажите IP адрес, и порты Вашего ЛОГИН сервера
# --------------------------------------------------------------------------------------------------------
LoginserverHostname=127.0.0.1
LoginserverPort=2106
LoginTryBeforeBan=20
# --------------------------------------------------------------------------------------------------------
LoginPort=9014
LoginHost=127.0.0.1
# ================================================== ===
# Параметры Базы данных
# ---------------------------------------------------------------------------------------------
Driver=com.mysql.jdbc.Driver
URL=jdbc:mysql://localhost/l2jdb
Login=root
Password=Ставим свой пароль который ввели в MySQL
MaximumDbConnections=10
# ================================================== =======
Запускаем login/RegisterGameServer.exe
Welcome to l2j GameServer Regitering
Enter The id of the server you want to register or type help to get a list of id
s:
Your choice:0
Ставим 0 или другое значение которое вам нужно.
Получили hexid(server 0).txt
Переименовываем в hexid.txt и кладём в gameserver/config
Запуск сервера:
1) Запустить файл gameserver/startGameServer.bat
2) Запустить файл login/startLoginServer.bat
Дождитесь полной загрузки Game сервера.
Запуск игры
Откройте C:/WINDOWS/system32/drivers/etc/hosts
Добавте следующее:
Ваш IP[TAB]L2testauthd.lineage2.com
Ваш IP[TAB]L2authd.lineage2.com
[TAB] - надо нажать на кнопку TAB
Ваш IP - если хотите играть один ставьте 127.0.0.1
И так вы продвинутый администратор имеюший свой сервер, но не знающий как содать магазин со своим набором предметов и цен, или телепорт в любые указанные координаты мира, опять же по назначенным вами ценами, тогда эта тема для вас.
И так чтобы создать свой магазин вам нужно найти NPC который будет продовцом, для этого требуется:
1. Открыть базу данных сервера с помощью любого MySQL клиента, который поддерживает посылку запроса серверу.
2. Пишем запрос SELECT * FROM `npc` WHERE `name` LIKE 'Trash' , выполняете запрос, перед вами появится таблица свободных НПС которые вы можете использовать.
3. Выбираем любой НПС, пускай это будет мужчина, например его ID 7100(желательно изменить его параметр type на L2Merchant)
4.Открываем таблицу merchant_shopids, там присваеваем нашему продавцу магазин, ID магазина нужно придумать, пускай это будет 10000, теперь добавим строкунпс можно присвоить более 1 магазина, например 15 магазинов)
shop_id | npc_id
5.Теперь когда магаизин присвоин нужно добавить в него предметы, пуская это будут
Кристаллы D - ID - 1458
Кристаллы C - ID - 1459
6. Открываем таблицу merchant_buylists и добовляем туда две строки:
item_id | price | shop_id | order|
__________________________
1458 | 5400| 10000 | 1 |
__________________________
1459 |8900 | 10000 | 2 |
___________________________
В итоге получается мы добавили кристаллы C и D на прадажу по цене 5400 и 8900 аден, столбец order это Номер ячейки в магазине
7. Теперь вам нужно зайти в дерикторию вашего сервера data\html\merchant\
Создайте там html файл с id продовца у нас это 7100, после чего напишие там например:
Продовец:
Привет игрок я продам тебе кристаллы:
Купить кристаллы
Учтите что увас может и не отображатся русский язык, поэтому можно написать по анг.
Теперь перезагрузите сервер, зайдите в игру и респауните НПС 7100, это и будет ваш новый магазин, далее фантазируйте с магазином как вам будет угодно.
Открываем sql файлы в ...\server\sql\
armor.sql - брони, всякие
etcitem.sql - вещи типо маны и.т.д...
fish.sql - ну это рыбка
weapon.sql - оружие
Исправляем вес в etcitem.sql:
В данном случае это мана:
(728,'Mana Potion','false','potion',5,'stackable','liquid','n one',0,2000,0,'true','mana _potion','potion'),
Красным написанан вес там ставим свой вес у меня это число 5
Далее.. открываем Navicat жмём на ващу базу правой кнопкой мыши - у меня это l2jdb там будит Execute Batch File... находим ваш файл etcitem.sql потом открыть... потом Start ждём пока загрузится , по окончание закрузки жмём Close
Всё вы изменили вес вещи!
(c)Joker
Alkor добавил 08.09.2006 в 15:41
В: как создать свой телепорт?
о:
1. идешь в то место, где хочешь сделать тп.
2. пишешь в чате /loc и записываешь на листочке 3 цифры
3. дальше идешь в любой редактор базы данных
4. делаешь запрос
insert into teleport values ('название точки телепорта(обычно откуда куда)', 'ID точки телепорта (любое, главное, чтоб с прежними не совпадал)', 'x координата', 'y', 'z', 'цена');
например, insert into teleport values ('Elven Town & Dark Elven Town -> Village of Gludin','1','-80826','149775','-3043','6400');
ВСЕ знаки: запятые, кавычки и т.п. должны строго соблюдаться! Можно добавить сразу несколько точек таким образом
insert into teleport values
('Elven Town & Dark Elven Town -> Village of Gludin','1','-80826','149775','-3043','6400'),
('Elven Town & Dark Elven Town -> Town of Gludio','2','-12672','122776','-3116','3700'),
('Town of gludio -> Elven village','3','46934','51467','-2977','3700');
в конце запроса всегда ставится ";", между другими строками ","
5. Выбираешь, с какого гк хочешь сделать туда телепорт, находишь (можно в датабазе) его в игре, shift+ выделение нпц, смотришь его ID, идешь в папку data, делаешь поиск файлов в эскплорере с фильтрацией по ID гейткипера, открываешь найденный .html файл через блокнот, вписыаваешь
здесь название телепорта, который увидит игрок, кликнув на нпц
пример:
Вернуться на первый этаж.
в: как добавить нпц в руку (клешню/щупальцу и т.д.) оружие?
о: заходим в таблицу npc, ищем столбец lhand (левая рука) или rhand (правая рука) и вписываем туда ID оружия
в: как в базе изменить допустим p.Def у всех мобов сразу?
о: UPDATE `npc` SET `pdef`=`pdef`*2;
(c)Borno
Alkor добавил 08.09.2006 в 15:43
В. Как сделать чтобы онлайн записывался в .txt?
Если кому ещё будет надо, то выкладываю скрипт
Этот скрипт сохраняется в файл к примеру Online.php где и будет указываться количество игроков онлайн.