Schimba Channel Problema

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Avatar utilizator
[DDC]
Membru Club

Membru Club
Mesaje: 289
Membru din: 03 Iun 2019, 19:28
Regat: Jinno
Aprecieri: 265  
Mulţumiri: 8  
Discord: Copiază ID
 Contact:
Medalii

Unde ai %s %s schimba cu %s %d și testeaza

[ Postat de pe Android ] Imagine
Afișează semnătura
Avatar utilizator
WOK2
Nivel 1

Nivel 1
Mesaje: 126
Membru din: 05 Dec 2017, 17:30
Server: - - -
Regat: Chunjo
Aprecieri: 217  
Mulţumiri: 1  
Discord: Copiază ID
 Contact:
Medalii

[DDC] scrie: ↑17 Mar 2020, 12:39 Unde ai %s %s schimba cu %s %d și testeaza

[ Postat de pe Android ] Imagine
O noua eroare.

https://gyazo.com/92e7e76447a25361b6e0bcdcc7da5b13
Avatar utilizator
[DDC]
Membru Club

Membru Club
Mesaje: 289
Membru din: 03 Iun 2019, 19:28
Regat: Jinno
Aprecieri: 265  
Mulţumiri: 8  
Discord: Copiază ID
 Contact:
Medalii

Pune funcția de getserverid din uisistem

[ Postat de pe Android ] Imagine
Afișează semnătura
Avatar utilizator
WOK2
Nivel 1

Nivel 1
Mesaje: 126
Membru din: 05 Dec 2017, 17:30
Server: - - -
Regat: Chunjo
Aprecieri: 217  
Mulţumiri: 1  
Discord: Copiază ID
 Contact:
Medalii

[DDC] scrie: ↑17 Mar 2020, 12:42 Pune funcția de getserverid din uisistem

[ Postat de pe Android ] Imagine
	def __GetServerID(self):
		for i in serverInfo.REGION_DICT[0].keys():
			if serverInfo.REGION_DICT[0]["name"] == net.GetServerInfo().split(",")[0]:
				serverID = int(i)
				break

		return serverID
Avatar utilizator
[DDC]
Membru Club

Membru Club
Mesaje: 289
Membru din: 03 Iun 2019, 19:28
Regat: Jinno
Aprecieri: 265  
Mulţumiri: 8  
Discord: Copiază ID
 Contact:
Medalii

Refa partea de uisistem

[ Postat de pe Android ] Imagine
Pentru acest mesaj, [DDC] for the post:
WOK2
Afișează semnătura
Avatar utilizator
WOK2
Nivel 1

Nivel 1
Mesaje: 126
Membru din: 05 Dec 2017, 17:30
Server: - - -
Regat: Chunjo
Aprecieri: 217  
Mulţumiri: 1  
Discord: Copiază ID
 Contact:
Medalii

[DDC] scrie: ↑17 Mar 2020, 12:46 Refa partea de uisistem

[ Postat de pe Android ] Imagine

Eroare sysser : https://gyazo.com/ce73645594e8127c5c611c84fb5b91fc
Avatar utilizator
WOK2
Nivel 1

Nivel 1
Mesaje: 126
Membru din: 05 Dec 2017, 17:30
Server: - - -
Regat: Chunjo
Aprecieri: 217  
Mulţumiri: 1  
Discord: Copiază ID
 Contact:
Medalii

#Rezolvat. Multumiri [DDC]
Avatar utilizator
Kidro
Membru Club

Membru Club
Mesaje: 2487
Membru din: 29 Aug 2019, 16:49
Aprecieri: 331  
Mulţumiri: 5190  
Discord: Copiază ID
Medalii

Pune aici rezolvarea în caz ca mai întâmpină cineva problema sa pot închide topicul.

[ Postat de pe Android ] Imagine
Avatar utilizator
WOK2
Nivel 1

Nivel 1
Mesaje: 126
Membru din: 05 Dec 2017, 17:30
Server: - - -
Regat: Chunjo
Aprecieri: 217  
Mulţumiri: 1  
Discord: Copiază ID
 Contact:
Medalii

Kidro@URAGANU scrie: ↑17 Mar 2020, 16:17 Pune aici rezolvarea în caz ca mai întâmpină cineva problema sa pot închide topicul.

[ Postat de pe Android ] Imagine

game.py :

1. Adaugati import serverinfo
2. adaugati la sfarsit aceasta functie :
if app.ENABLE_MOVE_CHANNEL:
		def __GetServerID(self):
			serverID = 1
			for i in serverinfo.REGION_DICT[0].keys():
				if serverinfo.REGION_DICT[0]["name"] == net.GetServerInfo().split(",")[0]:
					serverID = int(i)
					break
	
			return serverID
		
		def RefreshChannel(self, channel):
			channelName = ""
			serverName = serverinfo.REGION_DICT[0][self.__GetServerID()]["name"]
			if channel in serverinfo.REGION_DICT[0][self.__GetServerID()]["channel"]:
				channelName = serverinfo.REGION_DICT[0][self.__GetServerID()]["channel"][int(channel)]["name"]
			elif channel == 99:
				channelName = "Ch. Special"
			else:
				channelName = "Unknow CH"
				
			net.SetServerInfo("%s, %s" % (serverName,channelName))
			if self.interface:
				self.interface.wndMiniMap.serverInfo.SetText(net.GetServerInfo())
				
			#chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_CHANNEL_NOTICE % (channel))
				
			# app.ChangeTitle(net.GetServerInfo())


3. uisystem.py


class MoveChannelWindow(ui.ScriptWindow):
	def __init__(self):
		ui.ScriptWindow.__init__(self)
		self.titleBar = None
		ServerStateChecker.Create(self)
		self.channelButtonList = []
		self.currentChannel = 0
		self.__LoadBoard()
		self.RefreshChannelButtons()
		self.Show()
		self.SetCenterPosition()
		self.RefreshBeforeShow()

	def __del__(self):
		ui.ScriptWindow.__del__(self)

	def __LoadBoard(self):
		try:
			pyScrLoader = ui.PythonScriptLoader()
			pyScrLoader.LoadScriptFile(self, "UIScript/MoveChannelDialog.py")
		except:
			import exception
			exception.Abort("MoveChannelWindow.__LoadBoard.LoadScript")

		try:
			self.board = self.GetChild("MoveChannelBoard")
			self.titleBar = self.GetChild("MoveChannelTitle")
			self.blackBoard = self.GetChild("BlackBoard")
			self.okButton = self.GetChild("AcceptButton")
			self.cancelButton = self.GetChild("CancelButton")
		except:
			import exception
			exception.Abort("MoveChannelWindow.__LoadBoard.BindObject")

		self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
		self.okButton.SetEvent(ui.__mem_func__(self.ChangeChannel))
		self.cancelButton.SetEvent(ui.__mem_func__(self.Close))
		self.SetCurentChannel()
		self.AddChannels()
		
	def SetCurentChannel(self):
		try:
			self.currentChannel = int( int(net.GetServerInfo().split(",")[1][-1:]) - 1 )
		except:
			return
		
	def __GetServerID(self):
		for i in serverInfo.REGION_DICT[0].keys():
			if serverInfo.REGION_DICT[0]["name"] == net.GetServerInfo().split(",")[0]:
				serverID = int(i)
				break

		return serverID
		
	def __GetChannelNumber(self):
		serverID = self.__GetServerID()
		try:
			channelDict = serverInfo.REGION_DICT[0][serverID]["channel"]
		except:
			return
			
		return len(channelDict)	
		
	def RefreshBeforeShow(self):
		self.__RequestServerStateList()

	def __RequestServerStateList(self):
		try:
			channelDict = serverInfo.REGION_DICT[0][self.__GetServerID()]["channel"]
		except:
			return
		
		ServerStateChecker.Initialize(self)
		for id, channelDataDict in channelDict.items():
			key = channelDataDict["key"]
			ip = channelDataDict["ip"]
			udp_port = channelDataDict["udp_port"]
			ServerStateChecker.AddChannel(key, ip, udp_port)
		ServerStateChecker.Request()

	def NotifyChannelState(self, addrKey, state):
		try:
			stateName = serverInfo.STATE_DICT[state]
		except:
			stateName = serverInfo.STATE_NONE
		
		regionID  = int(addrKey / 1000)
		serverID  = int(addrKey / 10) % 100
		channelID = addrKey % 10
		try:
			serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"] = stateName
			self.__RefreshChannelStateList()
		except:
			pass

	def AddChannels(self):				
		self.SetSize(190,80+30*self.__GetChannelNumber())
		self.board.SetSize(190,80+30*self.__GetChannelNumber())
		self.blackBoard.SetSize(163,7+30*self.__GetChannelNumber())
		
		for i in xrange(self.__GetChannelNumber()):
			self.channelButtonList.append(ui.MakeRadioButton(self.blackBoard, 7, 7+30*i, "d:/ymir work/ui/game/myshop_deco/", "select_btn_01.sub", "select_btn_02.sub", "select_btn_03.sub"))
			self.channelButtonList.SetText(str(serverInfo.REGION_DICT[0][self.__GetServerID()]["channel"][i+1]["name"]))
			self.channelButtonList.SetEvent(lambda arg=i: self.SelectChannel(arg))
			self.channelButtonList.Show()	
			
			
	def SelectChannel(self,channel):
		self.currentChannel = channel
		self.RefreshChannelButtons()
				
	def RefreshChannelButtons(self):
		for i in xrange(self.__GetChannelNumber()):
			if i == self.currentChannel:
				self.channelButtonList.Down()
			else:
				self.channelButtonList.SetUp()
		
	def ChangeChannel(self):
		ServerStateChecker.Update()
		channelID = self.currentChannel+1
		channelState = serverInfo.REGION_DICT[0][self.__GetServerID()]["channel"][channelID]["state"]
		if not channelID:
			return
		
		if channelState == serverInfo.STATE_NONE or channelState == serverInfo.STATE_DICT[0]:
			chat.AppendChat(chat.CHAT_TYPE_INFO , "|cff00ff00[Watter3] |cffffcc00Acest canal este offline")
			return
			
		self.Close()
		net.SendChatPacket("/change_channel " + str(channelID))
				
	def Destroy(self):
		self.ClearDictionary()
		self.Hide()
		
	def Close(self):
		ServerStateChecker.Initialize(self)
		self.Hide()
		
	def OnUpdate(self):
		ServerStateChecker.Update()
		
	def OnPressEscapeKey(self):
		self.Close()
		return True


4. char.cpp

modificati in acest void : : : void CHARACTER::ChangeChannel(DWORD channelId){

aceasta linie asa :

p.wPort	= (wPort - 1000*(g_bChannel-1) + 1000*(channelId-1));


:) BAFTA !
Avatar utilizator
Kidro
Membru Club

Membru Club
Mesaje: 2487
Membru din: 29 Aug 2019, 16:49
Aprecieri: 331  
Mulţumiri: 5190  
Discord: Copiază ID
Medalii

Problema rezolvata, arhivat.

[ Postat de pe Android ] Imagine
Închis
Răspunsuri
4
Vizualizări
528
Răspunsuri
2
Vizualizări
500
Răspunsuri
6
Vizualizări
352
Răspunsuri
4
Vizualizări
325

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 14 vizitatori