How to:
ui.py
unter def SetPos(self, pos)
PHP Code:
def SetScrollStep(self, step):
self.scrollStep = step
in der Klasse ScrollBar die Methode SetScrollEvent so ändern;
PHP Code:
def SetScrollEvent(self, event):
self.eventScroll = event
self.eventScrollUp = event
self.eventScrollDown = event
PHP Code:
def SetUpEvent(self, event):
self.eventScrollUp = event
def SetDownEvent(self, event):
self.eventScrollDown = event
im Destroy und im init unter self.eventScroll = lambda *arg: None jeweils
PHP Code:
self.eventScrollUp = lambda *arg: None
self.eventScrollDown = lambda *arg: None
dann SetPos(self, pos) mit der hier ersetzen;
PHP Code:
def SetPos(self, pos, event=TRUE):
pos = max(0.0, pos)
pos = min(1.0, pos)
newPos = float(self.pageSize) * pos
self.middleBar.SetPosition(self.MIDDLE_BAR_POS, int(newPos) + self.SCROLLBAR_BUTTON_HEIGHT + self.MIDDLE_BAR_UPPER_PLACE)
self.OnMove(event)
PHP Code:
def OnUp(self):
self.SetPos(self.curPos-self.scrollStep, FALSE)
self.eventScrollUp()
def OnDown(self):
self.SetPos(self.curPos+self.scrollStep, FALSE)
self.eventScrollDown()
und onMove mit der hier ersetzen;
PHP Code:
def OnMove(self, event=TRUE):
if self.lockFlag:
return
if 0 == self.pageSize:
return
(xLocal, yLocal) = self.middleBar.GetLocalPosition()
self.curPos = float(yLocal - self.SCROLLBAR_BUTTON_HEIGHT - self.MIDDLE_BAR_UPPER_PLACE) / float(self.pageSize)
if event == TRUE:
self.eventScroll()
unter def LoadLocaleFile:
PHP Code:
localeDict["CUBE_INFO_TITLE"] = "Recipe"
localeDict["CUBE_REQUIRE_MATERIAL"] = "Requirements"
localeDict["CUBE_REQUIRE_MATERIAL_OR"] = "oder"
constinfo.py
ganz oben
PHP Code:
# Craftingsystem by xGr33n & Apo
CRAFTING_NPC_ID = 0
CRAFTING_NPC_ID_OLD = 0
CRAFTING_RESULT = 0
CRAFTING_NEED = 0
unter # END_OF_START_GAME_ERROR_EXIT
PHP Code:
self.cubeInformation = {}
self.currentCubeNPC = 0
PHP Code:
# CUBE by xGr33n & Apo
def BINARY_Cube_Open(self):
self.interface.OpenCubeWindow()
self.BINARY_Cube_ResultList()
self.BINARY_Cube_MaterialInfo()
self.interface.wndCube.Refresh()
def BINARY_Cube_Close(self):
self.interface.CloseCubeWindow()
# Á¦ÀÛ¿¡ ÇÊ¿äÇÑ °ñµå, ¿¹»óµÇ´Â ¿Ï¼ºÇ°ÀÇ VNUM°ú °³¼ö Á¤º¸ update
def BINARY_Cube_UpdateInfo(self, gold, itemVnum, count):
self.interface.UpdateCubeInfo(gold, itemVnum, count)
def BINARY_Cube_Succeed(self, itemVnum, count):
print "Å¥ºê Á¦ÀÛ ¼º°ø"
self.interface.SucceedCubeWork(itemVnum, count)
pass
def BINARY_Cube_Failed(self):
print "Å¥ºê Á¦ÀÛ ½ÇÆÐ"
self.interface.FailedCubeWork()
pass
def BINARY_Cube_ResultList(self):
# ResultList Text Format : 72723,1/72725,1/72730.1/50001,5 ÀÌ·±½ÄÀ¸·Î "/" ¹®ÀÚ·Î ±¸ºÐµÈ ¸®½ºÆ®¸¦ ÁÜ
#print listText
listText = constInfo.CRAFTING_RESULT
self.cubeInformation[constInfo.CRAFTING_NPC_ID] = []
try:
for eachInfoText in listText.split("/"):
eachInfo = eachInfoText.split(",")
itemVnum = int(eachInfo[0])
itemCount = int(eachInfo[1])
self.cubeInformation[constInfo.CRAFTING_NPC_ID].append({"vnum": itemVnum, "count": itemCount})
self.interface.wndCube.AddCubeResultItem(itemVnum, itemCount)
resultCount = len(self.cubeInformation[constInfo.CRAFTING_NPC_ID])
requestCount = 7
modCount = resultCount % requestCount
splitCount = resultCount / requestCount
for i in xrange(splitCount):
#print("/cube r_info %d %d" % (i * requestCount, requestCount))
net.SendChatPacket("/cube r_info %d %d" % (i * requestCount, requestCount))
if 0 < modCount:
#print("/cube r_info %d %d" % (splitCount * requestCount, modCount))
net.SendChatPacket("/cube r_info %d %d" % (splitCount * requestCount, modCount))
except RuntimeError, msg:
dbg.TraceError(msg)
return 0
pass
def BINARY_Cube_MaterialInfo(self):
# Material Text Format : 125,1|126,2|127,2|123,5&555,5&555,4/120000
try:
#print listText
listText = constInfo.CRAFTING_NEED
startIndex = 0
if 3 > len(listText):
dbg.TraceError("Wrong Cube Material Infomation")
return 0
eachResultList = listText.split("@")
cubeInfo = self.cubeInformation[constInfo.CRAFTING_NPC_ID]
itemIndex = 0
for eachResultText in eachResultList:
cubeInfo[startIndex + itemIndex]["materialList"] = [[], [], [], [], []]
materialList = cubeInfo[startIndex + itemIndex]["materialList"]
gold = 0
splitResult = eachResultText.split("/")
if 1 < len(splitResult):
gold = int(splitResult[1])
#print "splitResult : ", splitResult
eachMaterialList = splitResult[0].split("&")
i = 0
for eachMaterialText in eachMaterialList:
complicatedList = eachMaterialText.split("|")
if 0 < len(complicatedList):
for complicatedText in complicatedList:
(itemVnum, itemCount) = complicatedText.split(",")
itemVnum = int(itemVnum)
itemCount = int(itemCount)
self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount)
materialList[i].append((itemVnum, itemCount))
else:
itemVnum, itemCount = eachMaterialText.split(",")
itemVnum = int(itemVnum)
itemCount = int(itemCount)
self.interface.wndCube.AddMaterialInfo(itemIndex + startIndex, i, itemVnum, itemCount)
materialList[i].append((itemVnum, itemCount))
i = i + 1
itemIndex = itemIndex + 1
#self.interface.wndCube.Refresh()
self.interface.wndCube.SetScrollStep(itemIndex)
except RuntimeError, msg:
dbg.TraceError(msg)
return 0
pass
# END_OF_CUBE
serverCommandList={
PHP Code:
# Craftingsystem by xGr33n & Apo
"cube_npc_id" : self.CraftingCube1,
"cs_result" : self.CraftingResult,
"cs_need" : self.CraftingNeed,
# Craftingsystem Ende
PHP Code:
# Craftingsystem von xGr33n & Apo
def CraftingCube1(self, npcVNUM):
constInfo.CRAFTING_NPC_ID = int(npcVNUM)
def CraftingResult(self, list):
constInfo.CRAFTING_RESULT = str(list)
def CraftingNeed(self, list):
constInfo.CRAFTING_NEED = str(list)
# Craftingsystem Ende
unter
def __del__(self):
PHP Code:
def SetCannotUseItemForceSetDisableColor(self, enable):
self.bCannotUseItemForceSetDisableColor = enable
def AppendTextLine(self, text, color = FONT_COLOR, centerAlign = TRUE):
if not self.CanEquip() and self.bCannotUseItemForceSetDisableColor:
color = self.DISABLE_COLOR
return ToolTip.AppendTextLine(self, text, color, centerAlign)
Bin mir nicht sicher obs alles ist, mir auch egal bin jetzt raus hier. uicube.py sowie die windows sind im Anhang
PS: Questliberweiterung ausm anhang ziehen und einbauen, cube in den Quests dann mit cube_open(npcvnum) öffnen
Beispiel: cube.cube_open(20022)
cube.txt zu cube.lua:
Das muss dann in die lua rein!
Wenns nicht geht sagt mir in Skype bescheid dann kann ich nochmal schauen!
PS: Ich weis nicht übersichtlich aber dieses Forum ist mir nun gleichgültig!
PHP Code:
--------------------------------info----------------------------------
--
-- Zeichenbeschreibung beim Result:
-- , = Mengenwechsel (item zu count)
-- id,count|id,count = alternativ item (eins wird benötigt)
-- & = nächstes item im rezept
-- @ = Rezeptwechsel
----------------------------------------------------------------------