sirmax 5,499 #332490 Posted June 11, 2016 Нет события для обновления значений макросов по таймеру, поэтому значения не будут меняться. В принципе, можно сделать, только хз как на производительность повлияет. Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #332838 Posted June 13, 2016 Вдохновленный видеом с первой страницы данной темы, сделал так: 'Изображение' Конечно бомбу надо заменить на снаряд направленный в сторону команды с меньшим hp. Да и жирные точки надо поменять на что нибудь. 'Код' import xvm_battle.python.fragCorrelationPanel as panel def ally(): return panel.teams_totalhp[0] def enemy(): return panel.teams_totalhp[1] def color(): return panel.total_hp_color def sign(): all_dot = 40 dot_ally = int(ally() * all_dot // (ally() + enemy())) def win(): return "<font color='#00CE00'>'" + str("D") * dot_ally + "|<font color='#CE0000'>" + str("D") * (all_dot - dot_ally) + "*</font>" def lost(): return "<font color='#00CE00'>'" + str("D") * dot_ally + "<font color='#CE0000'>|" + str("D") * (all_dot - dot_ally) + "*</font>" return lost() if panel.total_hp_sign == '<' else win() def text(): return "<font face='mono' color='#FCFCFC'>%6s</font><font face='xvm'> %s </font><font face='mono' color='#FCFCFC'>%-6s</font>" % (ally(), sign(), enemy()) 4 Quote Share this post Link to post Short link Share on other sites
Kornet_WA 138 #332844 Posted June 13, 2016 Может кто нибудь и инфо панель партирует. раз такая пьянка пошла. Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #332849 Posted June 13, 2016 Может кто нибудь и инфо панель партирует. раз такая пьянка пошла. Насколько я знаю, пока нет поддержки события "наведение на цель" в battleLabelsTemplates.xc. Quote Share this post Link to post Short link Share on other sites
goodman 664 #332875 Posted June 13, 2016 пока нет поддержки события Макс говорил что до вторника без компа.. вроде обещал ивентами заняться Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #333124 Posted June 15, 2016 (edited) Попытаюсь оживить тему. Добавил макросы необходимые для информационной панели. 'Картинки' 'Код' import BigWorld def typeDescriptor(): target = BigWorld.target() return target.typeDescriptor if target else BigWorld.player().getVehicleAttached().typeDescriptor # Название теники def nameTank(): return typeDescriptor().type.userString # Название файла иконки теники def nameICOTank(): return typeDescriptor().name.replace(':', '-') # Время перезарядки def reloadTimeGun(): return "%.1f" % (typeDescriptor().gun['reloadTime'] * 0.8631) # Обзор def visionRadius(): return "%i" % (typeDescriptor().turret['circularVisionRadius']) # лобовая броня корпуса def armorTankHullFront(): return "%i" % (typeDescriptor().hull['primaryArmor'][0]) # боковая броня корпуса def armorTankHullSide(): return "%i" % (typeDescriptor().hull['primaryArmor'][1]) # кормовая броня корпуса def armorTankHullBack(): return "%i" % (typeDescriptor().hull['primaryArmor'][2]) # лобовая броня башни def armorTankTurretFront(): return "%i" % (typeDescriptor().turret['primaryArmor'][0]) # боковая броня башни def armorTankTurretSide(): return "%i" % (typeDescriptor().turret['primaryArmor'][1]) # кормовая броня башни def armorTankTurretBack(): return "%i" % (typeDescriptor().turret['primaryArmor'][2]) def gunShots(): return typeDescriptor().gun['shots'] # урон первым типом снаряда def damageFirstTypeShell(): return '' if len(gunShots()) < 1 else "%i" % (gunShots()[0]['shell']['damage'][0]) # урон вторым типом снаряда def damageSecondTypeShell(): return '' if len(gunShots()) < 2 else "%i" % (gunShots()[1]['shell']['damage'][0]) # урон третьим типом снаряда def damageThirdTypeShell(): return '' if len(gunShots()) < 3 else "%i" % (gunShots()[2]['shell']['damage'][0]) # пробитие первым типом снаряда def powerFirstTypeShell(): return '' if len(gunShots()) < 1 else "%i" % (gunShots()[0]['piercingPower'][0]) # пробитие вторым типом снаряда def powerSecondTypeShell(): return '' if len(gunShots()) < 2 else "%i" % (gunShots()[1]['piercingPower'][0]) # пробитие третьим типом снаряда def powerThirdTypeShell(): return '' if len(gunShots()) < 3 else "%i" % (gunShots()[2]['piercingPower'][0]) typeShell = { 'ARMOR_PIERCING': 'ББ', 'HIGH_EXPLOSIVE': 'ОФ', 'ARMOR_PIERCING_CR': 'БП', 'ARMOR_PIERCING_HE': 'ХФ', 'HOLLOW_CHARGE': 'КС', } # первый тип снаряда def firstTypeShell(): return '' if len(gunShots()) < 1 else typeShell[gunShots()[0]['shell']['kind']] # второй тип снаряда def secondTypeShell(): return '' if len(gunShots()) < 2 else typeShell[gunShots()[1]['shell']['kind']] # третий тип снаряда def thirdTypeShell(): return '' if len(gunShots()) < 3 else typeShell[gunShots()[2]['shell']['kind']] P.S. Ждем введения события "наведение на цель." И хотелось бы введение задержки показа поля, после окончания события. P.P.S. Поправил код. Оказывается не у всех танков по три типа снаряда )). Edited June 16, 2016 by ktulho 6 Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #333169 Posted June 15, 2016 Попытаюсь оживить тему. Добавил макросы необходимые для информационной панели. 'Картинки' shot_151.jpg shot_152.jpg 'Код' import BigWorld from Avatar import PlayerAvatar def typeDescriptor(): player = BigWorld.player() target = BigWorld.target() if target: return target.typeDescriptor else: return player.getVehicleAttached().typeDescriptor # Название теники def nameTank(): return typeDescriptor().type.userString # Название файла иконки теники def nameICOTank(): return typeDescriptor().name.replace(':', '-') # Время перезарядки def reloadTimeGun(): return "%.1f" % (typeDescriptor().gun['reloadTime'] * 0.8631) # Обзор def visionRadius(): return "%i" % (typeDescriptor().turret['circularVisionRadius']) # лобовая броня корпуса def armorTankHullFront(): return "%i" % (typeDescriptor().hull['primaryArmor'][0]) # боковая броня корпуса def armorTankHullSide(): return "%i" % (typeDescriptor().hull['primaryArmor'][1]) # кормовая броня корпуса def armorTankHullBack(): return "%i" % (typeDescriptor().hull['primaryArmor'][2]) # лобовая броня башни def armorTankTurretFront(): return "%i" % (typeDescriptor().turret['primaryArmor'][0]) # боковая броня башни def armorTankTurretSide(): return "%i" % (typeDescriptor().turret['primaryArmor'][1]) # кормовая броня башни def armorTankTurretBack(): return "%i" % (typeDescriptor().turret['primaryArmor'][2]) # урон первым типом снаряда def damageFirstTypeShell(): return "%i" % (typeDescriptor().gun['shots'][0]['shell']['damage'][0]) # урон вторым типом снаряда def damageSecondTypeShell(): return "%i" % (typeDescriptor().gun['shots'][1]['shell']['damage'][0]) # урон третьим типом снаряда def damageThirdTypeShell(): return "%i" % (typeDescriptor().gun['shots'][2]['shell']['damage'][0]) # пробитие первым типом снаряда def powerFirstTypeShell(): return "%i" % (typeDescriptor().gun['shots'][0]['piercingPower'][0]) # пробитие вторым типом снаряда def powerSecondTypeShell(): return "%i" % (typeDescriptor().gun['shots'][1]['piercingPower'][0]) # пробитие третьим типом снаряда def powerThirdTypeShell(): return "%i" % (typeDescriptor().gun['shots'][2]['piercingPower'][0]) typeShell = { 'ARMOR_PIERCING': 'ББ', 'HIGH_EXPLOSIVE': 'ОФ', 'ARMOR_PIERCING_CR': 'БП', 'HOLLOW_CHARGE': 'КС', } # первый тип снаряда def firstTypeShell(): return typeShell[typeDescriptor().gun['shots'][0]['shell']['kind']] # второй тип снаряда def secondTypeShell(): return typeShell[typeDescriptor().gun['shots'][1]['shell']['kind']] # третий тип снаряда def thirdTypeShell(): return typeShell[typeDescriptor().gun['shots'][2]['shell']['kind']] P.S. Ждем введения события "наведение на цель." И хотелось бы введение задержки показа поля, после окончания события. при наведении def New_TargetFocus(self, entity): Old_TargetFocus(self, entity) ..... Old_TargetFocus = PlayerAvatar.targetFocus PlayerAvatar.targetFocus = New_TargetFocus Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #333171 Posted June 15, 2016 @Ekspoint, Я так понимаю это подойдет для отдельного мода, а не для кастомизируемых текстовых полей. Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #333173 Posted June 15, 2016 @Ekspoint, Я так понимаю это подойдет для отдельного мода, а не для кастомизируемых текстовых полей. ну хз, для отдельного да, пойдет могу сделать в своем стиле, в авторах укажу Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #333174 Posted June 15, 2016 ну хз, для отдельного да, пойдет могу сделать в своем стиле, в авторах укажу , Делай, а я закрою тему по поддержке InfoPanel от Delux. И поддержку отображения характеристик своего танка по LAlt не забудь. Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #333175 Posted June 15, 2016 , Делай, а я закрою тему по поддержке InfoPanel от Delux. И поддержку отображения характеристик своего танка по LAlt не забудь. ok Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #333362 Posted June 17, 2016 Собрал параметры модулей своего танка. Все это можно вывести кастомные поля. Значения параметров относятся к танку CRUISER MK. IV. vehicle.rar 2 Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #333363 Posted June 17, 2016 Собрал параметры модулей своего танка. Все это можно вывести кастомные поля. Значения параметров относятся к танку CRUISER MK. IV. vehicle.rar спс Quote Share this post Link to post Short link Share on other sites
yan-polonov 2 #333524 Posted June 18, 2016 (edited) Попытаюсь оживить тему. Добавил макросы необходимые для информационной панели. Собрал параметры модулей своего танка Доброго времени суток, не подскажите как вытянуть из вашего примера "vehicle.typeDescriptor" - Скорострельность орудия (для расчета среднего дпм-ма) - Точность орудия - Мощность двигателя (есть там параметр " typeDescriptor().engine['power'] " но как его перевести в нормальный вид) - Параметры маскировки техники Если они имеются как таковые для вывода. И почему у вас в рассчете изначальное значение перезарядки орудия умножается на 0.8631 Ведь с досытателем нужно множить на 0.9 (или там еще что то учитывается) P.S: Если не секрет как вы вытащили (прологировали) все эти параметры из клиента? Заранее спасибо за уделенное время на ответ. Edited June 18, 2016 by yan-polonov Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #333534 Posted June 18, 2016 (edited) @yan-polonov, И вам доброго. Отвечать буду отдельно на каждый вопрос, поэтому долго и наверно в нескольких постах. И почему у вас в рассчете изначальное значение перезарядки орудия умножается на 0.8631 Ведь с досытателем нужно множить на 0.9 (или там еще что то учитывается) Этот коэффициент я подогнал под показания мода InfoPanel. Кроме досылателя, есть братство и вентиляция. После вашего вопроса решил уточнить коэффициент. Взял арту с вентиляцией, досылателем и братством, коэффициент оказался равным примерно 0,8255. - Скорострельность орудия (для расчета среднего дпм-ма) # урон в минуту первым типом снаряда def damPerMinFirstShell(): k = 0.8255 time = typeDescriptor().gun['reloadTime'] * k + typeDescriptor().gun['clip'][0] * typeDescriptor().gun['clip'][1] return "%i" % (typeDescriptor().gun['clip'][0] / time * 60 * typeDescriptor().gun['shots'][0]['shell']['damage'][0]) Результат данной функции можно сделать более точным. Так как, барабанные танки не имеют досылателя, насколько я знаю, для них можно уточнить коэффициент. # урон в минуту первым типом снаряда def damPerMinFirstShell(): k = 0.8255 if typeDescriptor().gun['clip'][0] == 1 else 0.9182 time = typeDescriptor().gun['reloadTime'] * k + typeDescriptor().gun['clip'][0] * typeDescriptor().gun['clip'][1] return "%i" % (typeDescriptor().gun['clip'][0] / time * 60 * typeDescriptor().gun['shots'][0]['shell']['damage'][0]) - Точность орудия Если вы про разброс на 100м, то: typeDescriptor().gun['shotDispersionAngle'] - Мощность двигателя (есть там параметр " typeDescriptor().engine['power'] " но как его перевести в нормальный вид) Здесь мощность в ваттах. Если нужны лошадиные силы, то делите на 735,49875. Edited June 18, 2016 by ktulho 1 Quote Share this post Link to post Short link Share on other sites
yan-polonov 2 #333537 Posted June 18, 2016 (edited) Отвечать буду отдельно на каждый вопрос, поэтому долго и наверно в нескольких постах Огромное вам человеческое спасибо за все разъяснения Если вы про разброс на 100м Да именно о нем Так как, барабанные танки не имеют досылателя, насколько я знаю У ат-15 на сток пухе с касетами есть досыл Вот теперь все что нужно есть, как боевой интерфейс перейден на AS3 infoPanel помрет, а тут у нас более кастомизируемый и удобный функционал пришел на замену. Edited June 18, 2016 by yan-polonov Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #333540 Posted June 18, 2016 (edited) Пока искал про маскировку, наткнулся на следующие параметры: 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)] //Усиленные рессоры Edited June 18, 2016 by ktulho Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #333548 Posted June 18, 2016 Пока искал про маскировку, наткнулся на следующие параметры: Если да то мы можем их получить только для игрока - BigWorld.player(), для юнита в прицеле - BigWorld.target() данные врятли нам будут доступны Quote Share this post Link to post Short link Share on other sites
ktulho 5,791 #333549 Posted June 18, 2016 Если да то мы можем их получить только для игрока - BigWorld.player(), для юнита в прицеле - BigWorld.target() данные врятли нам будут доступны В том то и дело, что они доступны для всех. Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #333550 Posted June 18, 2016 Если да то мы можем их получить только для игрока - BigWorld.player(), для юнита в прицеле - BigWorld.target() данные врятли нам будут доступны если можно для себя то можно и для target вроде как Quote Share this post Link to post Short link Share on other sites