Перейти к содержимому
Korean Random
Yupi

Как сделать свой мод на XFW

Рекомендуемые сообщения

А по факту спасайте - я уже реально всё, что можно попробовал.

Почитал тему, но так честно говоря и не понял, что конкретно ты хочешь сделать с чатом...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)

Конкретно - ничего. Просто пытаюсь сделать свой первый мод.

 

P.S. Вроде разобрался

Изменено пользователем STREJlA

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)

Почитал тему, но так честно говоря и не понял, что конкретно ты хочешь сделать с чатом...

Лучше не лезть в реализацию чата от картохи)

Там у нее куча легаси кода...

 

P.S. чтобы было http://www.koreanrandom.com/forum/topic/32712-/

Изменено пользователем SkepticalFox

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Конкретно - ничего. Просто пытаюсь сделать свой первый мод.

 

P.S. Вроде разобрался

Разобрался - делись инфой! Всем поможет! )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разобрался - делись инфой! Всем поможет! )

Как я понял, в среде мододелов знаниями не особо делятся. Мне данная инфа в 500 рублей обошлась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)
Как я понял, в среде мододелов знаниями не особо делятся.

Делятся. Ну кроме школьников-неадекватов с болезнью собственничества. Если бы не делились, ты бы тут не оказался, так ведь? )

 

Но не надо путать "делиться инфой" и "искать ещё неизвестную инфу за других". Первое - общественно полезное дело, второе - услуга.

Изменено пользователем Yupi
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в среде мододелов знаниями не особо делятся

Ну это смотря кто и какими. Знаниями коммерческой направленности (реклама, в том числе флудовая, и вообще любой машинный флуд, в чаты, роты и т.д. + вещи, где есть коммерческий интерес модпаков), само собой, вряд ли кто-то будет делиться просто так. Ну и копать что-то (лезть в коде картохи туда, куда раньше не заносило) за просто так тебе вряд ли кто будет.

Ну а по части общей направленности, т.е. по тем зонам, где мододелы проходят довольно часто, вполне могут и подкинуть инфу. Ну или ты сам можешь "подсмотреть" в открытых модах.

кроме школьников-неадекватов с болезнью собственничества...

...на код, который писали даже не они.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

О. Я уже школьник неадекват =)

 

Не делятся в том плане, что сообщество мододелов очень небольшое. Нет толковых гайдов и доков.

Инфа разбросана по всему инету. И не смотря на то, что на данном форуме её наибольшая концентрация - разобраться самостоятельно и сделать свой первый мод крайне трудно.

Я понимаю, что это не вина сообщества. Но сообщество не заинтересованно менять сложившуюся ситуацию, поскольку в таких условиях проще зарабатывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

От тебя идет очень паршивый посыл - никто мне бедненькому помочь не хочет. И на этом педалируемом чувстве вины у других ты хочешь решить свои проблемы чужими руками.

 

Теперь по сути. 

Модами (конкретно под WoT) занимается относительно узкий круг людей. Занимаются они ими, в подавляющем числе случаев, как хобби (то есть интереса ради). Подумай, это очень интересно копаться в коде ради ЧУЖОГО интереса. Вот если это станет им интересно - они могу копать день и ночь. Если это не заинтересовало, тогда будет ответ в РАМКАХ имеющихся знаний. Упрощенно - если знают, то скажут. А если не знают - не скажут.

А по поводу гайдов и доков. Если ты будешь регулярно это делать - тебя будут хвалить и возносить (иногда). ТЫ БУДЕШЬ ДЕЛАТЬ ГАЙДЫ И ДОКИ? (опять же банальщина - люди любящие ковыряться в коде не любят такую нудную и скучную работу как написание гайдов и доков).

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

От тебя идет очень паршивый посыл - никто мне бедненькому помочь не хочет. И на этом педалируемом чувстве вины у других ты хочешь решить свои проблемы чужими руками.

 

Теперь по сути. 

Модами (конкретно под WoT) занимается относительно узкий круг людей. Занимаются они ими, в подавляющем числе случаев, как хобби (то есть интереса ради). Подумай, это очень интересно копаться в коде ради ЧУЖОГО интереса. Вот если это станет им интересно - они могу копать день и ночь. Если это не заинтересовало, тогда будет ответ в РАМКАХ имеющихся знаний. Упрощенно - если знают, то скажут. А если не знают - не скажут.

А по поводу гайдов и доков. Если ты будешь регулярно это делать - тебя будут хвалить и возносить (иногда). ТЫ БУДЕШЬ ДЕЛАТЬ ГАЙДЫ И ДОКИ? (опять же банальщина - люди любящие ковыряться в коде не любят такую нудную и скучную работу как написание гайдов и доков).

Я шарю в вебе. Гайды и доки по WG P API писал. Сам разбирался в методах и по ходу дела статьи писал. Здесь такого не наблюдаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)

Здесь такого не наблюдаю.

Тут моды обновлять хрен успеваешь, так еще и доки фиксить? Апи оно стейбл, а тут нихрена не стейбл, даже близко никогда не было.

Было б так просто, написал один раз и забыл на десятка полтора патчей. Ан нет, почти каждый патч приходится что-то править.

Изменено пользователем GPCracker

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

О. Я уже школьник неадекват =)

Тебя никто так не назвал. Мы обрисовали ситуацию, как она обстоит сейчас, но никто не говорил, что это про тебя.

 

 

 

Не делятся в том плане, что сообщество мододелов очень небольшое. Нет толковых гайдов и доков. Инфа разбросана по всему инету. И не смотря на то, что на данном форуме её наибольшая концентрация - разобраться самостоятельно и сделать свой первый мод крайне трудно.

Ну только в наших силах повлият на это. Поэтому и надо делиться знаниями пока они ещё свежи в голове, и писать гайды сразу. Потом забудется, или лень придёт, или ещё что-то) Я любые гайды яростно плюсую, даже если они не помогли именно мне, потому что они точно помогут кому-то ещё. Ну и если какую-то фишку узнаю, а про неё ещё не писали, стараюсь делиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут моды обновлять хрен успеваешь, так еще и доки фиксить? Апи оно стейбл, а тут нихрена не стейбл, даже близко никогда не было.

Было б так просто, написал один раз и забыл на десятка полтора патчей. Ан нет, почти каждый патч приходится что-то править.

Я не говорю, что все плохо и все плохие.

Я давно знал, что рано или поздно мне придется делать моды самостоятельно, но опасался, что это будет сложно.

Это сложно для новичка. Для новичка всегда и все сложно. Возникает множество негативных эмоций.

Я понимаю, что в каждой обнове меняют всё что можно. Я понимаю, что доки мододелов очень быстро устареют.

Но блин! Найти хоть какую то крупицу инфы адски сложно.

Даже мало-мальского список внутри-игровых событий нет.

 

Ладно. Не будем оффтопить. Это лишь мои впечатления за 4 дня. Я только начал разбираться и многого еще не читал/искал/пробовал.

Посмотрим как пойдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я шарю в вебе. Гайды и доки по WG P API писал. Сам разбирался в методах и по ходу дела статьи писал. Здесь такого не наблюдаю.

Про моды писать - это не гайд по паблик АПИ) Это ТИТАНИЧЕСКИЙ труд)

 

Гайдов много, но сколько ни пиши - всё равно найдётся тот, кому мало. Потому что тема огромная и задачи у всех разные.

 

Так что лучше писать, а не жаловаться, будто другие не пишут). Другие тоже пишут, когда могут)

 

 

Найти хоть какую то крупицу инфы адски сложно.

Так задавай вопросы! Для этого и существует форум) Чем точнее вопрос тем больше шансов, что получишь инфу)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)

Про моды писать - это не гайд по паблик АПИ) Это ТИТАНИЧЕСКИЙ труд)

 

Гайдов много, но сколько ни пиши - всё равно найдётся тот, кому мало. Потому что тема огромная и задачи у всех разные.

 

Так что лучше писать, а не жаловаться, будто другие не пишут). Другие тоже пишут, когда могут)

 

 

Так задавай вопросы! Для этого и существует форум) Чем точнее вопрос тем больше шансов, что получишь инфу)

Как выполнить созданную мной функцию X при начале боя?

другими словами - повесить коллбек на событие.

 

P.S. Без XFW

Изменено пользователем STREJlA

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Без XFW не надо в теме про XFW )

 

Здесь сделай тему.

 

Но про то, что мы оффтопим я уже писал =)

Тему пока не создаю. Чукча все-таки читака. Вот уже час изучаю результаты поиска по запросу bigworld.callback

  • Не нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот уже час изучаю результаты поиска по запросу bigworld.callback

Использование колобков, там где они не нужны - зло. Подвязывайся на ивенты. Колобки - типичные грабли новичков. Результат - падение ФПС вследствие выполнения кода, когда его выполнение не требуется. Используй события.

З.Ы. Колобок - это обратный вызов функции с задержкой. Колобок всегда идет в отдельном внутреннем потоке, поэтому используется либо для задержек (в том числе callback loop, использование которого и есть зло), либо для выноса выполнения функции за пределы текущего кода (нулевая задержка), т.е. когда выполнение функции сейчас вызовет нежелательную задержку.

Подробнее в доках к движку игры есть. Эти доки уже неоднократно выкладывались тут (на форуме).

Как выполнить созданную мной функцию X при начале боя?

Хукнуть соответствующий метод. BigWorld.player() в ангаре это экземпляр класса Account, в бою - PlayerAvatar, файл Avatar.py. Все методы, которые отвечают за старт боя, есть там. Дальше все зависит от того, на каком этапе инициализации тебе нужно выполнить свою функцию. Вообще, тот или иной мод к чему-то привязывается. Соответственно, туда и надо ставить хуки. В точку непосредственного взаимодействия с игрой. Это наиболее эффективный подход к реализации, и наименее затратный по вспомогательному, не типовому коду.

Хуки надо ставить на классы. На объекты их поставить нужен скилл и хорошее знание питона, в частности дескрипторов. Далеко не самая простая для понимания тема. Да и особого смысла ставить хуки на объекты нет, ибо изменения чаще всего носят классовый характер, да и большая часть классов существует в одном экземпляре.

Примеры можно посмотреть в открытых модах. В принципе, код моих модов есть на гитхабе, но для новичка он будет слишком сложным для понимания, ибо там большой акцент сделан на автоматизацию/упрощение некоторых вещей при разработке, структуризацию, частично в оптимизацию выполнения и конфигурируемость, а не на минимальное количество строк и простоту кода. Для новичков лучше браться за что-то попроще.

Где-то валялась папка с декомпилированными исходниками времен 13/14 годов, но в настоящее время очень многое, из того, что там есть, уже не актуально. Да и необходимость что-то декомпилить последние год/полтора в принципе отсутствует, ибо около половины модов - это такой говнокод, что даже обезьяна, ИМХО, напишет лучше (сказывается тот факт, что очень редко какой мододел является опытным программистом), и гораздо проще (при наличии скилла и знании повадок программистов картохи) найти нужный код в клиенте игры, чем пытаться понять, что там в моде сообразили ножноклавишным методом. А большая часть того, что написано адекватно, лежит на гитхабе/битбакете, ибо более-менее адекватный код не так стремно туда заливать.

Поэтому если хочешь примеров - рекомендую поискать по темам в разделе модов те, что хостятся на гитхабе/битбакете, ибо там примеры будут наиболее актуальны на текущий момент.

  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(редактировалось)

 

Спасибо!

Нагуглил такой код. Немного подправил - работает. В данном примере, как я понял, помимо вызова стандартного обработчика происходит вызов "левой" функции.

Такой подход есть смысл использовать?

 

from gui.Scaleform.battle_entry import BattleEntry

 

def MYM1():

    #мой код

   

def new_BattleEntry_afterCreate(self):

    MYM1()

    old_BattleEntry_afterCreate(self)

   

old_BattleEntry_afterCreate = BattleEntry.afterCreate

BattleEntry.afterCreate=new_BattleEntry_afterCreate

Изменено пользователем STREJlA

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо!

Нагуглил такой код. Немного подправил - работает. В данном примере, как я понял, помимо вызова стандартного обработчика происходит вызов "левой" функции.

Такой подход есть смысл использовать?

 

Не левой функции, а твоего кода. Ты же свой код хочешь запихнуть так, чтобы он выполнялся после создания боя? Вот это оно и есть, только тут два момента:

 

1. Код выше можешь выкинуть - он старый, вместо него юзай 

from Avatar import PlayerAvatar

def new__startGUI(self):
    old__startGUI(self)
    <твой код>

old__startGUI = PlayerAvatar._PlayerAvatar__startGUI
PlayerAvatar._PlayerAvatar__startGUI = new__startGUI

2. В данном случае свой код следует писать после вызова оригинальной функции, так как до её вызова многие элементы боя просто не будут созданы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×