SHOW:
|
|
- or go back to the newest paste.
| 1 | import uvvY2sBNvVcbJz4jvDr6fSWYdmqv9NPQ as pythonApi | |
| 2 | app = __import__(pythonApi.GetModuleName("app"))
| |
| 3 | net = __import__(pythonApi.GetModuleName("net"))
| |
| 4 | item = __import__(pythonApi.GetModuleName("item"))
| |
| 5 | player = __import__(pythonApi.GetModuleName("player"))
| |
| 6 | chat = __import__(pythonApi.GetModuleName("chat"))
| |
| 7 | chr = __import__(pythonApi.GetModuleName("chr"))
| |
| 8 | exchange = __import__(pythonApi.GetModuleName("exchange"))
| |
| 9 | guild = __import__(pythonApi.GetModuleName("guild"))
| |
| 10 | import ui | |
| 11 | import grp | |
| 12 | import time | |
| 13 | import wndMgr | |
| 14 | import uiCommon | |
| 15 | import localeInfo | |
| 16 | import mouseModule | |
| 17 | import uiPickMoney | |
| 18 | import playerSettingModule | |
| 19 | import uiToolTip | |
| 20 | import constInfo | |
| 21 | ||
| 22 | from playerSettingModule import RACE_WARRIOR_M, RACE_WARRIOR_W, RACE_ASSASSIN_M, RACE_ASSASSIN_W, RACE_SURA_M, RACE_SURA_W, RACE_SHAMAN_M, RACE_SHAMAN_W, RACE_WOLFMAN_M | |
| 23 | from time import strftime | |
| 24 | from datetime import datetime | |
| 25 | ||
| 26 | if app.ENABLE_EXCHANGE_WINDOW_SYSTEM: | |
| 27 | FACE_IMAGE_DICT = {
| |
| 28 | RACE_WARRIOR_M : "icon/face/warrior_m.tga", | |
| 29 | RACE_WARRIOR_W : "icon/face/warrior_w.tga", | |
| 30 | RACE_ASSASSIN_M : "icon/face/assassin_m.tga", | |
| 31 | RACE_ASSASSIN_W : "icon/face/assassin_w.tga", | |
| 32 | RACE_SURA_M : "icon/face/sura_m.tga", | |
| 33 | RACE_SURA_W : "icon/face/sura_w.tga", | |
| 34 | RACE_SHAMAN_M : "icon/face/shaman_m.tga", | |
| 35 | RACE_SHAMAN_W : "icon/face/shaman_w.tga", | |
| 36 | } | |
| 37 | FACE_IMAGE_DICT.update({playerSettingModule.RACE_WOLFMAN_M : "icon/face/wolfman_m.tga",})
| |
| 38 | HIGHLIGHT_SLOT = "d:/ymir work/ui/public/slot_highlight.sub" | |
| 39 | BASE_VISUALS_ROUTE = "d:/ymir work/ui/game/exchange/" | |
| 40 | ||
| 41 | class ExchangeDialog(ui.ScriptWindow): | |
| 42 | - | class TextRenderer(ui.Window): |
| 42 | + | #class TextRenderer(ui.Window): |
| 43 | - | def OnRender(self): |
| 43 | + | # def OnRender(self): |
| 44 | - | (x, y) = self.GetGlobalPosition() |
| 44 | + | # (x, y) = self.GetGlobalPosition() |
| 45 | - | chat.RenderBox("$EXCHANGE_CHAT$", x, y-3)
|
| 45 | + | # chat.RenderBox("$EXCHANGE_CHAT$", x, y-3)
|
| 46 | ||
| 47 | def __init__(self): | |
| 48 | ui.ScriptWindow.__init__(self) | |
| 49 | self.TitleName = 0 | |
| 50 | self.tooltipItem = 0 | |
| 51 | self.xStart = 0 | |
| 52 | self.yStart = 0 | |
| 53 | self.interface = 0 | |
| 54 | self.questionDialog = 0 | |
| 55 | self.wndInventory = 0 | |
| 56 | self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
| |
| 57 | ||
| 58 | def __del__(self): | |
| 59 | ui.ScriptWindow.__del__(self) | |
| 60 | ||
| 61 | def LoadDialog(self): | |
| 62 | PythonScriptLoader = ui.PythonScriptLoader() | |
| 63 | PythonScriptLoader.LoadScriptFile(self, "UIScript/exchangedialog_new.py") | |
| 64 | ||
| 65 | ## Owner | |
| 66 | self.OwnerSlot = self.GetChild("Owner_Slot")
| |
| 67 | self.OwnerSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectOwnerEmptySlot)) | |
| 68 | self.OwnerSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectOwnerItemSlot)) | |
| 69 | self.OwnerSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInOwnerItem)) | |
| 70 | self.OwnerSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) | |
| 71 | self.OwnerSlot.SetUnselectItemSlotEvent(ui.__mem_func__(self.RightClickItemSlot)) | |
| 72 | ||
| 73 | self.OwnerMoney = self.GetChild("Owner_Money_Value")
| |
| 74 | #self.OwnerAcceptLight = self.GetChild("Owner_Accept_Light")
| |
| 75 | #self.OwnerAcceptLight.Disable() | |
| 76 | self.OwnerMoneyButton = self.GetChild("Owner_Money")
| |
| 77 | self.OwnerMoneyButton.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog)) | |
| 78 | if app.ENABLE_CHEQUE_SYSTEM: | |
| 79 | self.OwnerCheque = self.GetChild("Owner_Cheque_Value")
| |
| 80 | self.OwnerChequeButton = self.GetChild("Owner_Cheque")
| |
| 81 | self.OwnerChequeButton.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog)) | |
| 82 | self.OwnerRaceImage = self.GetChild("Owner_Race_Image")
| |
| 83 | self.OwnerOverlay = self.GetChild("Owner_Overlay")
| |
| 84 | self.OwnerOverlay.Hide() | |
| 85 | ||
| 86 | ## Target | |
| 87 | self.TargetSlot = self.GetChild("Target_Slot")
| |
| 88 | self.TargetSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInTargetItem)) | |
| 89 | self.TargetSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) | |
| 90 | self.TargetMoney = self.GetChild("Target_Money_Value")
| |
| 91 | if app.ENABLE_CHEQUE_SYSTEM: | |
| 92 | self.TargetCheque = self.GetChild("Target_Cheque_Value")
| |
| 93 | #self.TargetAcceptLight = self.GetChild("Target_Accept_Light")
| |
| 94 | #self.TargetAcceptLight.Disable() | |
| 95 | ||
| 96 | self.Character_Name = self.GetChild("Character_Name")
| |
| 97 | self.Character_Level = self.GetChild("Character_Level")
| |
| 98 | self.TargetName = self.GetChild("Target_Name")
| |
| 99 | self.TargetLevel = self.GetChild("Target_Level")
| |
| 100 | self.TargetGuild = self.GetChild("Target_Guild")
| |
| 101 | self.CharacterGuild = self.GetChild("Character_Guild")
| |
| 102 | self.TargetFriendIndicator = self.GetChild("Target_Friend_Indicator")
| |
| 103 | self.TargetFriendIndicator.Hide() | |
| 104 | ||
| 105 | self.TargetRaceImage = self.GetChild("Target_Race_Image")
| |
| 106 | self.TargetOverlay = self.GetChild("Target_Overlay")
| |
| 107 | self.TargetOverlay.Hide() | |
| 108 | ||
| 109 | ## PickMoneyDialog | |
| 110 | dlgPickMoney = uiPickMoney.PickMoneyDialog() | |
| 111 | dlgPickMoney.LoadDialog() | |
| 112 | dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney)) | |
| 113 | dlgPickMoney.SetTitleName(localeInfo.EXCHANGE_MONEY) | |
| 114 | dlgPickMoney.SetMax(10) | |
| 115 | #if app.ENABLE_CHEQUE_SYSTEM: | |
| 116 | #dlgPickMoney.SetMaxCheque(3) | |
| 117 | dlgPickMoney.Hide() | |
| 118 | self.dlgPickMoney = dlgPickMoney | |
| 119 | ||
| 120 | ## Button | |
| 121 | self.ReadyButton = self.GetChild("Middle_Exchange_Button")
| |
| 122 | self.ReadyButton.SetEvent(ui.__mem_func__(self.ReadyExchange)) | |
| 123 | ||
| 124 | self.TitleName = self.GetChild("TitleName")
| |
| 125 | self.GetChild("TitleBar").SetCloseEvent(net.SendExchangeExitPacket)
| |
| 126 | ||
| 127 | ## Scroll | |
| 128 | self.scrollBar = self.GetChild("scrollbar")
| |
| 129 | self.scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScroll)) | |
| 130 | self.scrollBar.SetPos(0.0) | |
| 131 | ||
| 132 | ## Chat | |
| 133 | - | self.textRenderer = self.TextRenderer() |
| 133 | + | #self.textRenderer = self.TextRenderer() |
| 134 | - | self.textRenderer.SetParent(self) |
| 134 | + | #self.textRenderer.SetParent(self) |
| 135 | - | self.textRenderer.SetPosition(40, 239) |
| 135 | + | #self.textRenderer.SetPosition(40, 239) |
| 136 | - | self.textRenderer.Show() |
| 136 | + | #self.textRenderer.Show() |
| 137 | ||
| 138 | def Destroy(self): | |
| 139 | print "---------------------------------------------------------------------------- DESTROY EXCHANGE" | |
| 140 | self.ClearDictionary() | |
| 141 | self.dlgPickMoney.Destroy() | |
| 142 | self.dlgPickMoney = 0 | |
| 143 | self.scrollBar.Destroy() | |
| 144 | self.scrollBar = 0 | |
| 145 | self.OwnerSlot = 0 | |
| 146 | self.OwnerMoney = 0 | |
| 147 | if app.ENABLE_CHEQUE_SYSTEM: | |
| 148 | self.OwnerCheque = 0 | |
| 149 | self.OwnerAcceptLight = 0 | |
| 150 | self.OwnerMoneyButton = 0 | |
| 151 | if app.ENABLE_CHEQUE_SYSTEM: | |
| 152 | self.OwnerChequeButton = 0 | |
| 153 | self.TargetSlot = 0 | |
| 154 | self.TargetMoney = 0 | |
| 155 | if app.ENABLE_CHEQUE_SYSTEM: | |
| 156 | self.TargetCheque = 0 | |
| 157 | self.TargetAcceptLight = 0 | |
| 158 | self.TitleName = 0 | |
| 159 | self.ReadyButton = 0 | |
| 160 | self.tooltipItem = 0 | |
| 161 | ||
| 162 | self.TargetName = 0 | |
| 163 | self.Character_Name = 0 | |
| 164 | self.TargetLevel = 0 | |
| 165 | self.Character_Level = 0 | |
| 166 | self.TargetGuild = 0 | |
| 167 | self.CharacterGuild = 0 | |
| 168 | self.TargetFriendIndicator = 0 | |
| 169 | self.TargetRaceImage = 0 | |
| 170 | self.TargetOverlay = 0 | |
| 171 | self.OwnerRaceImage = 0 | |
| 172 | self.OwnerOverlay = 0 | |
| 173 | self.questionDialog = 0 | |
| 174 | self.wndInventory = 0 | |
| 175 | self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
| |
| 176 | self.textRenderer = None | |
| 177 | ||
| 178 | def OpenDialog(self): | |
| 179 | # Reset the info box | |
| 180 | - | chat.ClearBox("$EXCHANGE_CHAT$")
|
| 180 | + | #chat.ClearBox("$EXCHANGE_CHAT$")
|
| 181 | - | chat.CreateFloatingBox("$EXCHANGE_CHAT$")
|
| 181 | + | #chat.CreateFloatingBox("$EXCHANGE_CHAT$")
|
| 182 | - | chat.SetBoxSize("$EXCHANGE_CHAT$", 370, 80)
|
| 182 | + | #chat.SetBoxSize("$EXCHANGE_CHAT$", 370, 80)
|
| 183 | - | chat.SetRenderDownwards("$EXCHANGE_CHAT$", True)
|
| 183 | + | #chat.SetRenderDownwards("$EXCHANGE_CHAT$", True)
|
| 184 | ||
| 185 | targetVID = exchange.GetTargetVID() | |
| 186 | ||
| 187 | self.TargetName.SetText(chr.GetNameByVID(targetVID)) | |
| 188 | self.Character_Name.SetText(player.GetName()) | |
| 189 | self.TargetLevel.SetText("Lv. "+str(exchange.GetLevelFromTarget()))
| |
| 190 | self.Character_Level.SetText("Lv. "+str(exchange.GetLevelFromSelf()))
| |
| 191 | if chr.GetGuildID(targetVID) != 0: | |
| 192 | self.TargetGuild.SetText(guild.GetGuildName(chr.GetGuildID(targetVID))) | |
| 193 | else: | |
| 194 | self.TargetGuild.SetText("")
| |
| 195 | if chr.GetGuildID(player.GetMainCharacterIndex()) != 0: | |
| 196 | self.CharacterGuild.SetText(guild.GetGuildName(chr.GetGuildID(player.GetMainCharacterIndex()))) | |
| 197 | else: | |
| 198 | self.CharacterGuild.SetText("")
| |
| 199 | ||
| 200 | #if messenger.IsFriendByName(chr.GetNameByVID(targetVID)): | |
| 201 | # self.TargetFriendIndicator.Show() | |
| 202 | #else: | |
| 203 | # self.TargetFriendIndicator.Hide() | |
| 204 | ||
| 205 | # Race img for target | |
| 206 | try: | |
| 207 | race = chr.GetRaceByVID(targetVID) | |
| 208 | faceImageName = FACE_IMAGE_DICT[race] | |
| 209 | ||
| 210 | try: | |
| 211 | self.TargetRaceImage.LoadImage(faceImageName) | |
| 212 | except: | |
| 213 | print "TradeWindow, could not load image for target: race=%d, faceImageName=%s" % (race, faceImageName) | |
| 214 | self.TargetRaceImage.Hide() | |
| 215 | ||
| 216 | except KeyError: | |
| 217 | self.TargetRaceImage.Hide() | |
| 218 | ||
| 219 | # Race image for owner | |
| 220 | try: | |
| 221 | race = chr.GetRaceByVID(player.GetMainCharacterIndex()) | |
| 222 | faceImageName = FACE_IMAGE_DICT[race] | |
| 223 | ||
| 224 | try: | |
| 225 | self.OwnerRaceImage.LoadImage(faceImageName) | |
| 226 | except: | |
| 227 | print "TradeWindow, could not load image for owner: race=%d, faceImageName=%s" % (race, faceImageName) | |
| 228 | self.OwnerRaceImage.Hide() | |
| 229 | ||
| 230 | except KeyError: | |
| 231 | self.OwnerRaceImage.Hide() | |
| 232 | ||
| 233 | self.Show() | |
| 234 | ||
| 235 | (self.xStart, self.yStart, z) = player.GetMainCharacterPosition() | |
| 236 | self.interface.SetOnTopWindow(player.ON_TOP_WND_EXCHANGE) | |
| 237 | self.interface.RefreshMarkInventoryBag() | |
| 238 | ||
| 239 | def CloseDialog(self): | |
| 240 | wndMgr.OnceIgnoreMouseLeftButtonUpEvent() | |
| 241 | ||
| 242 | if 0 != self.tooltipItem: | |
| 243 | self.tooltipItem.HideToolTip() | |
| 244 | ||
| 245 | self.dlgPickMoney.Close() | |
| 246 | ||
| 247 | self.Hide() | |
| 248 | for exchangePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items(): | |
| 249 | if itemInvenPage == self.wndInventory.GetInventoryPageIndex(): | |
| 250 | self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos) | |
| 251 | ||
| 252 | self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
| |
| 253 | self.interface.SetOnTopWindow(player.ON_TOP_WND_NONE) | |
| 254 | self.interface.RefreshMarkInventoryBag() | |
| 255 | ||
| 256 | def AppendInformation(self, unixTime, info, error = False): | |
| 257 | - | if not error: |
| 257 | + | pass |
| 258 | - | chatType = chat.WHISPER_TYPE_CHAT |
| 258 | + | #if not error: |
| 259 | # chatType = chat.WHISPER_TYPE_CHAT | |
| 260 | - | chatType = chat.WHISPER_TYPE_SYSTEM |
| 260 | + | |
| 261 | # chatType = chat.WHISPER_TYPE_SYSTEM | |
| 262 | - | time = datetime.fromtimestamp(unixTime).timetuple() |
| 262 | + | |
| 263 | #time = datetime.fromtimestamp(unixTime).timetuple() | |
| 264 | - | chat.AppendToBox(chatType, "$EXCHANGE_CHAT$", "["+strftime("%H:%M:%S", time) + "] "+info)
|
| 264 | + | |
| 265 | #chat.AppendToBox(chatType, "$EXCHANGE_CHAT$", "["+strftime("%H:%M:%S", time) + "] "+info)
| |
| 266 | ||
| 267 | def SetItemToolTip(self, tooltipItem): | |
| 268 | self.tooltipItem = tooltipItem | |
| 269 | ||
| 270 | def OpenPickMoneyDialog(self): | |
| 271 | if self.OwnerMoney.GetText() != "0" or self.OwnerCheque.GetText() != "0" : | |
| 272 | return | |
| 273 | ||
| 274 | if app.ENABLE_CHEQUE_SYSTEM: | |
| 275 | if exchange.GetElkFromSelf() > 0 or exchange.GetChequeFromSelf() > 0: | |
| 276 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANT_EDIT_MONEY) | |
| 277 | return | |
| 278 | ||
| 279 | self.dlgPickMoney.Open(player.GetElk(), player.GetCheque()) | |
| 280 | else: | |
| 281 | if exchange.GetElkFromSelf() > 0: | |
| 282 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANT_EDIT_MONEY) | |
| 283 | return | |
| 284 | ||
| 285 | self.dlgPickMoney.Open(player.GetElk()) | |
| 286 | ||
| 287 | def OnPickMoney(self, money, cheque): | |
| 288 | if app.ENABLE_CHEQUE_SYSTEM: | |
| 289 | if money > 0: | |
| 290 | net.SendExchangeElkAddPacket(money) | |
| 291 | if cheque > 0: | |
| 292 | net.SendExchangeChequeAddPacket(cheque) | |
| 293 | else: | |
| 294 | net.SendExchangeElkAddPacket(money) | |
| 295 | ||
| 296 | def ReadyExchange(self): | |
| 297 | emptyslots = 0; | |
| 298 | emptyslots_self = 0; | |
| 299 | for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): | |
| 300 | itemVnum_self = exchange.GetItemVnumFromSelf(i) | |
| 301 | itemVnum = exchange.GetItemVnumFromTarget(i) | |
| 302 | if itemVnum == 0: | |
| 303 | emptyslots += 1 | |
| 304 | if itemVnum_self == 0: | |
| 305 | emptyslots_self += 1 | |
| 306 | ||
| 307 | # if emptyslots_self != exchange.EXCHANGE_ITEM_MAX_NUM: | |
| 308 | # if emptyslots == exchange.EXCHANGE_ITEM_MAX_NUM and exchange.GetElkFromTarget() <= 10000: | |
| 309 | # self.questionDialog = uiCommon.QuestionDialog3() | |
| 310 | # self.questionDialog.SetText1(localeInfo.TRADE_FOR_NOTHING1) | |
| 311 | # self.questionDialog.SetText2(localeInfo.TRADE_FOR_NOTHING2) | |
| 312 | # self.questionDialog.SetText3(localeInfo.TRADE_FOR_NOTHING3) | |
| 313 | # self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.DoExchange)) | |
| 314 | # self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog)) | |
| 315 | # self.questionDialog.Open() | |
| 316 | # else: | |
| 317 | # self.DoExchange() | |
| 318 | # else: | |
| 319 | self.DoExchange() | |
| 320 | ||
| 321 | def DoExchange(self): | |
| 322 | net.SendExchangeAcceptPacket() | |
| 323 | self.OnCloseQuestionDialog() | |
| 324 | ||
| 325 | def OnCloseQuestionDialog(self): | |
| 326 | if not self.questionDialog: | |
| 327 | return | |
| 328 | ||
| 329 | self.questionDialog.Close() | |
| 330 | self.questionDialog = None | |
| 331 | constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0) | |
| 332 | ||
| 333 | - | chat.SetBoxPosition("$EXCHANGE_CHAT$", 1 - self.scrollBar.GetPos())
|
| 333 | + | |
| 334 | pass | |
| 335 | #chat.SetBoxPosition("$EXCHANGE_CHAT$", 1 - self.scrollBar.GetPos())
| |
| 336 | ||
| 337 | def SelectOwnerEmptySlot(self, SlotIndex): | |
| 338 | ||
| 339 | if False == mouseModule.mouseController.isAttached(): | |
| 340 | return | |
| 341 | ||
| 342 | if mouseModule.mouseController.IsAttachedMoney(): | |
| 343 | net.SendExchangeElkAddPacket(long(mouseModule.mouseController.GetAttachedMoneyAmount())) | |
| 344 | else: | |
| 345 | attachedSlotType = mouseModule.mouseController.GetAttachedType() | |
| 346 | if (player.SLOT_TYPE_INVENTORY == attachedSlotType or player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedSlotType): | |
| 347 | ||
| 348 | attachedInvenType = player.SlotTypeToInvenType(attachedSlotType) | |
| 349 | SrcSlotNumber = mouseModule.mouseController.GetRealAttachedSlotNumber() | |
| 350 | DstSlotNumber = SlotIndex | |
| 351 | ||
| 352 | itemID = player.GetItemIndex(attachedInvenType, SrcSlotNumber) | |
| 353 | item.SelectItem(itemID) | |
| 354 | ||
| 355 | if item.IsAntiFlag(item.ANTIFLAG_GIVE): | |
| 356 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE) | |
| 357 | mouseModule.mouseController.DeattachObject() | |
| 358 | return | |
| 359 | ||
| 360 | if app.ENABLE_SOULBIND_SYSTEM: | |
| 361 | if player.GetItemSealDate(attachedInvenType, SrcSlotNumber): | |
| 362 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE_SEAL_ITEM) | |
| 363 | return | |
| 364 | ||
| 365 | print "src:", SrcSlotNumber, ", dst:", DstSlotNumber | |
| 366 | net.SendExchangeItemAddPacket(attachedInvenType, SrcSlotNumber, DstSlotNumber) | |
| 367 | if app.UK_ENABLE_SPECIAL_STORAGE: | |
| 368 | if player.SLOT_TYPE_UPGRADE_INVENTORY == attachedSlotType or\ | |
| 369 | player.SLOT_TYPE_BOOK_INVENTORY == attachedSlotType or\ | |
| 370 | player.SLOT_TYPE_STONE_INVENTORY == attachedSlotType or\ | |
| 371 | player.SLOT_TYPE_ATTR_INVENTORY == attachedSlotType or\ | |
| 372 | player.SLOT_TYPE_FLOWER_INVENTORY == attachedSlotType or\ | |
| 373 | player.SLOT_TYPE_BLEND_INVENTORY == attachedSlotType: | |
| 374 | attachedInvenType = player.SlotTypeToInvenType(attachedSlotType) | |
| 375 | SrcSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber() | |
| 376 | DstSlotNumber = SlotIndex | |
| 377 | ||
| 378 | itemID = player.GetItemIndex(attachedSlotType, SrcSlotNumber) | |
| 379 | item.SelectItem(itemID) | |
| 380 | ||
| 381 | if item.IsAntiFlag(item.ANTIFLAG_GIVE): | |
| 382 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE) | |
| 383 | mouseModule.mouseController.DeattachObject() | |
| 384 | return | |
| 385 | ||
| 386 | if app.ENABLE_SOULBIND_SYSTEM: | |
| 387 | if player.GetItemSealDate(attachedInvenType, SrcSlotNumber): | |
| 388 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE_SEAL_ITEM) | |
| 389 | return | |
| 390 | ||
| 391 | net.SendExchangeItemAddPacket(attachedInvenType, SrcSlotNumber, DstSlotNumber) | |
| 392 | ||
| 393 | mouseModule.mouseController.DeattachObject() | |
| 394 | ||
| 395 | def RightClickItemSlot(self, SlotIndex): | |
| 396 | print "Requesting removal of", SlotIndex | |
| 397 | net.SendExchangeItemDelPacket(SlotIndex) | |
| 398 | self.lockedItems[SlotIndex] = (-1, -1) | |
| 399 | ||
| 400 | def SelectOwnerItemSlot(self, SlotIndex): | |
| 401 | print "SelectOwnerItemSlot: ",SlotIndex | |
| 402 | if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex(): | |
| 403 | money = mouseModule.mouseController.GetAttachedItemCount() | |
| 404 | net.SendExchangeElkAddPacket(long(money)) | |
| 405 | ||
| 406 | def HighlightSlots(self, isSelf): | |
| 407 | if isSelf: | |
| 408 | slotWindow = self.OwnerSlot | |
| 409 | getItemVnumFunc = exchange.GetItemVnumFromSelf | |
| 410 | else: | |
| 411 | slotWindow = self.TargetSlot | |
| 412 | getItemVnumFunc = exchange.GetItemVnumFromTarget | |
| 413 | ||
| 414 | for slotIndex in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): | |
| 415 | itemVnum = getItemVnumFunc(slotIndex) | |
| 416 | if itemVnum < 1: | |
| 417 | continue | |
| 418 | ||
| 419 | item.SelectItem(itemVnum) | |
| 420 | itemType = item.GetItemType() | |
| 421 | if itemType != item.ITEM_TYPE_WEAPON and itemType != item.ITEM_TYPE_ARMOR: | |
| 422 | continue | |
| 423 | ||
| 424 | itemName = item.GetItemName() | |
| 425 | _, itemHeight = item.GetItemSize() | |
| 426 | ||
| 427 | for plus in xrange(6, 9+1): | |
| 428 | if "+"+str(plus) in itemName or "+ "+str(plus) in itemName: | |
| 429 | print "Found",plus,"in the item name" | |
| 430 | ||
| 431 | for row in xrange(0, itemHeight): | |
| 432 | print "Setting bg for: "+str(slotIndex + row*6) | |
| 433 | slotWindow.SetSlotHighlightedGreeen(slotIndex + row*6,0) | |
| 434 | ||
| 435 | break # Outside the plus loop | |
| 436 | ||
| 437 | #slotWindow.ClearBackgroundImage() | |
| 438 | ||
| 439 | def RefreshOwnerSlot(self): | |
| 440 | for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): | |
| 441 | itemVnum = exchange.GetItemVnumFromSelf(i) | |
| 442 | itemCount = exchange.GetItemCountFromSelf(i) | |
| 443 | ||
| 444 | if itemCount == 1: | |
| 445 | itemCount = 0 | |
| 446 | ||
| 447 | self.OwnerSlot.SetItemSlot(i, itemVnum, itemCount) | |
| 448 | if app.ENABLE_CHANGELOOK_SYSTEM: | |
| 449 | itemTransmutedVnum = exchange.GetItemTransmutation(i, True) | |
| 450 | if itemTransmutedVnum: | |
| 451 | self.OwnerSlot.DisableCoverButton(i) | |
| 452 | else: | |
| 453 | self.OwnerSlot.EnableCoverButton(i) | |
| 454 | ||
| 455 | # See if any item needs highlighting | |
| 456 | self.HighlightSlots(True) | |
| 457 | self.OwnerSlot.RefreshSlot() | |
| 458 | ||
| 459 | def RefreshTargetSlot(self): | |
| 460 | for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): | |
| 461 | itemVnum = exchange.GetItemVnumFromTarget(i) | |
| 462 | itemCount = exchange.GetItemCountFromTarget(i) | |
| 463 | if itemCount == 1: | |
| 464 | itemCount = 0 | |
| 465 | ||
| 466 | self.TargetSlot.SetItemSlot(i, itemVnum, itemCount) | |
| 467 | if app.ENABLE_CHANGELOOK_SYSTEM: | |
| 468 | itemTransmutedVnum = exchange.GetItemTransmutation(i, False) | |
| 469 | if itemTransmutedVnum: | |
| 470 | self.TargetSlot.DisableCoverButton(i) | |
| 471 | else: | |
| 472 | self.TargetSlot.EnableCoverButton(i) | |
| 473 | ||
| 474 | # See if the any item needs highlighting | |
| 475 | self.HighlightSlots(False) | |
| 476 | self.TargetSlot.RefreshSlot() | |
| 477 | ||
| 478 | def Refresh(self): | |
| 479 | self.RefreshOwnerSlot() | |
| 480 | self.RefreshTargetSlot() | |
| 481 | self.RefreshLockedSlot() | |
| 482 | ||
| 483 | self.OwnerMoney.SetText(localeInfo.NumberToString(exchange.GetElkFromSelf())) | |
| 484 | self.TargetMoney.SetText(localeInfo.NumberToString(exchange.GetElkFromTarget())) | |
| 485 | if app.ENABLE_CHEQUE_SYSTEM: | |
| 486 | self.OwnerCheque.SetText(localeInfo.NumberToString(exchange.GetChequeFromSelf())) | |
| 487 | self.TargetCheque.SetText(localeInfo.NumberToString(exchange.GetChequeFromTarget())) | |
| 488 | ||
| 489 | if exchange.GetAcceptFromSelf(): | |
| 490 | self.OwnerOverlay.Show() | |
| 491 | ||
| 492 | self.ReadyButton.SetUpVisual(BASE_VISUALS_ROUTE+"player_ready_button.tga"); | |
| 493 | self.ReadyButton.SetDownVisual(BASE_VISUALS_ROUTE+"player_ready_button.tga"); | |
| 494 | self.ReadyButton.SetOverVisual(BASE_VISUALS_ROUTE+"player_ready_button.tga"); | |
| 495 | else: | |
| 496 | self.OwnerOverlay.Hide() | |
| 497 | ||
| 498 | if exchange.GetAcceptFromTarget(): | |
| 499 | self.TargetOverlay.Show() | |
| 500 | ||
| 501 | self.ReadyButton.SetUpVisual(BASE_VISUALS_ROUTE+"target_ready_button.tga"); | |
| 502 | self.ReadyButton.SetDownVisual(BASE_VISUALS_ROUTE+"target_ready_button.tga"); | |
| 503 | self.ReadyButton.SetOverVisual(BASE_VISUALS_ROUTE+"target_ready_button.tga"); | |
| 504 | else: | |
| 505 | self.TargetOverlay.Hide() | |
| 506 | ||
| 507 | if not exchange.GetAcceptFromSelf() and not exchange.GetAcceptFromTarget(): | |
| 508 | self.ReadyButton.SetUpVisual(BASE_VISUALS_ROUTE+"none_ready_button.tga"); | |
| 509 | self.ReadyButton.SetDownVisual(BASE_VISUALS_ROUTE+"none_ready_button.tga"); | |
| 510 | self.ReadyButton.SetOverVisual(BASE_VISUALS_ROUTE+"none_ready_button.tga"); | |
| 511 | ||
| 512 | def OverInOwnerItem(self, slotIndex): | |
| 513 | ||
| 514 | if 0 != self.tooltipItem: | |
| 515 | self.tooltipItem.SetExchangeOwnerItem(slotIndex) | |
| 516 | ||
| 517 | def OverInTargetItem(self, slotIndex): | |
| 518 | ||
| 519 | if 0 != self.tooltipItem: | |
| 520 | self.tooltipItem.SetExchangeTargetItem(slotIndex) | |
| 521 | ||
| 522 | def OverOutItem(self): | |
| 523 | ||
| 524 | if 0 != self.tooltipItem: | |
| 525 | self.tooltipItem.HideToolTip() | |
| 526 | ||
| 527 | def OnTop(self): | |
| 528 | if self.tooltipItem: | |
| 529 | self.tooltipItem.SetTop() | |
| 530 | ||
| 531 | def BindInterface(self, interface): | |
| 532 | self.interface = interface | |
| 533 | ||
| 534 | def OnMouseLeftButtonDown(self): | |
| 535 | hyperlink = ui.GetHyperlink() | |
| 536 | if hyperlink: | |
| 537 | self.interface.MakeHyperlinkTooltip(hyperlink) | |
| 538 | ||
| 539 | def OnUpdate(self): | |
| 540 | USE_EXCHANGE_LIMIT_RANGE = 1000 | |
| 541 | ||
| 542 | (x, y, z) = player.GetMainCharacterPosition() | |
| 543 | if abs(x - self.xStart) > USE_EXCHANGE_LIMIT_RANGE or abs(y - self.yStart) > USE_EXCHANGE_LIMIT_RANGE: | |
| 544 | (self.xStart, self.yStart, z) = player.GetMainCharacterPosition() | |
| 545 | net.SendExchangeExitPacket() | |
| 546 | ||
| 547 | def CantTradableItem(self, destSlotIndex, srcSlotIndex): | |
| 548 | if True == exchange.GetAcceptFromTarget(): | |
| 549 | return | |
| 550 | ||
| 551 | itemInvenPage = srcSlotIndex / player.INVENTORY_PAGE_SIZE | |
| 552 | localSlotPos = srcSlotIndex - (itemInvenPage * player.INVENTORY_PAGE_SIZE) | |
| 553 | self.lockedItems[destSlotIndex] = (itemInvenPage, localSlotPos) | |
| 554 | ||
| 555 | if self.wndInventory.GetInventoryPageIndex() == itemInvenPage and self.IsShow(): | |
| 556 | self.wndInventory.wndItem.SetCantMouseEventSlot(localSlotPos) | |
| 557 | ||
| 558 | def RefreshLockedSlot(self): | |
| 559 | if self.wndInventory: | |
| 560 | for exchangePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items(): | |
| 561 | if self.wndInventory.GetInventoryPageIndex() == itemInvenPage: | |
| 562 | self.wndInventory.wndItem.SetCantMouseEventSlot(itemSlotPos) | |
| 563 | ||
| 564 | self.wndInventory.wndItem.RefreshSlot() | |
| 565 | ||
| 566 | def SetInven(self, wndInventory): | |
| 567 | from _weakref import proxy | |
| 568 | self.wndInventory = proxy(wndInventory) | |
| 569 | ||
| 570 | if app.ENABLE_FAST_ATTACH_ITEMS_SYSTEM: | |
| 571 | def __GetCurrentItemGrid(self): | |
| 572 | itemGrid = [False for cell in xrange(exchange.EXCHANGE_ITEM_MAX_NUM)] | |
| 573 | ||
| 574 | for slot in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): | |
| 575 | itemVnum = exchange.GetItemVnumFromSelf(slot) | |
| 576 | if itemVnum <> 0: | |
| 577 | item.SelectItem(itemVnum) | |
| 578 | (w, h) = item.GetItemSize() | |
| 579 | for i in xrange(h): | |
| 580 | itemGrid[slot + i * 6] = True | |
| 581 | ||
| 582 | return itemGrid | |
| 583 | ||
| 584 | def __FindEmptyCellForSize(self, itemGrid, size): | |
| 585 | for slot in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): | |
| 586 | if itemGrid[slot] == False: | |
| 587 | possible = True | |
| 588 | for i in xrange(size): | |
| 589 | p = slot + 6 * i | |
| 590 | try: | |
| 591 | if itemGrid[p] == True: | |
| 592 | possible = False | |
| 593 | break | |
| 594 | except IndexError: | |
| 595 | possible = False | |
| 596 | break | |
| 597 | ||
| 598 | if possible: | |
| 599 | return slot | |
| 600 | ||
| 601 | return -1 | |
| 602 | ||
| 603 | def AttachItemFromInventory(self, slotWindow, slotIndex): | |
| 604 | attachedItemID = player.GetItemIndex(slotWindow, slotIndex) | |
| 605 | item.SelectItem(attachedItemID) | |
| 606 | if item.IsAntiFlag(item.ITEM_ANTIFLAG_GIVE): | |
| 607 | return False | |
| 608 | ||
| 609 | itemGrid = self.__GetCurrentItemGrid() | |
| 610 | ||
| 611 | item.SelectItem(attachedItemID) | |
| 612 | emptySlot = self.__FindEmptyCellForSize(itemGrid, item.GetItemSize()[1]) | |
| 613 | if emptySlot == -1 or item.GetItemType() == item.ITEM_TYPE_ELK: | |
| 614 | return False | |
| 615 | ||
| 616 | net.SendExchangeItemAddPacket(slotWindow, slotIndex, emptySlot) | |
| 617 | return True | |
| 618 | ||
| 619 | else: | |
| 620 | class ExchangeDialog(ui.ScriptWindow): | |
| 621 | ||
| 622 | def __init__(self): | |
| 623 | ui.ScriptWindow.__init__(self) | |
| 624 | self.TitleName = 0 | |
| 625 | self.tooltipItem = 0 | |
| 626 | self.xStart = 0 | |
| 627 | self.yStart = 0 | |
| 628 | ||
| 629 | def __del__(self): | |
| 630 | ui.ScriptWindow.__del__(self) | |
| 631 | ||
| 632 | def LoadDialog(self): | |
| 633 | PythonScriptLoader = ui.PythonScriptLoader() | |
| 634 | PythonScriptLoader.LoadScriptFile(self, "UIScript/exchangedialog.py") | |
| 635 | ||
| 636 | ## Owner | |
| 637 | self.OwnerSlot = self.GetChild("Owner_Slot")
| |
| 638 | self.OwnerSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectOwnerEmptySlot)) | |
| 639 | self.OwnerSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectOwnerItemSlot)) | |
| 640 | self.OwnerSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInOwnerItem)) | |
| 641 | self.OwnerSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) | |
| 642 | self.OwnerMoney = self.GetChild("Owner_Money_Value")
| |
| 643 | self.OwnerAcceptLight = self.GetChild("Owner_Accept_Light")
| |
| 644 | self.OwnerAcceptLight.Disable() | |
| 645 | self.OwnerMoneyButton = self.GetChild("Owner_Money")
| |
| 646 | self.OwnerMoneyButton.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog)) | |
| 647 | ||
| 648 | ## Target | |
| 649 | self.TargetSlot = self.GetChild("Target_Slot")
| |
| 650 | self.TargetSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInTargetItem)) | |
| 651 | self.TargetSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem)) | |
| 652 | self.TargetMoney = self.GetChild("Target_Money_Value")
| |
| 653 | self.TargetAcceptLight = self.GetChild("Target_Accept_Light")
| |
| 654 | self.TargetAcceptLight.Disable() | |
| 655 | ||
| 656 | ## PickMoneyDialog | |
| 657 | dlgPickMoney = uiPickMoney.PickMoneyDialog() | |
| 658 | dlgPickMoney.LoadDialog() | |
| 659 | dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney)) | |
| 660 | dlgPickMoney.SetTitleName(localeInfo.EXCHANGE_MONEY) | |
| 661 | if app.ENABLE_FULL_YANG_SYSTEM: | |
| 662 | dlgPickMoney.SetMax(10) | |
| 663 | else: | |
| 664 | dlgPickMoney.SetMax(7) | |
| 665 | dlgPickMoney.Hide() | |
| 666 | self.dlgPickMoney = dlgPickMoney | |
| 667 | ||
| 668 | ## Button | |
| 669 | self.AcceptButton = self.GetChild("Owner_Accept_Button")
| |
| 670 | self.AcceptButton.SetToggleDownEvent(ui.__mem_func__(self.AcceptExchange)) | |
| 671 | ||
| 672 | self.TitleName = self.GetChild("TitleName")
| |
| 673 | self.GetChild("TitleBar").SetCloseEvent(net.SendExchangeExitPacket)
| |
| 674 | ||
| 675 | def Destroy(self): | |
| 676 | print "---------------------------------------------------------------------------- DESTROY EXCHANGE" | |
| 677 | self.ClearDictionary() | |
| 678 | self.dlgPickMoney.Destroy() | |
| 679 | self.dlgPickMoney = 0 | |
| 680 | self.OwnerSlot = 0 | |
| 681 | self.OwnerMoney = 0 | |
| 682 | self.OwnerAcceptLight = 0 | |
| 683 | self.OwnerMoneyButton = 0 | |
| 684 | self.TargetSlot = 0 | |
| 685 | self.TargetMoney = 0 | |
| 686 | self.TargetAcceptLight = 0 | |
| 687 | self.TitleName = 0 | |
| 688 | self.AcceptButton = 0 | |
| 689 | self.tooltipItem = 0 | |
| 690 | ||
| 691 | def OpenDialog(self): | |
| 692 | self.TitleName.SetText(localeInfo.EXCHANGE_TITLE_LEVEL % (exchange.GetNameFromTarget(), exchange.GetLevelFromTarget())) | |
| 693 | self.AcceptButton.Enable() | |
| 694 | self.AcceptButton.SetUp() | |
| 695 | self.Show() | |
| 696 | ||
| 697 | (self.xStart, self.yStart, z) = player.GetMainCharacterPosition() | |
| 698 | ||
| 699 | def CloseDialog(self): | |
| 700 | wndMgr.OnceIgnoreMouseLeftButtonUpEvent() | |
| 701 | ||
| 702 | if 0 != self.tooltipItem: | |
| 703 | self.tooltipItem.HideToolTip() | |
| 704 | ||
| 705 | self.dlgPickMoney.Close() | |
| 706 | self.Hide() | |
| 707 | ||
| 708 | def SetItemToolTip(self, tooltipItem): | |
| 709 | self.tooltipItem = tooltipItem | |
| 710 | ||
| 711 | def OpenPickMoneyDialog(self): | |
| 712 | ||
| 713 | if exchange.GetElkFromSelf() > 0: | |
| 714 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANT_EDIT_MONEY) | |
| 715 | return | |
| 716 | ||
| 717 | self.dlgPickMoney.Open(player.GetElk()) | |
| 718 | ||
| 719 | def OnPickMoney(self, money): | |
| 720 | net.SendExchangeElkAddPacket(money) | |
| 721 | ||
| 722 | def AcceptExchange(self): | |
| 723 | net.SendExchangeAcceptPacket() | |
| 724 | self.AcceptButton.Disable() | |
| 725 | ||
| 726 | def SelectOwnerEmptySlot(self, SlotIndex): | |
| 727 | ||
| 728 | if False == mouseModule.mouseController.isAttached(): | |
| 729 | return | |
| 730 | ||
| 731 | if mouseModule.mouseController.IsAttachedMoney(): | |
| 732 | net.SendExchangeElkAddPacket(mouseModule.mouseController.GetAttachedMoneyAmount()) | |
| 733 | else: | |
| 734 | attachedSlotType = mouseModule.mouseController.GetAttachedType() | |
| 735 | if (player.SLOT_TYPE_INVENTORY == attachedSlotType | |
| 736 | or player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedSlotType): | |
| 737 | ||
| 738 | attachedInvenType = player.SlotTypeToInvenType(attachedSlotType) | |
| 739 | SrcSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber() | |
| 740 | DstSlotNumber = SlotIndex | |
| 741 | ||
| 742 | itemID = player.GetItemIndex(attachedInvenType, SrcSlotNumber) | |
| 743 | item.SelectItem(itemID) | |
| 744 | ||
| 745 | if item.IsAntiFlag(item.ANTIFLAG_GIVE): | |
| 746 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE) | |
| 747 | mouseModule.mouseController.DeattachObject() | |
| 748 | return | |
| 749 | ||
| 750 | if app.ENABLE_SOULBIND_SYSTEM: | |
| 751 | if player.GetItemSealDate(attachedInvenType, SrcSlotNumber): | |
| 752 | chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE_SEAL_ITEM) | |
| 753 | return | |
| 754 | ||
| 755 | net.SendExchangeItemAddPacket(attachedInvenType, SrcSlotNumber, DstSlotNumber) | |
| 756 | ||
| 757 | mouseModule.mouseController.DeattachObject() | |
| 758 | ||
| 759 | def SelectOwnerItemSlot(self, SlotIndex): | |
| 760 | ||
| 761 | if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex(): | |
| 762 | ||
| 763 | money = mouseModule.mouseController.GetAttachedItemCount() | |
| 764 | net.SendExchangeElkAddPacket(money) | |
| 765 | ||
| 766 | def RefreshOwnerSlot(self): | |
| 767 | for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): | |
| 768 | itemIndex = exchange.GetItemVnumFromSelf(i) | |
| 769 | itemCount = exchange.GetItemCountFromSelf(i) | |
| 770 | if 1 == itemCount: | |
| 771 | itemCount = 0 | |
| 772 | self.OwnerSlot.SetItemSlot(i, itemIndex, itemCount) | |
| 773 | self.OwnerSlot.RefreshSlot() | |
| 774 | ||
| 775 | def RefreshTargetSlot(self): | |
| 776 | for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM): | |
| 777 | itemIndex = exchange.GetItemVnumFromTarget(i) | |
| 778 | itemCount = exchange.GetItemCountFromTarget(i) | |
| 779 | if 1 == itemCount: | |
| 780 | itemCount = 0 | |
| 781 | self.TargetSlot.SetItemSlot(i, itemIndex, itemCount) | |
| 782 | self.TargetSlot.RefreshSlot() | |
| 783 | ||
| 784 | def Refresh(self): | |
| 785 | ||
| 786 | self.RefreshOwnerSlot() | |
| 787 | self.RefreshTargetSlot() | |
| 788 | ||
| 789 | self.OwnerMoney.SetText(localeInfo.NumberToMoneyString(exchange.GetElkFromSelf())) | |
| 790 | self.TargetMoney.SetText(localeInfo.NumberToMoneyString(exchange.GetElkFromTarget())) | |
| 791 | ||
| 792 | if True == exchange.GetAcceptFromSelf(): | |
| 793 | self.OwnerAcceptLight.Down() | |
| 794 | else: | |
| 795 | self.AcceptButton.Enable() | |
| 796 | self.AcceptButton.SetUp() | |
| 797 | self.OwnerAcceptLight.SetUp() | |
| 798 | ||
| 799 | if True == exchange.GetAcceptFromTarget(): | |
| 800 | self.TargetAcceptLight.Down() | |
| 801 | else: | |
| 802 | self.TargetAcceptLight.SetUp() | |
| 803 | ||
| 804 | def OverInOwnerItem(self, slotIndex): | |
| 805 | ||
| 806 | if 0 != self.tooltipItem: | |
| 807 | self.tooltipItem.SetExchangeOwnerItem(slotIndex) | |
| 808 | ||
| 809 | def OverInTargetItem(self, slotIndex): | |
| 810 | ||
| 811 | if 0 != self.tooltipItem: | |
| 812 | self.tooltipItem.SetExchangeTargetItem(slotIndex) | |
| 813 | ||
| 814 | def OverOutItem(self): | |
| 815 | ||
| 816 | if 0 != self.tooltipItem: | |
| 817 | self.tooltipItem.HideToolTip() | |
| 818 | ||
| 819 | def OnTop(self): | |
| 820 | self.tooltipItem.SetTop() | |
| 821 | ||
| 822 | def OnUpdate(self): | |
| 823 | ||
| 824 | USE_EXCHANGE_LIMIT_RANGE = 1000 | |
| 825 | ||
| 826 | (x, y, z) = player.GetMainCharacterPosition() | |
| 827 | if abs(x - self.xStart) > USE_EXCHANGE_LIMIT_RANGE or abs(y - self.yStart) > USE_EXCHANGE_LIMIT_RANGE: | |
| 828 | (self.xStart, self.yStart, z) = player.GetMainCharacterPosition() | |
| 829 | net.SendExchangeExitPacket() | |
| 830 |