Jump to content
Korean Random
goodman

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

Recommended Posts

кд с расчетом перков и тд

 

А откуда эта формула, что за коэффициенты: 0,875 ; 0.00375; 0,5

 

return '{0:.2f}'.format(entity.typeDescriptor.gun['reloadTime'] * 0.875 / (0.00375 * loader_skill + 0.5) * other_bonus)

Техника: Т-34-85,

Экипаж: 100% без ББ

Оборудование: Вентиляция + Досылатель

Без доп.пайка

 

Базовая перезарядка: 6 сек

Экипаж - заряжающий: 116%

6 * 0,875 / (0.00375 * 116 + 0.5) * 0,9 = 5,535

Немного не сходится, хотя может у ВГ как и ранее упоминалось грубое округление при расчете.

 

Показатели в ангаре: 5,1

Выводимая в прицеле в бою: 5,06

 

Edited by night_dragon_on

Share this post


Link to post

Short link
Share on other sites
Так у всех в маркерах отображается мое время перезарядки.

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

Благодаря @Ekspoint, мы теперь знаем какие установлены модули.

post-17624-0-19082100-1466365113_thumb.jpg
#название оборудования установленного в 1 слот
def firstDevice():
    return "" if not typeDescriptor().optionalDevices[0].userString else typeDescriptor().optionalDevices[0].userString

#название оборудования установленного во 2 слот
def secondDevice():
    return "" if not typeDescriptor().optionalDevices[1].userString else typeDescriptor().optionalDevices[1].userString

#название оборудования установленного в 3 слот
def thirdDevice():
    return "" if not typeDescriptor().optionalDevices[2].userString else typeDescriptor().optionalDevices[2].userString

А вот и названия иконок.

#имя файла иконки оборудования установленного в 1 слот, в формате: name.png
def firstIcoDevice():
    device = typeDescriptor().optionalDevices[0]
    return "addSlot.png" if not device else device.icon[0][device.icon[0].rfind('/')+1::1]

#имя файла иконки оборудования установленного во 2 слот, в формате: name.png
def secondIcoDevice():
    device = typeDescriptor().optionalDevices[1]
    return "addSlot.png" if not device else device.icon[0][device.icon[0].rfind('/')+1::1]

#имя файла иконки оборудования установленного в 3 слот, в формате: name.png
def thirdIcoDevice():
    device = typeDescriptor().optionalDevices[2]
    return "addSlot.png" if not device else device.icon[0][device.icon[0].rfind('/')+1::1]

Правда я не проверял этот код.

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites

А откуда эта формула, что за коэффициенты: 0,875 ; 0.00375; 0,5

 

return '{0:.2f}'.format(entity.typeDescriptor.gun['reloadTime'] * 0.875 / (0.00375 * loader_skill + 0.5) * other_bonus)

Техника: Т-34-85,

Экипаж: 100% без ББ

Оборудование: Вентиляция + Досылатель

Без доп.пайка

 

Базовая перезарядка: 6 сек

Экипаж - заряжающий: 116%

6 * 0,875 / (0.00375 * 116 + 0.5) * 0,9 = 5,535

Немного не сходится, хотя может у ВГ как и ранее упоминалось грубое округление при расчете.

 

Показатели в ангаре: 5,1

Выводимая в прицеле в бою: 5,06

 

у меня эта форума с  старого кода мода DamageAnnouncer

 

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

Благодаря @Ekspoint, мы теперь знаем какие установлены модули.

#название оборудования установленного в 1 слот
def firstDevice():
    return "" if not typeDescriptor().optionalDevices[0].userString else typeDescriptor().optionalDevices[0].userString

#название оборудования установленного во 2 слот
def secondDevice():
    return "" if not typeDescriptor().optionalDevices[1].userString else typeDescriptor().optionalDevices[1].userString

#название оборудования установленного в 3 слот
def thirdDevice():
    return "" if not typeDescriptor().optionalDevices[2].userString else typeDescriptor().optionalDevices[2].userString

А вот и названия иконок.

#имя файла иконки оборудования установленного в 1 слот, в формате: name.png
def firstDevice():
    device = typeDescriptor().optionalDevices[0]
    return "addSlot.png" if not device else device.icon[0][device.icon[0].rfind('/')+1::1]

#имя файла иконки оборудования установленного во 2 слот, в формате: name.png
def secondDevice():
    device = typeDescriptor().optionalDevices[1]
    return "addSlot.png" if not device else device.icon[0][device.icon[0].rfind('/')+1::1]

#имя файла иконки оборудования установленного в 3 слот, в формате: name.png
def thirdDevice():
    device = typeDescriptor().optionalDevices[2]
    return "addSlot.png" if not device else device.icon[0][device.icon[0].rfind('/')+1::1]

Правда я не проверял этот код.

я думаю что это получается чит, в одной теме уже поднимали этот вопрос

зря показал :)

Share this post


Link to post

Short link
Share on other sites
я думаю что это получается чит, в одной теме уже поднимали этот вопрос зря показал :)

, я вообще не понимаю зачем WG передает эту информацию клиенту. Пусть думают.

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites
def vDevicesFormat(vehicle):
        icons = ''
        devices_list = vehicle.typeDescriptor.optionalDevices
        if devices_list is not None:
            for device in devices_list:
                if device is not None:
                    icon = device.icon[0]
                    icons += '<img width="27" height="27" vspace="0" src="img://%s">' % icon.replace('..', 'gui')
        return icons

тут сразу выведет все картинки того оборудования которое стоит

сразу говорю что это ЧИТ ИНФА, если и хотите делать то для себя

Edited by Ekspoint

Share this post


Link to post

Short link
Share on other sites

 

 

сразу говорю что это ЧИТ ИНФА, если и хотите делать то для себя

такая же как и:

miscAttrs=[('crewChanceToHitFactor', 1.0),                      //перк Снайпер? 
           ('maxWeight', 17100.0), 
           ('antifragmentationLiningFactor', 1.0), 
           ('vehicleByChassisDamageFactor', 1.0), 
           ('engineHealthFactor', 1.0),                         //Фильтр «Циклон»
           ('crewLevelIncrease', 5),                            //перк братство или вентилятор?
           ('invisibilityFactor', 1.0),                         //Маскировочная сеть
           ('fuelTankHealthFactor', 1.0),                       //Заполнение баков CO2
           ('ammoBayHealthFactor', 1.0),                        //Мокрая боеукладка?
           ('repairSpeedFactor', 1.0),                          //Ящик с инструментами?
           ('gunAimingTimeFactor', 0.9100000262260437),         //Усиленные приводы наводки?
           ('additiveShotDispersionFactor', 1.0),               //Стабилизатор вертикальной наводки?
           ('gunReloadTimeFactor', 1.0),                        //Досылатель?
           ('circularVisionRadiusFactor', 1.100000023841858),   //Просветлённая оптика
           ('chassisHealthFactor', 1.0)]                        //Усиленные рессоры 

Share this post


Link to post

Short link
Share on other sites

 

такая же как и:

miscAttrs=[('crewChanceToHitFactor', 1.0),                      //перк Снайпер? 
           ('maxWeight', 17100.0), 
           ('antifragmentationLiningFactor', 1.0), 
           ('vehicleByChassisDamageFactor', 1.0), 
           ('engineHealthFactor', 1.0),                         //Фильтр «Циклон»
           ('crewLevelIncrease', 5),                            //перк братство или вентилятор?
           ('invisibilityFactor', 1.0),                         //Маскировочная сеть
           ('fuelTankHealthFactor', 1.0),                       //Заполнение баков CO2
           ('ammoBayHealthFactor', 1.0),                        //Мокрая боеукладка?
           ('repairSpeedFactor', 1.0),                          //Ящик с инструментами?
           ('gunAimingTimeFactor', 0.9100000262260437),         //Усиленные приводы наводки?
           ('additiveShotDispersionFactor', 1.0),               //Стабилизатор вертикальной наводки?
           ('gunReloadTimeFactor', 1.0),                        //Досылатель?
           ('circularVisionRadiusFactor', 1.100000023841858),   //Просветлённая оптика
           ('chassisHealthFactor', 1.0)]                        //Усиленные рессоры 

aga

Share this post


Link to post

Short link
Share on other sites

 

 

('crewLevelIncrease', 5), //перк братство или вентилятор?
Это с typeDescriptor'a берется? Вентилятор, то да, а вот братство? Нужно будет потестить, может там ещё и доп.пайки всякие учитываются?

Share this post


Link to post

Short link
Share on other sites

там написано 2% из всех читов которые есть :), этот список фуфня

Это с typeDescriptor'a берется? Вентилятор, то да, а вот братство? Нужно будет потестить, может там ещё и доп.пайки всякие учитываются?

да, это все с него, может и доп пайки учитываются

Share this post


Link to post

Short link
Share on other sites

 

 

Вентилятор, то да, а вот братство?
, ИМХО, это просто вентилятор. 

 

 

там написано 2% из всех читов которые есть :), этот список фуфня

Ну тогда каждый будет решать, что чит, а что не чит. 

Share this post


Link to post

Short link
Share on other sites

 

 

ИМХО, это просто вентилятор.
Ну да, так оно и есть:(

Только что проверил BigWorld.player().vehicle.typeDescriptor.miscAttrs['crewLevelIncrease'] для экипажа с боевым братством (вернее "боевые подруги", но думаю, это не важно), но без вентилятора равно 0.

Share this post


Link to post

Short link
Share on other sites

Еще порция информации. Можно узнать какой тип снаряда сейчас заряжен. Код пока не буду выкладывать, подожду реакции.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Еще порция информации. Можно узнать какой тип снаряда сейчас заряжен. Код пока не буду выкладывать, подожду реакции.

'вопрос'

почему в этой теме, если эвента по "наведению на цель" в xvm нет, и пару страниц выше можно смело перенести в тему инфо-панели(-ей)?! Там (имхо) и следует обсуждать "новые" возможности

Share this post


Link to post

Short link
Share on other sites
почему в этой теме, если эвента по "наведению на цель" в xvm нет, и пару страниц выше можно смело перенести в тему инфо-панели(-ей)?! Там (имхо) и следует обсуждать "новые" возможности

Потому что, панель можно выводить по нажатию клавиши. И потому что я приводил примеры как раз для "Динамические макросы в Python". И картинки приведенные мной, показывают что можно реализовать с помощью "Динамические макросы в Python".

 

 

В этой теме обсуждаем динамические макросы в Python, делимся опытом и идеями, помогаем друг другу сделать свой клиент идеальным :)
Edited by ktulho
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

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

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


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


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

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

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

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

Edited by ktulho
  • Upvote 4

Share this post


Link to post

Short link
Share on other sites

в функции макроса сделал функцию и на ее вызов колобок и все, вот тебе динамика


import BigWorld
index = 0
@xvm.export('test_callback', deterministic=False)
def test_callback():
    def callback():
        index +=1
        print index
        BigWorld.callback(1, callback)
    callback()
Edited by Ekspoint

Share this post


Link to post

Short link
Share on other sites
в функции макроса сделал функцию и на ее вызов колобок и все, вот тебе динамика

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

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites

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

я про макросы хвм

в модах так же, что бы данные были динамические ставится колобок

толь зачем динамика в инфо панели?

Edited by Ekspoint

Share this post


Link to post

Short link
Share on other sites

 


@xvm.export('test_callback', deterministic=False) 

 

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

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