Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
Вам нужны новые native-функции?
Ура! wc3c наконец-то вышел из недельного дауна, и я сумел-таки скачать часть кода, о котором мне поведал Toadcoap (там было два архива – второй во время падения потерялся). Думаю, недостающие cpp-файлы я сумею восстановить самостоятельно.
Так вот: там описано, как можно добавлять к движку War’а свои собственные native-функции! Т.е., фактически, клепать к движку War’а свои плагины. Теперь все те доп. функции, о которых давно мечтали JASS’еры, можно реализовать в самом движке! Правда, помимо добавления самого плагина придётся ещё и модифицировать common.j (дополнив его именами+описаниями новых нативок и засовывая его модифицированную версию в MPQ), иначе тупой WorldEditor будет вылетать при проверке синтаксиса JASS-кода. И, конечно, всякие синтаксические проверки в сторонних JASS-редакторах (вроде JassShopPro) тоже перестанут работать. А теперь решайте: есть ли смысл разбираться в этом коде? Если есть, то какие функции вы хотели бы видеть в таком плагине? Если вам это действительно нужно, то я постараюсь восстановить код и напишу соответствующий плагин (добавляющий указанные вами native-API). |
06.12.2006, 13:15 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
p01nTT
offline
Опыт:
11,160Активность: |
Алексей смысл есть и очень большой. А вот насчёт функций даже не знаю... попробуй функцию изменения Base Damage у юнита в игре. Или HP в игре без добавления абилок. Хорошо бы было создать какой нибудь exeшник, где можно было самому добавлять native, то есть что ты делаешь,только как-нибудь по-проще
|
06.12.2006, 13:24 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Ты сначала проверь насколько это возможно.
в JSP можно подключить левые коммоны Если создать опрос, то 95% будут за NETRAT добавил: Ха, ха, даешь инвентарь одной функцией =) |
06.12.2006, 13:38 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
а почему не 100%?:): |
06.12.2006, 13:38 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Встречаются "доброжелатели" и критиканы
NETRAT добавил: Вообще если так подумать, то можно сделать лоадер для вара / редактора, который будет делать все что нужно для работы таких плагинов - аттачить mpq с коммоном и добавлять куда нада функции. Я себе, правда, вообще не представляю как ты туда функции добавлять будешь - через dll или каким-нить хитро |
06.12.2006, 13:47 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
NETRAT: Подгрузкой DLL. War содержит спец. таблицу прототипов функций и их адресов. Туда вполне добавляются функции из сторонних DLL'ок - если, конечно, есть спец. загрузчик.
|
06.12.2006, 13:59 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Так и подумал...
А что там за недостаточность кода? NETRAT добавил: Вообще, давно надо было это сделать =) |
06.12.2006, 14:07 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dk
offline
Опыт:
60,293Активность: |
Функции одназначно нужны! Непомешало бы расширить возможности невидимости, например сделать несколько ее уровней. |
06.12.2006, 14:18 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Ммм... фукции нужны спору нет... но всем свои...Было бы лучше выложить SDK с описанием как это реализовать собственными руками...
ЗЫ. Наконец-то мать вашу... =) |
06.12.2006, 15:28 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
exploder: Хорошо. Как только кончится эта неделя (и, соответственно, появится больше свободного времени), я разберусь с кодом и выложу что-то вроде описания (с примерами) как создавать собственные Native API. Как представлены разные объекты в памяти Warcraft'а, что передаётся вашим новым функциям в качестве аргументов (например, если тип аргумента - unit) и пр.
Вот только все примеры будут на C++ или ASM. . NETRAT: Система состоит из двух частей: загрузчик и сам dll-плагин. Так вот, ссылка на код загрузчика битая - работает только ссылка на код плагина. В принципе, этого вполне достаточно, т.к. сам exe загрузчика доступен и довольно мал по объёму. Можно пользоваться готовым загрузчиком, а можно (что я и сделаю) декомпилировать его. |
06.12.2006, 16:08 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Хотелось бы на C ибо более читаемо и удобно (да и потом, кто ж в асме шарит? - пару человек)
Еще можно написать письмо автору и спросить у него |
06.12.2006, 16:15 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Цитата:
Желательней на Си... exploder добавил: Ахахаха! Простые джассеры станут богами =) |
|
06.12.2006, 17:02 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
Автору уже написал. Кроме того, оставил соответствующий пост на форуме - теперь остаётся лишь дождаться ответа. |
06.12.2006, 17:12 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
А простые кодеры? |
06.12.2006, 17:19 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
эх я про это говорил очень давно, проблема в том, что измения среду вара мы добровольно прощаемся с мультиплеером и батлнетом |
06.12.2006, 18:40 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NECros88
offline
Опыт:
16,351Активность: |
Конечно надо =)
DioD верно подметил. Это нужно только для тех, кто не играет в сети. Но есть выход: ставить два вара - один нормальный, другой этот... как бы лучше его назвать... хм... ну короче ладно, в принципе смысл этого поста я думаю всем понятен =) |
06.12.2006, 20:02 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
Как вы думаете, за что я не люблю C++?
Смотрите: Код:
И это ещё не самая сложная сишная конструкция ;). Вот почему мне не нравится Си – программы на нём выглядят как-то некрасиво. |
06.12.2006, 20:14 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Цитата:
А мультиплеер тут при чем? Он чо перестанет пахать? |
|
06.12.2006, 20:21 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
десинк при парсе кода при подключении к игре
надо по мимо библиотек будет еще движок править |
06.12.2006, 20:33 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Алексей ничего страшного в этом макросе не увидел... явные приведения типов - эту проверку вообще можно отключить, но тогда за типами придется самому следить. Хотя, впрочем, автор макроса страдает определенной склонностью к мазохизму ...
NETRAT добавил: Некрасиво? Однозначно и при этом (парадокс) гибко |
07.12.2006, 01:02 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|