HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
sağol reis depo genişletme bilen varsa paylaşabilirmi
Merhaba arkadaşlar, forumda araştırma yapmıştım 80 Slot olanı vardı fakat 120 olanını görememiştim. Kodları alıp 120 Slota uyarladım. İsteyenler aynı şekilde ekleyebilir. Kodlar sorunsuz ve Server Files'a eklenmiştir.[CODE title="common/length.h = Aç"] ARAT: SHOP_HOST_ITEM_MAX_NUM = 40
.:KANIT:.
![]()
GAME SOURCE
DEĞİŞTİR: SHOP_HOST_ITEM_MAX_NUM = 120
[/CODE]
[CODE title="Aynı Dosya"]ARAT: SHOP_PRICELIST_MAX_NUM = 40
DEĞİŞTİR: SHOP_PRICELIST_MAX_NUM = 120[/CODE]
[CODE title="game/shop.cpp = Aç"]ARAT: m_pGrid = M2_NEW CGrid(5, 9)
DEĞİŞTİR: m_pGrid = M2_NEW CGrid(15, 9)
[/CODE]
[CODE title="game/shop_manager.cpp = Aç"]ARAT: m_pGrid = M2_NEW CGrid(5, 9)
DEĞİŞTİR: m_pGrid = M2_NEW CGrid(15, 9)
[/CODE]
CLIENT SOURCE[CODE title="UserInterface/Packet.h Aç "]ARAT: SHOP_HOST_ITEM_MAX_NUM = 40
DEĞİŞTİR: SHOP_HOST_ITEM_MAX_NUM = 120
[/CODE]
PACK
uiScript'den, shopdialog.py dosyasını açın. Aşağıdaki kod bloğunu gerekli yerden değiştirin.
Kod:window = { "name" : "ShopDialog", "x" : SCREEN_WIDTH - 400, "y" : 27, "style" : ("movable", "float",), "width" : 184 + 320, "height" : 328, "children" : ( { "name" : "board", "type" : "board", "style" : ("attach",), "x" : 0, "y" : 0, "width" : 184 + 320, "height" : 328, "children" : ( ## Title { "name" : "TitleBar", "type" : "titlebar", "style" : ("attach",), "x" : 8, "y" : 8, "width" : 184 + 305, "color" : "gray", "children" : ( { "name":"TitleName", "type":"text", "x":84 + 160, "y":4, "text":uiScriptLocale.SHOP_TITLE, "text_horizontal_align":"center" }, ), }, ## Item Slot { "name" : "ItemSlot", "type" : "grid_table", "x" : 12, "y" : 34, "start_index" : 0, "x_count" : 15, "y_count" : 8, "x_step" : 32, "y_step" : 32, "image" : "d:/ymir work/ui/public/Slot_Base.sub", }, ## Buy { "name" : "BuyButton", "type" : "toggle_button", "x" : 21, "y" : 295, "width" : 61, "height" : 21, "text" : uiScriptLocale.SHOP_BUY, "default_image" : "d:/ymir work/ui/public/middle_button_01.sub", "over_image" : "d:/ymir work/ui/public/middle_button_02.sub", "down_image" : "d:/ymir work/ui/public/middle_button_03.sub", }, ## Sell { "name" : "SellButton", "type" : "toggle_button", "x" : 104 + 320, "y" : 295, "width" : 61, "height" : 21, "text" : uiScriptLocale.SHOP_SELL, "default_image" : "d:/ymir work/ui/public/middle_button_01.sub", "over_image" : "d:/ymir work/ui/public/middle_button_02.sub", "down_image" : "d:/ymir work/ui/public/middle_button_03.sub", }, ## Close { "name" : "CloseButton", "type" : "button", "x" : 50, "y" : 295, "horizontal_align" : "center", "text" : uiScriptLocale.PRIVATE_SHOP_CLOSE_BUTTON, "default_image" : "d:/ymir work/ui/public/large_button_01.sub", "over_image" : "d:/ymir work/ui/public/large_button_02.sub", "down_image" : "d:/ymir work/ui/public/large_button_03.sub", },
Merhaba dediğini yapıyorum ama karekter seçme ekranına gelince karekteri seçiyorum oyuna giriş yapamıyorum yüklenme ekranında donup kalıyor her dediğinizi yaptım ama tek bu shop_manager.cpp içerisinde ki kod bende yok..
Bu kod
[CODE title="game/shop_manager.cpp = Aç"]ARAT: m_pGrid = M2_NEW CGrid(5, 9)
DEĞİŞTİR: m_pGrid = M2_NEW CGrid(15, 9)
[/CODE]
Syserr.txt de hatamda bu ;
[CODE title="Syserr.txt"]0303 16:31:10658 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/recuperation/autodrugup_red.mse) Error
0303 16:31:10658 :: CInstanceBase::RegisterEffect(eEftType=267, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/recuperation/autodrugup_red.mse, isCache=1) - Error
0303 16:31:10658 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/recuperation/autodrugup_blue.mse) Error
0303 16:31:10658 :: CInstanceBase::RegisterEffect(eEftType=268, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/recuperation/autodrugup_blue.mse, isCache=1) - Error
0303 16:31:10658 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/buff/buff_item1.mse) Error
0303 16:31:10658 :: CInstanceBase::RegisterEffect(eEftType=269, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/buff/buff_item1.mse, isCache=1) - Error
0303 16:31:10658 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/buff/buff_item2.mse) Error
0303 16:31:10658 :: CInstanceBase::RegisterEffect(eEftType=270, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/buff/buff_item2.mse, isCache=1) - Error
0303 16:31:10659 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/buff/buff_item4.mse) Error
0303 16:31:10659 :: CInstanceBase::RegisterEffect(eEftType=272, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/buff/buff_item4.mse, isCache=1) - Error
0303 16:31:10685 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/hit/percent_damage1.mse) Error
0303 16:31:10685 :: CInstanceBase::RegisterEffect(eEftType=264, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/hit/percent_damage1.mse, isCache=1) - Error
0303 16:31:10685 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/hit/percent_damage2.mse) Error
0303 16:31:10685 :: CInstanceBase::RegisterEffect(eEftType=265, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/hit/percent_damage2.mse, isCache=1) - Error
0303 16:31:10685 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/hit/percent_damage3.mse) Error
0303 16:31:10685 :: CInstanceBase::RegisterEffect(eEftType=266, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/hit/percent_damage3.mse, isCache=1) - Error
0303 16:31:10939 :: invalid idx 0
0303 16:31:24711 :: GRANNY: r:/granny/rt/granny_file_info.cpp(145): File has run-time type tag of 0x8000000f, which doesn't match this version of Granny (0x80000010). Automatic conversion will be attempted.
0303 16:31:24941 :: CEffectManager::RegisterEffect - LoadScript(D:/ymir work/pc/common/effect/armor/armor-4-2-1.mse) Error
0303 16:31:24941 :: CInstanceBase::RegisterEffect(eEftType=248, c_szEftAttachBone=Bip01, c_szEftName=D:/ymir work/pc/common/effect/armor/armor-4-2-1.mse, isCache=0) - Error
0303 16:31:24941 :: CEffectManager::RegisterEffect - LoadScript(D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse) Error
0303 16:31:24941 :: CInstanceBase::RegisterEffect(eEftType=249, c_szEftAttachBone=Bip01, c_szEftName=D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse, isCache=0) - Error
0303 16:31:27122 :: Traceback (most recent call last):
0303 16:31:27122 :: File "networkModule.py", line 247, in SetGamePhase
0303 16:31:27122 :: File "game.py", line 98, in __init__
0303 16:31:27122 :: File "interfaceModule.py", line 287, in MakeInterface
0303 16:31:27122 :: File "interfaceModule.py", line 214, in __MakeDialogs
0303 16:31:27123 :: File "uiShop.py", line 83, in LoadDialog
0303 16:31:27123 :: AttributeError
0303 16:31:27123 :: :
0303 16:31:27123 :: 'ShopDialog' object has no attribute 'SelectEmptySlot'
0303 16:31:27123 ::
[/CODE]
uishop.py atMerhaba dediğini yapıyorum ama karekter seçme ekranına gelince karekteri seçiyorum oyuna giriş yapamıyorum yüklenme ekranında donup kalıyor her dediğinizi yaptım ama tek bu shop_manager.cpp içerisinde ki kod bende yok..
Bu kod
[CODE title="game/shop_manager.cpp = Aç"]ARAT: m_pGrid = M2_NEW CGrid(5, 9)
DEĞİŞTİR: m_pGrid = M2_NEW CGrid(15, 9)
[/CODE]
Syserr.txt de hatamda bu ;
[CODE title="Syserr.txt"]0303 16:31:10658 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/recuperation/autodrugup_red.mse) Error
0303 16:31:10658 :: CInstanceBase::RegisterEffect(eEftType=267, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/recuperation/autodrugup_red.mse, isCache=1) - Error
0303 16:31:10658 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/recuperation/autodrugup_blue.mse) Error
0303 16:31:10658 :: CInstanceBase::RegisterEffect(eEftType=268, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/recuperation/autodrugup_blue.mse, isCache=1) - Error
0303 16:31:10658 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/buff/buff_item1.mse) Error
0303 16:31:10658 :: CInstanceBase::RegisterEffect(eEftType=269, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/buff/buff_item1.mse, isCache=1) - Error
0303 16:31:10658 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/buff/buff_item2.mse) Error
0303 16:31:10658 :: CInstanceBase::RegisterEffect(eEftType=270, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/buff/buff_item2.mse, isCache=1) - Error
0303 16:31:10659 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/etc/buff/buff_item4.mse) Error
0303 16:31:10659 :: CInstanceBase::RegisterEffect(eEftType=272, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/etc/buff/buff_item4.mse, isCache=1) - Error
0303 16:31:10685 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/hit/percent_damage1.mse) Error
0303 16:31:10685 :: CInstanceBase::RegisterEffect(eEftType=264, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/hit/percent_damage1.mse, isCache=1) - Error
0303 16:31:10685 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/hit/percent_damage2.mse) Error
0303 16:31:10685 :: CInstanceBase::RegisterEffect(eEftType=265, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/hit/percent_damage2.mse, isCache=1) - Error
0303 16:31:10685 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/hit/percent_damage3.mse) Error
0303 16:31:10685 :: CInstanceBase::RegisterEffect(eEftType=266, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/hit/percent_damage3.mse, isCache=1) - Error
0303 16:31:10939 :: invalid idx 0
0303 16:31:24711 :: GRANNY: r:/granny/rt/granny_file_info.cpp(145): File has run-time type tag of 0x8000000f, which doesn't match this version of Granny (0x80000010). Automatic conversion will be attempted.
0303 16:31:24941 :: CEffectManager::RegisterEffect - LoadScript(D:/ymir work/pc/common/effect/armor/armor-4-2-1.mse) Error
0303 16:31:24941 :: CInstanceBase::RegisterEffect(eEftType=248, c_szEftAttachBone=Bip01, c_szEftName=D:/ymir work/pc/common/effect/armor/armor-4-2-1.mse, isCache=0) - Error
0303 16:31:24941 :: CEffectManager::RegisterEffect - LoadScript(D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse) Error
0303 16:31:24941 :: CInstanceBase::RegisterEffect(eEftType=249, c_szEftAttachBone=Bip01, c_szEftName=D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse, isCache=0) - Error
0303 16:31:27122 :: Traceback (most recent call last):
0303 16:31:27122 :: File "networkModule.py", line 247, in SetGamePhase
0303 16:31:27122 :: File "game.py", line 98, in __init__
0303 16:31:27122 :: File "interfaceModule.py", line 287, in MakeInterface
0303 16:31:27122 :: File "interfaceModule.py", line 214, in __MakeDialogs
0303 16:31:27123 :: File "uiShop.py", line 83, in LoadDialog
0303 16:31:27123 :: AttributeError
0303 16:31:27123 :: :
0303 16:31:27123 :: 'ShopDialog' object has no attribute 'SelectEmptySlot'
0303 16:31:27123 ::
[/CODE]
uishop.py at
[CODE title="uishop.py"]import net
import player
import item
import snd
import shop
import net
import wndMgr
import app
import chat
import ui
import uiCommon
import mouseModule
import localeInfo
import constInfo
###################################################################################################
## Shop
class ShopDialog(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.tooltipItem = 0
self.xShopStart = 0
self.yShopStart = 0
self.questionDialog = None
self.popup = None
self.itemBuyQuestionDialog = None
def __del__(self):
ui.ScriptWindow.__del__(self)
def __GetRealIndex(self, i):
return self.tabIdx * shop.SHOP_SLOT_COUNT + i
def Refresh(self):
getItemID=shop.GetItemID
getItemCount=shop.GetItemCount
setItemID=self.itemSlotWindow.SetItemSlot
for i in xrange(shop.SHOP_SLOT_COUNT):
idx = self.__GetRealIndex(i)
itemCount = getItemCount(idx)
if itemCount <= 1:
itemCount = 0
setItemID(i, getItemID(idx), itemCount)
wndMgr.RefreshSlot(self.itemSlotWindow.GetWindowHandle())
def SetItemData(self, pos, itemID, itemCount, itemPrice):
shop.SetItemData(pos, itemID, itemCount, itemPrice)
def LoadDialog(self):
try:
PythonScriptLoader = ui.PythonScriptLoader()
PythonScriptLoader.LoadScriptFile(self, "UIScript/shopdialog.py")
except:
import exception
exception.Abort("ShopDialog.LoadDialog.LoadObject")
smallTab1 = None
smallTab2 = None
smallTab3 = None
middleTab1 = None
middleTab2 = None
try:
GetObject = self.GetChild
self.itemSlotWindow = GetObject("ItemSlot")
self.btnBuy = GetObject("BuyButton")
self.btnSell = GetObject("SellButton")
self.btnClose = GetObject("CloseButton")
self.titleBar = GetObject("TitleBar")
middleTab1 = GetObject("MiddleTab1")
middleTab2 = GetObject("MiddleTab2")
smallTab1 = GetObject("SmallTab1")
smallTab2 = GetObject("SmallTab2")
smallTab3 = GetObject("SmallTab3")
except:
import exception
exception.Abort("ShopDialog.LoadDialog.BindObject")
self.itemSlotWindow.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
self.itemSlotWindow.SAFE_SetButtonEvent("LEFT", "EMPTY", self.SelectEmptySlot)
self.itemSlotWindow.SAFE_SetButtonEvent("LEFT", "EXIST", self.SelectItemSlot)
self.itemSlotWindow.SAFE_SetButtonEvent("RIGHT", "EXIST", self.UnselectItemSlot)
self.itemSlotWindow.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
self.itemSlotWindow.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
self.btnBuy.SetToggleUpEvent(ui.__mem_func__(self.CancelShopping))
self.btnBuy.SetToggleDownEvent(ui.__mem_func__(self.OnBuy))
self.btnSell.SetToggleUpEvent(ui.__mem_func__(self.CancelShopping))
self.btnSell.SetToggleDownEvent(ui.__mem_func__(self.OnSell))
self.btnClose.SetEvent(ui.__mem_func__(self.AskClosePrivateShop))
self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
self.smallRadioButtonGroup = ui.RadioButtonGroup.Create([[smallTab1, lambda : self.OnClickTabButton(0), None], [smallTab2, lambda : self.OnClickTabButton(1), None], [smallTab3, lambda : self.OnClickTabButton(2), None]])
self.middleRadioButtonGroup = ui.RadioButtonGroup.Create([[middleTab1, lambda : self.OnClickTabButton(0), None], [middleTab2, lambda : self.OnClickTabButton(1), None]])
self.__HideMiddleTabs()
self.__HideSmallTabs()
self.tabIdx = 0
self.coinType = shop.SHOP_COIN_TYPE_GOLD
self.Refresh()
def __ShowBuySellButton(self):
self.btnBuy.Show()
self.btnSell.Show()
def __ShowMiddleTabs(self):
self.middleRadioButtonGroup.Show()
def __ShowSmallTabs(self):
self.smallRadioButtonGroup.Show()
def __HideBuySellButton(self):
self.btnBuy.Hide()
self.btnSell.Hide()
def __HideMiddleTabs(self):
self.middleRadioButtonGroup.Hide()
def __HideSmallTabs(self):
self.smallRadioButtonGroup.Hide()
def __SetTabNames(self):
if shop.GetTabCount() == 2:
self.middleRadioButtonGroup.SetText(0, shop.GetTabName(0))
self.middleRadioButtonGroup.SetText(1, shop.GetTabName(1))
elif shop.GetTabCount() == 3:
self.smallRadioButtonGroup.SetText(0, shop.GetTabName(0))
self.smallRadioButtonGroup.SetText(1, shop.GetTabName(1))
self.smallRadioButtonGroup.SetText(2, shop.GetTabName(2))
def Destroy(self):
self.Close()
self.ClearDictionary()
self.tooltipItem = 0
self.itemSlotWindow = 0
self.btnBuy = 0
self.btnSell = 0
self.btnClose = 0
self.titleBar = 0
self.questionDialog = None
self.popup = None
def Open(self, vid):
isPrivateShop = False
isMainPlayerPrivateShop = False
import chr
if chr.IsNPC(vid):
isPrivateShop = False
else:
isPrivateShop = True
if player.IsMainCharacterIndex(vid):
isMainPlayerPrivateShop = True
self.btnBuy.Hide()
self.btnSell.Hide()
self.btnClose.Show()
else:
isMainPlayerPrivateShop = False
self.btnBuy.Show()
self.btnSell.Show()
self.btnClose.Hide()
shop.Open(isPrivateShop, isMainPlayerPrivateShop)
self.tabIdx = 0
if isPrivateShop:
self.__HideMiddleTabs()
self.__HideSmallTabs()
else:
if shop.GetTabCount() == 1:
self.__ShowBuySellButton()
self.__HideMiddleTabs()
self.__HideSmallTabs()
elif shop.GetTabCount() == 2:
self.__HideBuySellButton()
self.__ShowMiddleTabs()
self.__HideSmallTabs()
self.__SetTabNames()
self.middleRadioButtonGroup.OnClick(0)
elif shop.GetTabCount() == 3:
self.__HideBuySellButton()
self.__HideMiddleTabs()
self.__ShowSmallTabs()
self.__SetTabNames()
self.middleRadioButtonGroup.OnClick(1)
self.Refresh()
self.SetTop()
self.Show()
(self.xShopStart, self.yShopStart, z) = player.GetMainCharacterPosition()
def Close(self):
if self.itemBuyQuestionDialog:
self.itemBuyQuestionDialog.Close()
self.itemBuyQuestionDialog = None
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
if self.questionDialog:
self.OnCloseQuestionDialog()
shop.Close()
net.SendShopEndPacket()
self.CancelShopping()
self.tooltipItem.HideToolTip()
self.Hide()
def GetIndexFromSlotPos(self, slotPos):
return self.tabIdx * shop.SHOP_SLOT_COUNT + slotPos
def OnClickTabButton(self, idx):
self.tabIdx = idx
self.Refresh()
def AskClosePrivateShop(self):
questionDialog = uiCommon.QuestionDialog()
questionDialog.SetText(localeInfo.PRIVATE_SHOP_CLOSE_QUESTION)
questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnClosePrivateShop))
questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
questionDialog.Open()
self.questionDialog = questionDialog
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
return True
def OnClosePrivateShop(self):
net.SendChatPacket("/close_shop")
self.OnCloseQuestionDialog()
return True
def OnPressEscapeKey(self):
self.Close()
return True
def OnPressExitKey(self):
self.Close()
return True
def OnBuy(self):
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)
app.SetCursor(app.BUY)
self.btnSell.SetUp()
def OnSell(self):
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_SELL_INFO)
app.SetCursor(app.SELL)
self.btnBuy.SetUp()
def CancelShopping(self):
self.btnBuy.SetUp()
self.btnSell.SetUp()
app.SetCursor(app.NORMAL)
def __OnClosePopupDialog(self):
self.pop = None
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
## 용혼석 팔리는 기능 추가.
def SellAttachedItem(self):
if shop.IsPrivateShop():
mouseModule.mouseController.DeattachObject()
return
attachedSlotType = mouseModule.mouseController.GetAttachedType()
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
attachedCount = mouseModule.mouseController.GetAttachedItemCount()
if localeInfo.IsBRAZIL() == 0:
attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
if player.SLOT_TYPE_INVENTORY == attachedSlotType or player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedSlotType:
if localeInfo.IsBRAZIL():
itemIndex = player.GetItemIndex(attachedSlotPos)
item.SelectItem(itemIndex)
else:
item.SelectItem(attachedItemIndex)
if item.IsAntiFlag(item.ANTIFLAG_SELL):
popup = uiCommon.PopupDialog()
popup.SetText(localeInfo.SHOP_CANNOT_SELL_ITEM)
popup.SetAcceptEvent(self.__OnClosePopupDialog)
popup.Open()
self.popup = popup
return
itemtype = player.INVENTORY
if localeInfo.IsBRAZIL() == 0:
if player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedSlotType:
itemtype = player.DRAGON_SOUL_INVENTORY
if player.IsValuableItem(itemtype, attachedSlotPos):
itemPrice = item.GetISellItemPrice()
if item.Is1GoldItem():
itemPrice = attachedCount / itemPrice / 5
else:
itemPrice = itemPrice * max(1, attachedCount) / 5
itemName = item.GetItemName()
questionDialog = uiCommon.QuestionDialog()
questionDialog.SetText(localeInfo.DO_YOU_SELL_ITEM(itemName, attachedCount, itemPrice))
questionDialog.SetAcceptEvent(lambda arg1=attachedSlotPos, arg2=attachedCount, arg3 = itemtype: self.OnSellItem(arg1, arg2, arg3))
questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
questionDialog.Open()
self.questionDialog = questionDialog
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
else:
self.OnSellItem(attachedSlotPos, attachedCount, itemtype)
else:
snd.PlaySound("sound/ui/loginfail.wav")
mouseModule.mouseController.DeattachObject()
def OnSellItem(self, slotPos, count, itemtype):
net.SendShopSellPacketNew(slotPos, count, itemtype)
snd.PlaySound("sound/ui/money.wav")
self.OnCloseQuestionDialog()
def OnCloseQuestionDialog(self):
if not self.questionDialog:
return
self.questionDialog.Close()
self.questionDialog = None
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
def SelectEmptySlot(self, selectedSlotPos):
isAttached = mouseModule.mouseController.isAttached()
if isAttached:
self.SellAttachedItem()
def UnselectItemSlot(self, selectedSlotPos):
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
return
if shop.IsPrivateShop():
self.AskBuyItem(selectedSlotPos)
else:
net.SendShopBuyPacket(self.__GetRealIndex(selectedSlotPos))
def SelectItemSlot(self, selectedSlotPos):
if constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1:
return
isAttached = mouseModule.mouseController.isAttached()
selectedSlotPos = self.__GetRealIndex(selectedSlotPos)
if isAttached:
self.SellAttachedItem()
else:
if True == shop.IsMainPlayerPrivateShop():
return
curCursorNum = app.GetCursor()
if app.BUY == curCursorNum:
self.AskBuyItem(selectedSlotPos)
elif app.SELL == curCursorNum:
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_SELL_INFO)
else:
selectedItemID = shop.GetItemID(selectedSlotPos)
itemCount = shop.GetItemCount(selectedSlotPos)
type = player.SLOT_TYPE_SHOP
if shop.IsPrivateShop():
type = player.SLOT_TYPE_PRIVATE_SHOP
mouseModule.mouseController.AttachObject(self, type, selectedSlotPos, selectedItemID, itemCount)
mouseModule.mouseController.SetCallBack("INVENTORY", ui.__mem_func__(self.DropToInventory))
snd.PlaySound("sound/ui/pick.wav")
def DropToInventory(self):
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
self.AskBuyItem(attachedSlotPos)
def AskBuyItem(self, slotPos):
slotPos = self.__GetRealIndex(slotPos)
itemIndex = shop.GetItemID(slotPos)
itemPrice = shop.GetItemPrice(slotPos)
itemCount = shop.GetItemCount(slotPos)
item.SelectItem(itemIndex)
itemName = item.GetItemName()
itemBuyQuestionDialog = uiCommon.QuestionDialog()
itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM(itemName, itemCount, localeInfo.NumberToMoneyString(itemPrice)))
itemBuyQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerBuyItem(arg))
itemBuyQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerBuyItem(arg))
itemBuyQuestionDialog.Open()
itemBuyQuestionDialog.pos = slotPos
self.itemBuyQuestionDialog = itemBuyQuestionDialog
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
def AnswerBuyItem(self, flag):
if flag:
pos = self.itemBuyQuestionDialog.pos
net.SendShopBuyPacket(pos)
self.itemBuyQuestionDialog.Close()
self.itemBuyQuestionDialog = None
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
def SetItemToolTip(self, tooltipItem):
self.tooltipItem = tooltipItem
def OverInItem(self, slotIndex):
slotIndex = self.__GetRealIndex(slotIndex)
if mouseModule.mouseController.isAttached():
return
if 0 != self.tooltipItem:
if shop.SHOP_COIN_TYPE_GOLD == shop.GetTabCoinType(self.tabIdx):
self.tooltipItem.SetShopItem(slotIndex)
else:
self.tooltipItem.SetShopItemBySecondaryCoin(slotIndex)
def OverOutItem(self):
if 0 != self.tooltipItem:
self.tooltipItem.HideToolTip()
def OnUpdate(self):
USE_SHOP_LIMIT_RANGE = 1000
(x, y, z) = player.GetMainCharacterPosition()
if abs(x - self.xShopStart) > USE_SHOP_LIMIT_RANGE or abs(y - self.yShopStart) > USE_SHOP_LIMIT_RANGE:
self.Close()
class MallPageDialog(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
def __del__(self):
ui.ScriptWindow.__del__(self)
def Destroy(self):
self.ClearDictionary()
def Open(self):
scriptLoader = ui.PythonScriptLoader()
scriptLoader.LoadScriptFile(self, "uiscript/mallpagedialog.py")
self.GetChild("titlebar").SetCloseEvent(ui.__mem_func__(self.Close))
(x, y)=self.GetGlobalPosition()
x+=10
y+=30
MALL_PAGE_WIDTH = 600
MALL_PAGE_HEIGHT = 480
app.ShowWebPage(
"http://metin2.co.kr/08_mall/game_mall/login_fail.htm",
(x, y, x+MALL_PAGE_WIDTH, y+MALL_PAGE_HEIGHT))
self.Lock()
self.Show()
def Close(self):
app.HideWebPage()
self.Unlock()
self.Hide()
def OnPressEscapeKey(self):
self.Close()
return True
[/CODE]
Ekli dosyalar
0912 22:57:19632 ::
uiInventory.py(line:324) __LoadWindow
ui.py(line:4569) GetChild
CostumeWindow.LoadWindow.BindObject - <type 'exceptions.KeyError'>:'dungeon'
0912 22:57:19632 :: ============================================================================================================
0912 22:57:19632 :: Abort!!!!
0912 22:57:19634 ::
uiInventory.py(line:481) __LoadWindow
uiInventory.py(line:266) __init__
uiInventory.py(line:331) __LoadWindow
exception.py(line:36) Abort
InventoryWindow.LoadWindow.BindObject - <type 'exceptions.SystemExit'>:
0912 22:57:19634 :: ============================================================================================================
0912 22:57:19634 :: Abort!!!!
uiInventory.py(line:324) __LoadWindow
ui.py(line:4569) GetChild
CostumeWindow.LoadWindow.BindObject - <type 'exceptions.KeyError'>:'dungeon'
0912 22:57:19632 :: ============================================================================================================
0912 22:57:19632 :: Abort!!!!
0912 22:57:19634 ::
uiInventory.py(line:481) __LoadWindow
uiInventory.py(line:266) __init__
uiInventory.py(line:331) __LoadWindow
exception.py(line:36) Abort
InventoryWindow.LoadWindow.BindObject - <type 'exceptions.SystemExit'>:
0912 22:57:19634 :: ============================================================================================================
0912 22:57:19634 :: Abort!!!!
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 321
- Cevaplar
- 16
- Görüntüleme
- 2K
- Cevaplar
- 13
- Görüntüleme
- 1K
- Cevaplar
- 24
- Görüntüleme
- 2K
- Cevaplar
- 1
- Görüntüleme
- 225
