Jump to content
Korean Random

Kotyarko_O

Premium Member
  • Content Count

    6,110
  • Joined

  • Last visited

  • Days Won

    49

Everything posted by Kotyarko_O

  1. Sure. If i can help, i will. Further discussion may be offtopic in thread so named. Change it to "Some questions about modmaking".
  2. It`s already done. Here: https://bitbucket.org/The_IzeBerg/modssettingsapi/src/0570eaea89ae85d3817422aa6487bd17eebb6530/mod_modsettingsexample.py#lines-113 There is global var "settings", which contains modified settings if it has been modified in modSettingApi window and it`s cache exists, or default settings otherwise (https://bitbucket.org/The_IzeBerg/modssettingsapi/src/0570eaea89ae85d3817422aa6487bd17eebb6530/mod_modsettingsexample.py#lines-90) Don`t forget to refresh global var "settings" when new settings applyed: def onModSettingsChanged(linkage, newSettings): if linkage == modLinkage: global settings settings = newSettings
  3. Yes. Or, as an option, and if your mod\code\project may be large, it can be like package (https://docs.python.org/3/tutorial/modules.html#packages).
  4. So you provide your settings in separate mod, am i right? If so, it isn`t correct.
  5. When apply button pressed, event "onModSettingsChanged" is performed. In thatfunction you can do what you need to do. For example: def onModSettingsChanged(linkage, newSettings): if linkage == modLinkage: setNewSettings(newSettings) def setNewSettings(settings): print settings['textInput'] I`m not sure that "settings['textInput']" is correct. You need to test it. I don`t know what exactly contains "newSettings"-argument.
  6. https://bitbucket.org/The_IzeBerg/modssettingsapi/src/0570eaea89ae85d3817422aa6487bd17eebb6530/mod_modsettingsexample.py#lines-113
  7. from gui.Scaleform.daapi.view.meta.DamagePanelMeta import DamagePanelMeta isVehInFire = False old_setFireInVehicleS = DamagePanelMeta.as_setFireInVehicleS def new_setFireInVehicleS(self, isInFire): global isVehInFire isVehInFire = isInFire DamagePanelMeta.as_setFireInVehicleS = new_setFireInVehicleS Example: https://bitbucket.org/Kotyarko_O/xvm.py_macro/src/19fbaa0b1c298ccc87bd20a2b0dfce320ef981e4/repairControl/repairControl.py#lines-260 Guide: https://kr.cm/f/t/25477/c/279913/ (a bit outdated). Example: https://bitbucket.org/Kotyarko_O/modpack_updatesannouncer-moder/src/master/
  8. Because every time you get damaged in this condition (fcurHp/fmaxHp <= 0.1), you create another thread and checks it. First of all, "LH" must be a global var. So the code must be like: LH = None ... if fcurHp/fmaxHp <= 0.1: global LH if not (LH and LH.is_alive()): LH = threading.Thread(target=LowHp) LH.start() print("LH_Start")
  9. My bad. Try to use "onAvatarReady" instead of "onAvatarBecomePlayer".
  10. Sure: from BigWorld import player from PlayerEvents import g_playerEvents from Vehicle import Vehicle maxHp = None curHp = None def setMaxHp(): global maxHp plVeh = player().getVehicleAttached() maxHp = plVeh.typeDescriptor.maxHealth def new_onHealthChanged(self, newHealth, attackerID, attackReasonID): old_onHealthChanged(self, newHealth, attackerID, attackReasonID) if not self.isPlayerVehicle: return global curHp curHp = newHealth def reset(): global maxHp, curHp maxHp = None curHp = None g_playerEvents.onAvatarBecomePlayer += setMaxHp # old_onHealthChanged = Vehicle.onHealthChanged Vehicle.onHealthChanged = new_onHealthChanged # g_playerEvents.onAvatarBecomeNonPlayer += reset May be mistakes\errors, didn`t test it. https://bitbucket.org/P0LIR0ID/wot-modslist/src/master/ https://bitbucket.org/The_IzeBerg/modssettingsapi/src/master/ (https://kr.cm/f/t/48259/) https://kr.cm/f/t/25477/c/279913/ Almost all of this utils have only russian description, unfortunasdljsklfjdfkh (can`t remember all letters in this word).
  11. Like this: from Vehicle import Vehicle from random import randint from time import sleep def _set_brightness(value): b.set_light(4, 'bri', value, transitiontime=10) b.set_light(5, 'bri', value, transitiontime=10) def new_onHealthChanged(self, newHealth, attackerID, attackReasonID): old_onHealthChanged(self, newHealth, attackerID, attackReasonID) if not self.isPlayerVehicle: return #make light randomly flashes for 10 times for _ in range(10): _set_brightness(randint(0, 254)) sleep(0.1) #restore brightness to default _set_brightness(254) old_onHealthChanged = Vehicle.onHealthChanged Vehicle.onHealthChanged = new_onHealthChanged
  12. А, это нормально. Скрипт действительно знает об уничтожении чуть-чуть заранее... заранее вас =) Как бы странно это не прозвучало. Если по простому: когда вы, как человек, только можете видеть трассер\эффект выстрела, сервер уже успел обсчитать попадание\пробитие\урон\уничтожение и отправил результат обратно клиенту, он обработал и уже готов к отрисовке соответствующего исхода. Просто кто-то выстрелил раньше вас =) Скорость выполнения вышеперечисленных действий напрямую зависит от пинга. 40-50 это когда вы обращаете на него внимание, прыгнуть может в любой момент, и момент уничтожения - не исключение.
  13. Зачем? Любые изменения, затрагивающие конфиг, указываются в чейнджлогах. Скачали новую версию, посмотрели список изменений, предпринимаете определённые действия. Можно. И всегда можно было. Все конфиги, в которые вы не вносите изменений, просто удаляете. Удаляете на них ссылку (в @xvm.xc, battle.xc, battleLabelsTemplates.xc и т.д.). Все недостающие в конкретном конфиге настройки будут браться из дефолта - конфига, вшитого в мод. Если есть конфиг, в котором вам нужна всего одна опция, оставляйте только её и удаляйте все ненужные - механика та же и все удалённые будут браться из дефолта.
  14. Чтобы хоть изменить размер поля, флешку придётся редактировать и таскать с аддоном, не вариант. Вариант.
  15. Аддон не добавляет текстовое поле, а изменяет имеющееся (то, в котором указывается имя карты и режим боя). По сути, в размерах не ограничены - поле с автосайзом (могу ошибаться). Но добавление в данном случае это: для ширины - добавить пробелов или tabstops, для высоты - использовать "\n". То есть, кастомизация ниоч. Но если есть идеи для более удачного расположения, можно влезть в какое-то другое поле =) В текущем виде можно подобрать tabstops и вывести показатель по центру окна, над текстом с результатом боя.
  16. Поправил, сделал уровень кешируемым. Зависать при ошибках больше не будет.
  17. Обновлено. Добавлена отдельная версия для 1.4.1CT. Добавлен расчёт среднего уровня (спасибо @Budyx69).
  18. Ух-ты. А в патчноуте об этом не вспомнили. Да и тени тексту хоть какой-то тоже не хватает - забыли, судя по скрину =) Поставлю CT, сделаю новую версию аддона.
  19. Maybe @ktulho will give advice. @SicFunzler , please, attach logs as files further. And what about in-battle stats, attach full xvm.log (game client must be closed before you take this file).
  20. It seems you have updated "repairControl" addon (https://kr.cm/f/t/36840/c/449226/) and obsolete config. Change all "getYByOffset" to "getYWOffset".
×
×
  • Create New...