Jump to content
Korean Random

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


Recommended Posts

а питон?

так я по привычке заблокировал его запись :)  если без него никак, то придётся разрешить и тогда смогу скинуть... сорри

так то и первый вариант кода работал, только нет ивента на обновление 

//  "updateEvent":"?????????"

 

если прикрепить к другому доступному, тогда щёлкает, но хотелось родной интервал 0.1 задать..

 

UPD python.log

Edited by goodman
Link to comment
Short link
Share on other sites

так я по привычке заблокировал его запись :)  если без него никак, то придётся разрешить и тогда смогу скинуть... сорри

так то и первый вариант кода работал, только нет ивента на обновление 

//  "updateEvent":"?????????"

 

если прикрепить к другому доступному, тогда щёлкает, но хотелось родной интервал 0.1 задать..

так я в самом коде интервал обновления прописал (хотя и так должны были меняться значения)

питон лог нужен

Edited by Ekspoint
Link to comment
Short link
Share on other sites

это какое?

скрин?

@xvm.export('DebugInfo', deterministic=False)
def DebugInfo():
    fps = update_debug.fps_update()
    ping = update_debug.ping_update()
    fpsRep = update_debug.fpsRep_update()
    return fps
		{//dbg
		"enabled":true,
//		"updateEvent":"?????????",
		"x":0,"y":100,"width":200,"height":20,
		"currentFieldDefaultStyle":{"name":"GF","size":12,"align":"center"},
		"autoSize":"none","align":"center",
		"format":"{{py:DebugInfo()}}"
			},

пока что на оформление смотреть не нужно, отладка

'скрин'

post-10271-0-68761000-1464983605_thumb.png
Link to comment
Short link
Share on other sites


import BigWorld
from gui.Scaleform.Battle import DebugPanel
from gui.Scaleform.Battle import Battle
from xfw import *

class Battle_Info(object):

def __init__(self):
self.fps = 0
self.fpsRep = 0
self.ping = 0


battle_info = Battle_Info()

def updateDebugInfo(self, ping, fps, lag, fpsReplay = -1):
self.flashObject.visible = False # standart panel off
def update():
battle_info.fpsRep = fpsReplay if fpsReplay != 0 and fpsReplay != -1 else ''
battle_info.fps = '({fps})'.format(fps=fps) if fpsReplay != 0 and fpsReplay != -1 else fps
battle_info.ping = ping
BigWorld.callback(0, lambda: update())
update()


DebugPanel.updateDebugInfo = updateDebugInfo

class Update_Debug(object):

def fps_update(self):
return battle_info.fps
BigWorld.callback(0, lambda: fps_update())

def fpsRep_update(self):
return battle_info.fpsRep
BigWorld.callback(0, lambda: fpsRep_update())

def ping_update(self):
return battle_info.ping
BigWorld.callback(0, lambda: ping_update())


update_debug = Update_Debug()

@xvm.export('DebugInfo', deterministic=False)
def DebugInfo():
fps = update_debug.fps_update()
ping = update_debug.ping_update()
fpsRep = update_debug.fpsRep_update()

@registerEvent(Battle, 'beforeDelete')
def beforeDelete(self):
battle_info.fps = 0
battle_info.fpsRep = 0
battle_info.ping = 0
Link to comment
Short link
Share on other sites

@Ekspoint,я отнял у тебя кучу времени.. он обновление так и не работает :(
я с трудом сдерживая эмоции не могу понять- неужели, что бы вытащить четыре параметра в другое поле, нужно столько кода?... я только вчера предположил что начал вникать)) но тут... ппц 

Link to comment
Short link
Share on other sites

а так

import BigWorld
from gui.Scaleform.Battle import DebugPanel
from gui.Scaleform.Battle import Battle
from xfw import *

class Battle_Info(object):
 
    def __init__(self):
        self.fps = 0
        self.fpsRep = 0
        self.ping = 0

     
battle_info = Battle_Info()

@overrideMethod(DebugPanel, 'updateDebugInfo')            
def updateDebugInfo(base, self, ping, fps, lag, fpsReplay = -1):
    self.flashObject.visible = False # standart panel off
    battle_info.fpsRep = fpsReplay if fpsReplay != 0 and fpsReplay != -1 else ''
    battle_info.fps = '({fps})'.format(fps=fps) if fpsReplay != 0 and fpsReplay != -1 else fps
    battle_info.ping = ping


class Update_Debug(object):
 
    def fps_update(self):
        return battle_info.fps
        BigWorld.callback(0, lambda: fps_update())

    def fpsRep_update(self):
        return battle_info.fpsRep
        BigWorld.callback(0, lambda: fpsRep_update())
   
    def ping_update(self):
        return battle_info.ping
        BigWorld.callback(0, lambda: ping_update())
   
   
update_debug = Update_Debug()

@xvm.export('DebugInfo', deterministic=False)
def DebugInfo():
    fps = update_debug.fps_update()
    ping = update_debug.ping_update()
    fpsRep = update_debug.fpsRep_update()
  
@registerEvent(Battle, 'beforeDelete')
def beforeDelete(self):
    battle_info.fps = 0
    battle_info.fpsRep = 0
    battle_info.ping = 0
Link to comment
Short link
Share on other sites

а так

 нет, не работает..

я вчера до 4х утра не спал!!потрошил флешки и питон клиента, смотрел связи, имена, но так и не добился ничего((

 

подозреваю, что не хватает кода в самом XVM

Edited by goodman
Link to comment
Short link
Share on other sites

ну я хз уже

@overrideMethod(DebugPanel, 'updateDebugInfo')            
def updateDebugInfo(base, self, ping, fps, lag, fpsReplay = -1):
    self.flashObject.visible = False # standart panel off
    battle_info.fpsRep = fpsReplay if fpsReplay != 0 and fpsReplay != -1 else ''
    battle_info.fps = '({fps})'.format(fps=fps) if fpsReplay != 0 and fpsReplay != -1 else fps
    battle_info.ping = ping
    print 'fps %s' % battle_info.fps

включи питон лог и глянь потом

Link to comment
Short link
Share on other sites

 

 

питон лог и глянь
исправно пишет, обновление корректное...
спасибо, что уделил время!
может кто то ещё почитает беседу и подскажет решение... я хз что делать уже
Link to comment
Short link
Share on other sites

бля, я болда


import BigWorld
from gui.Scaleform.Battle import DebugPanel
from gui.Scaleform.Battle import Battle
from xfw import *

class Battle_Info(object):
 
    def __init__(self):
        self.fps = 0
        self.fpsRep = 0
        self.ping = 0

     
battle_info = Battle_Info()

@overrideMethod(DebugPanel, 'updateDebugInfo')            
def updateDebugInfo(base, self, ping, fps, lag, fpsReplay = -1):
    self.flashObject.visible = False # standart panel off
    battle_info.fpsRep = fpsReplay if fpsReplay != 0 and fpsReplay != -1 else ''
    battle_info.fps = '({fps})'.format(fps=fps) if fpsReplay != 0 and fpsReplay != -1 else fps
    battle_info.ping = ping


class Update_Debug(object):
 
    def fps_update(self):
        return battle_info.fps
        BigWorld.callback(0, lambda: self.fps_update())

    def fpsRep_update(self):
        return battle_info.fpsRep
        BigWorld.callback(0, lambda: self.fpsRep_update())
   
    def ping_update(self):
        return battle_info.ping
        BigWorld.callback(0, lambda: self.ping_update())
   
   
update_debug = Update_Debug()

@xvm.export('DebugInfo', deterministic=False)
def DebugInfo():
    fps = update_debug.fps_update()
    ping = update_debug.ping_update()
    fpsRep = update_debug.fpsRep_update()
  
@registerEvent(Battle, 'beforeDelete')
def beforeDelete(self):
    battle_info.fps = 0
    battle_info.fpsRep = 0
    battle_info.ping = 0
Edited by Ekspoint
Link to comment
Short link
Share on other sites

не увидел разницы в коде, обновления вывода нет.. 

а так

def fps_update():
    return battle_info.fps
    BigWorld.callback(0, lambda: fps_update())

@xvm.export('DebugInfo', deterministic=False)
def DebugInfo():
    fps = fps_update()

еще сткпил

import BigWorld
from gui.Scaleform.Battle import DebugPanel
from gui.Scaleform.Battle import Battle
from xfw import *

class Battle_Info(object):
 
    def __init__(self):
        self.fps = 0
        self.fpsRep = 0
        self.ping = 0

     
battle_info = Battle_Info()

@overrideMethod(DebugPanel, 'updateDebugInfo')            
def updateDebugInfo(base, self, ping, fps, lag, fpsReplay = -1):
    self.flashObject.visible = False # standart panel off
    battle_info.fpsRep = fpsReplay if fpsReplay != 0 and fpsReplay != -1 else ''
    battle_info.fps = '({fps})'.format(fps=fps) if fpsReplay != 0 and fpsReplay != -1 else fps
    battle_info.ping = ping


class Update_Debug(object):
 
    def fps_update(self):
        BigWorld.callback(0, lambda: self.fps_update())
        return battle_info.fps

    def fpsRep_update(self):
        BigWorld.callback(0, lambda: self.fpsRep_update())
        return battle_info.fpsRep
   
    def ping_update(self):
        BigWorld.callback(0, lambda: self.ping_update())
        return battle_info.ping
   
   
update_debug = Update_Debug()

@xvm.export('DebugInfo', deterministic=False)
def DebugInfo():
    fps = update_debug.fps_update()
    ping = update_debug.ping_update()
    fpsRep = update_debug.fpsRep_update()
  
@registerEvent(Battle, 'beforeDelete')
def beforeDelete(self):
    battle_info.fps = 0
    battle_info.fpsRep = 0
    battle_info.ping = 0


Link to comment
Short link
Share on other sites

:sob:


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

Edited by goodman
Link to comment
Short link
Share on other sites

еще сткпил

м.б. это поможет:

 

когда ты сделал свою Расширенная настройка DebugPanel еще для 0.9.14.1, то у меня "не пошло", вот пост

 

чет не фурычит :(( замирает в начале боя на одном значении (фпс 118, пинг 1) и все...

похожая картина, да? :))  

 

сейчас проверял все, что выложил тут - то же, что и у @goodman, причем логи пустые

 

полез в твою тему и скачал свежую панель для 0.9.15  - все работает :))

'логи'

 

и, кстати, вот это никак не повлияло? (проверяем то все на реплеях!)

Ekspoint, on 29 May 2016 - 17:35, said:

Обновлено:

исправлена работа пинга в реплеях

Edited by Kapany3uk
Link to comment
Short link
Share on other sites

яж говорю что я хз как тут эти макросы вообще работаю, а у меня то по другому сделано, не так как здесь


@overrideMethod(DebugPanel, 'updateDebugInfo')            
def updateDebugInfo(base, self, ping, fps, lag, fpsReplay = -1):
    self.flashObject.visible = False # standart panel off
    battle_info.fpsRep = fpsReplay if fpsReplay != 0 and fpsReplay != -1 else ''
    battle_info.fps = '({fps})'.format(fps=fps) if fpsReplay != 0 and fpsReplay != -1 else fps
    battle_info.ping = ping
    @xvm.export('DebugInfo', deterministic=False)
    def DebugInfo():
        return fps

так наверно нельзя :)

Edited by Ekspoint
Link to comment
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...