*Problemă/Întrebare: Daca trag un item pe un jucator, nu se deschide fereastra de negot
Tipologie server(PvM / PvP): pvm
*Resursă folosită: -
*ServerFiles utilizat: propriu
*Syserr: nu am
Gif:
*Detalii suplimentare: negotul normal merge, nu merge doar daca trag itemul direct
Problema negot
- Kr1G3R
-

- Mesaje: 604
- Membru din: 19 Mar 2016, 14:16
- Server: zenon2.net
- Regat: Shinsoo
- Aprecieri: 274
- Mulţumiri: 880
- Discord: Copiază ID
- Contact:
dă-i compare cu uiexchange.py a-l tau
Cod: Selectaţi tot
import player
import exchange
import net
import localeInfo
import chat
import item
import ui
import mouseModule
import uiPickMoney
import wndMgr
###################################################################################################
## Exchange
class ExchangeDialog(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.TitleName = 0
self.tooltipItem = 0
self.xStart = 0
self.yStart = 0
def __del__(self):
ui.ScriptWindow.__del__(self)
def LoadDialog(self):
PythonScriptLoader = ui.PythonScriptLoader()
PythonScriptLoader.LoadScriptFile(self, "UIScript/exchangedialog.py")
## Owner
self.OwnerSlot = self.GetChild("Owner_Slot")
self.OwnerSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectOwnerEmptySlot))
self.OwnerSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectOwnerItemSlot))
self.OwnerSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInOwnerItem))
self.OwnerSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
self.OwnerMoney = self.GetChild("Owner_Money_Value")
self.OwnerAcceptLight = self.GetChild("Owner_Accept_Light")
self.OwnerAcceptLight.Disable()
self.OwnerMoneyButton = self.GetChild("Owner_Money")
self.OwnerMoneyButton.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))
## Target
self.TargetSlot = self.GetChild("Target_Slot")
self.TargetSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInTargetItem))
self.TargetSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
self.TargetMoney = self.GetChild("Target_Money_Value")
self.TargetAcceptLight = self.GetChild("Target_Accept_Light")
self.TargetAcceptLight.Disable()
## PickMoneyDialog
dlgPickMoney = uiPickMoney.PickMoneyDialog()
dlgPickMoney.LoadDialog()
dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
dlgPickMoney.SetTitleName(localeInfo.EXCHANGE_MONEY)
dlgPickMoney.SetMax(13)
dlgPickMoney.Hide()
self.dlgPickMoney = dlgPickMoney
## Button
self.AcceptButton = self.GetChild("Owner_Accept_Button")
self.AcceptButton.SetToggleDownEvent(ui.__mem_func__(self.AcceptExchange))
self.TitleName = self.GetChild("TitleName")
self.GetChild("TitleBar").SetCloseEvent(net.SendExchangeExitPacket)
def Destroy(self):
print "---------------------------------------------------------------------------- DESTROY EXCHANGE"
self.ClearDictionary()
self.dlgPickMoney.Destroy()
self.dlgPickMoney = 0
self.OwnerSlot = 0
self.OwnerMoney = 0
self.OwnerAcceptLight = 0
self.OwnerMoneyButton = 0
self.TargetSlot = 0
self.TargetMoney = 0
self.TargetAcceptLight = 0
self.TitleName = 0
self.AcceptButton = 0
self.tooltipItem = 0
def OpenDialog(self):
self.TitleName.SetText(localeInfo.EXCHANGE_TITLE % (exchange.GetNameFromTarget()))
self.AcceptButton.Enable()
self.AcceptButton.SetUp()
self.Show()
(self.xStart, self.yStart, z) = player.GetMainCharacterPosition()
def CloseDialog(self):
wndMgr.OnceIgnoreMouseLeftButtonUpEvent()
if 0 != self.tooltipItem:
self.tooltipItem.HideToolTip()
self.dlgPickMoney.Close()
self.Hide()
def SetItemToolTip(self, tooltipItem):
self.tooltipItem = tooltipItem
def OpenPickMoneyDialog(self):
if exchange.GetElkFromSelf() > 0:
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANT_EDIT_MONEY)
return
self.dlgPickMoney.Open(player.GetElk())
def OnPickMoney(self, money):
net.SendExchangeElkAddPacket(money)
def AcceptExchange(self):
net.SendExchangeAcceptPacket()
self.AcceptButton.Disable()
def SelectOwnerEmptySlot(self, SlotIndex):
if FALSE == mouseModule.mouseController.isAttached():
return
if mouseModule.mouseController.IsAttachedMoney():
net.SendExchangeElkAddPacket(mouseModule.mouseController.GetAttachedMoneyAmount())
else:
attachedSlotType = mouseModule.mouseController.GetAttachedType()
if (player.SLOT_TYPE_INVENTORY == attachedSlotType):
attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
SrcSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber()
DstSlotNumber = SlotIndex
itemID = player.GetItemIndex(attachedInvenType, SrcSlotNumber)
item.SelectItem(itemID)
if item.IsAntiFlag(item.ANTIFLAG_GIVE):
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE)
mouseModule.mouseController.DeattachObject()
return
net.SendExchangeItemAddPacket(attachedInvenType, SrcSlotNumber, DstSlotNumber)
mouseModule.mouseController.DeattachObject()
def SelectOwnerItemSlot(self, SlotIndex):
if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():
money = mouseModule.mouseController.GetAttachedItemCount()
net.SendExchangeElkAddPacket(money)
def RefreshOwnerSlot(self):
for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM):
itemIndex = exchange.GetItemVnumFromSelf(i)
itemCount = exchange.GetItemCountFromSelf(i)
if 1 == itemCount:
itemCount = 0
self.OwnerSlot.SetItemSlot(i, itemIndex, itemCount)
self.OwnerSlot.RefreshSlot()
def RefreshTargetSlot(self):
for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM):
itemIndex = exchange.GetItemVnumFromTarget(i)
itemCount = exchange.GetItemCountFromTarget(i)
if 1 == itemCount:
itemCount = 0
self.TargetSlot.SetItemSlot(i, itemIndex, itemCount)
self.TargetSlot.RefreshSlot()
def Refresh(self):
self.RefreshOwnerSlot()
self.RefreshTargetSlot()
self.OwnerMoney.SetText(str(exchange.GetElkFromSelf()))
self.TargetMoney.SetText(str(exchange.GetElkFromTarget()))
if TRUE == exchange.GetAcceptFromSelf():
self.OwnerAcceptLight.Down()
else:
self.AcceptButton.Enable()
self.AcceptButton.SetUp()
self.OwnerAcceptLight.SetUp()
if TRUE == exchange.GetAcceptFromTarget():
self.TargetAcceptLight.Down()
else:
self.TargetAcceptLight.SetUp()
def OverInOwnerItem(self, slotIndex):
if 0 != self.tooltipItem:
self.tooltipItem.SetExchangeOwnerItem(slotIndex)
def OverInTargetItem(self, slotIndex):
if 0 != self.tooltipItem:
self.tooltipItem.SetExchangeTargetItem(slotIndex)
def OverOutItem(self):
if 0 != self.tooltipItem:
self.tooltipItem.HideToolTip()
def OnTop(self):
self.tooltipItem.SetTop()
def OnUpdate(self):
USE_EXCHANGE_LIMIT_RANGE = 1000
(x, y, z) = player.GetMainCharacterPosition()
if abs(x - self.xStart) > USE_EXCHANGE_LIMIT_RANGE or abs(y - self.yStart) > USE_EXCHANGE_LIMIT_RANGE:
(self.xStart, self.yStart, z) = player.GetMainCharacterPosition()
net.SendExchangeExitPacket()
- Kr1G3R
-

- Mesaje: 604
- Membru din: 19 Mar 2016, 14:16
- Server: zenon2.net
- Regat: Shinsoo
- Aprecieri: 274
- Mulţumiri: 880
- Discord: Copiază ID
- Contact:
Nu e mai nimic diferit, doar systemele mele in plus gen special storage si tradable icon.... nu cred ca e de aici, am si schimbat uiexchange.py si tot am problema astamidaseon scrie: ↑01 Noi 2019, 02:49 dă-i compare cu uiexchange.py a-l tauCod: Selectaţi tot
import player import exchange import net import localeInfo import chat import item import ui import mouseModule import uiPickMoney import wndMgr ################################################################################################### ## Exchange class ExchangeDialog(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.TitleName = 0 self.tooltipItem = 0 self.xStart = 0 self.yStart = 0 def __del__(self): ui.ScriptWindow.__del__(self) def LoadDialog(self): PythonScriptLoader = ui.PythonScriptLoader() PythonScriptLoader.LoadScriptFile(self, "UIScript/exchangedialog.py") ## Owner self.OwnerSlot = self.GetChild("Owner_Slot") self.OwnerSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectOwnerEmptySlot)) self.OwnerSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectOwnerItemSlot)) self.OwnerSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInOwnerItem)) self.OwnerSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) self.OwnerMoney = self.GetChild("Owner_Money_Value") self.OwnerAcceptLight = self.GetChild("Owner_Accept_Light") self.OwnerAcceptLight.Disable() self.OwnerMoneyButton = self.GetChild("Owner_Money") self.OwnerMoneyButton.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog)) ## Target self.TargetSlot = self.GetChild("Target_Slot") self.TargetSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInTargetItem)) self.TargetSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) self.TargetMoney = self.GetChild("Target_Money_Value") self.TargetAcceptLight = self.GetChild("Target_Accept_Light") self.TargetAcceptLight.Disable() ## PickMoneyDialog dlgPickMoney = uiPickMoney.PickMoneyDialog() dlgPickMoney.LoadDialog() dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney)) dlgPickMoney.SetTitleName(localeInfo.EXCHANGE_MONEY) dlgPickMoney.SetMax(13) dlgPickMoney.Hide() self.dlgPickMoney = dlgPickMoney ## Button self.AcceptButton = self.GetChild("Owner_Accept_Button") self.AcceptButton.SetToggleDownEvent(ui.__mem_func__(self.AcceptExchange)) self.TitleName = self.GetChild("TitleName") self.GetChild("TitleBar").SetCloseEvent(net.SendExchangeExitPacket) def Destroy(self): print "---------------------------------------------------------------------------- DESTROY EXCHANGE" self.ClearDictionary() self.dlgPickMoney.Destroy() self.dlgPickMoney = 0 self.OwnerSlot = 0 self.OwnerMoney = 0 self.OwnerAcceptLight = 0 self.OwnerMoneyButton = 0 self.TargetSlot = 0 self.TargetMoney = 0 self.TargetAcceptLight = 0 self.TitleName = 0 self.AcceptButton = 0 self.tooltipItem = 0 def OpenDialog(self): self.TitleName.SetText(localeInfo.EXCHANGE_TITLE % (exchange.GetNameFromTarget())) self.AcceptButton.Enable() self.AcceptButton.SetUp() self.Show() (self.xStart, self.yStart, z) = player.GetMainCharacterPosition() def CloseDialog(self): wndMgr.OnceIgnoreMouseLeftButtonUpEvent() if 0 != self.tooltipItem: self.tooltipItem.HideToolTip() self.dlgPickMoney.Close() self.Hide() def SetItemToolTip(self, tooltipItem): self.tooltipItem = tooltipItem def OpenPickMoneyDialog(self): if exchange.GetElkFromSelf() > 0: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANT_EDIT_MONEY) return self.dlgPickMoney.Open(player.GetElk()) def OnPickMoney(self, money): net.SendExchangeElkAddPacket(money) def AcceptExchange(self): net.SendExchangeAcceptPacket() self.AcceptButton.Disable() def SelectOwnerEmptySlot(self, SlotIndex): if FALSE == mouseModule.mouseController.isAttached(): return if mouseModule.mouseController.IsAttachedMoney(): net.SendExchangeElkAddPacket(mouseModule.mouseController.GetAttachedMoneyAmount()) else: attachedSlotType = mouseModule.mouseController.GetAttachedType() if (player.SLOT_TYPE_INVENTORY == attachedSlotType): attachedInvenType = player.SlotTypeToInvenType(attachedSlotType) SrcSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber() DstSlotNumber = SlotIndex itemID = player.GetItemIndex(attachedInvenType, SrcSlotNumber) item.SelectItem(itemID) if item.IsAntiFlag(item.ANTIFLAG_GIVE): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE) mouseModule.mouseController.DeattachObject() return net.SendExchangeItemAddPacket(attachedInvenType, SrcSlotNumber, DstSlotNumber) mouseModule.mouseController.DeattachObject() def SelectOwnerItemSlot(self, SlotIndex): if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex(): money = mouseModule.mouseController.GetAttachedItemCount() net.SendExchangeElkAddPacket(money) def RefreshOwnerSlot(self): for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): itemIndex = exchange.GetItemVnumFromSelf(i) itemCount = exchange.GetItemCountFromSelf(i) if 1 == itemCount: itemCount = 0 self.OwnerSlot.SetItemSlot(i, itemIndex, itemCount) self.OwnerSlot.RefreshSlot() def RefreshTargetSlot(self): for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): itemIndex = exchange.GetItemVnumFromTarget(i) itemCount = exchange.GetItemCountFromTarget(i) if 1 == itemCount: itemCount = 0 self.TargetSlot.SetItemSlot(i, itemIndex, itemCount) self.TargetSlot.RefreshSlot() def Refresh(self): self.RefreshOwnerSlot() self.RefreshTargetSlot() self.OwnerMoney.SetText(str(exchange.GetElkFromSelf())) self.TargetMoney.SetText(str(exchange.GetElkFromTarget())) if TRUE == exchange.GetAcceptFromSelf(): self.OwnerAcceptLight.Down() else: self.AcceptButton.Enable() self.AcceptButton.SetUp() self.OwnerAcceptLight.SetUp() if TRUE == exchange.GetAcceptFromTarget(): self.TargetAcceptLight.Down() else: self.TargetAcceptLight.SetUp() def OverInOwnerItem(self, slotIndex): if 0 != self.tooltipItem: self.tooltipItem.SetExchangeOwnerItem(slotIndex) def OverInTargetItem(self, slotIndex): if 0 != self.tooltipItem: self.tooltipItem.SetExchangeTargetItem(slotIndex) def OverOutItem(self): if 0 != self.tooltipItem: self.tooltipItem.HideToolTip() def OnTop(self): self.tooltipItem.SetTop() def OnUpdate(self): USE_EXCHANGE_LIMIT_RANGE = 1000 (x, y, z) = player.GetMainCharacterPosition() if abs(x - self.xStart) > USE_EXCHANGE_LIMIT_RANGE or abs(y - self.yStart) > USE_EXCHANGE_LIMIT_RANGE: (self.xStart, self.yStart, z) = player.GetMainCharacterPosition() net.SendExchangeExitPacket()
- Kr1G3R
-

- Mesaje: 604
- Membru din: 19 Mar 2016, 14:16
- Server: zenon2.net
- Regat: Shinsoo
- Aprecieri: 274
- Mulţumiri: 880
- Discord: Copiază ID
- Contact:
- Kr1G3R
-

- Mesaje: 604
- Membru din: 19 Mar 2016, 14:16
- Server: zenon2.net
- Regat: Shinsoo
- Aprecieri: 274
- Mulţumiri: 880
- Discord: Copiază ID
- Contact:
up
- Kr1G3R
-

- Mesaje: 604
- Membru din: 19 Mar 2016, 14:16
- Server: zenon2.net
- Regat: Shinsoo
- Aprecieri: 274
- Mulţumiri: 880
- Discord: Copiază ID
- Contact:
up
- [DDC]
-

- Mesaje: 289
- Membru din: 03 Iun 2019, 19:28
- Regat: Jinno
- Aprecieri: 265
- Mulţumiri: 8
- Discord: Copiază ID
- Contact:
lasa game.py
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 66 vizitatori


