vlad_cs_sr Posted May 8, 2016 Author Share Posted May 8, 2016 Так то можно обыграть отображение дроби: "format": "{{xvm-stat?{{chancesStatic}}{{chancesStatic? / |}}{{chancesLive}}}}" ок Но особого смысла в отображении статичного шанса на победу я не вижу, как и отмечал ранее @seriych. по-моему, голую цифру в интерфейсе оставлять тоже не надо @ Quote Link to comment Short link Share on other sites More sharing options...
night_dragon_on Posted May 8, 2016 Share Posted May 8, 2016 (edited) по-моему, голую цифру в интерфейсе оставлять тоже не надо Ну что тут думать, с дробью разобрались теперь добавлю подпись: "format": "{{xvm-stat?{{l10n:Chance to win}}: {{chancesStatic}}{{chancesStatic? / |}}{{chancesLive}}}}" 'Только одно но' Все таки не до конца удалось дробь отформатировать. При галках в ЛК: "Шанс на победу: В бою" "Шанс на победу: В бою (динамический)" Вид: 50% / 45% При галках в ЛК: "Шанс на победу: В бою (динамический)" Вид: 45% При галках в ЛК: "Шанс на победу: В бою" Вид: 50% / Edited May 8, 2016 by night_dragon_on 1 @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 8, 2016 Share Posted May 8, 2016 (edited) Имхо, подпись будет только загромождать интерфейс, нужность только дин.шанса - спорно, мне, например, интересен больше стат.шанс в сравнении с дин. Проще отключить по-умолчанию поле, оставив два макроса, а подпись - добавляется на усмотрение пользователя, если он хочет видеть только шанс одного типа Edited May 8, 2016 by wotunion @ Quote Link to comment Short link Share on other sites More sharing options...
night_dragon_on Posted May 8, 2016 Share Posted May 8, 2016 (edited) Проще отключить по-умолчанию поле, оставив два макроса Сейчас так и сделано "winChance": { "enabled": false, "updateEvent": "ON_VEHICLE_DESTROYED", "x": 230, "y": 2, "width": 50, "height": 20, "autoSize": "left", "shadow": { "distance": 1, "angle": 90, "alpha": 80, "blur": 5, "strength": 1.5 }, "currentFieldDefaultStyle": { "color": "0xF4EFE8", "size": 15 }, "format": "{{xvm-stat?{{l10n:Chance to win}}: {{chancesStatic}}{{chancesStatic? / |}}{{chancesLive}}}}" }, Edited May 8, 2016 by night_dragon_on @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 8, 2016 Share Posted May 8, 2016 Сделано с подписью @ Quote Link to comment Short link Share on other sites More sharing options...
night_dragon_on Posted May 8, 2016 Share Posted May 8, 2016 (edited) Сделано с подписью Сделано с упором на то что большинство пользователей не поймут что это за цифры, это же дефолт все таки. В нем пояснения нужны. Когда цифр две - аналогично шансам при загрузке (и там есть пояснения , что это "шансы"), а если одна, то надо прописать, наверно, что это. по-моему, голую цифру в интерфейсе оставлять тоже не надо Edited May 8, 2016 by night_dragon_on @ Quote Link to comment Short link Share on other sites More sharing options...
demon2597 Posted May 8, 2016 Share Posted May 8, 2016 (edited) мне, например, интересен больше стат.шанс в сравнении с дин. мне тоже (хотя в целом мне шансов по ТАВ хватает, в боевом окне не нужны) PS ты про альфу теней в полях ушей и миникарты не забыл? жду с нетерпением) Edited May 8, 2016 by demon2597 @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 8, 2016 Share Posted May 8, 2016 PS ты про альфу теней в полях ушей и миникарты не забыл? жду с нетерпением) Нет, не забыл) Где-то через недельку приступлю, времени нет Мне показалось, или в релизной версии 6.2.2 обновление полей сломалось? (смотрю дин.шанс) @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted May 8, 2016 Share Posted May 8, 2016 Мне показалось, или в релизной версии 6.2.2 обновление полей сломалось? (смотрю дин.шанс) Не сломалось вроде, всё обновляется. @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 8, 2016 Share Posted May 8, 2016 (edited) Не сломалось вроде, всё обновляется. @sirmax, Я нашел, если "allowSpottedStatus": false, то не обновляется, так раньше не было (и если "allowHpInPanelsAndMinimap": false, частично тоже) В одном из коммитов был убран диспатчер ивента E_PLAYER_DEAD из PlayersPanel.as, а отсюда (BattleMain.as): public function as_xvm_onBattleStateChanged(targets:Number, playerName:String, clanAbbrev:String, playerId:Number, vehId:Number, team:Number, squad:Number, dead:Boolean, curHealth:Number, maxHealth:Number, marksOnGun:Number, spotted:String):Void { try { //Logger.addObject(arguments); var data:Object = { }; if (playerName != null) data["playerName"] = playerName; if (clanAbbrev != null) data["clanAbbrev"] = clanAbbrev; if (!isNaN(playerId)) data["playerId"] = playerId; if (!isNaN(vehId)) data["vehId"] = vehId; if (!isNaN(team)) data["team"] = team; if (!isNaN(squad)) data["squad"] = squad; data["dead"] = dead; if (Config.config.battle.allowHpInPanelsAndMinimap && !isNaN(curHealth)) { data["curHealth"] = curHealth; } if (Config.config.battle.allowHpInPanelsAndMinimap && !isNaN(maxHealth)) data["maxHealth"] = maxHealth; if ((Config.config.battle.allowHpInPanelsAndMinimap || Config.config.battle.allowMarksOnGunInPanelsAndMinimap) && !isNaN(marksOnGun)) data["marksOnGun"] = marksOnGun; if (Config.config.battle.allowSpottedStatus && spotted != null) data["spotted"] = spotted; //Logger.addObject(data); var updated:Boolean = BattleState.update(playerId, data); if (updated) { //Logger.add("updated: " + playerName); GlobalEventDispatcher.dispatchEvent(new EBattleStateChanged(playerId)); if (dead) { GlobalEventDispatcher.dispatchEvent( { type: Events.E_PLAYER_DEAD, value: playerId } ); } } } catch (ex:Error) { Logger.add("onBattleStateChanged: [" + ex.name + "] " + ex.message); } } ивент вроде не генерируется при вышеуказанных условиях Edited May 8, 2016 by wotunion @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 8, 2016 Share Posted May 8, 2016 @sirmax, Я нашел, если "allowSpottedStatus": false, то не обновляется, так раньше не было В одном из коммитов был убран диспатчер ивента E_PLAYER_DEAD из PlayersPanel.as, а отсюда (BattleMain.as) ивент вроде не генерируется Да, похоже на то. Наверно лучше всего убрать "allowSpottedStatus", сейчас производительность не должна уже на этом падать, по крайней мере не сильно. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 8, 2016 Share Posted May 8, 2016 (edited) Наверно лучше всего убрать "allowSpottedStatus" Не совсем понял, выставить ему дефолтный "зашитый" True? А если if (dead) { GlobalEventDispatcher.dispatchEvent( { type: Events.E_PLAYER_DEAD, value: playerId } ); } выставить перед if (updated) Так: data["dead"] = dead; if (dead) { GlobalEventDispatcher.dispatchEvent( { type: Events.E_PLAYER_DEAD, value: playerId } ); } ... if (updated) Максимум 30 генераций за бой, spotted больше будет Edited May 8, 2016 by wotunion @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 8, 2016 Share Posted May 8, 2016 (edited) А если if (dead) { GlobalEventDispatcher.dispatchEvent( { type: Events.E_PLAYER_DEAD, value: playerId } ); } выставить перед if (updated) да, можно. только лучше после. я закоммичу хотя нет, тут другая ситуация. если игрок умер, то dead поменяется на true и updated будет равно true. Так что причина другая. Скорей всего as_xvm_onBattleStateChanged не вызывается. data["dead"] = dead; if (dead) { GlobalEventDispatcher.dispatchEvent( { type: Events.E_PLAYER_DEAD, value: playerId } ); } ... if (updated) Максимум 30 генераций за бой, spotted больше будет а так делать нельзя - даже по мертвым могут приходить обновления, и тогда событие будет отправляться каждый раз при таком обновлении Edited May 8, 2016 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 8, 2016 Share Posted May 8, 2016 если игрок умер, то dead поменяется на true и updated будет равно true as_xvm_onBattleStateChanged вызывается, потому что dead по факту изменяется на true, иначе GlobalEventDispatcher.dispatchEvent( { type: Events.E_PLAYER_DEAD, value: playerId } ); никогда бы не генерировалось, а оно генерируется, если allowSpottedStatus=false var updated:Boolean = BattleState.update(playerId, data); if (updated) { //Logger.add("updated: " + playerName); GlobalEventDispatcher.dispatchEvent(new EBattleStateChanged(playerId)); if (dead) { GlobalEventDispatcher.dispatchEvent( { type: Events.E_PLAYER_DEAD, value: playerId } ); } } Что-то или в BattleState.update или dead всегда True а так делать нельзя - даже по мертвым могут приходить обновления, и тогда событие будет отправляться каждый раз при таком обновлении Да, точно @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 8, 2016 Share Posted May 8, 2016 (edited) Что-то или в BattleState.update или dead всегда True Тут проблема в том, что в PP тоже меняется battleState: var obj:BattleStateData = BattleState.get(uid); obj.frags = frags || NaN; //Logger.addObject(item); obj.ready = (vehicleState & net.wargaming.ingame.VehicleStateInBattle.IS_AVATAR_READY) != 0 && !Boolean(item.isOffline); obj.dead = (vehicleState & net.wargaming.ingame.VehicleStateInBattle.IS_ALIVE) == 0; if (obj.dead == true && (!isNaN(obj.curHealth) && obj.curHealth > 0)) obj.curHealth = 0; наверно не надо в ушах dead ставить да и вообще в ушах battleState менять не стоит, надо будет отрефакторить это все. попробуй пока закомментировать "obj.dead = ...", если поможет, закоммитим пока так изменения нужно делать только в ветке default, для 0.9.14 это не критично Edited May 8, 2016 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 8, 2016 Share Posted May 8, 2016 (edited) Тут проблема в том, что в PP тоже меняется battleState: Ну, или вернуть диспатчер в PP да, логами подтверждается, что в if (ud != data) в public static function update(playerId:Number, data:Object):Boolean ud и data будут равны всегда для dead, по вышеназванной причине Вот кусочек: "playerId": 000000000, "team": 1, "squad": 0, "clanAbbrev": "", "vehId": 6465, "playerName": "playername", "dead": true } 2016-05-09 00:26:09: [b:2052] Data input data 2016-05-09 00:26:09: [b:2053] [obj]: 0000000 2016-05-09 00:26:09: [b:2054] ud is 2016-05-09 00:26:09: [b:2055] [obj]: 0000000 2016-05-09 00:26:09: [b:2056] Data input data 2016-05-09 00:26:09: [b:2057] [obj]: 1 2016-05-09 00:26:09: [b:2058] ud is 2016-05-09 00:26:09: [b:2059] [obj]: 1 2016-05-09 00:26:09: [b:2060] Data input data 2016-05-09 00:26:09: [b:2061] [obj]: 0 2016-05-09 00:26:09: [b:2062] ud is 2016-05-09 00:26:09: [b:2063] [obj]: 0 2016-05-09 00:26:09: [b:2064] Data input data 2016-05-09 00:26:09: [b:2065] [obj]: "" 2016-05-09 00:26:09: [b:2066] ud is 2016-05-09 00:26:09: [b:2067] [obj]: "" 2016-05-09 00:26:09: [b:2068] Data input data 2016-05-09 00:26:09: [b:2069] [obj]: 6465 2016-05-09 00:26:09: [b:2070] ud is 2016-05-09 00:26:09: [b:2071] [obj]: 6465 2016-05-09 00:26:09: [b:2072] Data input data 2016-05-09 00:26:09: [b:2073] [obj]: "playername" 2016-05-09 00:26:09: [b:2074] ud is 2016-05-09 00:26:09: [b:2075] [obj]: "playername" 2016-05-09 00:26:09: [b:2076] Data input data 2016-05-09 00:26:09: [b:2077] [obj]: true 2016-05-09 00:26:09: [b:2078] ud is 2016-05-09 00:26:09: [b:2079] [obj]: true 2016-05-09 00:26:10: FlashBeforeDelete: VehicleMarkersManager.swf 2016-05-09 00:26:10: FlashBeforeDelete: battle.swf 2016-05-09 00:26:11: FlashBeforeDelete: lobby.swf попробуй пока закомментировать "obj.dead = ...", если поможет, закоммитим пока так Сейчас попробую Edited May 8, 2016 by wotunion @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted May 8, 2016 Share Posted May 8, 2016 Ну, или вернуть диспатчер в PP нельзя, не место ему там @ Quote Link to comment Short link Share on other sites More sharing options...
wotunion Posted May 8, 2016 Share Posted May 8, 2016 попробуй пока закомментировать "obj.dead = ...", если поможет, закоммитим пока так Да, так работает, сейчас запуллю @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted May 10, 2016 Share Posted May 10, 2016 (edited) Лампу не надо в уши.Если индикатор в уши впихнули, то лучше уж с лампой. Может так? "bgColor": "{{x-sense-on?{{x-spotted?0xFFBB00|{{.colors.system.ally_alive}}}}|0xD9D9D9}}" Если без xmqp - ничего. Если с xmqp и лампа не прокачана -серый. Если прокачана - зеленый (точнее цвет союзников). Если загорается - цвет xmqp (может его куда-то в colors.xc вынести?) Edited May 11, 2016 by seriych @ Quote Link to comment Short link Share on other sites More sharing options...
demon2597 Posted May 11, 2016 Share Posted May 11, 2016 (edited) Если индикатор в уши впихнули, то лучше уж с лампой мне показалось не лучше. я так рассудил: в ухе противника есть лампа- означает засвет и в ухе союзника допустим будет лампа- по логике это тоже засвет? а вот и нет. а почему тогда функции обозначает разные, а значок одинаковый? путаница получается. к тому же xmqp подразумевает более широкий спектр информации нежели только засвет, поэтому не хотелось делать акцент на лампу. кроме того, это в твоем варианте учитывается прокачаный перк лампочки, тогда предложенное обретает какой-то смысл, а изначально индикатор предполагался без учета перка, только как чисто индикатор включенного сервиса и ничего больше. касаемо твоего варианта, тогда раз ты событие именно засвета в уши вносишь, тогда по логике и другие события надо отображать конкретно, то есть не просто сменой цвета, а сменой значка, а то допустим товарищ перевернулся и в ухе загорелась лампа... а каким боком тут лампа? Edited May 11, 2016 by demon2597 @ 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.