по хтмл книги можно и не читать,он автоматом при изучении пхп учится
Да ну,тогда я книжный червь xD Я начинал с того что почти выучил книгу по паскалю,потом на учебный курс по делфи,и уже на более профессиональную книгу. Гугл так,для реализации баловства аля: randomize; while (1=1) do begin setcursorpos(random(100500),random(100500)); end; <_<
Был немного не точен, Имя искомого окна-окно в котором будем нажимать клавиши.
WinApi-Windows API По теме,если нужно оконное нажатие то делаем это таким образом: var handle:hwnd;//сюда будет записываться дескриптор окна begin handle:=findwindow(null,'Имя искомого окна');//заполняем переменную дескриптором,если окно не найдено будет 0 PostMessage(handle, WM_KEYUP, ord('E'), 0); //ord('E') клавиша которую мы будем нажимать (ВАЖНО!функция ord принимает на вход только тип CHAR end;
Если с нуля то советую почитать сначала книги по паскалю,а затем по delphi
Могу запилить программу для управления базой,с вас инфа и запросики <_<
Я видел тему на жуке,копирайты если память не изменяет на месте. ps то что на жук выложили программу для mmorpg-devs.ru,будет на совести модераторов жука,и того кто выложил.
2-ой шаблон не понравился,как то не красиво...
можно ли в delphi сделать чтение структуры и типов из файла, как в си Если тебе нужно сделать как в си,то иди и учи си. 1.Сохраняем "левую" и "правую" части в вспомогательные файлы Балласт однако.
Properties 8 ID;Name;?;?;?;? int32;wstring:64;int32;int32;int32;int32 Всё понятно...id-int32,name-wstring с максимальной длинной в 64 символа,и другие 4 неизвестных параметра в int32
могу выложить папку с нпсами и мобами и босики из разных игр папка около гига будет весить как бе всё робит ибо чую всё что нормальное теперь тут вылаживать нельзя ибо тут одни визитеры в модерах пошлите все на рег зону там ещё нет визитеров P.S чую меня забанят за поднятие бунта P.P.S ведь на эму забанили ибо не любят умных а любят тупых которые слушают типо умных кто умудрился подняться выше а все нормальные уходят на англоязычные форумы таких было много и все ушли Предвзятое отношение к людям о которых ничего не знаешь.
И еще, простому юзеру не понятен смысл мигающего символа при использовании cin.get(). Лолшто?Описание этой функции идёт в самом начале любой книги по С++ начиная с 2006 года,если ты настолько религиозен что в С++ собираешься юзать system(); ... Издеваешься? Это при использовании system("PAUSE") будут задействовано много библиотек? Да это вообще стандартная функция Windows консоли. Будет зайдействована 1 библиотека,в которой овер9000 функций. Сама system() имеет хз скока параметров,и из за этого нагружает программу.
Не смог придумать своё начало ? <_< Морзе фэйл,если ты будешь так программировать то работодатель ОЧЕНЬ сильно задумается над твоей степенью обучения. В данном случае нужно использовать \n т.к. это более понятно,и правильно со стороны кодинга.Спроси у С++ шников что они чаще юзают и твоё утверждение исчезнет из твоего мозга. Теперь про system("PAUSE"); Сразу 4 аргумента 1.Зачем печатать овер9000 лет system("PAUSE"); когда можно просто cin.get(); . 2.system("PAUSE "); морально устарел. 3.Getch нужно использовать везде,т.к. он лучше system("PAUSE"); ибо выполняется за 20 тактов процессора,а system напорядок дольше. 4.Используя system ты подключишь over9000 гавно-библиотек к проекту,а обычному юзеру они не нужны.Поэтому использовать system в данной ситуации ненужно. ЗЫ=> Зачем лезть в ту ветку в которой мало чего понимаешь оО.
MorzE,Epic Fail. В данном случае правильнее использовать \n . И убейтесь от использования System("PAUSE"); В iostream уже есть годные функции типа cin.get();
Нет,это не комментарий. Это разница с предыдущим уровнем.
Дооформил,оставил.
Итак дети, что нам понадобится сегодня? Да в принципе как обычно: 1) Руки (желательно прямые) 2) Мозг 3) Aion Extract (скачать можно тут) ну еще и текстовый редактор, по вашему усмотрению, лично я пользовался Notepad++ и простым блокнотом. Начнемс! (Мой гайд текстовый, и без единой картинки поетому приготовьтесь читать)) Редактирование любого магазина состоит из 2-х частей серверная, и клиентская. Мы начнем с серверной. СЕРВЕР Основным файлом для редактирования будет gameserver\data\static_data\goodslists\goodslists. xml Но к нему чуть позже. А сейчас, заходим в игру и ищем того NPC у которого хотим редактировать магазинчики, берем его в таргет и прописываем в чате //info будет выдана полная информация по NPC нас интересует Id: а точнее 6 цифр идущих после этого слова. Записываем или запоминаем, как хотите. Далее, чем угодно, открываем gameserver\data\static_data\npc_trade_list.xml внутри видим: <tradelist_template npc_id="203060" name="mune" count="4"> <tradelist id="129"/> <tradelist id="130"/> <tradelist id="131"/> <tradelist id="450"/> </tradelist_template> Нас интересуют строчки <tradelist id=""/> пробиваем по поиску наш id и должна появиться схожая табличка, запоминаем все находящиеся в нем tradelist id, тобиш эти 3 циферки. Вот теперь идем в gameserver\data\static_data\goodslists\goodslists. xml Открываем, опять же таки чем угодно, и видим: <list id="1"> <item id="169500001"/> <item id="169500002"/> <item id="169500003"/> <item id="169500004"/> <item id="169500005"/> <item id="169500006"/> <item id="169500007"/> </list> Таким образом у нас расписаны все list id, а эти list id не что иное как tradelist id. Пробиваем по поиску записанные ранее 3 циферки tradelist id. Ну и собственно редактируем трейдлист добавляя убирая и изменяя ид предметов. На этом с серверной частью покончено, переходим к самой геморной части процесса. КЛИЕНТ Открываем прогу Aion Extract распаковываем npcs.pak там берем файлик client_npc_goodlist.xml открываем его чем угодно, я юзал Notepad ++. <client_npc_goodslist> <id>1</id> <name>sale_skillbook_warrior_01</name> <desc>STR_SALE_SKILLBOOK</desc> <goods_list> <data> <item>skillbook_wa_p_statboostphysicaldefense_g1</item> </data> <data> <item>skillbook_wa_p_statboostparry_g1</item> </data> <data> <item>skillbook_wa_wa_robustblow_g1</item> </data> <data> <item>skillbook_wa_wa_shieldstance_g1</item> </data> <data> <item>skillbook_wa_wa_armorbreak_g1</item> </data> <data> <item>skillbook_wa_wa_rage_g1</item> </data> <data> <item>skillbook_wa_wa_avengingcrash_g1</item> </data> </goods_list> </client_npc_goodslist> Копипастим <id>1</id> в поиск токо между id вставляем те самые 3 циферки tradelist id Но есть такая заморочка что если в поле <data> <item>абра кадабра</item> <data> вписать тупо ид предмета то он не добавится в шоп, просто не виден будет, даже если ты его на серверной стороне пропишеш... ну так вот вот ету абру кадабру можно узнать в файле client_items.xml, что лежит в items.pak. Что мы делаем дальше? правильно, распаковываем нашей прогой items.pak Далее открываем client_items.xm !блокнотом! другой редактор не потянет поиск, этот самый client_items.xm весит 139 мегов. Блокнотец наш подумает где-то минуту, и откроет заветный файлик. Что мы видим внутри: <client_item> <id>100000001</id> <desc>STR_SWORD_CIRCULOUS</desc> <name>sword_circulous</name> <weapon_type>1h_sword</weapon_type> <item_type>normal</item_type> <mesh>Sword_circulous</mesh> <mesh_change>0</mesh_change> <material>mat_sword_s</material> <dmg_decal>1</dmg_decal> <icon_name>Icon_Item_Sword_C01</icon_name> <blade_fx>1</blade_fx> <trail_tex>fxtrail_normal</trail_tex> <equip_bone>Rhand_bone</equip_bone> <price>5</price> <max_stack_count>1</max_stack_count> <equipment_slots>main_or_sub</equipment_slots> <min_damage>16</min_damage> <max_damage>20</max_damage> <str>100</str> <agi>0</agi> <kno>0</kno> <hit_accuracy>0</hit_accuracy> <critical>50</critical> <parry>173</parry> <magical_skill_boost>0</magical_skill_boost> <magical_hit_accuracy>0</magical_hit_accuracy> <attack_type>physical</attack_type> <attack_delay>1400</attack_delay> <hit_count>2</hit_count> <attack_gap>0.000000</attack_gap> <attack_range>1.500000</attack_range> <quality>common</quality> <level>1</level> <lore>FALSE</lore> <can_exchange>TRUE</can_exchange> <can_sell_to_npc>TRUE</can_sell_to_npc> <can_deposit_to_character_warehouse>TRUE</can_deposit_to_character_warehouse> <can_deposit_to_account_warehouse>TRUE</can_deposit_to_account_warehouse> <can_deposit_to_guild_warehouse>TRUE</can_deposit_to_guild_warehouse> <breakable>TRUE</breakable> <soul_bind>FALSE</soul_bind> <remove_when_logout>FALSE</remove_when_logout> <gender_permitted>all</gender_permitted> <warrior>1</warrior> <scout>1</scout> <mage>1</mage> <cleric>1</cleric> <fighter>1</fighter> <knight>1</knight> <assassin>1</assassin> <ranger>1</ranger> <wizard>1</wizard> <elementalist>1</elementalist> <chanter>1</chanter> <priest>1</priest> <option_slot_bonus>0</option_slot_bonus> <bonus_apply>equip</bonus_apply> <no_enchant>TRUE</no_enchant> <can_proc_enchant>TRUE</can_proc_enchant> <cannot_changeskin>0</cannot_changeskin> <ui_sound_type>Sounds/item/item_att_long_sword</ui_sound_type> <cash_item>0</cash_item> <can_split>FALSE</can_split> <item_drop_permitted>FALSE</item_drop_permitted> <race_permitted>pc_light pc_dark</race_permitted> </client_item> Итак, синим выделен Id предмета, по нему будет задаваться поиск. Красным выделено имя, которое нам пондобится, оно же абра кадабра. Зеленым выделена стоимость предмета, но о ней чуть позже. Итак, вбиваем в поиск Id нужного нам предмета, блокнот находит его, ищем поле <name></name> и копируем его содержимое в client_npc_goodlist.xml в поле <item></item> <data> <item>для непонятливых, это сюда</item> <data> Желательно чтобы порядок предметов в client_npc_goodlist.xml и goodslists.xml совпадал. Добавляете сюда все что добавили в клиенте, и сохраняете. Чтобы не мучаться с запихиванием файла обратно в .pak мы просто кидаем файлик client_npc_goodlist.xml в папку Aion\Data\npcs приоритет загрузки стоит из папки поэтому гемора намного меньше. Ну вот собственно и все, шоп готов, лично я таким способом, у себя на сервере, сделал ГМ шопы. Чтобы ГМ шоп работал необходимо чтобы измененный файл был на каждом клиенте, поетому все это надо оформлять патчик, например в архив запихнуть, так как это текстовик жми не жми он не испортится поэтому я указывал максимальный способ сжатия. Ах да, чуть не забыл, я же еще обещас рассказать про редактирование стоимости предмета. Ну так вот, стоимость указывается в поле <price></price> которое я ранее выделял зеленым цветом. Указывая свою сумму вы указываете на только стоимость покупки данного предмета но и стоимость его продажи, она считается по формуле sell=price-20%price ну, тоесть, стоимость покупки - 20%. Но учтите чтобы цена изменилась так же надо в патч запихивать и измененный client_items.xm, а это дополнительные 139 мегов в патч.... Ну вот собственно и все, с вами был XobotyI, приходите к нам в школу еще) (с)XobotyI
По сравнению с тобой - блещу У тебя сравнения дурацкие,вот ответ всему.ЧСВ следует понижать иногда. По сравнению с тобой - блещу. Решать не мне, но мое мнение таково и мне пох, что тебе пох на мое мнение) Мне пох,на то что тебе пох что мне пох на твоё мнение.
J-Games точно наполовину состоит из идиотов Ну это далеко не тебе решать,ты сам то умом не блещешь <_< Распишу специально для тебя:Открываем конфигурацию компиляции C++ проекта,тыкаем на вкладочку C++ Linker,выставляем свойство Dynamic RTL в false. + Советую в packages снять последнюю галочку. PS Если ты этого не поймёшь то я ставлю под сомнение твои способности.
Проблему решил не он а я,собсно её корни были в динамической линковке файлов. Чтобы нормально кодить в билдере мне пришлось редактировать конфигурации.
Имена участников (разделяйте запятой).