Jump to content
Korean Random
ktulho

[Лог нанесенного урона / Hitlog] V2 (py_macro)

Recommended Posts

07.10.2020 в 08:15, BuSH сказал:

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

Добавил.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
6 часов назад, ktulho сказал:

Добавил.

Парсер не может его пережевать, хоть обучен миксовать int и float.

Можно просто урон в макросе сделать целым, но лучше же парсер научить. Я не первый раз сталкиваюсь.

int(float('530.0'))

2020-10-12 02:30:19.008: INFO: =============================
2020-10-12 02:30:19.008: INFO: 2020-10-12 02:30:19: [ERROR] mods/xfw_libraries/xfw/events.pyc
2020-10-12 02:30:19.008: ERROR: Traceback (most recent call last):
2020-10-12 02:30:19.008: ERROR:   File "events", line 58, in __event_handler
2020-10-12 02:30:19.009: ERROR:   File "events", line 25, in fire
2020-10-12 02:30:19.009: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 910, in _Vehicle_onHealthChanged
2020-10-12 02:30:19.009: ERROR:     g_dataHitLog.onHealthChanged(self, newHealth, attackerID, attackReasonID)
2020-10-12 02:30:19.009: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 348, in onHealthChanged
2020-10-12 02:30:19.009: ERROR:     self.updateData()
2020-10-12 02:30:19.009: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 302, in updateData
2020-10-12 02:30:19.009: ERROR:     self.updateLabels()
2020-10-12 02:30:19.010: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 220, in updateLabels
2020-10-12 02:30:19.010: ERROR:     g_hitLogs.output()
2020-10-12 02:30:19.010: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 824, in output
2020-10-12 02:30:19.010: ERROR:     log.output()
2020-10-12 02:30:19.010: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 781, in output
2020-10-12 02:30:19.010: ERROR:     self.listLog = self.groupHitByFireRamming.getListLog()
2020-10-12 02:30:19.010: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 692, in getListLog
2020-10-12 02:30:19.010: ERROR:     self.udateListLog()
2020-10-12 02:30:19.010: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 653, in udateListLog
2020-10-12 02:30:19.010: ERROR:     formattedString = parser(_config.get(self.S_FORMAT_HISTORY, ''), macros)
2020-10-12 02:30:19.010: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\hitLog.py", line 80, in parser
2020-10-12 02:30:19.010: ERROR:     return parser_addon.parser_addon(notParsedStr, macros)
2020-10-12 02:30:19.010: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\parser_addon.py", line 6, in parser_addon
2020-10-12 02:30:19.010: ERROR:     return _parser(strHTML, dict_macros)
2020-10-12 02:30:19.010: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\parser_addon.py", line 153, in _parser
2020-10-12 02:30:19.010: ERROR:     _macro, non = formatMacro(substr, macros)
2020-10-12 02:30:19.011: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\parser_addon.py", line 92, in formatMacro
2020-10-12 02:30:19.011: ERROR:     compar = comparing(_macro, _operator, _math)
2020-10-12 02:30:19.011: ERROR:   File "res_mods/configs/xvm/py_macro\xvm\parser_addon.py", line 17, in comparing
2020-10-12 02:30:19.011: ERROR:     _math = int(_math)
2020-10-12 02:30:19.011: ERROR: ValueError: invalid literal for int() with base 10: '530.0'
2020-10-12 02:30:19.011: INFO: =============================

 

Share this post


Link to post

Short link
Share on other sites
5 часов назад, BuSH сказал:

Парсер не может его пережевать, хоть обучен миксовать int и float.

Нужен пример.

Share this post


Link to post

Short link
Share on other sites
3 часа назад, ktulho сказал:

Нужен пример.

Макрос новый,. Когда сравниваем с другими циферками типа:

{{shell-dmg={{dmg}}?aga|ne}}

хотЛога нет а при каждом уроне вот тот лог. 

Вот такие забавные у нас данные.

{{shell-dmg}} = '530.0'

{{dmg}} = 530

 

parser_addon когда пробует привести к целому этот shell-dmg вылетает с ValueError

Ну вот кароче:

>>> int('530.0')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '530.0'
>>> int(float('530.0'))
530
>>> int(530.0)
530

 

Share this post


Link to post

Short link
Share on other sites
1 час назад, BuSH сказал:

{{shell-dmg}} = '530.0'

когда я тестировал макрос в дамаглоге - применял форматирование:

{{shell-dmg}} = 530.0
{{shell-dmg%.0f}} = 530

 

Share this post


Link to post

Short link
Share on other sites

@HEKPOMAHT ну такое... Вопрос не в построении костылей, а наоборот!

Share this post


Link to post

Short link
Share on other sites
5 часов назад, BuSH сказал:

{{shell-dmg={{dmg}}?aga|ne}}

Такая конструкция ошибок не дает.

image.png.3c7a76bbb17fdcd1d877ae3a97041d2c.png

Share this post


Link to post

Short link
Share on other sites

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

Пока только осилил уменьшить лог до одного, пожирневшего вложенностями, макроса, без которого, ошибки нет., По утру ещё поковыряю.

{{alive?{{shell-dmg={{dmg}}?{{0%5d~%}}|{{py:abs({{py:mul({{py:div({{py:sub({{dmg}}, {{shell-dmg}})}}, {{shell-dmg}})}},100)}})<26?{{dmg>{{shell-dmg}}?<font color='#00FF00'>{{py:mul({{py:div({{py:sub({{dmg}}, {{shell-dmg}})}}, {{shell-dmg}})}},100)%5.1f~%}}</font>|<font color='#FF3333'>{{py:mul({{py:div({{py:sub({{shell-dmg}}, {{dmg}})}}, {{shell-dmg}})}},100)%5.1f~%}}</font>}}|{{c:type-shell=FFFFFF?<font color='#ffff55'>{{py:div(100, {{py:div({{py:div({{shell-dmg}}, 2)}}, {{dmg}})}})%5.1f~%}}</font>|}}}}}}|}}{{my-vtype-key=SPG?<tab>{{splash-hit?|+}}}}

Ух орну если  abs станет крайним.

 

Share this post


Link to post

Short link
Share on other sites
10 минут назад, BuSH сказал:

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

Пока только осилил уменьшить лог до одного, пожирневшего вложенностями, макроса, без которого, ошибки нет., По утру ещё поковыряю.

{{alive?{{shell-dmg={{dmg}}?{{0%5d~%}}|{{py:abs({{py:mul({{py:div({{py:sub({{dmg}}, {{shell-dmg}})}}, {{shell-dmg}})}},100)}})<26?{{dmg>{{shell-dmg}}?<font color='#00FF00'>{{py:mul({{py:div({{py:sub({{dmg}}, {{shell-dmg}})}}, {{shell-dmg}})}},100)%5.1f~%}}</font>|<font color='#FF3333'>{{py:mul({{py:div({{py:sub({{shell-dmg}}, {{dmg}})}}, {{shell-dmg}})}},100)%5.1f~%}}</font>}}|{{c:type-shell=FFFFFF?<font color='#ffff55'>{{py:div(100, {{py:div({{py:div({{shell-dmg}}, 2)}}, {{dmg}})}})%5.1f~%}}</font>|}}}}}}|}}{{my-vtype-key=SPG?<tab>{{splash-hit?|+}}}}

Ух орну если  abs станет крайним.

 

Что здесь считается?

Share this post


Link to post

Short link
Share on other sites

разница от базового урона :)

эта штука успешно откатала несколько десятков тысяч боёв ) оно рабочее если че

но когда я сам прикручивал этот макрос, он был изначально INT

  

07.10.2020 в 08:15, BuSH сказал:

self.data['shellDamage'] = int(_shells['shellDamage'])

 

Edited by BuSH

Share this post


Link to post

Short link
Share on other sites

@BuSH Этот макрос не подходит?

{{dmg-deviation}} - TODO / отклонение нанесенного урона от номинального урона снаряда в процентах. Возвращает 0.0, если техника была уничтожена выстрелом, или выстрел был фугасом и отклонение составило больше 25%.

 

Share this post


Link to post

Short link
Share on other sites

ну там чуть более тонко всё :) + арта со сплешами  

Share this post


Link to post

Short link
Share on other sites
17 минут назад, ktulho сказал:

{{py:mul({{py:div({{py:sub({{dmg}}, {{shell-dmg}})}}, {{shell-dmg}})}},100)}}

Это вроде можно заменить на {{dmg-deviation}}

Share this post


Link to post

Short link
Share on other sites
20 часов назад, BuSH сказал:

{{shell-dmg={{dmg}}?aga|ne}}

наоборот :) 

{{dmg={{shell-dmg}}?aga|ne}} вместо dmg любой integer

 

перед сравнением тип данных с 1-го объекта применится ко 2-му

dmg у нас INT за что  уносит в выделенное условие

 

image.png.6a0d2a23440f1615934041524c5eda24.png

за что и 2-й объект получает тоже INT

но у нас _math, который {{shell-dmg}}, очень хитрое число  и int() не терпит

image.png.deefa9373ca1a48b8911d35885815350.png

не так много городить костелей пришлось для воспроизведения

 

ну и кек, чебурек

image.thumb.png.a0c8b701d673f3ef8ce17981c0c06fc4.png

махнул местами )

Edited by BuSH

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...