Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Problem z importowaniem uiGift.py w InterfaceModule.py - implementacja sklepu offline Great

Featured Replies

Opublikowano

Cześć,

pliki TMP4, paczka ze sklepem z zagranicznego forum, wszystko dodane, podczas załadowania pasek ładowania zamrożony, syserr:

(uiGift.py dodany do folderu root), dodaje jeszcze moje pliki root i uiscript po edycjach) - usunięty serverinfo

Dodam że client ani pliki TMP4 domyślnie nie mają systemu prezentów, nie były zaimplementowane.

JSONKod został skopiowany
0126 00:11:15488 :: Traceback (most recent call last):0126 00:11:15488 ::   File "networkModule.py", line 245, in SetGamePhase0126 00:11:15488 ::   File "system.py", line 130, in __pack_import0126 00:11:15488 ::   File "system.py", line 110, in processresult0126 00:11:15488 ::   File "game.py", line 36, in <module>0126 00:11:15489 ::   File "system.py", line 137, in __pack_import0126 00:11:15489 :: ImportError0126 00:11:15489 :: : 0126 00:11:15489 :: No module named uiGift0126 00:11:15489 :: 

OfflineShop RevooT.zipNiedostępne rootanduiscript.zipNiedostępne

Rozwiązane przez Sevence

Opublikowano

uigift zmień, nie wiem czemu ale czasami czyta z różnych wielkości literze a czasami się dławi.

Opublikowano
  • Autor

Wystarczy tylko nazwę pliku czy w funkcjach też zmienić na uigift zamiast uiGift?

//Edit - ok jest blisko, taskbar już się załadował, ale teraz syserr z game.py:

JSONKod został skopiowany
0126 07:29:23325 :: AttributeError0126 07:29:23325 :: : 0126 07:29:23325 :: 'GameWindow' object has no attribute 'serverCommander'0126 07:29:23325 :: 
PythonKod został skopiowany
	####GIFT SYSTEM#####	def gift_clear(self):		constInfo.gift_items={}		self.interface.ClearGift()	def gift_item(self, id, vnum, count, pos, date_add, give, reason, szSockets, szAttrs):		sockets=[]		for key in szSockets.split("|"):			sockets.append(int(key))	 		attrs=[]		for key in szAttrs.split("|"):			a=key.split(",")			attrs.append([int(a[0]),int(a[1])])		constInfo.gift_items[int(pos)]={"id":int(id),"vnum":int(vnum),"count":int(count),"pos":int(pos),"date_add":int(date_add),"reason":reason.replace("_"," "),"give":give.replace("_"," "),"sockets":sockets,"attrs":attrs}	def gift_load(self):		self.interface.wndGiftBox.Refresh()	def gift_show(self,pages):		self.interface.wndGiftBox.pageNum=int(pages)		self.interface.OpenGift()					self.serverCommander=stringCommander.Analyzer()		for serverCommandItem in serverCommandList.items():			self.serverCommander.SAFE_RegisterCallBack(				serverCommandItem[0], serverCommandItem[1]			) 	def BINARY_ServerCommand_Run(self, line):		#dbg.TraceError(line)		try:			#print " BINARY_ServerCommand_Run", line			return self.serverCommander.Run(line)		except RuntimeError, msg:			dbg.TraceError(msg)			return 0 	def __ProcessPreservedServerCommand(self):		try:			command = net.GetPreservedServerCommand()			while command:				print " __ProcessPreservedServerCommand", command				self.serverCommander.Run(command)				command = net.GetPreservedServerCommand()		except RuntimeError, msg:			dbg.TraceError(msg)			return 0

stringcommander.py

PythonKod został skopiowany
import _weakref class CallBackFunction:	class __noarg_call__:		def __init__(self, cls, obj, func):			self.cls=cls			self.obj=_weakref.proxy(obj)			self.func=_weakref.proxy(func) 		def __call__(self, *arg):			return self.func(self.obj) 	class __arg_call__:		def __init__(self, cls, obj, func):			self.cls=cls			self.obj=_weakref.proxy(obj)			self.func=_weakref.proxy(func) 		def __call__(self, *arg):			return self.func(self.obj, *arg) 	def __init__(self, mfunc):		self.argCount=mfunc.im_func.func_code.co_argcount 		if self.argCount>1:			self.call=CallBackFunction.__arg_call__(mfunc.im_class, mfunc.im_self, mfunc.im_func)		else:			self.call=CallBackFunction.__noarg_call__(mfunc.im_class, mfunc.im_self, mfunc.im_func) 	def __call__(self, *arg):		return self.call(*arg) 	def GetArgumentCount(self):		return self.argCount class Analyzer:	def __init__(self):		self.cmdDict={} 	def SAFE_RegisterCallBack(self, cmd, callBackFunc):		self.cmdDict[cmd]=CallBackFunction(callBackFunc) 	def Run(self, line):				tokens=line.split() 		if len(tokens)==0:			return 1 		cmd=tokens.pop(0) 		try:					callBackFunc=self.cmdDict[cmd]		except KeyError:			return 0 		argCount=callBackFunc.GetArgumentCount()-1 		if len(tokens)<argCount:			raise RuntimeError, "Analyzer.Run(line=%s) - cmd=%s, curArgCount[%d]<needArgCount[%d]" % (line, cmd, len(tokens), argCount)			return 0 		tokens=tokens[:argCount]		callBackFunc(*tokens)		return 1

game.py:

game.py - class GameWindow

PythonKod został skopiowany
class GameWindow(ui.ScriptWindow):	def __init__(self, stream):		ui.ScriptWindow.__init__(self, "GAME")		self.SetWindowName("game")		net.SetPhaseWindow(net.PHASE_WINDOW_GAME, self)		player.SetGameWindow(self) 		self.quickSlotPageIndex = 0		self.lastPKModeSendedTime = 0		self.pressNumber = None 		self.guildWarQuestionDialog = None		self.interface = None		self.targetBoard = None		self.console = None		self.mapNameShower = None		self.affectShower = None		self.playerGauge = None 		self.stream=stream		self.interface = interfaceModule.Interface()		self.interface.MakeInterface()		self.interface.ShowDefaultWindows() 		self.curtain = uiPhaseCurtain.PhaseCurtain()		self.curtain.speed = 0.03		self.curtain.Hide() 		self.targetBoard = uiTarget.TargetBoard()		self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog))		self.targetBoard.Hide() 		self.console = consoleModule.ConsoleWindow()		self.console.BindGameClass(self)		self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200)		self.console.Hide() 		self.mapNameShower = uiMapNameShower.MapNameShower()		self.affectShower = uiAffectShower.AffectShower() 		self.playerGauge = uiPlayerGauge.PlayerGauge(self)		self.playerGauge.Hide()				#wj 2014.1.2. ESC키를 누를 시 우선적으로 DropQuestionDialog를 끄도록 만들었다. 하지만 처음에 itemDropQuestionDialog가 선언되어 있지 않아 ERROR가 발생하여 init에서 선언과 동시에 초기화 시킴.		self.itemDropQuestionDialog = None				self.uiNewShopCreate = None		self.uiNewShop = None 		self.__SetQuickSlotMode() 		self.__ServerCommand_Build()		self.__ProcessPreservedServerCommand()
Opublikowano
  • Autor

game.py jest w root w pierwszym poście, jest on po edycjach, a odnośnie komend to jedyne jakie zauważyłem servercommand to te z sekcji z komentarzem GIFT SYSTEM, stringcommander.py i podobne nie były edytowane.

Opublikowano
  • Rozwiązanie

Faktycznie, nie zauważyłem, sprawdź:

game.pyNiedostępne

Te nowe funkcje wkleiłeś w złym miejscu miałeś tak:

PythonKod został skopiowany
	def __ServerCommand_Build(self):		serverCommandList={			"ConsoleEnable"			: self.__Console_Enable,			"DayMode"				: self.__DayMode_Update, 			"PRESERVE_DayMode"		: self.__PRESERVE_DayMode_Update, 			"CloseRestartWindow"	: self.__RestartDialog_Close,			"OpenPrivateShop"		: self.__PrivateShop_Open,			"PartyHealReady"		: self.PartyHealReady,			"ShowMeSafeboxPassword"	: self.AskSafeboxPassword,			"CloseSafebox"			: self.CommandCloseSafebox, 			# ITEM_MALL			"CloseMall"				: self.CommandCloseMall,			"ShowMeMallPassword"	: self.AskMallPassword,			"item_mall"				: self.__ItemMall_Open,			# END_OF_ITEM_MALL 			"RefineSuceeded"		: self.RefineSuceededMessage,			"RefineFailed"			: self.RefineFailedMessage,			"xmas_snow"				: self.__XMasSnow_Enable,			"xmas_boom"				: self.__XMasBoom_Enable,			"xmas_song"				: self.__XMasSong_Enable,			"xmas_tree"				: self.__XMasTree_Enable,			"newyear_boom"			: self.__XMasBoom_Enable,			"PartyRequest"			: self.__PartyRequestQuestion,			"PartyRequestDenied"	: self.__PartyRequestDenied,			"horse_state"			: self.__Horse_UpdateState,			"hide_horse_state"		: self.__Horse_HideState,			"WarUC"					: self.__GuildWar_UpdateMemberCount,			"test_server"			: self.__EnableTestServerFlag,			"mall"			: self.__InGameShop_Show, 			# WEDDING			"lover_login"			: self.__LoginLover,			"lover_logout"			: self.__LogoutLover,			"lover_near"			: self.__LoverNear,			"lover_far"				: self.__LoverFar,			"lover_divorce"			: self.__LoverDivorce,			"PlayMusic"				: self.__PlayMusic,			# END_OF_WEDDING 			# PRIVATE_SHOP_PRICE_LIST			"MyShopPriceList"		: self.__PrivateShop_PriceList,			# END_OF_PRIVATE_SHOP_PRICE_LIST						##NEW SHOP			"shop"		:self.NewShop,			"shop_clear"		:self.ShopClear,			"shop_add"		:self.ShopAdd,			"shop_item"		:self.ShopItem,			"shop_cost"		:self.ShopCost,			"shop_cost_clear"		:self.ShopCostClear,			"shop_item_clear"	:self.ShopItemClear,						#####GIFT SYSTEM			"gift_clear"		:self.gift_clear,			"gift_item"		:self.gift_item,			"gift_info"		:self.gift_show,			"gift_load"		:self.gift_load,			###		} 		####SHOP SYSTEM#####	def NewShop(self):		if self.uiNewShop:			self.uiNewShop.Show()		def ShopClear(self):		if self.uiNewShop:			self.uiNewShop.HideAll()		constInfo.MyShops=[]	def ShopCostClear(self):		constInfo.shop_cost=[]	def ShopCost(self,id,time,time_val,price):		constInfo.shop_cost.append({"id":int(id),"time":int(time),"time_val":int(time_val),"price":int(price)})	def ShopAdd(self,shop_id,shop_vid,szSign,gold,count,sold,days,date_close):		if self.uiNewShop:			shop={				"id":shop_id,				"vid":shop_vid,				"name":szSign.replace("\\"," ").replace("_","#"),				"gold":gold,				"sold":sold,				"items":int(count)-int(sold),				"days":days,				"time":date_close			}			self.uiNewShop.Load(shop)			constInfo.MyShops.append(shop)	def ShopItemClear(self):		if self.uiNewShop:			self.uiNewShop.ClearItems()	def ShopItem(self,data):		d=data.split("#")		id=d[0]		vnum=d[1]		count=d[2]		slot=d[3]		price=d[4]		s=d[5]		a=d[6]		sockets=[]		for key in s.split("|"):			sockets.append(int(key))			attrs=[]		for key in a.split("|"):			a=key.split(",")			attrs.append([int(a[0]),int(a[1])])		if self.uiNewShop:			self.uiNewShop.AddItem(slot,{"id":id,"vnum":vnum,"count":count,"price":price,"sockets":sockets,"attrs":attrs})			####GIFT SYSTEM#####	def gift_clear(self):		constInfo.gift_items={}		self.interface.ClearGift()	def gift_item(self, id, vnum, count, pos, date_add, give, reason, szSockets, szAttrs):		sockets=[]		for key in szSockets.split("|"):			sockets.append(int(key))	 		attrs=[]		for key in szAttrs.split("|"):			a=key.split(",")			attrs.append([int(a[0]),int(a[1])])		constInfo.gift_items[int(pos)]={"id":int(id),"vnum":int(vnum),"count":int(count),"pos":int(pos),"date_add":int(date_add),"reason":reason.replace("_"," "),"give":give.replace("_"," "),"sockets":sockets,"attrs":attrs}	def gift_load(self):		self.interface.wndGiftBox.Refresh()	def gift_show(self,pages):		self.interface.wndGiftBox.pageNum=int(pages)		self.interface.OpenGift()					self.serverCommander=stringCommander.Analyzer()		for serverCommandItem in serverCommandList.items():			self.serverCommander.SAFE_RegisterCallBack(				serverCommandItem[0], serverCommandItem[1]			) 	def BINARY_ServerCommand_Run(self, line):		#dbg.TraceError(line)		try:			#print " BINARY_ServerCommand_Run", line			return self.serverCommander.Run(line)		except RuntimeError, msg:			dbg.TraceError(msg)			return 0 	def __ProcessPreservedServerCommand(self):		try:			command = net.GetPreservedServerCommand()			while command:				print " __ProcessPreservedServerCommand", command				self.serverCommander.Run(command)				command = net.GetPreservedServerCommand()		except RuntimeError, msg:			dbg.TraceError(msg)			return 0

A powinno być tak:

PythonKod został skopiowany
	def __ServerCommand_Build(self):		serverCommandList={			"ConsoleEnable"			: self.__Console_Enable,			"DayMode"				: self.__DayMode_Update, 			"PRESERVE_DayMode"		: self.__PRESERVE_DayMode_Update, 			"CloseRestartWindow"	: self.__RestartDialog_Close,			"OpenPrivateShop"		: self.__PrivateShop_Open,			"PartyHealReady"		: self.PartyHealReady,			"ShowMeSafeboxPassword"	: self.AskSafeboxPassword,			"CloseSafebox"			: self.CommandCloseSafebox, 			# ITEM_MALL			"CloseMall"				: self.CommandCloseMall,			"ShowMeMallPassword"	: self.AskMallPassword,			"item_mall"				: self.__ItemMall_Open,			# END_OF_ITEM_MALL 			"RefineSuceeded"		: self.RefineSuceededMessage,			"RefineFailed"			: self.RefineFailedMessage,			"xmas_snow"				: self.__XMasSnow_Enable,			"xmas_boom"				: self.__XMasBoom_Enable,			"xmas_song"				: self.__XMasSong_Enable,			"xmas_tree"				: self.__XMasTree_Enable,			"newyear_boom"			: self.__XMasBoom_Enable,			"PartyRequest"			: self.__PartyRequestQuestion,			"PartyRequestDenied"	: self.__PartyRequestDenied,			"horse_state"			: self.__Horse_UpdateState,			"hide_horse_state"		: self.__Horse_HideState,			"WarUC"					: self.__GuildWar_UpdateMemberCount,			"test_server"			: self.__EnableTestServerFlag,			"mall"			: self.__InGameShop_Show, 			# WEDDING			"lover_login"			: self.__LoginLover,			"lover_logout"			: self.__LogoutLover,			"lover_near"			: self.__LoverNear,			"lover_far"				: self.__LoverFar,			"lover_divorce"			: self.__LoverDivorce,			"PlayMusic"				: self.__PlayMusic,			# END_OF_WEDDING 			# PRIVATE_SHOP_PRICE_LIST			"MyShopPriceList"		: self.__PrivateShop_PriceList,			# END_OF_PRIVATE_SHOP_PRICE_LIST						##NEW SHOP			"shop"		:self.NewShop,			"shop_clear"		:self.ShopClear,			"shop_add"		:self.ShopAdd,			"shop_item"		:self.ShopItem,			"shop_cost"		:self.ShopCost,			"shop_cost_clear"		:self.ShopCostClear,			"shop_item_clear"	:self.ShopItemClear,						#####GIFT SYSTEM			"gift_clear"		:self.gift_clear,			"gift_item"		:self.gift_item,			"gift_info"		:self.gift_show,			"gift_load"		:self.gift_load,			###		} 		self.serverCommander=stringCommander.Analyzer()		for serverCommandItem in serverCommandList.items():			self.serverCommander.SAFE_RegisterCallBack(				serverCommandItem[0], serverCommandItem[1]			) 	def BINARY_ServerCommand_Run(self, line):		#dbg.TraceError(line)		try:			#print " BINARY_ServerCommand_Run", line			return self.serverCommander.Run(line)		except RuntimeError, msg:			dbg.TraceError(msg)			return 0 	def __ProcessPreservedServerCommand(self):		try:			command = net.GetPreservedServerCommand()			while command:				print " __ProcessPreservedServerCommand", command				self.serverCommander.Run(command)				command = net.GetPreservedServerCommand()		except RuntimeError, msg:			dbg.TraceError(msg)			return 0 	def NewShop(self):		if self.uiNewShop:			self.uiNewShop.Show()		def ShopClear(self):		if self.uiNewShop:			self.uiNewShop.HideAll()		constInfo.MyShops=[]	def ShopCostClear(self):		constInfo.shop_cost=[]	def ShopCost(self,id,time,time_val,price):		constInfo.shop_cost.append({"id":int(id),"time":int(time),"time_val":int(time_val),"price":int(price)})	def ShopAdd(self,shop_id,shop_vid,szSign,gold,count,sold,days,date_close):		if self.uiNewShop:			shop={				"id":shop_id,				"vid":shop_vid,				"name":szSign.replace("\\"," ").replace("_","#"),				"gold":gold,				"sold":sold,				"items":int(count)-int(sold),				"days":days,				"time":date_close			}			self.uiNewShop.Load(shop)			constInfo.MyShops.append(shop)	def ShopItemClear(self):		if self.uiNewShop:			self.uiNewShop.ClearItems()	def ShopItem(self,data):		d=data.split("#")		id=d[0]		vnum=d[1]		count=d[2]		slot=d[3]		price=d[4]		s=d[5]		a=d[6]		sockets=[]		for key in s.split("|"):			sockets.append(int(key))			attrs=[]		for key in a.split("|"):			a=key.split(",")			attrs.append([int(a[0]),int(a[1])])		if self.uiNewShop:			self.uiNewShop.AddItem(slot,{"id":id,"vnum":vnum,"count":count,"price":price,"sockets":sockets,"attrs":attrs})			####GIFT SYSTEM#####	def gift_clear(self):		constInfo.gift_items={}		self.interface.ClearGift()	def gift_item(self, id, vnum, count, pos, date_add, give, reason, szSockets, szAttrs):		sockets=[]		for key in szSockets.split("|"):			sockets.append(int(key))	 		attrs=[]		for key in szAttrs.split("|"):			a=key.split(",")			attrs.append([int(a[0]),int(a[1])])		constInfo.gift_items[int(pos)]={"id":int(id),"vnum":int(vnum),"count":int(count),"pos":int(pos),"date_add":int(date_add),"reason":reason.replace("_"," "),"give":give.replace("_"," "),"sockets":sockets,"attrs":attrs}	def gift_load(self):		self.interface.wndGiftBox.Refresh()	def gift_show(self,pages):		self.interface.wndGiftBox.pageNum=int(pages)		self.interface.OpenGift()	
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.