Jump to content

Auto Refine Option


Recommended Posts

  • 4 months later...
  • 2 weeks later...
  • 3 weeks later...
On 3/30/2020 at 7:20 PM, Egorka said:

I have a problem, the sound of the blacksmith is off. how to activate it again? which code and where to insert?

Open your game.py with Notepad++
CTRL-F => def RefineSuceededMessage(self):

 

    def RefineSuceededMessage(self):
        snd.PlaySound("sound/ui/make_soket.wav")		<== ADD THIS AGAIN
        self.PopupMessage(localeInfo.REFINE_SUCCESS)
        if app.ENABLE_REFINE_RENEWAL:
            self.interface.CheckRefineDialog(False)

    def RefineFailedMessage(self):
        snd.PlaySound("sound/ui/jaeryun_fail.wav")		<== ADD THIS AGAIN
        self.PopupMessage(localeInfo.REFINE_FAILURE)
        if app.ENABLE_REFINE_RENEWAL:
            self.interface.CheckRefineDialog(True)


Anyways i need help aswell.
I can't seem to solve following issue:

 

Quote

0420 00:40:22370 :: Traceback (most recent call last):

0420 00:40:22370 ::   File "game.py", line 2050, in BINARY_ServerCommand_Run

0420 00:40:22370 ::   File "stringCommander.py", line 63, in Run

0420 00:40:22370 ::   File "stringCommander.py", line 31, in __call__

0420 00:40:22370 ::   File "stringCommander.py", line 11, in __call__

0420 00:40:22370 ::   File "game.py", line 2087, in RefineSuceededMessage

0420 00:40:22370 :: AttributeError
0420 00:40:22370 :: : 
0420 00:40:22370 :: 'Interface' object has no attribute 'CheckRefineDialog'
0420 00:40:22370 :: 



Does someone know a fix for it?

Link to comment
Share on other sites

  • 4 weeks later...
On 4/19/2020 at 11:55 PM, Leafxc said:

I do have it right there:

if app.ENABLE_REFINE_RENEWAL: def CheckRefineDialog(self, isFail): self.dlgRefineNew.CheckRefine(isFail)


	if app.ENABLE_REFINE_RENEWAL:
		def CheckRefineDialog(self, isFail):
			self.dlgRefineNew.CheckRefine(isFail)

 

 

def CheckRefineDialog shouldn't be attached to the "def AppendMaterialToRefineDialog".

 

@Leafxc or any other person who's having issues with this error,

support below concerns errors within the file interfacemodule.py at Definitions "AppendMaterialToRefineDialog" &  "CheckRefineDialog"

Wrong Scenario (the one you probably have):

 

	def AppendMaterialToRefineDialog(self, vnum, count):
		self.dlgRefineNew.AppendMaterial(vnum, count)
		if app.ENABLE_REFINE_RENEWAL:
			def CheckRefineDialog(self, isFail):
				self.dlgRefineNew.CheckRefine(isFail)


Correct Scenario below:

	def AppendMaterialToRefineDialog(self, vnum, count):
		self.dlgRefineNew.AppendMaterial(vnum, count)
	
	if app.ENABLE_REFINE_RENEWAL:
		def CheckRefineDialog(self, isFail):
			self.dlgRefineNew.CheckRefine(isFail)


Also please, double check the tab identation. Python has strict rules and you need to follow them.

 

Edited by shotyourself
Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...

I got no problem when adding the system, no sysrr, nothing else. My problem is that the system is working really different than should. First, it is upgrading two levels in a row, i mean. I have an item +0 then i refine then just one time and it is +2. The another problem is the accept box is not appearing after that

any solution?

Link to comment
Share on other sites

  • 2 months later...
0501 02:44:20301 ::   File "networkModule.py", line 237, in SetGamePhase

0501 02:44:20301 ::   File "system.py", line 177, in __hybrid_import

0501 02:44:20301 ::   File "
0501 02:44:20301 :: game.py
0501 02:44:20301 :: ", line 
0501 02:44:20301 :: 1293
0501 02:44:20301 :: 

0501 02:44:20301 ::     
0501 02:44:20301 :: else:

0501 02:44:20301 ::     
0501 02:44:20301 ::  
0501 02:44:20301 ::  
0501 02:44:20301 ::  
0501 02:44:20301 :: ^

0501 02:44:20301 :: SyntaxError
0501 02:44:20301 :: : 
0501 02:44:20301 :: invalid syntax
0501 02:44:20301 :: 

It will be the late hour ... but I can't understand what happens. Syntax error where?

 

 

Game.py https://pastebin.com/1D4DFa1z

Edited by NeXuS0248
  • Metin2 Dev 1
Link to comment
Share on other sites

  • 4 months later...
  • 1 month later...

1109 17:33:24882 :: Traceback (most recent call last):

1109 17:33:24883 ::   File "game.py", line 712, in OpenRefineDialog

1109 17:33:24883 ::   File "interfaceModule.py", line 835, in OpenRefineDialog

1109 17:33:24883 ::   File "uiRefine.py", line 344, in Open

1109 17:33:24883 ::   File "uiRefine.py", line 287, in __LoadScript

1109 17:33:24883 :: AttributeError
1109 17:33:24883 :: : 
1109 17:33:24883 :: 'RefineDialogNew' object has no attribute 'AutoRefine'
1109 17:33:24883 :: 
 

 

 

..... 

Link to comment
Share on other sites

On 11/9/2021 at 5:40 PM, Artix96it said:

1109 17:33:24882 :: Traceback (most recent call last):

1109 17:33:24883 ::   File "game.py", line 712, in OpenRefineDialog

1109 17:33:24883 ::   File "interfaceModule.py", line 835, in OpenRefineDialog

1109 17:33:24883 ::   File "uiRefine.py", line 344, in Open

1109 17:33:24883 ::   File "uiRefine.py", line 287, in __LoadScript

1109 17:33:24883 :: AttributeError
1109 17:33:24883 :: : 
1109 17:33:24883 :: 'RefineDialogNew' object has no attribute 'AutoRefine'
1109 17:33:24883 :: 
 

 

 

..... 

Check my function difference..

Spoiler
import app
import net
import player
import item
import ui
import uiToolTip
import mouseModule
import localeInfo
import uiCommon
import constInfo

class RefineDialog(ui.ScriptWindow):

	makeSocketSuccessPercentage = (100, 33, 20, 15, 10, 5, 0)
	upgradeStoneSuccessPercentage = (30, 29, 28, 27, 26, 25, 24, 23, 22)
	upgradeArmorSuccessPercentage = (99, 66, 33, 33, 33, 33, 33, 33, 33)
	upgradeAccessorySuccessPercentage = (99, 88, 77, 66, 33, 33, 33, 33, 33)
	upgradeSuccessPercentage = (99, 66, 33, 33, 33, 33, 33, 33, 33)

	def __init__(self):
		ui.ScriptWindow.__init__(self)
		self.__LoadScript()

		self.scrollItemPos = 0
		self.targetItemPos = 0

	def __LoadScript(self):
		self.__LoadQuestionDialog()

		try:
			pyScrLoader = ui.PythonScriptLoader()
			pyScrLoader.LoadScriptFile(self, "uiscript/refinedialog.py")
		except:
			import exception
			exception.Abort("RefineDialog.__LoadScript.LoadObject")

		try:
			self.board = self.GetChild("Board")
			self.titleBar = self.GetChild("TitleBar")
			self.successPercentage = self.GetChild("SuccessPercentage")
			self.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
			self.GetChild("CancelButton").SetEvent(self.Close)
		except:
			import exception
			exception.Abort("RefineDialog.__LoadScript.BindObject")

		if constInfo.SUCCESS_PERCENTAGE_INFO:
			self.successPercentage.Show()
		else:
			self.successPercentage.Hide()

		toolTip = uiToolTip.ItemToolTip()
		toolTip.SetParent(self)
		toolTip.SetPosition(15, 38)
		toolTip.SetFollow(False)
		toolTip.Show()
		self.toolTip = toolTip

		self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))

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

	def __LoadQuestionDialog(self):
		self.dlgQuestion = ui.ScriptWindow()

		try:
			pyScrLoader = ui.PythonScriptLoader()
			pyScrLoader.LoadScriptFile(self.dlgQuestion, "uiscript/questiondialog2.py")
		except:
			import exception
			exception.Abort("RefineDialog.__LoadQuestionDialog.LoadScript")

		try:
			GetObject=self.dlgQuestion.GetChild
			GetObject("message1").SetText(localeInfo.REFINE_DESTROY_WARNING)
			GetObject("message2").SetText(localeInfo.REFINE_WARNING2)
			GetObject("accept").SetEvent(ui.__mem_func__(self.Accept))
			GetObject("cancel").SetEvent(ui.__mem_func__(self.dlgQuestion.Hide))
		except:
			import exception
			exception.Abort("SelectCharacterWindow.__LoadQuestionDialog.BindObject")

	def Destroy(self):
		self.ClearDictionary()
		self.board = 0
		self.successPercentage = 0
		self.titleBar = 0
		self.toolTip = 0
		self.dlgQuestion = 0

	def __InitializeOpen(self):
			self.children = []
			self.vnum = 0
			self.targetItemPos = 0
			self.dialogHeight = 0
			self.cost = 0
			self.percentage = 0
			self.type = 0
			self.xRefineStart = 0
			self.yRefineStart = 0

	def GetRefineSuccessPercentage(self, scrollSlotIndex, itemSlotIndex):
		if -1 != scrollSlotIndex:
			if player.IsRefineGradeScroll(scrollSlotIndex):
				curGrade = player.GetItemGrade(itemSlotIndex)
				itemIndex = player.GetItemIndex(itemSlotIndex)

				item.SelectItem(itemIndex)
				itemType = item.GetItemType()
				itemSubType = item.GetItemSubType()

				if item.ITEM_TYPE_METIN == itemType:

					if curGrade >= len(self.upgradeStoneSuccessPercentage):
						return 0
					return self.upgradeStoneSuccessPercentage[curGrade]

				elif item.ITEM_TYPE_ARMOR == itemType:

					if item.ARMOR_BODY == itemSubType:
						if curGrade >= len(self.upgradeArmorSuccessPercentage):
							return 0
						return self.upgradeArmorSuccessPercentage[curGrade]
					else:
						if curGrade >= len(self.upgradeAccessorySuccessPercentage):
							return 0
						return self.upgradeAccessorySuccessPercentage[curGrade]

				else:

					if curGrade >= len(self.upgradeSuccessPercentage):
						return 0
					return self.upgradeSuccessPercentage[curGrade]

		for i in xrange(player.METIN_SOCKET_MAX_NUM+1):
			if 0 == player.GetItemMetinSocket(itemSlotIndex, i):
				break

		return self.makeSocketSuccessPercentage[i]

	def Open(self, scrollItemPos, targetItemPos):
		self.scrollItemPos = scrollItemPos
		self.targetItemPos = targetItemPos

		percentage = self.GetRefineSuccessPercentage(scrollItemPos, targetItemPos)

		if 0 == percentage:
			return

		self.successPercentage.SetText(localeInfo.REFINE_SUCCESS_PROBALITY % (percentage))

		itemIndex = player.GetItemIndex(targetItemPos)
		self.toolTip.ClearToolTip()
		metinSlot = []

		for i in xrange(player.METIN_SOCKET_MAX_NUM):
			metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
		self.toolTip.AddItemData(itemIndex, metinSlot)

		self.UpdateDialog()
		self.SetTop()
		self.Show()

	def UpdateDialog(self):
		newWidth = self.toolTip.GetWidth() + 30
		newHeight = self.toolTip.GetHeight() + 98
		self.board.SetSize(newWidth, newHeight)
		self.titleBar.SetWidth(newWidth-15)
		self.SetSize(newWidth, newHeight)

		(x, y) = self.GetLocalPosition()
		self.SetPosition(x, y)

	def OpenQuestionDialog(self):
		percentage = self.GetRefineSuccessPercentage(-1, self.targetItemPos)
		if 100 == percentage:
			self.Accept()
			return

		self.dlgQuestion.SetTop()
		self.dlgQuestion.Show()

	def Accept(self):
		net.SendRefinePacket(self.targetItemPos, self.type)

	def AutoRefine(self, checkType, autoFlag):
		constInfo.IS_AUTO_REFINE = autoFlag

	def CheckRefine(self, isFail):
		if constInfo.IS_AUTO_REFINE == True:
			if constInfo.AUTO_REFINE_TYPE == 1:
				if constInfo.AUTO_REFINE_DATA["ITEM"][0] != -1 and constInfo.AUTO_REFINE_DATA["ITEM"][1] != -1:
					scrollIndex = player.GetItemIndex(constInfo.AUTO_REFINE_DATA["ITEM"][0])
					itemIndex = player.GetItemIndex(constInfo.AUTO_REFINE_DATA["ITEM"][1])

					if scrollIndex == 0 or (itemIndex % 10 == 8 and not isFail):
						self.Close()
					else:
						net.SendItemUseToItemPacket(constInfo.AUTO_REFINE_DATA["ITEM"][0], constInfo.AUTO_REFINE_DATA["ITEM"][1])
			elif constInfo.AUTO_REFINE_TYPE == 2:
				npcData = constInfo.AUTO_REFINE_DATA["NPC"]
				if npcData[0] != 0 and npcData[1] != -1 and npcData[2] != -1 and npcData[3] != 0:
					itemIndex = player.GetItemIndex(npcData[1], npcData[2])
					if (itemIndex % 10 == 8 and not isFail) or isFail:
						self.Close()
					else:
						net.SendGiveItemPacket(npcData[0], npcData[1], npcData[2], npcData[3])
			else:
				self.Close()
		else:
			self.Close()

	def Close(self):
		self.dlgQuestion.Hide()
		self.Hide()

	def OnPressEscapeKey(self):
		self.Close()
		return True

class RefineDialogNew(ui.ScriptWindow):

	def __init__(self):
		ui.ScriptWindow.__init__(self)
		self.__Initialize()
		self.isLoaded = False

	def __Initialize(self):
		self.dlgQuestion = None
		self.children = []
		self.vnum = 0
		self.targetItemPos = 0
		self.dialogHeight = 0
		self.cost = 0
		self.percentage = 0
		self.type = 0

	def __LoadScript(self):
		try:
			pyScrLoader = ui.PythonScriptLoader()
			pyScrLoader.LoadScriptFile(self, "uiscript/refinedialog.py")

		except:
			import exception
			exception.Abort("RefineDialog.__LoadScript.LoadObject")

		try:
			self.board = self.GetChild("Board")
			self.titleBar = self.GetChild("TitleBar")
			self.probText = self.GetChild("SuccessPercentage")
			self.costText = self.GetChild("Cost")
			self.successPercentage = self.GetChild("SuccessPercentage")
			self.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
			self.GetChild("CancelButton").SetEvent(self.CancelRefine)
		except:
			import exception
			exception.Abort("RefineDialog.__LoadScript.BindObject")

		if constInfo.SUCCESS_PERCENTAGE_INFO:
			self.successPercentage.Show()
		else:
			self.successPercentage.Hide()

		toolTip = uiToolTip.ItemToolTip()
		toolTip.SetParent(self)
		toolTip.SetFollow(False)
		toolTip.SetPosition(15, 38)
		toolTip.Show()
		self.toolTip = toolTip

		self.slotList = []
		for i in xrange(3):
			slot = self.__MakeSlot()
			slot.SetParent(toolTip)
			slot.SetWindowVerticalAlignCenter()
			self.slotList.append(slot)

		itemImage = self.__MakeItemImage()
		itemImage.SetParent(toolTip)
		itemImage.SetWindowVerticalAlignCenter()
		itemImage.SetPosition(-35, 0)
		self.itemImage = itemImage

		self.titleBar.SetCloseEvent(ui.__mem_func__(self.CancelRefine))

		self.checkBox = ui.CheckBox()
		self.checkBox.SetParent(self)
		self.checkBox.SetPosition(0, 85)
		self.checkBox.SetWindowHorizontalAlignCenter()
		self.checkBox.SetWindowVerticalAlignBottom()
		self.checkBox.SetEvent(ui.__mem_func__(self.AutoRefine), "ON_CHECK", True)
		self.checkBox.SetEvent(ui.__mem_func__(self.AutoRefine), "ON_UNCKECK", False)
		self.checkBox.SetCheckStatus(constInfo.IS_AUTO_REFINE)
		self.checkBox.SetTextInfo(localeInfo.REFINE_AUTO_RETURN)
		self.checkBox.Show()
		self.isLoaded = True

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

	def __MakeSlot(self):
		slot = ui.ImageBox()
		slot.LoadImage("D:/ymir work/ui/public/slot_base.sub")
		slot.Show()
		self.children.append(slot)
		return slot

	def __MakeItemImage(self):
		itemImage = ui.ImageBox()
		itemImage.Show()
		self.children.append(itemImage)
		return itemImage

	def __MakeThinBoard(self):
		thinBoard = ui.ThinBoard()
		thinBoard.SetParent(self)
		thinBoard.Show()
		self.children.append(thinBoard)
		return thinBoard

	def Destroy(self):
		self.ClearDictionary()
		self.dlgQuestion = None
		self.board = 0
		self.probText = 0
		self.costText = 0
		self.titleBar = 0
		self.toolTip = 0
		self.successPercentage = None
		self.slotList = []
		self.children = []

	def __InitializeOpen(self):
		self.children = []
		self.vnum = 0
		self.targetItemPos = 0
		self.dialogHeight = 0
		self.cost = 0
		self.percentage = 0
		self.type = 0
		self.xRefineStart = 0
		self.yRefineStart = 0

	def Open(self, targetItemPos, nextGradeItemVnum, cost, prob, type):
		if False == self.isLoaded:
			self.__LoadScript()

		self.__InitializeOpen()

		self.targetItemPos = targetItemPos
		self.vnum = nextGradeItemVnum
		self.cost = cost
		self.percentage = prob
		self.type = type

		if self.percentage >= 100:
			self.probText.SetText(localeInfo.REFINE_SUCCESS_PROBALITY % (100))
		else:
			self.probText.SetText(localeInfo.REFINE_SUCCESS_PROBALITY % (self.percentage))

		self.costText.SetText(localeInfo.REFINE_COST % (self.cost))

		self.toolTip.ClearToolTip()
		metinSlot = []

		for i in xrange(player.METIN_SOCKET_MAX_NUM):
			metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))

		attrSlot = []

		for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
			attrSlot.append(player.GetItemAttribute(targetItemPos, i))
		self.toolTip.AddRefineItemData(nextGradeItemVnum, metinSlot, attrSlot)

		item.SelectItem(nextGradeItemVnum)
		self.itemImage.LoadImage(item.GetIconImageFileName())
		xSlotCount, ySlotCount = item.GetItemSize()

		for slot in self.slotList:
			slot.Hide()

		for i in xrange(min(3, ySlotCount)):
			self.slotList[i].SetPosition(-35, i*32 - (ySlotCount-1)*16)
			self.slotList[i].Show()

		self.dialogHeight = self.toolTip.GetHeight() + 46
		self.UpdateDialog()

		self.SetTop()
		self.Show()

	def Close(self):
		self.dlgQuestion = None
		self.Hide()

	def AppendMaterial(self, vnum, count):
		slot = self.__MakeSlot()
		slot.SetParent(self)
		slot.SetPosition(15, self.dialogHeight)

		itemImage = self.__MakeItemImage()
		itemImage.SetParent(slot)
		item.SelectItem(vnum)
		itemImage.LoadImage(item.GetIconImageFileName())

		thinBoard = self.__MakeThinBoard()
		thinBoard.SetPosition(50, self.dialogHeight)
		thinBoard.SetSize(191, 20)

		textLine = ui.TextLine()
		textLine.SetParent(thinBoard)
		textLine.SetFontName(localeInfo.UI_DEF_FONT)
		textLine.SetPackedFontColor(0xffdddddd)
		textLine.SetText("%s x %02d" % (item.GetItemName(), count))
		textLine.SetOutline()
		textLine.SetFeather(False)
		textLine.SetWindowVerticalAlignCenter()
		textLine.SetVerticalAlignCenter()

		if localeInfo.IsARABIC():
			(x,y) = textLine.GetTextSize()
			textLine.SetPosition(x, 0)
		else:
			textLine.SetPosition(15, 0)

		textLine.Show()
		self.children.append(textLine)

		self.dialogHeight += 34
		self.UpdateDialog()

	def UpdateDialog(self):
		newWidth = self.toolTip.GetWidth() + 60
		newHeight = self.dialogHeight + 99

		newHeight -= 8

		if localeInfo.IsARABIC():
			self.board.SetPosition(newWidth, 0)

			(x, y) = self.titleBar.GetLocalPosition()
			self.titleBar.SetPosition(newWidth - 15, y)

		self.board.SetSize(newWidth, newHeight)
		self.toolTip.SetPosition(15 + 35, 38)
		self.titleBar.SetWidth(newWidth-15)
		self.SetSize(newWidth, newHeight)

		(x, y) = self.GetLocalPosition()
		self.SetPosition(x, y)

	def OpenQuestionDialog(self):
		if 100 == self.percentage:
			self.Accept()
			return

		if 5 == self.type:
			self.Accept()
			return

		dlgQuestion = uiCommon.QuestionDialog2()
		dlgQuestion.SetText2(localeInfo.REFINE_WARNING2)
		dlgQuestion.SetAcceptEvent(ui.__mem_func__(self.Accept))
		dlgQuestion.SetCancelEvent(ui.__mem_func__(dlgQuestion.Close))

		if 3 == self.type:
			dlgQuestion.SetText1(localeInfo.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_1)
			dlgQuestion.SetText2(localeInfo.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_2)
		elif 2 == self.type:
			dlgQuestion.SetText1(localeInfo.REFINE_DOWN_GRADE_WARNING)
		else:
			dlgQuestion.SetText1(localeInfo.REFINE_DESTROY_WARNING)

		dlgQuestion.Open()
		self.dlgQuestion = dlgQuestion

	def Accept(self):
		net.SendRefinePacket(self.targetItemPos, self.type)

	def AutoRefine(self, checkType, autoFlag):
		constInfo.IS_AUTO_REFINE = autoFlag

	def CheckRefine(self, isFail):
		if constInfo.IS_AUTO_REFINE == True:
			if constInfo.AUTO_REFINE_TYPE == 1:
				if constInfo.AUTO_REFINE_DATA["ITEM"][0] != -1 and constInfo.AUTO_REFINE_DATA["ITEM"][1] != -1:
					scrollIndex = player.GetItemIndex(constInfo.AUTO_REFINE_DATA["ITEM"][0])
					itemIndex = player.GetItemIndex(constInfo.AUTO_REFINE_DATA["ITEM"][1])

					if scrollIndex == 0 or (itemIndex % 10 == 8 and not isFail):
						self.Close()
					else:
						net.SendItemUseToItemPacket(constInfo.AUTO_REFINE_DATA["ITEM"][0], constInfo.AUTO_REFINE_DATA["ITEM"][1])
			elif constInfo.AUTO_REFINE_TYPE == 2:
				npcData = constInfo.AUTO_REFINE_DATA["NPC"]
				if npcData[0] != 0 and npcData[1] != -1 and npcData[2] != -1 and npcData[3] != 0:
					itemIndex = player.GetItemIndex(npcData[1], npcData[2])
					if (itemIndex % 10 == 8 and not isFail) or isFail:
						self.Close()
					else:
						net.SendGiveItemPacket(npcData[0], npcData[1], npcData[2], npcData[3])
			else:
				self.Close()
		else:
			self.Close()

	def CancelRefine(self):
		net.SendRefinePacket(255, 255)
		self.Close()

		constInfo.AUTO_REFINE_TYPE = 0
		constInfo.AUTO_REFINE_DATA = {"ITEM" : [-1, -1], "NPC" : [0, -1, -1, 0]}

	def OnPressEscapeKey(self):
		self.CancelRefine()
		return True

 

Edited by Pseudabo
Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

0130 14:56:30570 :: Traceback (most recent call last):

0130 14:56:30570 ::   File "game.py", line 1957, in BINARY_ServerCommand_Run

0130 14:56:30570 ::   File "stringCommander.py", line 63, in Run

0130 14:56:30570 ::   File "stringCommander.py", line 31, in __call__

0130 14:56:30570 ::   File "stringCommander.py", line 11, in __call__

0130 14:56:30570 ::   File "game.py", line 1998, in RefineFailedMessage

0130 14:56:30570 ::   File "interfaceModule.py", line 813, in CheckRefineDialog

0130 14:56:30570 ::   File "uiRefine.py", line 457, in CheckRefine

0130 14:56:30570 :: NameError
0130 14:56:30570 :: : 
0130 14:56:30570 :: global name 'chat' is not defined
0130 14:56:30570 :: 

0130 14:56:30570 :: Unknown Server Command RefineFailed | RefineFailed

 

help

Link to comment
Share on other sites

  • 11 months later...

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.