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

Фото

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


  • Чтобы отвечать, сперва войдите на форум
42 ответов в теме

#21 GPCracker

GPCracker

    Piranhas Team

  • Пользователь
  • 2 251 сообщений
  • WoT Server:RU (Русский)
  • Город: Москва

Опубликовано 13 Октябрь 2016 - 22:22

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

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

#22 STREJlA

STREJlA
  • Пользователь
  • 18 сообщений
  • Nick:STREJlA
  • WoT Server:RU (Русский)

Опубликовано 13 Октябрь 2016 - 22:23

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

 

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


Изменено: STREJlA, 13 Октябрь 2016 - 22:23

  • 0

#23 SkepticalFox

SkepticalFox

    ShadowHunterRUS

  • Premium Member
  • 3 510 сообщений
  • Nick:SkepticalFox
  • WoT Server:RU (Русский)
  • Город: Moscow

Опубликовано 13 Октябрь 2016 - 22:30

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

Лучше не лезть в реализацию чата от картохи)
Там у нее куча легаси кода...

P.S. чтобы было http://www.koreanran...m/topic/32712-/

Изменено: SkepticalFox, 13 Октябрь 2016 - 22:38

  • 0

#24 Yupi

Yupi
  • Пользователь
  • 2 454 сообщений

Опубликовано 13 Октябрь 2016 - 23:27

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

 

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

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


  • 0

#25 STREJlA

STREJlA
  • Пользователь
  • 18 сообщений
  • Nick:STREJlA
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 19:21

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

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


  • 0

#26 Yupi

Yupi
  • Пользователь
  • 2 454 сообщений

Опубликовано 15 Октябрь 2016 - 19:47

Как я понял, в среде мододелов знаниями не особо делятся.

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

 

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


Изменено: Yupi, 15 Октябрь 2016 - 19:51

  • 1

#27 GPCracker

GPCracker

    Piranhas Team

  • Пользователь
  • 2 251 сообщений
  • WoT Server:RU (Русский)
  • Город: Москва

Опубликовано 15 Октябрь 2016 - 19:58

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

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

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

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

#28 STREJlA

STREJlA
  • Пользователь
  • 18 сообщений
  • Nick:STREJlA
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 20:09

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

 

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

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

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


  • 0

#29 0kosmo

0kosmo
  • Пользователь
  • 112 сообщений
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 20:38

 

 

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

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


  • 1

#30 STREJlA

STREJlA
  • Пользователь
  • 18 сообщений
  • Nick:STREJlA
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 20:41

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

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

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


  • 0

#31 GPCracker

GPCracker

    Piranhas Team

  • Пользователь
  • 2 251 сообщений
  • WoT Server:RU (Русский)
  • Город: Москва

Опубликовано 15 Октябрь 2016 - 20:48

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

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

Изменено: GPCracker, 15 Октябрь 2016 - 20:49

  • 0

#32 Yupi

Yupi
  • Пользователь
  • 2 454 сообщений

Опубликовано 15 Октябрь 2016 - 20:53

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

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

 

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

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


  • 0

#33 STREJlA

STREJlA
  • Пользователь
  • 18 сообщений
  • Nick:STREJlA
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 20:54

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

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

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

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

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

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

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

 

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

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


  • 0

#34 Yupi

Yupi
  • Пользователь
  • 2 454 сообщений

Опубликовано 15 Октябрь 2016 - 20:57

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

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

 

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

 

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


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

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


  • 0

#35 STREJlA

STREJlA
  • Пользователь
  • 18 сообщений
  • Nick:STREJlA
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 21:00

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

 

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

 

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


 

 

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

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

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

 

P.S. Без XFW


Изменено: STREJlA, 15 Октябрь 2016 - 21:01

  • 0

#36 Yupi

Yupi
  • Пользователь
  • 2 454 сообщений

Опубликовано 15 Октябрь 2016 - 21:05

P.S. Без XFW
 

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

 

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


  • 0

#37 STREJlA

STREJlA
  • Пользователь
  • 18 сообщений
  • Nick:STREJlA
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 21:08

 

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

 

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

 

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

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


  • -1

#38 GPCracker

GPCracker

    Piranhas Team

  • Пользователь
  • 2 251 сообщений
  • WoT Server:RU (Русский)
  • Город: Москва

Опубликовано 15 Октябрь 2016 - 22:12

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

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

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

Хукнуть соответствующий метод. BigWorld.player() в ангаре это экземпляр класса Account, в бою - PlayerAvatar, файл Avatar.py. Все методы, которые отвечают за старт боя, есть там. Дальше все зависит от того, на каком этапе инициализации тебе нужно выполнить свою функцию. Вообще, тот или иной мод к чему-то привязывается. Соответственно, туда и надо ставить хуки. В точку непосредственного взаимодействия с игрой. Это наиболее эффективный подход к реализации, и наименее затратный по вспомогательному, не типовому коду.
Хуки надо ставить на классы. На объекты их поставить нужен скилл и хорошее знание питона, в частности дескрипторов. Далеко не самая простая для понимания тема. Да и особого смысла ставить хуки на объекты нет, ибо изменения чаще всего носят классовый характер, да и большая часть классов существует в одном экземпляре.
Примеры можно посмотреть в открытых модах. В принципе, код моих модов есть на гитхабе, но для новичка он будет слишком сложным для понимания, ибо там большой акцент сделан на автоматизацию/упрощение некоторых вещей при разработке, структуризацию, частично в оптимизацию выполнения и конфигурируемость, а не на минимальное количество строк и простоту кода. Для новичков лучше браться за что-то попроще.
Где-то валялась папка с декомпилированными исходниками времен 13/14 годов, но в настоящее время очень многое, из того, что там есть, уже не актуально. Да и необходимость что-то декомпилить последние год/полтора в принципе отсутствует, ибо около половины модов - это такой говнокод, что даже обезьяна, ИМХО, напишет лучше (сказывается тот факт, что очень редко какой мододел является опытным программистом), и гораздо проще (при наличии скилла и знании повадок программистов картохи) найти нужный код в клиенте игры, чем пытаться понять, что там в моде сообразили ножноклавишным методом. А большая часть того, что написано адекватно, лежит на гитхабе/битбакете, ибо более-менее адекватный код не так стремно туда заливать.
Поэтому если хочешь примеров - рекомендую поискать по темам в разделе модов те, что хостятся на гитхабе/битбакете, ибо там примеры будут наиболее актуальны на текущий момент.
  • 3

#39 STREJlA

STREJlA
  • Пользователь
  • 18 сообщений
  • Nick:STREJlA
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 22:22

 

Спасибо!

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

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

 

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, 15 Октябрь 2016 - 22:23

  • 0

#40 StranikS_Scan

StranikS_Scan

    Теоретик WorldOfTanks

  • Premium Member
  • 5 959 сообщений
  • WoT Server:RU (Русский)

Опубликовано 15 Октябрь 2016 - 22:43

Спасибо!

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

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

 

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

 

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

from Avatar import PlayerAvatar

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

old__startGUI = PlayerAvatar._PlayerAvatar__startGUI
PlayerAvatar._PlayerAvatar__startGUI = new__startGUI

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


  • 0





0 пользователей читают эту тему

0 зарегистрированных, 0 гостей, 0 невидимых

© Mr 13