Jump to content
Korean Random
goodman

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

Recommended Posts

Эта функция, в маркерах, вызовиться только один раз, в начале боя.

а дальше в ней пишешь свою функцию, а на нее ставишь колобок

я пример привел, проверь

http://www.koreanrandom.com/forum/topic/31856-динамические-макросы-в-python/?p=333885

Share this post


Link to post

Short link
Share on other sites

Py_macro это такой же макрос как и остальные макросы XVM. Он может возвращать только строку, число и т.д., в общем то что сможет обработать парсер конфига.

Share this post


Link to post

Short link
Share on other sites

Нашел способ отображения py_macro в маркерах, в ушах, на карте и т.д.

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

Стоит ли показывать данный метод? Появятся возможность реализовать что-то "похожее на читы".

 

Хотелось бы увидеть аргументированные доводы, а не +  и - .

 

Ни кто не хочет высказаться?

Попробую прояснить ситуацию. Py_macro относятся скорее к статическим макросам.

1) В маркерах, они один раз читаются в начале боя. То есть ни о каких Таймеров с обратном отсчетом или поломанных модулей речи быть не может.

2) В ушах, они обновляются в начале боя и при смене типа ушей. Поэтому удобно использовать их в ушах "altMode". При чем данные о противники будут можно получить, если он в засвете и в кругу отрисовки.

(имхо) это как нож. Кто-то режет хлеб, а кто-то людей - все зависит от того, в чьих он руках... Никто не мешает ЦА скачать чит-мод с инета и пользоваться вполне бесплатно и безнаказанно... Макросы, размещённые в этой теме, ещё не мод и, тем более, не чит. Чтобы они стали читом надо ещё приложить руки и голову - и посложнее, чем погуглить "перезарядку" и/или "поваленные дееревья" вкупе с "тундрой"... Считаю достаточным обязательное предупреждение типа "возможно чит" при публикации чего-то, по мнению автора, читового :)) Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

@Kapany3uk, Воспринимаю, как не против. ))

именно.

Я читами не пользуюсь. Если что-то из этой темы обозначат читом - просто сотру... Но макросами интересуюсь: давно уже играю не в танки, а в ХВМ :))

Share this post


Link to post

Short link
Share on other sites
Я читами не пользуюсь. Если что-то из этой темы обозначат читом - просто сотру...

Согласен, в любой игре есть правила и их надо придерживаться, иначе становится не интересно играть ни тем, ни другим. 

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites

Попробую прояснить ситуацию. Py_macro относятся скорее к статическим макросам. 

1) В маркерах, они один раз читаются в начале боя. То есть ни о каких Таймеров с обратном отсчетом или поломанных модулей речи быть не может.

2) В ушах, они обновляются в начале боя и при смене типа ушей. Поэтому удобно использовать их в ушах "altMode". При чем данные о противники будут можно получить, если он в засвете и в кругу отрисовки.

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

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

Share this post


Link to post

Short link
Share on other sites

 

 

прокачки экипажа
, этого мы не знаем (я не знаю).

Еще бы кто-нибудь из разработчиков высказался.

Share this post


Link to post

Short link
Share on other sites

 

 

давно уже играю не в танки, а в ХВМ :))
да, та же беда :ok: 
лето же, куча дел, а у некоторых ещё и каникулы :heh: 
так что сяду в танк только осенью :) 

Share this post


Link to post

Short link
Share on other sites
Хотя, знание точного времени перезарядки с учетом установленного оборудования и прокачки экипажа с натяжкой можно назвать чем-то читерским.

имхо инфа о времени перезарядки сама по себе не является читом, а вот индикация "...готов ли противник стрелять или ещё не готов" -  это 100% чит :)),

'дословно'

8. Модификация, показывающая перезарядку вражеских танков

Эта модификация добавляет информацию о перезарядке (имхо заряжен/перезаряжается) вражеских танков на миникарте, в боевом чате или в маркере над танком.

Преимущества игроков, у которых стоит данная модификация:

Даёт возможность оценивать, готов ли противник стрелять или ещё не готов. (а возможность высчитывать/засекать секунды с десятыми и сотыми долями после последнего выстрела противника в сравнении с отображаемым временем его актуальной перезарядки имхо не может быть читом, пока игроку нужно самому засекать и самому считать это время...)

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

или же сама картошка пофиксит отдачу этой инфы в бою.

вот это - must have для картохи

Share this post


Link to post

Short link
Share on other sites

 

 

вот это - must have для картохи

Ну раз никто не против.

Share this post


Link to post

Short link
Share on other sites

Ну раз никто не против.

не томи уже :))

Share this post


Link to post

Short link
Share on other sites

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

В файле markersAliveNormal.xc:

"format": "{{hp}} / {{hp-max}} {{py:xvm.myInfoPanel.shortNameTank('{{name}}')}}"

В файле xvm.py:

from xvm import myInfoPanel

@xvm.export('xvm.myInfoPanel.shortNameTank', deterministic=False)
def myInfoPanel_shortNameTank(userName):
    return myInfoPanel.shortNameTank(userName)

В файле myInfoPanel.py, находящемся по пути \py_macro\xvm\:

import BigWorld

# получаем ID танка игрока, поле которого сейчас обновляется
def getVehicleID(userName):
    vehicles = BigWorld.player().arena.vehicles
    for vehicleID in vehicles:
        vehicle = vehicles.get(vehicleID)
        if userName == vehicle['name']:
            return vehicleID
    return None

# получаем танк со всеми потрохами
def typeDescriptorVehID(userName):
    vehicle = BigWorld.entity(getVehicleID(userName))
    return None if not vehicle else vehicle.typeDescriptor

# короткое название теники
def shortNameTank(userName):
    typeDescriptor = typeDescriptorVehID(userName)
    return '' if not typeDescriptor else typeDescriptor.type.shortUserString

Результат:

post-17624-0-61806100-1466543076_thumb.jpg
Edited by ktulho
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

@ktulho, Круто, спасибо:) Много новых возможностей открывается.

 

 

Тут подумалось, по идее, таким методом можно заменить макрос {{turret}}, который отталкивается только от разницы ХП у стоковой и топовой башни. Можно на всех танках определять установлено ли топ орудие или нет, то же самое про башню.

Edited by neLeax

Share this post


Link to post

Short link
Share on other sites

Приведу пример для маркера.

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

В файле markersAliveNormal.xc:

"format": "{{hp}} / {{hp-max}} {{py:xvm.myInfoPanel.shortNameTank('{{name}}')}}"
В файле xvm.py:

from xvm import [email protected]('xvm.myInfoPanel.shortNameTank', deterministic=False)def myInfoPanel_shortNameTank(userName):    return myInfoPanel.shortNameTank(userName)
В файле myInfoPanel.py, находящемся по пути \py_macro\xvm\:

# получаем ID танка игрока, поле которого сейчас обновляетсяdef getVehicleID(userName):    vehicles = BigWorld.player().arena.vehicles    for vehicleID in vehicles:        vehicle = vehicles.get(vehicleID)        if userName == vehicle['name']:            return vehicleID    return None# получаем танк со всеми потрохамиdef typeDescriptorVehID(userName):    vehicle = BigWorld.entity(getVehicleID(userName))    return None if not vehicle else vehicle.typeDescriptor# короткое название теникиdef shortNameTank(userName):    typeDescriptor = typeDescriptorVehID(userName)    return '' if not typeDescriptor else typeDescriptor.type.shortUserString
Результат:

Отлично :))

Share this post


Link to post

Short link
Share on other sites

@ktulho, Круто, спасибо:) Много новых возможностей открывается.

 

 

Тут подумалось, по идее, таким методом можно заменить макрос {{turret}}, который отталкивается только от разницы ХП у стоковой и топовой башни. Можно на всех танках определять установлено ли топ орудие или нет, то же самое про башню.

Можно половину макросов XVM заменить.

Можно попробовать вытянуть {{dmg-total}} из хитлога. 

Share this post


Link to post

Short link
Share on other sites

Можно половину макросов XVM заменить.

 

еще бы вывод анимации освоить! Для всяких мультиков (лампа, уничтожение, взрыв БК и т.п.) Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

XVM не поддерживает вывод анимации. Или я ошибаюсь? 


Может с переходом на AS3 появится.

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