Ekspoint Posted June 5, 2016 Share Posted June 5, 2016 (edited) это всё конечно хорошо, но такой вопрос при очередном обновлении игры все py_macro отвалятся? и что будет с XVM если засунуть не рабочий скрипт? И кто будет обновлять если вдруг скрипты упадут? ведь в дефолт его всё равно макс не пустит. те функции которые я дал картошка мало вероятно будет менять (это те что связаны с дамагом), а если есть баг так просто удали ру файл и все а в дефолт код не пойдет, для макса он дерьмо @neLeax, а зачем ты убрал инфу о максимальном уроне противника? ведь если противник набил больше тебя то калибр ты уже не получишь, так что добавь если хочешь что бы инфа о калибре была более точной Edited June 5, 2016 by Ekspoint 1 @ Quote Link to comment Short link Share on other sites More sharing options...
anatoly999 Posted June 5, 2016 Share Posted June 5, 2016 @neLeax, а зачем ты убрал инфу о максимальном уроне противника? ведь если противник набил больше тебя то калибр ты уже не получишь, так что добавь если хочешь что бы инфа о калибре была более точнойТогда на скорую руку из кода убрал все лишнее, хотел оставить только свой урон. Получилось, что нужное отрезал. Спасибо, буду разбираться. @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted June 5, 2016 Share Posted June 5, 2016 Тогда на скорую руку из кода убрал все лишнее, хотел оставить только свой урон. Получилось, что нужное отрезал. Спасибо, буду разбираться. и нужно заняться оптимизацией: падение фпс примерно на 30-35 ед. @ Quote Link to comment Short link Share on other sites More sharing options...
anatoly999 Posted June 5, 2016 Share Posted June 5, 2016 (edited) и нужно заняться оптимизацией: падение фпс примерно на 30-35 ед.Ого, вот это реальная проблема. Я сейчас не играю, а на реплее не обращал внимания. Только вот я сам едва ли смогу оптимизировать расчеты, в питоне мало что понимаю. Уже подумываю нафиг выбросить этот основной калибр... По сути, не сильно то и важна данная информация. Или же можно не извращаться и просто в строку хит-лога вывести это значение, как ты и предлагал, минуя все эти сложные расчеты. Просто взяв готовое значение своего урона из хитлога. Edited June 5, 2016 by neLeax @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted June 5, 2016 Share Posted June 5, 2016 Ого, вот это реальная проблема. Я сейчас не играю, а на реплее не обращал внимания. Только вот я сам едва ли смогу оптимизировать расчеты, в питоне мало что понимаю. Уже подумываю нафиг выбросить этот основной калибр... По сути, не сильно то и важна данная информация. Или же можно не извращаться и просто в строку хит-лога вывести это значение, как ты и предлагал, минуя все эти сложные расчеты. Просто взяв готовое значение своего урона из хитлога. возьми код с этого поста http://www.koreanrandom.com/forum/topic/31856-динамические-макросы-в-python/?p=330764 вот так как то from xvm_battle.python import fragCorrelationPanel as panel import BigWorld from Avatar import PlayerAvatar from Vehicle import Vehicle from gui.Scaleform.Battle import Battle from xfw import * class Battle_Info(object): def __init__(self): self.damage = 0 self.section = 20 self.max_hp = [0, 0] self.textBar = ["c", "b"] self.actual_arenaUniqueID = None battle_info = Battle_Info() @registerEvent(Battle, 'beforeDelete') def beforeDelete(self): battle_info.damage = 0 battle_info.max_hp = [0, 0] battle_info.actual_arenaUniqueID = None def IsLive(vehicleID): player = BigWorld.player() vehicles = player.arena.vehicles return vehicles[vehicleID]['isAlive'] if player is not None else None def IsFriendly(vehicleID): player = BigWorld.player() vehicles = player.arena.vehicles return vehicles[player.playerVehicleID]['team'] == vehicles[vehicleID]['team'] if player is not None else None def getVehicleHealth(vehicleId): player = BigWorld.player() if hasattr(BigWorld.entity(vehicleId), 'health'): return BigWorld.entity(vehicleId).health else: vehicle = player.arena.vehicles.get(vehicleId) if player is not None: return vehicle['vehicleType'].maxHealth @registerEvent(Vehicle, 'onEnterWorld') def vehicle_onEnterWorld(self, prereqs): self.healthOld = getVehicleHealth(self.id) def show_damage_shot(self, newHealth): damage = self.healthOld - newHealth self.healthOld = newHealth return damage @registerEvent(Vehicle, 'onHealthChanged') def onHealthChanged(self, newHealth, attackerID, attackReasonID): for vehicleID in BigWorld.entities.values(): if type(vehicleID) is Vehicle: if IsLive(vehicleID.id) and not IsFriendly(vehicleID.id): delts_helth = show_damage_shot(self, newHealth) battle_info.damage += delts_helth return battle_info.damage @xvm.export('nelx.total_hp', deterministic=False) def total_hp(team): arenaUniqueID = BigWorld.player().arenaUniqueID if battle_info.actual_arenaUniqueID != arenaUniqueID: battle_info.actual_arenaUniqueID = arenaUniqueID battle_info.max_hp[0] = panel.teams_totalhp[0] battle_info.max_hp[1] = panel.teams_totalhp[1] return panel.teams_totalhp[team] @xvm.export('nelx.total_hp.color', deterministic=False) def color(): return panel.total_hp_color @xvm.export('nelx.total_hp.sign', deterministic=False) def sign(): return '<' if panel.total_hp_sign == '<' else '>' if panel.total_hp_sign == '>' else panel.total_hp_sign @xvm.export('nelx.total_hp.healthBar', deterministic=False) def healthBar(team): bar = int(round( (panel.teams_totalhp[team] * battle_info.section) / float(max(battle_info.max_hp)) )) return '<font face="xvm"><b>' + battle_info.textBar[team] * bar + '</b></font>' @xvm.export('nelx.total_hp.healthBar_background', deterministic=True) def healthBar_background(team): return '<font face="xvm"><b>' + battle_info.textBar[team] * battle_info.section + '</b></font>' @xvm.export('nelx.total_hp.superiority', deterministic=False) def superiority(): al = panel.teams_totalhp[0] en = panel.teams_totalhp[1] max_hp_now = float( max(panel.teams_totalhp) ) superiority = int(round( abs((al - en) / max_hp_now) * 500. , 2 )) fill = '<font size="4" alpha="#00">' + (' ' * superiority ) + '</font>' indicator = '<b>^</b>' if en > al: indicator, fill = fill, indicator return indicator + fill @xvm.export('nelx.total_hp.superiority_text', deterministic=False) def superiority_text(): al = panel.teams_totalhp[0] en = panel.teams_totalhp[1] max_hp_now = float( max(panel.teams_totalhp) ) result = round( ((al - en) / max_hp_now) * 100. , 2) return "<font color='#%s'>%s%</font>" % (color(), result) @xvm.export('nelx.mainGun', deterministic=False) def mainGun(): battletype = BigWorld.player().arena.guiType if battletype != 1: return else: result = int(max(round(battle_info.max_hp[1] * 0.2), 1000)) - battle_info.damage if result <= 0: result = "<font face='xvm' color='#96FF00' size='21'>x</font>" return "<img src='img://gui/maps/icons/achievement/32x32/mainGun.png' width='32' height='32' align='middle' vspace='-9'>%s" % (result) @xvm.export('nelx.damagePercent', deterministic=False) def damagePercent(): if battle_info.damage == 0: result = 0 else: result = round (100. / battle_info.max_hp[1] * battle_info.damage , 1) return "%s% <img src='img://gui/maps/icons/vehParams/damageAvgPerMinute.png' width='24' height='24' align='middle' vspace='-4'>" % (result) 1 @ Quote Link to comment Short link Share on other sites More sharing options...
BuSH Posted June 6, 2016 Share Posted June 6, 2016 нельзя, тогда уже это будет чит, да и механика игры не позволит тебе узнать больше чем твой радиус видимости При чем здесь механика игры? Речь шла о XMQP. Та и не думаю, что картоха это читом обзовёт. @ Quote Link to comment Short link Share on other sites More sharing options...
7serafim7 Posted June 7, 2016 Share Posted June 7, 2016 А как можно вывести маркеры техники для альтернативной панели счёта? @ Quote Link to comment Short link Share on other sites More sharing options...
0kosmo Posted June 8, 2016 Share Posted June 8, 2016 Хей народ. Вроде пилили макросы для данных по среднему урону по танку в бою и достижения главный калибр. Сваяли? Если да - где брать. @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted June 9, 2016 Share Posted June 9, 2016 @sirmax,призываю тебя Всемогущий! :) почитай наши мучения с дебаг панелью и подскажи всё таки как получить заветные данные .. оченно надо... и до кучи, таймер боя тоже расковырять бы и отконфигурировать досмерти)) Консолидируйте в одном письме описание задачи и текущее состояние, я посмотрю. это всё конечно хорошо, но такой вопрос при очередном обновлении игры все py_macro отвалятся? и что будет с XVM если засунуть не рабочий скрипт? И кто будет обновлять если вдруг скрипты упадут? ведь в дефолт его всё равно макс не пустит. я не против того, чтобы подобные целостные макросы пустить в дефолт. а в дефолт код не пойдет, для макса он дерьмо К макросам я не буду так придираться, как к основному коду, хотя, конечно, лучше его постепенно улучшить. 3 @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted June 9, 2016 Share Posted June 9, 2016 @sirmax, я правильно понимаю, что без импорта вида from xvm import total_hp (директория/файл) ру-файлы из кастомных подпапок работать не будут? и зачем импортировать все функции "исходника", когда для вывода отображения достаточно 'total_hp.text' (или не достаточно)? @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted June 9, 2016 Share Posted June 9, 2016 @sirmax, я правильно понимаю, что без импорта вида from xvm import total_hp (директория/файл) ру-файлы из кастомных подпапок работать не будут? и зачем импортировать все функции "исходника", когда для вывода отображения достаточно 'total_hp.text' (или не достаточно)? Да, не будут. Достаточно только text, но вдруг кто-то у себя захочет по частям это вывести. @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted June 9, 2016 Share Posted June 9, 2016 (edited) вдруг кто-то у себя захочет по частям это вывести при импорте из кастомных папок (5761) 'не работает, ошибка: Non-ASCII character...' если в импортируемом файле есть # комментарии на русском: # ХП команд и/или присутствует символ ≠ выдает ошибку: 2016-06-09 18:19:27: [ERROR] Traceback (most recent call last): File "xvm_main/python_macro.py", line 128, in load_macros_lib File "xvm_main/python_macro.py", line 112, in execute ExecutionException: SyntaxError at file 'res_mods/configs/xvm/py_macro\custom.py' line 15: Non-ASCII character '\xd0' in file C:\Games\World_of_Tanks\res_mods\mods/../configs/xvm/py_macro\Kapany3uk\totalHP.py on line 5, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details и не работает после удаления кириллицы и "расширенных" символов из комментариев все работает... в обоих вариантах, в нерабочем с кириллицей и в рабочем без нее, хвм.лог полон однотипной ошибкой: 2016-06-09 18:29:10: [ERROR] Traceback (most recent call last): File "xvm_main/python_macro.py", line 154, in process_python_macro File "xvm_main/python_macro.py", line 145, in get_function TypeError: 'NoneType' object is not iterable работающий вариант, без кириллицы xvm.log Edited June 9, 2016 by Kapany3uk @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted June 9, 2016 Share Posted June 9, 2016 кодировка файла какая? @ Quote Link to comment Short link Share on other sites More sharing options...
sergey spb Posted June 9, 2016 Share Posted June 9, 2016 Добрый день!Не подскажете как поменять цвет в показателе результативности (Отметки на орудии) т.е. при повышении процента зеленый при понижении красный.Сейчас стоит : font color='{{v.c_damageRating}}'При повышении процента цвет зеленый при понижении цвет красный (процент перед боем сравниваеться с процентом после боя и т.д.).Спасибо! @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted June 9, 2016 Share Posted June 9, 2016 (edited) кодировка файла какая? любопытно: до вопроса была такая же, как и у дефолтных ру-файлов: UTF-8 пересохранил в UTF-8 + BOM и ошибка non-ASCII "ушла", отображение заработало. другие ошибки остались xvm.log, сейчас попробую на свежем билде (пока все на 5761) upd ошибки - мой косяк: оставил в конфиге макрос {{py:mainGun}}, хотя из ру-файлов все касательно этого макроса удалил... увидел благодаря fix (+ "arg='{}'".format(arg)) в 5762 Edited June 9, 2016 by Kapany3uk @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted June 9, 2016 Share Posted June 9, 2016 увидел благодаря fix (+ "arg='{}'".format(arg)) в 5762 да, для этого я его и добавил 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Slava7572 Posted June 10, 2016 Share Posted June 10, 2016 Смотрю многое переделали в крайних ночниках,старые скрипты будут работать?Типа этого. @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted June 10, 2016 Share Posted June 10, 2016 (edited) Смотрю многое переделали в крайних ночниках,старые скрипты будут работать?Типа этого.а че нет тоЯ же говорил что эти функции картошка не меняет Edited June 10, 2016 by Ekspoint @ Quote Link to comment Short link Share on other sites More sharing options...
Slava7572 Posted June 10, 2016 Share Posted June 10, 2016 а че нет то Я же говорил что эти функции картошка не меняет Ну я просто в скриптах ноль,а смотрю многое добавили,вот и решил узнать.Спасибо. @ Quote Link to comment Short link Share on other sites More sharing options...
goodman Posted June 10, 2016 Author Share Posted June 10, 2016 Консолидируйте в одном письме описание задачи и текущее состояние, я посмотрю. я не понимаю, что нужно импортировать что бы получить fps ping lag из debug panelесли бы ты набросал тестовый код..текущее состояние = 0 @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.