Jump to content
Korean Random
goodman

Динамические макросы в Python

Recommended Posts

Еще бы цвет круга сведения менять - красный, если арта еще на перезарядке, и белый, если готова стрелять.

нет такого варианта - "красный". есть белый, зелёный, жёлто-чёрный.

Share this post


Link to post

Short link
Share on other sites

нет такого варианта - "красный". есть белый, зелёный, жёлто-чёрный.

Можно сделать под другими названиями.

Share this post


Link to post

Short link
Share on other sites

как правильно картинку вместо текста прописать?

{{py:xvm.total_hp.mainGun('<img src='img://gui/maps/icons/achievement/mainGun.png' width='28' height='28' align='baseline' vspace='-15'>', {{hitlog.dmg-total}})}}

и как вывести символы в место цифр если основной калибр  получен и нет возможности получить?

Share this post


Link to post

Short link
Share on other sites

и как вывести символы в место цифр если основной калибр  получен и нет возможности получить?

 

Не меняя сам скрипт никак.

 

'Example'

 

'Расшифровка'

 

done.png - набит урон для получения медальки.

icon_alert_32x32.png - попали по союзнику, условие нарушено, не получаем медальку.

attentionIconFilledBig.png - невозможно получить медальку в данном бою по всем критериям.

 

Аналогично картинку можно заменить на символ:

'<img src="img://gui/maps/icons/library/done.png" width="25" height="25" align="middle" vspace="-10">'
'<font face="xvm">Đ</font>'

def mainGun(dmg_total):
    global actual_arenaUniqueID, max_hp_enemy
    arenaUniqueID = BigWorld.player().arenaUniqueID
    if actual_arenaUniqueID != arenaUniqueID:
      actual_arenaUniqueID = arenaUniqueID
      max_hp_enemy = panel.teams_totalhp[1]
    battletype = BigWorld.player().arena.guiType
    if battletype != 1:
        return
    else:
        threshold = max_hp_enemy * 0.2 if max_hp_enemy > 5000 else 1000
        high_caliber = int(threshold - dmg_total)
        if data.teamHits:
            if high_caliber <= 0:
                high_caliber = '<img src="img://gui/maps/icons/library/done.png" width="25" height="25" align="middle" vspace="-10">'
        else:
            high_caliber = '<img src="img://gui/maps/icons/library/icon_alert_32x32.png" width="25" height="25" align="middle" vspace="-10">'
    if max_hp_enemy >= 1000:
        return high_caliber
    else:
        high_caliber = '<img src="img://gui/maps/icons/library/attentionIconFilledBig.png" width="25" height="25" align="middle" vspace="-10">'
        return high_caliber

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites

@night_dragon_on, если мне память не изменяет то ты писал скрипт для дефолта. почему не сделали более расширенные настройки? сложности были или макс не пустил?

Share this post


Link to post

Short link
Share on other sites

если мне память не изменяет то ты писал скрипт для дефолта. почему не сделали более расширенные настройки?

 

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

 

P.S.: Данный простой вариант отображения позаимствован был из мода от @tratatank-ка, который уже многим стал привычным и понятным.

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites

 

 

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

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

Share this post


Link to post

Short link
Share on other sites

ребят подскажите пожалуйста -сам так и не нашёл-где то был пост с описанием как убрать из дамаг панели имя игрока и название танка

Share this post


Link to post

Short link
Share on other sites

Dunno if it's okay to talk English in here, so sorry if it's not.

 

I write a python macro to show the friendly arty's aiming position.
It will display as white points in the minimap and white circle in the battle view.

 
Thanks a lot adri1, your script is really clever and useful. Unfortunately, there's a big limitation as it only works for arties that are within the view range of your tank (BigWorld.entity(vid) returns None otherwise). It's even worse for arties in arty view (strategic mode), as it depends on where the arty is aiming: your tank can be located near another friendly arty, and yet you won't see where he aims at if you aim too far from his position (even if both of you aim at the same location!).

 

But that's still a very useful addon, and probably a good base for implementing the XMQP arty features suggested there. I'll give it a try...

 

Updating every seconds is probably too slow, but doing it every frames is probably too much. Something like every 10 frames should probably be better (using ON_EVERY_FRAME and a frame counter in refreshAimPos()).

 

Here are the instructions for those who haven't understand how to install that wonderful addon:

  1. download attachment from adri1 post and extract it into res_mods\configs\xvm\py_macro\xvm
  2. create a new file in res_mods\configs\xvm\py_macro, name it aimpos.py (name doesn't matter) and put the following in it (original code from adri1 is invalid):
    from xvm import aimingposition
    
    @xvm.export('xvm.aimpos', deterministic = False)
    def refreshAimPos():
    	aimingposition.posManager.refreshList()
    	return ''
    
    
  3. edit the file res_mods\configs\xvm\default\battleLabelsTemplates.xc and add the following lines just before the line "hitlogHeader": {:
        "AimPos": {
          "enabled": true,
          //"updateEvent": "ON_EVERY_FRAME",
          "updateEvent": "ON_EVERY_SECOND",
          "alpha": 0,
          "format": "{{py:xvm.aimpos}}"
        },
    
  4. edit the file res_mods\configs\xvm\default\battleLabels.xc and add the following line just before the line ${ "battleLabelsTemplates.xc":"def.hitlogHeader" },:
    ${ "battleLabelsTemplates.xc":"def.AimPos" },
    

 

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Share this post


Link to post

Short link
Share on other sites

@sirmax, Можно сделать поддержку макросов в wigth. тут подробнее

должно работать в width, вот нормализация действительно не будет работать, но ее можно и в самом питоне сделать.

Share this post


Link to post

Short link
Share on other sites

, есть же такой мод

посетил сей сайт - ну да, мод навороченный - клики, квадраты, сообщения, комбинации, куча файлов. Думал через ру. можно было бы что-то по проще сделать (1-2 файла), чтобы пару дежурных фраз написать, к примеру "Всем привет!" или "Всем удачного боя",не более того. Но что мод реанимировали не знал, благодарствую  :thx:

Share this post


Link to post

Short link
Share on other sites

@sirmax, что то изменилось в работе отдачи данных о запасе прочности техники (ХП) из "fragCorrelationPanel" (xvm_battle / python / fragCorrelationPanel.py).

 

Для расчета основного калибра в дефолте (mainGun) мы определяем максимальное начальное значение прочности для техники противников.

...
if actual_arenaUniqueID != arenaUniqueID:
  actual_arenaUniqueID = arenaUniqueID
  max_hp_enemy = panel.teams_totalhp[1]
...

Далее это значение используем в расчетах.

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

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites
не было времени скатать на основе (завтра проверю), но на тесте заметил такую вещь, что данные по ХП частенько подгружаются только при первом засвете техники.

на основе так же - в начале боя нули (None), а потом появляются цифры ХП

 

up на основе некорректное поведение ХП команд наблюдается только при ошибках в пользовательских py_macros (к примеру, если в коде встречается g_sessionProvider)

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

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

к примеру, если в коде встречается g_sessionProvider

from gui.battle_control import g_sessionProvider

отдаёт ошибку "cannot import name g_sessionProvider". появилось только в 9.17

подозреваю, что были изменены имена переменных. кто-нибудь в курсе, как теперь правильно получать g_sessionProvider?

 

upd: разобрался. это теперь BigWorld.player().guiSessionProvider

Edited by LuckyCrusky
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
разобрался. это теперь BigWorld.player().guiSessionProvider

спасиб, добрый человек, помогло поправить aimingposition :))

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

спасиб, добрый человек, помогло поправить aimingposition :))

 

А что надо сделать, чтобы поправить? А то у меня что то не работает 8(((

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.
Note: Your post will require moderator approval before it will be visible.

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...