Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

pomoc w przypisaniu argumentów do królestw


Rekomendowane odpowiedzi

Opublikowano

witam otóż mam malutki problem odnośnie id argumentów królestw, wszystko jest ładnie pięknie przy wybieraniu królestwa:
Wybierając shinsoo wybiera poprawnie
Wybierając jinno wybiera poprawnie
Natomiast wybierając chunjo przypisuje mi jinno
Odwdzięczę się w postaci lajków

    def OnOverInEmpire(self, arg):
        if arg == 3:
            self.shinsoo.LoadImage('locale/pl/ui/shinsoo_jasne.tga')
        elif arg == 2:
            self.jinno.LoadImage('locale/pl/ui/jinno_jasne.tga')
        else:
            self.chunjo.LoadImage('locale/pl/ui/chunjo_jasne.tga')

    def OnOverOutEmpire(self, arg):
        if arg == 3:
            self.shinsoo.LoadImage('locale/pl/ui/shinsoo_ciemne.tga')
        elif arg == 2:
            self.jinno.LoadImage('locale/pl/ui/jinno_ciemne.tga')
        else:
            self.chunjo.LoadImage('locale/pl/ui/chunjo_ciemne.tga')
            
    def OnSelectEmpire(self, arg):
        arg1 = arg
        if arg1 == 2:
            arg1 = 3

        self.empireID = arg1
        net.SendSelectEmpirePacket(self.empireID)
        self.stream.SetCreateCharacterPhase()
Opublikowano

daj całość, albo przynajmniej funkcje które wywołują te podane przez Ciebie.

@baran860

 

import ui
import net
import wndMgr
import dbg
import app
import event
import _weakref
import uiScriptLocale

LOCALE_PATH = "uiscript/"+uiScriptLocale.CODEPAGE+"_"

class SelectEmpireWindow(ui.ScriptWindow):

    class EmpireButton(ui.Window):
        def __init__(self, owner, arg):
            ui.Window.__init__(self)
            self.owner = owner
            self.arg = arg
        def OnMouseOverIn(self):
            self.owner.OnOverInEmpire(self.arg)
        def OnMouseOverOut(self):
            self.owner.OnOverOutEmpire(self.arg)
        def OnMouseLeftButtonDown(self):
            self.owner.OnSelectEmpire(self.arg)

    def __init__(self, stream):
        print "NEW EMPIRE WINDOW  ----------------------------------------------------------------------------"
        ui.ScriptWindow.__init__(self)
        net.SetPhaseWindow(net.PHASE_WINDOW_EMPIRE, self)

        self.stream=stream
        self.descIndex=0
        self.empireArea = {}
        self.empireAreaButton = {}

    def __del__(self):
        ui.ScriptWindow.__del__(self)
        net.SetPhaseWindow(net.PHASE_WINDOW_EMPIRE, 0)
        print "---------------------------------------------------------------------------- DELETE EMPIRE WINDOW"

    def Close(self):
        print "---------------------------------------------------------------------------- CLOSE EMPIRE WINDOW"        

        self.ClearDictionary()
        self.exitButton = None
        self.empireArea = None
        self.empireAreaButton = None

        self.KillFocus()
        self.Hide()

        app.HideCursor()
        event.Destroy()

    def Open(self):
        print "OPEN EMPIRE WINDOW ----------------------------------------------------------------------------"

        self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
        self.SetWindowName("SelectEmpireWindow")
        self.Show()    

        if not self.__LoadScript(uiScriptLocale.LOCALE_UISCRIPT_PATH + "SelectEmpireWindow.py"):
            dbg.TraceError("SelectEmpireWindow.Open - __LoadScript Error")
            return

        self.__CreateButtons()
        app.ShowCursor()

    def __CreateButtons(self):
        for key, img in self.empireArea.items():

            #img.SetAlpha(0.0)

            (x, y) = img.GetGlobalPosition()
            btn = self.EmpireButton(_weakref.proxy(self), key)
            btn.SetParent(self)
            btn.SetPosition(x, y)
            btn.SetSize(img.GetWidth(), img.GetHeight())
            btn.Show()
            self.empireAreaButton[key] = btn

    def OnOverInEmpire(self, arg):
        if arg == 1:
            self.shinsoo.LoadImage('locale/pl/ui/shinsoo_jasne.tga')
        elif arg == 2:
            self.chunjo.LoadImage('locale/pl/ui/chunjo_jasne.tga')
        else:
            self.jinno.LoadImage('locale/pl/ui/jinno_jasne.tga')

    def OnOverOutEmpire(self, arg):
        if arg == 1:
            self.shinsoo.LoadImage('locale/pl/ui/shinsoo_ciemne.tga')
        elif arg == 2:
            self.chunjo.LoadImage('locale/pl/ui/chunjo_ciemne.tga')
        else:
            self.jinno.LoadImage('locale/pl/ui/jinno_ciemne.tga')
            
    def OnSelectEmpire(self, arg):
        arg1 = arg
        if arg1 == 2:
            arg1 = 3

        self.empireID = arg1
        net.SendSelectEmpirePacket(self.empireID)
        self.stream.SetCreateCharacterPhase()

    def __LoadScript(self, fileName):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, fileName)    
        except:
            import exception
            exception.Abort("SelectEmpireWindow.__LoadScript.LoadObject")

        try:
            GetObject=self.GetChild
            self.shinsoo = GetObject("Shinsoo")
            self.chunjo = GetObject("Chunjo")
            self.jinno = GetObject("Jinno")
            self.empireArea[1] = self.shinsoo
            self.empireArea[2] = self.chunjo
            self.empireArea[3] = self.jinno
        except:
            import exception
            exception.Abort("SelectEmpireWindow.__LoadScript.BindObject")                    

        return 1

    def OnUpdate(self):
        pass

    def OnPressEscapeKey(self):
        self.ClickExitButton()
        return TRUE
        
    def OnPressExitKey(self):
        self.ClickExitButton()
        return TRUE

class ReselectEmpireWindow(SelectEmpireWindow):
    def ClickSelectButton(self):
        net.SendSelectEmpirePacket(self.empireID)
        self.stream.SetCreateCharacterPhase()

    def ClickExitButton(self):
        self.stream.SetSelectCharacterPhase()
Opublikowano

Usuń to:

        if arg1 == 2:
            arg1 = 3

Przy założeniu że:

 

1 = shinsoo
2 = chunjo
3 = jinno

Wszystko wtedy będzie w porządku

@baran860 i jak ustawić wtedy ten fragment

 

    def OnOverInEmpire(self, arg):
        if arg == 1:
            self.shinsoo.LoadImage('locale/pl/ui/shinsoo_jasne.tga')
        elif arg == 2:
            self.chunjo.LoadImage('locale/pl/ui/chunjo_jasne.tga')
        else:
            self.jinno.LoadImage('locale/pl/ui/jinno_jasne.tga')

    def OnOverOutEmpire(self, arg):
        if arg == 1:
            self.shinsoo.LoadImage('locale/pl/ui/shinsoo_ciemne.tga')
        elif arg == 2:
            self.chunjo.LoadImage('locale/pl/ui/chunjo_ciemne.tga')
        else:
            self.jinno.LoadImage('locale/pl/ui/jinno_ciemne.tga')
jeżeli usune fragment który wskazałeś? chodzi mi dokładnie o warunki
Opublikowano

 

@baran860 i jak ustawić wtedy ten fragment

    def OnOverInEmpire(self, arg):
        if arg == 1:
            self.shinsoo.LoadImage('locale/pl/ui/shinsoo_jasne.tga')
        elif arg == 2:
            self.chunjo.LoadImage('locale/pl/ui/chunjo_jasne.tga')
        else:
            self.jinno.LoadImage('locale/pl/ui/jinno_jasne.tga')

    def OnOverOutEmpire(self, arg):
        if arg == 1:
            self.shinsoo.LoadImage('locale/pl/ui/shinsoo_ciemne.tga')
        elif arg == 2:
            self.chunjo.LoadImage('locale/pl/ui/chunjo_ciemne.tga')
        else:
            self.jinno.LoadImage('locale/pl/ui/jinno_ciemne.tga')
jeżeli usune fragment który wskazałeś? chodzi mi dokładnie o warunki

 

 

 

One są ok.

_A - 1 - shinsoo
_B - 2 - chunjo
_C - 3 - jinno

Usuń tylko to:

 

if arg1 == 2:
     arg1 = 3

8910814572903361049127.png

Opublikowano

Zmodyfikuj do takiej postaci funkcje OnSelectEmpire

    def OnSelectEmpire(self, arg):
        arg1 = arg
        if arg1 == 2:
            arg1 = 3
                self.ll = {}
		self.ll[1] = "shinsoo"
		self.ll[2] = "chunjo"
		self.ll[3] = "jinno"
		dbg.LogBox("Przyszlo:"+str(arg)+", aktualnie:"+str(arg1)+", wdlg listy:"+str(self.ll[arg1]))
		return
		
        self.empireID = arg1
        net.SendSelectEmpirePacket(self.empireID)
        self.stream.SetCreateCharacterPhase()

Daj ss okienka z wyboru każdego z 3x królestw

8910814572903361049127.png

Opublikowano

Zmodyfikuj do takiej postaci funkcje OnSelectEmpire

    def OnSelectEmpire(self, arg):
        arg1 = arg
        if arg1 == 2:
            arg1 = 3
		self.ll[1] = "shinsoo"
		self.ll[2] = "chunjo"
		self.ll[3] = "jinno"
		dbg.LogBox("Przyszlo:"+str(arg)+", aktualnie:"+str(arg1)+", wdlg listy:"+str(self.ll[arg1]))
		return
		
        self.empireID = arg1
        net.SendSelectEmpirePacket(self.empireID)
        self.stream.SetCreateCharacterPhase()

Daj ss okienka z wyboru każdego z 3x królestw

@baran860 wywala

networkModule.SetReselectEmpirePhase - exceptions.IndentationError:unindent does not match any outer indentation level (line 98)
Opublikowano
    def OnSelectEmpire(self, arg):
        #arg1 = arg
        #if arg1 == 2:
        #    arg1 = 3
	#	self.ll[1] = "shinsoo"
	#	self.ll[2] = "chunjo"
	#	self.ll[3] = "jinno"
	#	dbg.LogBox("Przyszlo:"+str(arg)+", aktualnie:"+str(arg1)+", wdlg listy:"+str(self.ll[arg1]))
	#	return
		
        self.empireID = arg1
        net.SendSelectEmpirePacket(arg)
        self.stream.SetCreateCharacterPhase()

Musi być chyba że ID królestw są inne niż:

1 "shinsoo"
2 "chunjo"
3 "jinno"

8910814572903361049127.png

Opublikowano
    def OnSelectEmpire(self, arg):
        #arg1 = arg
        #if arg1 == 2:
        #    arg1 = 3
	#	self.ll[1] = "shinsoo"
	#	self.ll[2] = "chunjo"
	#	self.ll[3] = "jinno"
	#	dbg.LogBox("Przyszlo:"+str(arg)+", aktualnie:"+str(arg1)+", wdlg listy:"+str(self.ll[arg1]))
	#	return
		
        self.empireID = arg1
        net.SendSelectEmpirePacket(arg)
        self.stream.SetCreateCharacterPhase()

Musi być chyba że ID królestw są inne niż:

1 "shinsoo"
2 "chunjo"
3 "jinno"

 

@baran860 po wybraniu chunjo dalej mam shinsoo xD

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...