#### File : uiexchange.py
## Developer : Fatihbab34ââ¢
## Team : KFDevelopers
##
import player
import exchange
import net
import localeInfo
import event
import chat
import item
import constInfo
import playerSettingModule
import ui
import mouseModule
import uiPickMoney
import wndMgr
FACE_IMAGE_DICT = {
playerSettingModule.RACE_WARRIOR_M : "icon/face/warrior_m.tga",
playerSettingModule.RACE_WARRIOR_W : "icon/face/warrior_w.tga",
playerSettingModule.RACE_ASSASSIN_M : "icon/face/assassin_m.tga",
playerSettingModule.RACE_ASSASSIN_W : "icon/face/assassin_w.tga",
playerSettingModule.RACE_SURA_M : "icon/face/sura_m.tga",
playerSettingModule.RACE_SURA_W : "icon/face/sura_w.tga",
playerSettingModule.RACE_SHAMAN_M : "icon/face/shaman_m.tga",
playerSettingModule.RACE_SHAMAN_W : "icon/face/shaman_w.tga",
}
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")
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))
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()
dlgPickMoney = uiPickMoney.PickMoneyDialog()
dlgPickMoney.LoadDialog()
dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
dlgPickMoney.SetTitleName(localeInfo.EXCHANGE_MONEY)
dlgPickMoney.SetMax(7)
dlgPickMoney.Hide()
self.dlgPickMoney = dlgPickMoney
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_FATIHBAB34)
self.AcceptButton.Enable()
self.AcceptButton.SetUp()
self.Show()
net.SendWhisperPacket(exchange.GetNameFromTarget(), "xxbanasinifiniverxx")
self.GetChild("level").SetFontColor(255, 43, 255)
self.GetChild("level").SetFontName(localeInfo.UI_DEF_FONT)
self.GetChild("name").SetFontName(localeInfo.UI_DEF_FONT)
self.GetChild("name").SetText(str(exchange.GetNameFromTarget()))
self.GetChild("lonca").SetFontName(localeInfo.UI_DEF_FONT)
self.GetChild("benim_name").SetFontColor(255*255, 0*255, 8*255)
(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 Owner_Kapat(self):
self.GetChild("Owner_Accept_Light").Hide()
def Owner_Ac(self):
self.GetChild("Owner_Accept_Light").Show()
def Owner_Kapat2(self):
self.GetChild("Target_Accept_Light").Hide()
def Owner_Ac2(self):
self.GetChild("Target_Accept_Light").Show()
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:
if player.SLOT_TYPE_INVENTORY == mouseModule.mouseController.GetAttachedType():
SrcSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber()
DstSlotNumber = SlotIndex
itemID = player.GetItemIndex(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(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(localeInfo.NumberToMoneyString(str(exchange.GetElkFromSelf())))
self.TargetMoney.SetText(localeInfo.NumberToMoneyString(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
self.OwnerMoney.SetText(localeInfo.NumberToMoneyString(str(exchange.GetElkFromSelf())))
self.TargetMoney.SetText(localeInfo.NumberToMoneyString(str(exchange.GetElkFromTarget())))
(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()
self.GetChild("karakter").LoadImage(FACE_IMAGE_DICT[constInfo.ticsinif])
self.GetChild("benim_karakter").LoadImage(FACE_IMAGE_DICT[net.GetMainActorRace()])
self.GetChild("benim_name").SetText(str(player.GetName()))
self.GetChild("lonca").SetText(str(constInfo.ticlonca))
self.GetChild("level").SetText("Lv." + str(constInfo.ticlevel))