- Mesaj
- 80
- Çözümler
- 6
- Beğeni
- 16
- Puan
- 414
- Ticaret Puanı
- 0
Merhabalar sysser şöyle
'module' object has no attribute 'ItemToolTip'
sysser bu
@Whistle
@Yeniceri
'module' object has no attribute 'ItemToolTip'
sysser bu
uinewshop.py:
import os
import app
import dbg
import item
import chat
import net
import localeinfo
import uiScriptLocale
import ime
import time
import ui
import uiCommon
import uiToolTip
import colorInfo
import player
import snd
import grp
import mouseModule
import shop
import wndMgr
import uiPrivateShopBuilder
import constInfo
import uiScriptLocale
import uiMarketSystem
from uiUtils import Edit2 as Edit2
c = colorInfo.CHAT_RGB_NOTICE
titleColor = ui.GenerateColor(c[0],c[1],c[2])
NEGATIVE_COLOR = grp.GenerateColor(0.9, 0.4745, 0.4627, 1.0)
POSITIVE_COLOR = grp.GenerateColor(0.6911, 0.8754, 0.7068, 1.0)
##Should be disabled becouse this is only for my client UI ##
POSITION_FIX=False
#############################################################
import uiUtils
class ShopDialogCreate(ui.ScriptWindow):
UI={}
def __init__(self):
ui.ScriptWindow.__init__(self)
self.tooltipItem = uiToolTip.ItemToolTip()
self.tooltipItem.Hide()
self.privateShopBuilder = uiPrivateShopBuilder.PrivateShopBuilder()
self.privateShopBuilder.Hide()
self.privateShopBuilder.SetItemToolTip(self.tooltipItem)
self.pop=None
self.iskasmir=False
self.__LoadQuestionDialog()
def __del__(self):
ui.ScriptWindow.__del__(self)
def __LoadQuestionDialog(self):
self.UI["board"] = ui.BoardWithTitleBar()
self.UI["board"].SetCenterPosition()
self.UI["board"].AddFlag("movable")
if POSITION_FIX:
self.UI["board"].SetSize(240, 170)
else:
self.UI["board"].SetSize(240, 180)
self.UI["board"].SetCenterPosition()
self.UI["board"].SetTop()
self.UI["board"].SetTitleName(uiScriptLocale.SHOP_WINDOW_CREATE)
self.UI["board"].Hide()
self.UI["nameText"] = ui.MakeText(self.UI["board"], uiScriptLocale.SHOP_NAME, 95, 30, None)
self.UI["nameEdit"]=Edit2(self.UI["board"],"",10,45,150,25,FALSE,6,30)
self.UI["selectText"] = ui.TextLine()
self.UI["selectText"].SetParent(self.UI["board"])
self.UI["selectText"].SetPosition(15, 70)
self.UI["selectText"].SetFeather()
self.UI["selectText"].SetDefaultFontName()
self.UI["selectText"].SetOutline()
self.UI["selectText"].SetText(uiScriptLocale.SHOP_TIMEOUT)
self.UI["selectText"].Show()
self.UI["create"] = ui.MakeButton(self.UI["board"], 30, 110 , "", "d:/ymir work/ui/public/", "xlarge_button_01.sub", "xlarge_button_02.sub", "xlarge_button_03.sub")
self.UI["create"].SetText(uiScriptLocale.SHOP_CREATE)
self.UI["create"].SetEvent(ui.__mem_func__(self.CreateShop))
self.UI["create"].Show()
self.UI["cancel"] = ui.MakeButton(self.UI["board"], 30, 140 , "", "d:/ymir work/ui/public/", "xlarge_button_01.sub", "xlarge_button_02.sub", "xlarge_button_03.sub")
self.UI["cancel"].SetText(uiScriptLocale.CANCEL)
self.UI["cancel"].SetEvent(ui.__mem_func__(self.Close))
self.UI["cancel"].Show()
self.UI["price"] = ui.MakeText(self.UI["board"], "", 15, 90, None)
self.UI["price"].SetFeather()
self.UI["price"].SetDefaultFontName()
self.UI["price"].SetOutline()
self.UI["price"].Show()
self.CreateList()
def Destroy(self):
self.UI={}
self.__OnClosePopupDialog()
self.UI["board"].Hide()
return TRUE
#self.ClearDictionary()
def CreateList(self):
if "select" in self.UI.keys():
self.UI["select"].Hide()
self.UI["select"].Destroy()
self.UI["select"] = None
self.UI["select"] = DropDown(self.UI["board"],"---")
self.UI["select"].SetPosition(110,70)
self.UI["select"].SetSize(120,20)
self.UI["select"].SetTop()
self.UI["select"].OnChange=self.Load
self.UI["select"].Show()
def OnPressEscapeKey(self):
self.Close()
return TRUE
def Close(self):
self.__OnClosePopupDialog()
self.UnLoad()
self.UI["board"].Hide()
self.Hide()
def CreateShop(self):
if len(self.UI["nameEdit"].GetText()) <=0:
self.PopupMessage(uiScriptLocale.SHOP_NAME_EMPTY)
return
id=int(self.UI["select"].DropList.GetSelectedItem().value)
if int(id) <=0:
self.PopupMessage(uiScriptLocale.SHOP_TIMEOUT_EMPTY)
return
item = constInfo.shop_cost[id-1]
if int(item["id"]) <=0:
self.PopupMessage(uiScriptLocale.SHOP_TIMEOUT_EMPTY)
return
self.__OnClosePopupDialog()
if constInfo.IS_KASMIR == 1:
self.OpenPrivateShopInputNameDialog()
else:
self.privateShopBuilder.Open(self.UI["nameEdit"].GetText(),int(item["id"]),30000,0)
self.Close()
def OpenPrivateShopInputNameDialog(self):
inputDialog = uiMarketSystem.KasmirMarketiDialog()
id=int(self.UI["select"].DropList.GetSelectedItem().value)
item = constInfo.shop_cost[id-1]
inputDialog.Open(self.UI["nameEdit"].GetText(), int(item["id"]))
self.inputDialog = inputDialog
def OpenPrivateShopBuilder(self):
self.privateShopBuilder.Open(uiMarketSystem.gettext,uiMarketSystem.id, uiMarketSystem.DarkmmoconstInfoNpc, uiMarketSystem.DarkmmoconstInfoBaslik)
self.ClosePrivateShopInputNameDialog()
return TRUE
def ClosePrivateShopBuilder(self):
self.privateShopBuilder.Close()
def ClosePrivateShopInputNameDialog(self):
self.inputDialog = None
return TRUE
def __OnClosePopupDialog(self):
if self.pop != None:
if self.pop.IsShow():
self.pop.Hide()
self.pop = None
def Hide(self):
if "board" in self.UI.keys():
self.UI["board"].Hide()
self.UI["price"].Hide()
self.UI["select"].dropped = 0
self.UI["select"].ClearItems()
self.UI["nameEdit"].SetText("")
self.Days=0
ui.ScriptWindow.Hide(self)
def Show(self, iskasmir):
self.UI["board"].SetTop()
self.UI["board"].Show()
self.UnLoad()
self.CreateList()
for i in xrange(len(constInfo.shop_cost)):
item=constInfo.shop_cost[i]
name=uiScriptLocale.SHOP_CREATE_NORMAL
if item["time"]>0:
name=str(item["time"])+" "
if item["time"] == 1:
if item["time_val"]==3600:
name+=uiScriptLocale.SHOP_CREATE_HOUR
else:
name+=uiScriptLocale.SHOP_CREATE_DAY
else:
if item["time_val"]==86400:
name+=uiScriptLocale.SHOP_CREATE_DAYS
else:
name+=uiScriptLocale.SHOP_CREATE_HOURS
self.UI["select"].AppendItem(name,i+1)
self.iskasmir = iskasmir
ui.ScriptWindow.Show(self)
self.UI["board"].Show()
def Load(self):
id=self.UI["select"].DropList.GetSelectedItem().value
if int(id) == 0:
print "unload"
self.UnLoad()
return
item = constInfo.shop_cost[id-1]
if item["price"]>0:
self.UI["price"].SetText(uiScriptLocale.SHOP_CREATE_PRICE+localeinfo.NumberToMoneyString(item["price"]))
self.UI["price"].Show()
else:
self.UI["price"].Show()
def UnLoad(self):
self.UI["price"].Hide()
self.UI["select"].Clear()
def Clear(self):
self.UI["select"].Clear()
def PopupMessage(self,text):
pop = uiCommon.PopupDialog()
pop.SetText(text)
pop.SetAcceptEvent(self.__OnClosePopupDialog)
pop.Open()
self.pop = pop
self.pop.SetTop()
class DropDown(ui.Window):
dropped = 0
dropstat = 0
last = 0
lastS = 0
maxh = 95
tt = ""
OnChange = None
class Item(ui.ListBoxEx.Item):
def __init__(self,parent, text,value=0):
ui.ListBoxEx.Item.__init__(self)
self.textBox=ui.TextLine()
self.textBox.SetParent(self)
self.textBox.SetText(text)
# self.textBox.SetLimitWidth(parent.GetWidth()-132)
self.textBox.Show()
self.value = value
def GetValue(self):
return self.value
def __del__(self):
ui.ListBoxEx.Item.__del__(self)
def __init__(self,parent,tt = "",down=1):
ui.Window.__init__(self,"TOP_MOST")
self.tt=tt
self.down = down
self.SetParentProxy(parent)
self.bg = ui.Bar("TOP_MOST")
self.bg.SetParent(self)
self.bg.SetPosition(0,0)
self.bg.SetColor(0xc0000000)
self.bg.OnMouseOverIn = self.bgMouseIn
self.bg.OnMouseOverOut = self.bgMouseOut
self.bg.OnMouseLeftButtonDown = self.ExpandMe
self.bg.Show()
self.act = ui.TextLine()
self.act.SetParent(self.bg)
self.act.SetPosition(4,2)
self.act.SetText(self.tt)
self.act.Show()
self.GetText = self.act.GetText
self.Drop = ui.Bar("TOP_MOST")
self.Drop.SetParent(self.GetParentProxy())
self.Drop.SetPosition(0,21)
# self.Drop.SetSize(150,95)
self.Drop.SetSize(150,0)
# self.Drop.SetColor(0xc00a0a0a)
self.Drop.SetColor(0xff0a0a0a)
self.ScrollBar = ui.ThinScrollBar()
self.ScrollBar.SetParent(self.Drop)
self.ScrollBar.SetPosition(132,0)
# self.ScrollBar.SetScrollBarSize(95)
self.ScrollBar.SetScrollBarSize(0)
# self.ScrollBar.Show()
self.DropList = ui.ListBoxEx()
self.DropList.SetParent(self.Drop)
self.DropList.itemHeight = 12
self.DropList.itemStep = 13
self.DropList.SetPosition(0,0)
# self.DropList.SetSize(132,self.maxh)
self.DropList.SetSize(132,13)
self.DropList.SetScrollBar(self.ScrollBar)
self.DropList.SetSelectEvent(self.SetTitle)
self.DropList.SetViewItemCount(0)
self.DropList.Show()
if self.tt != "":
self.AppendItemAndSelect(self.tt)
self.selected = self.DropList.GetSelectedItem()
self.SetSize(120,20)
def __del__(self):
ui.Window.__del__(self)
c = 1
def AppendItem(self,text,value=0):
self.c+=1
self.DropList.AppendItem(self.Item(self,text,value))
self.maxh = min(95,13*self.c)
if self.c > 7:
self.ScrollBar.Show()
def AppendItemAndSelect(self,text,value=0):
self.DropList.AppendItem(self.Item(self,text,value))
self.DropList.SelectIndex(len(self.DropList.itemList)-1)
def ClearItems(self):
self.DropList.RemoveAllItems()
self.AppendItemAndSelect(self.tt)
self.act.SetText(self.tt)
def Clear(self):
self.DropList.SelectIndex(0)
def SelectByAffectId(self,id):
for x in self.DropList.itemList:
if x.value == id:
self.DropList.SelectItem(x)
break
def SetTitle(self,item):
self.act.SetText(str(item.textBox.GetText()))
self.last = self.DropList.basePos
self.lastS = self.ScrollBar.GetPos()
self.dropped = 0
self.selected = item
if self.OnChange:
self.OnChange()
# self.Drop.Hide()
def SetPosition(self,w,h):
ui.Window.SetPosition(self,w,h)
if self.down == 1:
self.Drop.SetPosition(w,h+21)
else:
self.Drop.SetPosition(w,h-self.Drop.GetHeight())
def SetSize(self,w,h):
ui.Window.SetSize(self,w,h)
self.bg.SetSize(w,h)
self.Drop.SetSize(w,0)
self.DropList.SetSize(w-18,self.maxh)
for x in self.DropList.itemList:
x.SetSize(w-18,12)
self.ScrollBar.SetPosition(w-18,0)
def ExpandMe(self):
if self.dropped == 1:
# self.Drop.Hide()
self.dropped = 0
else:
# self.Drop.Show()
self.dropped = 1
def OnUpdate(self):
iter = 6
if self.Drop.GetHeight() < 50:
self.ScrollBar.Hide()
else:
self.ScrollBar.Show()
if self.dropped == 0 and self.dropstat == 1:
if self.Drop.GetHeight() <=0:
self.dropstat = 0
self.Drop.SetSize(self.Drop.GetWidth(),0)
self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight())
self.Drop.Hide()
else:
if self.Drop.GetHeight()-iter < 0:
self.Drop.SetSize(self.Drop.GetWidth(),0)
else:
self.Drop.SetSize(self.Drop.GetWidth(),self.Drop.GetHeight()-iter)
(w,h) = self.GetLocalPosition()
self.SetPosition(w,h)
self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight())
self.DropList.SetViewItemCount(int(self.Drop.GetHeight()/13))
self.DropList.SetBasePos(self.last+1)
self.DropList.SetBasePos(self.last)
elif self.dropped == 1 and self.dropstat == 0:
self.Drop.Show()
self.SetTop()
if self.Drop.GetHeight() >=self.maxh:
self.Drop.SetSize(self.Drop.GetWidth(),self.maxh)
self.ScrollBar.SetScrollBarSize(self.maxh)
self.dropstat = 1
self.DropList.SetViewItemCount(7)
self.ScrollBar.SetPos(self.lastS)
else:
self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight()+iter)
self.Drop.SetSize(self.Drop.GetWidth(),self.Drop.GetHeight()+iter)
(w,h) = self.GetLocalPosition()
self.SetPosition(w,h)
self.DropList.SetViewItemCount(int(self.Drop.GetHeight()/13))
self.DropList.SetBasePos(self.last+1)
self.DropList.SetBasePos(self.last)
## BG Hover
def bgMouseIn(self):
self.bg.SetColor(0xc00a0a0a)
def bgMouseOut(self):
self.bg.SetColor(0xc0000000)
class ShopEditWindow(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.items={}
self.Edit={}
self.pop=None
self.id=0
self.lastUpdate=0
self.priceInputBoard=None
self.__Load()
self.tooltipItem = uiToolTip.ItemToolTip()
self.tooltipItem.Hide()
def __del__(self):
ui.ScriptWindow.__del__(self)
self.Close()
def __Load_LoadScript(self, fileName):
try:
pyScriptLoader = ui.PythonScriptLoader()
pyScriptLoader.LoadScriptFile(self, "UIScript/shopdialog22.py")
except:
import exception
exception.Abort("ShopEditWindow.__Load_LoadScript")
def __Load_BindObject(self):
try:
self.titleBar = self.GetChild("TitleBar")
self.titleName = self.GetChild("TitleName")
self.ItemSlot = self.GetChild("ItemSlot")
try:
for key in ["BuyButton","SellButton","MiddleTab1","MiddleTab2","MiddleTab2","SmallTab1","SmallTab2","SmallTab3", "Search"]:
self.GetChild(key).Hide()
except Exception:
pass
self.CloseButton = self.GetChild("CloseButton")
except:
import exception
exception.Abort("StoneDialog.__Load_BindObject")
self.CloseButton.SetText(uiScriptLocale.SHOP_EDIT_SHOP_CANCEL)
self.CloseButton.SetEvent(ui.__mem_func__(self.Close))
self.titleName.SetText(uiScriptLocale.SHOP_EDIT_SHOP_WINDOW)
self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
self.ItemSlot.SAFE_SetButtonEvent("LEFT", "EMPTY", self.OnSelectEmptySlot)
"""self.ItemSlot.SAFE_SetButtonEvent("LEFT", "EXIST", self.OnSelectItemSlot)
self.ItemSlot.SAFE_SetButtonEvent("RIGHT", "EXIST", self.UnselectItemSlot)"""
self.ItemSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
self.ItemSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
self.Edit["Board"] = ui.BoardWithTitleBar()
self.Edit["Board"].SetSize(184, 360+25)
self.Edit["Board"].AddFlag("movable")
self.Edit["Board"].SetPosition(0,0)
self.Edit["Board"].SetTitleName(uiScriptLocale.SHOP_SELECT)
self.Edit["Board"].SetCloseEvent(self.CloseEdit)
self.Edit["Board"].Show()
self.Edit["ChangePrice"] = ui.Button()
self.Edit["ChangePrice"].SetParent(self.Edit["Board"])
self.Edit["ChangePrice"].SetPosition(30,35)
self.Edit["ChangePrice"].SetUpVisual('d:/ymir work/ui/public/Large_button_01.sub')
self.Edit["ChangePrice"].SetOverVisual('d:/ymir work/ui/public/Large_button_02.sub')
self.Edit["ChangePrice"].SetDownVisual('d:/ymir work/ui/public/Large_button_03.sub')
self.Edit["ChangePrice"].SetText(uiScriptLocale.SHOP_CHANGE_PRICE)
self.Edit["ChangePrice"].Show()
"""self.Edit["Remove"] = ui.Button()
self.Edit["Remove"].SetParent(self.Edit["Board"])
self.Edit["Remove"].SetPosition(30,65)
self.Edit["Remove"].SetUpVisual('d:/ymir work/ui/public/Large_button_01.sub')
self.Edit["Remove"].SetOverVisual('d:/ymir work/ui/public/Large_button_02.sub')
self.Edit["Remove"].SetDownVisual('d:/ymir work/ui/public/Large_button_03.sub')
self.Edit["Remove"].SetText(uiScriptLocale.SHOP_REMOVE_ITEM)
self.Edit["Remove"].Show()"""
def __Load(self):
self.__Load_LoadScript("UIScript/ShopDialog.py")
self.__Load_BindObject()
def CloseEdit(self):
self.Edit["Board"].Hide()
def Show(self,id):
if self.IsShow():
self.Close()
else:
ui.ScriptWindow.Show(self)
net.SendChatPacket("/refresh_shop_items "+id)
self.id=id
self.Refresh()
def OnPressEscapeKey(self):
self.Close()
return TRUE
def __OnClosePopupDialog(self):
if self.pop != None:
if self.pop.IsShow():
self.pop.Hide()
self.pop = None
def __GetRealIndex(self, i):
return shop.SHOP_SLOT_COUNT + i
def Close(self):
if None != self.tooltipItem:
self.tooltipItem.HideToolTip()
self.CancelInputPrice()
self.__OnClosePopupDialog()
self.Edit["Board"].Hide()
self.Hide()
return TRUE
def Clear(self):
self.items={}
self.CancelInputPrice()
self.__OnClosePopupDialog()
self.Edit["Board"].Hide()
self.Refresh()
def GetItemCount(self,slot):
try:
return int(self.items[int(slot)]["count"])
except KeyError:
return 0
def GetItemID(self,slot):
try:
return int(self.items[int(slot)]["vnum"])
except KeyError:
return 0
def AddItem(self,slot,data):
self.items[int(slot)]=data
self.Refresh()
def Refresh(self):
self.CancelInputPrice()
self.__OnClosePopupDialog()
self.Edit["Board"].Hide()
setItemID=self.ItemSlot.SetItemSlot
for i in xrange(shop.SHOP_SLOT_COUNT):
vnum=self.GetItemID(i)
itemCount = self.GetItemCount(i)
setItemID(i, vnum, itemCount)
wndMgr.RefreshSlot(self.ItemSlot.GetWindowHandle())
self.ItemSlot.RefreshSlot()
def __ShowToolTip(self, slot):
if self.tooltipItem:
self.tooltipItem.ClearToolTip()
if int(slot) in self.items.keys():
it=self.items[int(slot)]
if it.get("sourceSlot",-1)!=-1:
self.tooltipItem.SetEditPrivateShopItem(int(it["sourceWindow"]),int(it["sourceSlot"]),it["price"])
else:
self.tooltipItem.AppendSellingPrice(it["price"])
self.tooltipItem.AddItemData(int(it["vnum"]),it["sockets"],it["attrs"],0,0,0,int(it["evolution"]),player.INVENTORY, 0, int(it["transmutation"]))
else:
self.tooltipItem.HideToolTip()
def OverInItem(self, slotIndex):
#slotIndex = self.__GetRealIndex(slotIndex)
self.ItemSlot.SetUsableItem(FALSE)
self.__ShowToolTip(slotIndex)
def OverOutItem(self):
self.ItemSlot.SetUsableItem(FALSE)
if self.tooltipItem:
self.tooltipItem.HideToolTip()
def OnSelectEmptySlot(self, selectedSlotPos):
isAttached = mouseModule.mouseController.isAttached()
if isAttached:
attachedSlotType = mouseModule.mouseController.GetAttachedType()
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
mouseModule.mouseController.DeattachObject()
if player.SLOT_TYPE_INVENTORY != attachedSlotType and player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedSlotType:
return
attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
count = player.GetItemCount(attachedInvenType, attachedSlotPos)
itemVNum = player.GetItemIndex(attachedInvenType, attachedSlotPos)
item.SelectItem(itemVNum)
if item.IsAntiFlag(item.ANTIFLAG_GIVE) or item.IsAntiFlag(item.ANTIFLAG_MYSHOP):
chat.AppendChat(chat.CHAT_TYPE_INFO, localeinfo.PRIVATE_SHOP_CANNOT_SELL_ITEM)
return
priceInputBoard = uiCommon.MoneyInputDialog()
priceInputBoard.SetTitle(localeinfo.PRIVATE_SHOP_INPUT_PRICE_DIALOG_TITLE)
priceInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputPrice))
priceInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputPrice))
priceInputBoard.SetMaxLength(16)
priceInputBoard.Open()
#self.ItemSlot.ActivateSlot(int(selectedSlotPos))
self.priceInputBoard = priceInputBoard
self.priceInputBoard.itemVNum = itemVNum
self.priceInputBoard.sourceWindowType = attachedInvenType
self.priceInputBoard.sourceSlotPos = attachedSlotPos
self.priceInputBoard.targetSlotPos = selectedSlotPos
"""def UnselectItemSlot(self,selectedSlotPos):
self.Edit["Board"].Hide()
#self.ItemSlot.DeactivateSlot(int(selectedSlotPos))
self.CancelInputPrice()
self.__OnClosePopupDialog()
def OnSelectItemSlot(self, selectedSlotPos):
isAttached = mouseModule.mouseController.isAttached()
#selectedSlotPos = self.__GetRealIndex(selectedSlotPos)
if isAttached:
snd.PlaySound("sound/ui/loginfail.wav")
#self.ItemSlot.DeactivateSlot(int(selectedSlotPos))
mouseModule.mouseController.DeattachObject()
self.Edit["Board"].Hide()
else:
if not int(selectedSlotPos) in self.items.keys():
self.Edit["Board"].Hide()
return
snd.PlaySound("sound/ui/drop.wav")
#self.ItemSlot.ActivateSlot(selectedSlotPos)
self.EditItem(selectedSlotPos)"""
def AcceptInputPrice(self):
if not self.priceInputBoard:
return True
text = self.priceInputBoard.GetText()
if not text:
return True
if not text.isdigit():
return True
if int(text) <= 0:
return True
attachedInvenType = self.priceInputBoard.sourceWindowType
sourceSlotPos = self.priceInputBoard.sourceSlotPos
targetSlotPos = self.priceInputBoard.targetSlotPos
price = int(self.priceInputBoard.GetText())
count = player.GetItemCount(attachedInvenType, sourceSlotPos)
vnum = player.GetItemIndex(attachedInvenType, sourceSlotPos)
self.items[int(targetSlotPos)]={
"vnum":int(vnum),
"count":int(count),
"price":int(price),
"sourceSlot":sourceSlotPos,
"sourceWindow":attachedInvenType
}
snd.PlaySound("sound/ui/pick.wav")
#self.ItemSlot.DeactivateSlot(targetSlotPos)
net.SendChatPacket("/update_shop_item add|%d|%d|%d|%d|%s"%(int(self.id),int(targetSlotPos),int(sourceSlotPos),int(attachedInvenType),str(price)))
self.Refresh()
#####
self.priceInputBoard = None
return True
def CancelInputPrice(self):
self.priceInputBoard = None
return True
"""def EditItem(self,slot):
self.Edit["ChangePrice"].SetEvent(ui.__mem_func__(self.EditPrice),int(slot))
self.Edit["Remove"].SetEvent(ui.__mem_func__(self.RemoveItem),int(slot))
(w,h)=(170,328)
(x,y)=self.GetLocalPosition()
self.Edit["Board"].SetPosition((x-w),(y+(h/2)))
self.Edit["Board"].Show()
def EditPrice(self,slot):
self.priceInputBoard = uiCommon.MoneyInputDialog()
self.priceInputBoard.SetTitle(localeinfo.PRIVATE_SHOP_INPUT_PRICE_DIALOG_TITLE)
self.priceInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptEditPrice))
self.priceInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputPrice))
self.priceInputBoard.SetMaxLength(16)
self.priceInputBoard.Open()
self.priceInputBoard.targetSlotPos = int(slot)
def RemoveItem(self,slot):
self.pop = uiCommon.QuestionDialog()
self.pop.SetText(uiScriptLocale.SHOP_REMOVE_ITEM_QUEST)
self.pop.SetAcceptEvent(lambda arg1=str(slot): self.AcceptRemoveItem(arg1))
self.pop.SetCancelEvent(ui.__mem_func__(self.__OnClosePopupDialog))
self.pop.Open()
def AcceptRemoveItem(self,slot):
if int(slot) in self.items.keys():
snd.PlaySound("sound/ui/drop.wav")
net.SendChatPacket("/update_shop_item remove|"+str(self.id)+"|"+str(self.items[int(slot)]["id"]))
#self.ItemSlot.DeactivateSlot(int(slot))
del self.items[int(slot)]
self.Refresh()
self.__OnClosePopupDialog()
def AcceptEditPrice(self):
if not self.priceInputBoard:
return True
text = self.priceInputBoard.GetText()
if not text:
return True
if not text.isdigit():
return True
if int(text) <= 0:
return True
targetSlotPos = self.priceInputBoard.targetSlotPos
price = int(self.priceInputBoard.GetText())
#self.ItemSlot.DeactivateSlot(int(targetSlotPos))
self.items[int(targetSlotPos)]["price"]=price
snd.PlaySound("sound/ui/drop.wav")
net.SendChatPacket("/update_shop_item price|"+str(self.id)+"|"+str(self.items[int(targetSlotPos)]["id"])+"|"+str(price))
self.Refresh()
self.priceInputBoard = None
return True"""
# def OnUpdate(self):
# if self.lastUpdate < app.GetGlobalTime():
# self.lastUpdate=app.GetGlobalTime()+10000
# if int(self.id)>0:
# net.SendChatPacket("/refresh_shop_items "+str(self.id))
class ShopDialog(ui.ScriptWindow):
Edit={}
UI={}
pop=None
uiNewShopCreate = ShopDialogCreate()
uiNewShopCreate.Hide()
uiNewShopEdit = ShopEditWindow()
uiNewShopEdit.Close()
tooltip = uiToolTip.ToolTip(220)
tooltip.Hide()
BoardHeight=40
CurrentEdit=0
EditBoardY=35
lastUpdate=0
def __init__(self):
ui.ScriptWindow.__init__(self)
self.SlotWind = None
self.SlotWind2 = None
self.TextLineN = None
self.TextLineN2 = None
self.items={}
self.LoadDialog()
def __del__(self):
ui.ScriptWindow.__del__(self)
self.SlotWind = None
self.SlotWind2 = None
self.TextLineN = None
self.TextLineN2 = None
def LoadDialog(self):
self.UI["board"]=ui.BoardWithTitleBar()
self.UI["board"].SetParent(self)
self.UI["board"].SetSize(200, self.BoardHeight)
self.UI["board"].SetTitleName(uiScriptLocale.SHOP_WINDOW_NAME)
self.UI["board"].SetCloseEvent(self.Close)
self.UI["board"].Show()
self.UI["shops"]={}
self.Edit["Board"] = ui.BoardWithTitleBar()
self.Edit["Board"].SetParent(self)
self.Edit["Board"].SetSize(200, 360+25+25+50-25-35-290)
if POSITION_FIX:
self.Edit["Board"].SetPosition(0,103-10)
else:
self.Edit["Board"].SetPosition(0,103-10)
self.Edit["Board"].SetTitleName(uiScriptLocale.SHOP_SELECT)
self.Edit["Board"].SetCloseEvent(self.CloseEdit)
self.Edit["Board"].Hide()
self.SetCenterPosition()
self.AddFlag("movable")
self.UpdateSize()
def AddEditOption(self,name,text,func,image1,image2,image3):
self.Edit[name] = ui.Button()
self.Edit[name].SetParent(self.Edit["Board"])
self.Edit[name].SetPosition(self.EditButtonPosX,360+7-290)
self.Edit[name].SetUpVisual(image1)
self.Edit[name].SetOverVisual(image2)
self.Edit[name].SetDownVisual(image3)
self.Edit[name].SetText(text)
self.Edit[name].Show()
self.Edit[name].SetEvent(func)
self.EditButtonPosX+=63
self.EditBoardY=360+25+25+50-25-30-290
#self.Edit["Board"].SetSize(200, self.EditBoardY)
self.UpdateSize()
def CloseEdit(self):
if "Board" in self.Edit.keys():
self.Edit["Board"].Hide()
self.CurrentEdit=0
def Load(self,data):
title=data["name"]
if len(title) > 22:
title = title[:19] + "..."
gui={}
gui["nameTextImage"] = ui.MakeImageBox(self.UI["board"], "d:/ymir work/ui/public/Parameter_Slot_04.sub", 10, self.BoardHeight)
gui["nameTextImage"].SAFE_SetStringEvent("MOUSE_OVER_IN", self.__ShowToolTip)
gui["nameTextImage"].SAFE_SetStringEvent("MOUSE_OVER_OUT", self.__HideItemToolTip)
gui["name"] = ui.MakeTextLine(gui["nameTextImage"])
gui["name"].SetWindowHorizontalAlignCenter()
gui["name"].SetHorizontalAlignCenter()
gui["name"].SetText(title)
gui["manage"] = ui.MakeButton(self.UI["board"],130, self.BoardHeight,"","d:/ymir work/ui/public/","middle_Button_01.sub","middle_Button_02.sub","middle_Button_03.sub")
gui["manage"].SetText(uiScriptLocale.SHOP_MANAGE)
gui["manage"].SetEvent(ui.__mem_func__(self.ManageShop),data)
gui["manage"].Show()
if self.CurrentEdit==data["id"]:
self.ManageShop(data,1)
gui["data"]=data
self.UI["shops"][str(data["id"])]=gui
self.BoardHeight+=30
self.UpdateSize()
def __OnClosePopupDialog(self):
if self.pop != None:
if self.pop.IsShow():
self.pop.Hide()
self.pop = None
def ManageShop(self,data,force=0):
arg1=str(data["id"])
self.EditBoardY=35
self.EditButtonPosX=7
"""self.AddEditOption("change_name",uiScriptLocale.SHOP_CHANGE_NAME,lambda arg1=data: self.OnChangeButtonClick(arg1))"""
self.AddEditOption("get_cheque","",lambda arg1=data: self.GetShopWon(arg1),'d:/ymir work/ui/button_offshop/won1.png','d:/ymir work/ui/button_offshop/won2.png','d:/ymir work/ui/button_offshop/won3.png')
self.AddEditOption("get_yang","",lambda arg1=data: self.GetShopYang(arg1),'d:/ymir work/ui/button_offshop/yang1.png','d:/ymir work/ui/button_offshop/yang2.png','d:/ymir work/ui/button_offshop/yang3.png')
"""self.AddEditOption("edit",uiScriptLocale.SHOP_EDIT,lambda arg1=data["id"]: self.OnEditButtonClick(arg1))"""
self.AddEditOption("close","",lambda arg1=data: self.CloseShop(arg1),'d:/ymir work/ui/button_offshop/kapat1.png','d:/ymir work/ui/button_offshop/kapat2.png','d:/ymir work/ui/button_offshop/kapat3.png')
if self.Edit["Board"].IsShow() and self.CurrentEdit==data["id"] and force==0:
self.Edit["Board"].Hide()
self.CurrentEdit=0
else:
title=data["name"]
if len(title) > 22:
title = title[:19] + "..."
self.Edit["Board"].SetTitleName(title)
if constInfo.OPEN_OFFSHOP == 0:
self.SetCenterPosition()
constInfo.OPEN_OFFSHOP=1
self.Edit["Board"].Show()
self.CurrentEdit=data["id"]
self.SlotWind = ui.SlotBar()
self.SlotWind.SetParent(self.Edit["Board"])
self.SlotWind.SetSize(52, 18)
self.SlotWind.SetPosition(10, 53-10)
self.SlotWind.Show()
self.TextLineN = ui.TextLine()
self.TextLineN.SetParent(self.SlotWind)
self.TextLineN.SetPosition(4, 2)
self.TextLineN.SetText(str(localeinfo.NumberToChequeString(int(data["won"]))))
self.TextLineN.Show()
self.SlotWind2 = ui.SlotBar()
self.SlotWind2.SetParent(self.Edit["Board"])
self.SlotWind2.SetSize(120, 18)
self.SlotWind2.SetPosition(38+5+7+5+7+7, 53-10)
self.SlotWind2.Show()
self.TextLineN2 = ui.TextLine()
self.TextLineN2.SetParent(self.SlotWind2)
self.TextLineN2.SetPosition(4, 2)
self.TextLineN2.SetText(str(localeinfo.NumberToMoneyString(int(data["gold"]))))
self.TextLineN2.Show()
def UpdateSize(self):
Y=25
if POSITION_FIX:
Y=45
self.UI["create_button"] = ui.MakeButton(self.UI["board"],10, self.UI["board"].GetHeight()-Y,"","d:/ymir work/ui/public/","Xlarge_Button_01.sub","Xlarge_Button_02.sub","Xlarge_Button_03.sub")
self.UI["create_button"].SetText(uiScriptLocale.SHOP_OPEN)
self.UI["create_button"].SetEvent(lambda : self.CreateShop(False))
self.UI["create_button"].Show()
if POSITION_FIX:
self.UI["board"].SetSize(200, self.BoardHeight+55)
else:
self.UI["board"].SetSize(200, self.BoardHeight+35)
if self.BoardHeight < self.EditBoardY:
self.SetSize(200, self.EditBoardY+50+50-10)
else:
self.SetSize(200, self.BoardHeight+60+50-10)
def CreateShop(self, iskasmir):
self.Hide();
self.uiNewShopCreate.Show(iskasmir)
def CloseShop(self,shop):
self.pop = uiCommon.QuestionDialog()
self.pop.SetText(uiScriptLocale.SHOP_CLOSE_QUEST%(shop["name"]))
self.pop.SetAcceptEvent(lambda arg1=str(shop["id"]): self.OnCloseShop(arg1))
self.pop.SetCancelEvent(ui.__mem_func__(self.__OnClosePopupDialog))
self.pop.Open()
constInfo.OPEN_OFFSHOP=0
def OnCloseShop(self,id):
self.__OnClosePopupDialog()
net.SendChatPacket("/close_shop %d" %(int(id)))
if len(self.UI["shops"].keys())==1:
self.Close()
constInfo.OPEN_OFFSHOP=0
def GetShopYang(self,shop):
if int(shop["gold"]) <=0:
self.PopupMessage(uiScriptLocale.SHOP_NOT_EARNED_YANG)
return
self.pop = uiCommon.QuestionDialog()
self.pop.SetText(uiScriptLocale.SHOP_YANG_QUEST%(localeinfo.NumberToMoneyString(shop["gold"]),shop["name"]))
self.pop.SetAcceptEvent(lambda arg1=str(shop["id"]): self.OnGetYang(arg1))
self.pop.SetCancelEvent(ui.__mem_func__(self.__OnClosePopupDialog))
self.pop.Open()
def GetShopWon(self,shop):
if int(shop["won"]) <=0:
self.PopupMessage(uiScriptLocale.SHOP_NOT_EARNED_YANG)
return
self.pop = uiCommon.QuestionDialog()
self.pop.SetText(uiScriptLocale.SHOP_CHEQUE_QUEST%(localeinfo.NumberToChequeString(shop["won"]),shop["name"]))
self.pop.SetAcceptEvent(lambda arg1=str(shop["id"]): self.OnGetWon(arg1))
self.pop.SetCancelEvent(ui.__mem_func__(self.__OnClosePopupDialog))
self.pop.Open()
# def AddItem(self,slot,data):
# self.items[int(slot)]=data
# self.RefreshShopPriview()
def ClearItems(self):
self.uiNewShopEdit.Clear()
def OnGetYang(self,id):
self.__OnClosePopupDialog()
net.SendChatPacket("/shop_yang %d" %(int(id)))
def OnGetWon(self,id):
self.__OnClosePopupDialog()
# net.SendChatPacket("/offlineshop_get_window %d" %(int(id)))
net.SendChatPacket("/shop_won %d" %(int(id)))
def OnChangeButtonClick(self,shop):
inputDialog = uiCommon.InputDialog()
inputDialog.SetTitle(uiScriptLocale.SHOP_ENTER_NEW_NAME)
inputDialog.SetMaxLength(32)
inputDialog.SetAcceptEvent(lambda arg1=str(shop["id"]): self.OnChangeName(arg1))
inputDialog.SetCancelEvent(ui.__mem_func__(self.CloseInputNameDialog))
inputDialog.Open()
self.inputDialog = inputDialog
def CloseInputNameDialog(self):
self.inputDialog = None
def OnChangeName(self,id):
if not self.inputDialog:
return
name=self.inputDialog.GetText()
if not len(name):
return
name=name.replace(" ","\\")
net.SendChatPacket("/shop_name %d %s" %(int(id),name))
self.CloseInputNameDialog()
def Destroy(self):
self.Hide()
self.__OnClosePopupDialog()
self.UI={}
self.wndPopupDialog = None
self.inputDialog = None
if self.uiNewShopEdit:
self.uiNewShopEdit.Close()
self.uiNewShopEdit = None
def OnPressEscapeKey(self):
self.Hide()
def Hide(self):
self.CloseEdit()
self.__OnClosePopupDialog()
if self.uiNewShopEdit:
self.uiNewShopEdit.Close()
self.__HideItemToolTip()
ui.ScriptWindow.Hide(self)
def Close(self):
self.Hide()
def __ShowToolTip(self):
pass
def __HideItemToolTip(self):
if self.tooltip:
self.tooltip.HideToolTip()
def OnEditButtonClick(self,id):
if self.uiNewShopEdit.IsShow():
self.uiNewShopEdit.Close()
else:
self.uiNewShopEdit.Show(str(id))
def Show(self, iskasmir=0):
if len(self.UI["shops"].keys())==0:
self.CreateShop(iskasmir)
else:
ui.ScriptWindow.Show(self)
def HideAll(self):
self.BoardHeight=40
for key,item in self.UI["shops"].iteritems():
for k,v in item.iteritems():
if k !="data":
v.Hide()
self.UI["shops"][key]["data"]={}
self.UI["shops"]={}
def PopupMessage(self, msg):
self.wndPopupDialog = uiCommon.PopupDialog()
self.wndPopupDialog.SetText(msg)
self.wndPopupDialog.Open()
def OnUpdate(self):
if self.lastUpdate < app.GetGlobalTime():
self.lastUpdate=app.GetGlobalTime()+900
if "shops" in self.UI.keys():
if str(self.CurrentEdit) not in self.UI["shops"].keys():
self.CloseEdit()
if "create_button" in self.UI.keys():
if POSITION_FIX:
self.UI["create_button"].SetPosition(10, self.UI["board"].GetHeight()-45)
else:
self.UI["create_button"].SetPosition(10, self.UI["board"].GetHeight()-40)
@Whistle
@Yeniceri
Son düzenleme: