<<<<<< @Ferriya - 03 Июнь 2011 - 22:53>>>>>>>>> Если твоя задумка заключается в том, чтобы поставить телепорт в одной локации, и он тебя будет просто телепортировать по определенным координатам в ту же или другую локацию, то тут придется немного поработать и с клиентом и с сервером. Суть в том, что придется сделать телепорт как нового нпц в клиенте, а в сервере указать где он будет спавниться и куда будет телепортировать. Работа на первый раз кажется немного трудной. Нужны 2 программы, выкладывались они неоднократно на этом форуме - Aion Unpack для распаковки .pak файлов в клиенте и Aion Extract для расшифровки .xml файлов. Рекомендуется использовать текстовый редактор AkelPad, так как он быстрее остальных справляется с файлами большого объема. Сначала нужно определить, какого нпц мы возьмем за основу для телепорта. Вот например в бездне есть данж 25 лвл, там есть красивый телепорт для входа в него, можно взять за основу. Взять в таргет телепорт и коммандой //info определить его ID, записать на листок и выходить из игры. Далее идем в клиент Aion\Data\Npcs и с помощью Aion Unpack распаковывем файл Npcs.pak, просто перетащив его в программу. Появится папке Npcs. Далее нужно расшифровать файлы с помощью Aion Extract. В папке Npcs, которая тут появилась нам нужен только 1 файл - client_npcs.xml, его надо закинуть туда же где и Npcs.pak, а новую папку Npcs можно удалить. С помощью программы AkelPad открываем этот массивный файл client_npcs.xml и поиском ищем ID того телепорта, который на листок записали. Примерно такой будет там текст: Спойлер <npc_client> <id>700414</id> - Придумывает свой ID, например 256001 <name>AB1_Corridor_Q4702</name> Запомнить название. Теперь название свое придумать, для файла, который будет отвечать за название объекта в игре. <desc>STR_OBJ_AB1_Corridor_Q4702</desc> <dir>NPC/Level_Object/TeleportCorridor</dir> <mesh>TeleportCorridor</mesh> <ui_type>craft</ui_type> - тип должен быть такой - craft <cursor_type>action</cursor_type> - тип должен быть такой - action <hide_path>0</hide_path> <erect>1</erect> <bound_radius> <front>0.500000</front> <side>0.700000</side> <upper>2.000000</upper> </bound_radius> <scale>100</scale> <weapon_scale>100</weapon_scale> <altitude>0.000000</altitude> <stare_angle>75.000000</stare_angle> <stare_distance>15.000000</stare_distance> <move_speed_normal_walk>0.000000</move_speed_normal_walk> <art_org_move_speed_normal_walk>0.000000</art_org_move_speed_normal_walk> <move_speed_normal_run>0.000000</move_speed_normal_run> <move_speed_combat_run>0.000000</move_speed_combat_run> <art_org_speed_combat_run>0.000000</art_org_speed_combat_run> <in_time>0.100000</in_time> <out_time>0.500000</out_time> <neck_angle>90.000000</neck_angle> <spine_angle>10.000000</spine_angle> <pushed_range>0.000000</pushed_range> <hpgauge_level>3</hpgauge_level> <magical_skill_boost>0</magical_skill_boost> <attack_delay>2000</attack_delay> <ai_name>AB1_Corridor_Q4702</ai_name> <tribe>Field_Object_Dark</tribe> <pet_ai_name>Pet</pet_ai_name> <npc_type>general</npc_type> <talking_distance>7.000000</talking_distance> <talk_delay_time>3</talk_delay_time> <user_animation>quest_energyblow</user_animation> </npc_client> Вот такой текст, найденый в файле выделяем от тега <npc_client> до тега </npc_client> и копируем в конец файла перед последним общим закрывающим тегом. После того как скопировали текст, редактируем некоторые значения которые указаны под спойлером. Следующий шаг. Идем в Aion\Data\Strings\ Также как и с прошлым .pak файлом, распаковываем и расшифровываем. Из новой папки Strings перекидываем файл client_strings_npc.xml в туже папку где и Strings.pak Открываем файл и ищем там название из прошлого файла которое надо было запомнить (AB1_Corridor_Q4702). Ищем и видим текст: Спойлер <string> <id>371146</id> - Придумать свой ID имени, например 512001 <name>STR_OBJ_AB1_Corridor_Q4702</name> - Сюда ввести наше название как в прошлом файле. <body>차원의 회랑</body> - Тут будет имя Нпц (телепорта) в игре, например Teleport </string> Так же и тут. Сначала надо скопировать найденое в конец файла, перед закрывающим тегом, а только потом редактировать скопированное. Отредактировать и на этом клиентская часть закончена, теперь создан уникальный нпц в клиенте, который надо спавнить сервером и определить его свойства. Вот теперь придется зайти в игру и определить, где будет стоять телепорт и куда он будет телепортировать. Может мой способ не самый лучший, но расскажу как знаю. Идем туда где хотим поставить телепорт и спавним коммандой //spawn оригинальный телепорт, ID которого брали за основу. Теперь коммандой //info можно получить его месторасположение - ID локации, x, y, z. Получив эти нужные данные надо убрать проспавненый телепорт коммандой //delete, потому что данные о спавне будут храниться в самом сервере, если забыть удалить, то могут 2 телепорта друг в друге появиться. Нам нужны лишь данные от спавна этого нпц-телепорта - ID локации, x, y, z Теперь идем в сервер по пути gameserver/data/static_data/spawns/Npcs/ Тут ищем нужный файл по локации и копируем фрагмент в файле: <spawn map="120010000" npcid="799735" pool="1" interval="295"> <object h="66" x="1153.3182" y="1344.8033" z="209.6744"/> </spawn> Его также надо скопировать в конец перед закрывающим тегом, потом отредактировать. map= ID локации npcid= ID нашего телепорта Координаты заменить на те, который будут отвечать где будет телепорт стоять. Идем по пути gameserver/data/static_data/npcs/npc_templates.xml Этот файл отвечает за то, как будет выглядеть наш нпц и его имя в игре. Ищем перевоначальный ID телепорта который был за основу. Находим примерно такой текст: <npc_template npc_id="700414" level="1" name="Teleport" name_id="371146" npc_type="PORTAL" height="2.0" rank="NORMAL" tribe="FIELD_OBJECT_DARK" hpgauge="3" state="65"> <stats maxMp="52" maxHp="172" maxXp="100" block="11" parry="11" mdef="11" pdef="11" crit="11" power="11" evasion="11" accuracy="11" magic_accuracy="11" walk_speed="0.0" run_speed="0.0" run_speed_fight="0.0" fly_speed="0.0" /> </npc_template> Скопируем этот текст в конец файла перед закрывающим тегом и потом редактируем. npc_id= наш ID. name= наше имя. name_id= ID имени как в клиенте в файле client_strings_npc.xml Теперь надо идти по пути gameserver/data/static_data/portals/portal_templates.xml Ищем в файле ID первоначального телепорта котрый был за основу. Находим текст <portal npcid="700414" instance="true" minlevel="25" maxlevel="28" group="true" race="ASMODIANS"> <entrypoint mapid="400010000" x="876.7211" y="3079.2874" z="1644.5786" race="ASMODIANS"/> <exitpoint mapid="300030000" x="513" y="668" z="331"/> </portal> и так же копируем в конец файла перед закрывающим тегом (просто потом легко так найти что менял и поправить) Тут нужно исправить npcid на ID нашего телепорта. instance="false" должно быть group="false" тоже поправить, и далее меняем точку входа (<entrypoint mapid=...) с тех данных которые получили спавном телепорта и определением его координат. <exitpoint mapid=... - точка выхода, так же можно как и с точкой входа, в игре проспавнить телепорт который был за основу, коммандой //info снять его координаты, коммандой //delete удалить спавн этого телепорта из базы данных. Нам нужны только данные. ID локации, x, y, z. Полученные данные записать в точку выхода (<exitpoint mapid=) Вроде ничего не забыл. Теперь можно запускать или перезапускать сервер.
Смотря какая у тебя задумка. Если ты хочешь просто взять дружественного НПС, и по клику на нем тпшится, то тут гораздо проще реализация. Как то подробнее описывай свои задумкм