Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 09:04

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Hilfe]Bonus im Inventar

Discussion on [Hilfe]Bonus im Inventar within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Sep 2012
Posts: 19
Received Thanks: 1
[Hilfe]Bonus im Inventar

Hallo epvp Community,

ich brauch mal ein wenig Hilfe, ich habe durch den Sanii Clienten die
Bonus Page im Iventar ich möchte aber noch was ergänzen.
Ich wollte noch Monster hinzufügen.
Hier die uiiventory.py:

PHP Code:
import ui
import player
import mouseModule
import net
import app
import snd
import item
import player
import chat
import grp
import uiScriptLocale
import uiRefine
import uiAttachMetin
import uiPickMoney
import uiCommon
import uiPrivateShopBuilder 
# ItemMove disabled when private shop opened
import locale
import constInfo
import ime
import background

ITEM_MALL_BUTTON_ENABLE 
TRUE
WARP_SCROLLS 
= [220112200022010]
ITEM_FLAG_APPLICABLE << 14

class InventoryWindow(ui.ScriptWindow):

    
USE_TYPE_TUPLE = ("USE_CLEAN_SOCKET""USE_CHANGE_ATTRIBUTE""USE_ADD_ATTRIBUTE""USE_ADD_ATTRIBUTE2""USE_ADD_ACCESSORY_SOCKET""USE_PUT_INTO_ACCESSORY_SOCKET")

    
def __init__(self):
        
ui.ScriptWindow.__init__(self)
        
self.questionDialog None
        self
.tooltipItem None
        self
.itemVNum 0
        self
.sellingSlotNumber = -1
        self
.isLoaded 0

        self
.__LoadWindow()

    
def __del__(self):
        
ui.ScriptWindow.__del__(self)

    
def Show(self):
        
self.__LoadWindow()

        
ui.ScriptWindow.Show(self)

    
def __LoadWindow(self):
        if 
self.isLoaded == 1:
            return

        
self.isLoaded 1

        
try:
            
pyScrLoader ui.PythonScriptLoader()

            if 
ITEM_MALL_BUTTON_ENABLE:
                
pyScrLoader.LoadScriptFile(selfuiScriptLocale.LOCALE_UISCRIPT_PATH "InventoryWindow.py")
            else:
                
pyScrLoader.LoadScriptFile(self"UIScript/InventoryWindow.py")
        
except:
            
import exception
            exception
.Abort("InventoryWindow.LoadWindow.LoadObject")

        try:
            
wndItem self.GetChild("ItemSlot")
            
wndEquip self.GetChild("EquipmentSlot")
            
self.GetChild("TitleBar").SetCloseEvent(ui.__mem_func__(self.Close))
            
self.wndMoney self.GetChild("Money")
            
self.wndMoneySlot self.GetChild("Money_Slot")
            
self.mallButton self.GetChild2("MallButton")
##BonusPageDialog
            
self.GetChild("Schwert_vert_Value").SetText(str(player.GetStatus(69)))
            
self.GetChild("Zweihänder_vert_Value").SetText(str(player.GetStatus(70)))
            
self.GetChild("Dolche_vert_Value").SetText(str(player.GetStatus(71)))
            
self.GetChild("Bogen_vert_Value").SetText(str(player.GetStatus(74)))
            
self.GetChild("Glocke_vert_Value").SetText(str(player.GetStatus(72)))
            
self.GetChild("Fächer_vert_Value").SetText(str(player.GetStatus(73)))
            
self.GetChild("Magie_vert_Value").SetText(str(player.GetStatus(77)))
            
self.GetChild("Gift_vert_Value").SetText(str(player.GetStatus(81)))
            
self.GetChild("Krieger_vert_Value").SetText(str(player.GetStatus(59)))
            
self.GetChild("Ninja_vert_Value").SetText(str(player.GetStatus(60)))
            
self.GetChild("Sura_vert_Value").SetText(str(player.GetStatus(61)))
            
self.GetChild("Schamane_vert_Value").SetText(str(player.GetStatus(62)))
            
self.GetChild("Krit_Value").SetText(str(player.GetStatus(40)))
            
self.GetChild("DurchBohrenden_Value").SetText(str(player.GetStatus(41)))
            
self.GetChild("DSS_Value").SetText(str(player.GetStatus(122)))
            
self.GetChild("FKS_Value").SetText(str(player.GetStatus(121)))
            
self.GetChild("Halbmenschen_Value").SetText(str(player.GetStatus(43)))
            
self.GetChild("Untote_Value").SetText(str(player.GetStatus(47)))
            
self.GetChild("Teufel_Value").SetText(str(player.GetStatus(48)))
            
self.GetChild("Krieger_str_Value").SetText(str(player.GetStatus(54)))
            
self.GetChild("Ninja_str_Value").SetText(str(player.GetStatus(55)))
            
self.GetChild("Sura_str_Value").SetText(str(player.GetStatus(56)))
            
self.GetChild("Schamane_str_Value").SetText(str(player.GetStatus(57)))
##BonusPageDialog

            
self.inventoryTab = []
            
self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
            
self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))

            
self.equipmentTab = []
            
self.equipmentTab.append(self.GetChild("Equipment_Tab_01"))
            
self.equipmentTab.append(self.GetChild("Equipment_Tab_02"))

        
except:
            
import exception
            exception
.Abort("InventoryWindow.LoadWindow.BindObject")

        
## Item
        
wndItem.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
        
wndItem.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
        
wndItem.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
        
wndItem.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
        
wndItem.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
        
wndItem.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))

        
## Equipment
        
wndEquip.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
        
wndEquip.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectItemSlot))
        
wndEquip.SetUnselectItemSlotEvent(ui.__mem_func__(self.UseItemSlot))
        
wndEquip.SetUseSlotEvent(ui.__mem_func__(self.UseItemSlot))
        
wndEquip.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
        
wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))

        
## PickMoneyDialog
        
dlgPickMoney uiPickMoney.PickMoneyDialog()
        
dlgPickMoney.LoadDialog()
        
dlgPickMoney.Hide()

        
## RefineDialog
        
self.refineDialog uiRefine.RefineDialog()
        
self.refineDialog.Hide()

        
## AttachMetinDialog
        
self.attachMetinDialog uiAttachMetin.AttachMetinDialog()
        
self.attachMetinDialog.Hide()

        
## MoneySlot
        
self.wndMoneySlot.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))

        
self.inventoryTab[0].SetEvent(lambda arg=0self.SetInventoryPage(arg))
        
self.inventoryTab[1].SetEvent(lambda arg=1self.SetInventoryPage(arg))
        
self.inventoryTab[0].Down()

        
self.equipmentTab[0].SetEvent(lambda arg=0self.SetEquipmentPage(arg))
        
self.equipmentTab[1].SetEvent(lambda arg=1self.SetEquipmentPage(arg))
        
self.equipmentTab[0].Down()
        
self.equipmentTab[0].Hide()
        
self.equipmentTab[1].Hide()

        
self.wndItem wndItem
        self
.wndEquip wndEquip
        self
.dlgPickMoney dlgPickMoney

        
# MallButton
        
if self.mallButton:
            
self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))

         
#####

        ## Refresh
        
self.SetInventoryPage(0)
        
self.SetEquipmentPage(0)
        
self.RefreshItemSlot()
        
self.RefreshStatus()
        
self.RefreshBonus()

    
def Destroy(self):
        
self.ClearDictionary()

        
self.dlgPickMoney.Destroy()
        
self.dlgPickMoney 0

        self
.refineDialog.Destroy()
        
self.refineDialog 0

        self
.attachMetinDialog.Destroy()
        
self.attachMetinDialog 0

        self
.tooltipItem None
        self
.wndItem 0
        self
.wndEquip 0
        self
.dlgPickMoney 0
        self
.wndMoney 0
        self
.wndMoneySlot 0
        self
.questionDialog None
        self
.mallButton None

        self
.inventoryTab = []
        
self.equipmentTab = []

    
def Close(self):
        if 
None != self.tooltipItem:
            
self.tooltipItem.HideToolTip()

        
self.OnCloseQuestionDialog()
        
self.dlgPickMoney.Close()
        
self.Hide()

    
def SetInventoryPage(selfpage):
        
self.inventoryPageIndex page
        self
.inventoryTab[1-page].SetUp()
        
self.RefreshBagSlotWindow()

    
def SetEquipmentPage(selfpage):
        
self.equipmentPageIndex page
        self
.equipmentTab[1-page].SetUp()
        
self.RefreshEquipSlotWindow()

    
def ClickMallButton(self):
        print 
"click_mall_button"
        
net.SendChatPacket("/click_mall")

    
def OpenPickMoneyDialog(self):

        if 
mouseModule.mouseController.isAttached():

            
attachedSlotPos mouseModule.mouseController.GetAttachedSlotNumber()
            if 
player.SLOT_TYPE_SAFEBOX == mouseModule.mouseController.GetAttachedType():

                if 
player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():
                    
net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
                    
snd.PlaySound("sound/ui/money.wav")

            
mouseModule.mouseController.DeattachObject()

        else:
            
curMoney player.GetElk()

            if 
curMoney <= 0:
                return

            
self.dlgPickMoney.SetTitleName(locale.PICK_MONEY_TITLE)
            
self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
            
self.dlgPickMoney.Open(curMoney)
            
self.dlgPickMoney.SetMax(7# Àκ¥Å丮 990000 Á¦ÇÑ ¹ö±× ¼öÁ¤

    
def OnPickMoney(selfmoney):
        
mouseModule.mouseController.AttachMoney(selfplayer.SLOT_TYPE_INVENTORYmoney)

    
def OnPickItem(selfcount):
        
itemSlotIndex self.dlgPickMoney.itemGlobalSlotIndex
        selectedItemVNum 
player.GetItemIndex(itemSlotIndex)
        
mouseModule.mouseController.AttachObject(selfplayer.SLOT_TYPE_INVENTORYitemSlotIndexselectedItemVNumcount)

    
def __InventoryLocalSlotPosToGlobalSlotPos(selflocal):

        if 
player.IsEquipmentSlot(local):
            return 
local

        
return self.inventoryPageIndex*player.INVENTORY_PAGE_SIZE local

##BonusPageDialog
    
def __LoadRefreshBonus(self):
        
self.RefreshBonus()

    
def RefreshBonus(self):
        try:
            
self.GetChild("Schwert_vert_Value").SetText(str(player.GetStatus(69)))
            
self.GetChild("Zweihänder_vert_Value").SetText(str(player.GetStatus(70)))
            
self.GetChild("Dolche_vert_Value").SetText(str(player.GetStatus(71)))
            
self.GetChild("Bogen_vert_Value").SetText(str(player.GetStatus(74)))
            
self.GetChild("Glocke_vert_Value").SetText(str(player.GetStatus(72)))
            
self.GetChild("Fächer_vert_Value").SetText(str(player.GetStatus(73)))
            
self.GetChild("Magie_vert_Value").SetText(str(player.GetStatus(77)))
            
self.GetChild("Gift_vert_Value").SetText(str(player.GetStatus(81)))
            
self.GetChild("Krieger_vert_Value").SetText(str(player.GetStatus(59)))
            
self.GetChild("Ninja_vert_Value").SetText(str(player.GetStatus(60)))
            
self.GetChild("Sura_vert_Value").SetText(str(player.GetStatus(61)))
            
self.GetChild("Schamane_vert_Value").SetText(str(player.GetStatus(62)))
            
self.GetChild("Krit_Value").SetText(str(player.GetStatus(40)))
            
self.GetChild("DurchBohrenden_Value").SetText(str(player.GetStatus(41)))
            
self.GetChild("DSS_Value").SetText(str(player.GetStatus(122)))
            
self.GetChild("FKS_Value").SetText(str(player.GetStatus(121)))
            
self.GetChild("Halbmenschen_Value").SetText(str(player.GetStatus(43)))
            
self.GetChild("Untote_Value").SetText(str(player.GetStatus(47)))
            
self.GetChild("Teufel_Value").SetText(str(player.GetStatus(48)))
            
self.GetChild("Krieger_str_Value").SetText(str(player.GetStatus(54)))
            
self.GetChild("Ninja_str_Value").SetText(str(player.GetStatus(55)))
            
self.GetChild("Sura_str_Value").SetText(str(player.GetStatus(56)))
            
self.GetChild("Schamane_str_Value").SetText(str(player.GetStatus(57)))
        
except:
            
import exception
            exception
.Abort("InventoryWindow.RefreshBonus.BindObject")
##BonusPageDialog

    
def RefreshBagSlotWindow(self):
        
getItemVNum=player.GetItemIndex
        getItemCount
=player.GetItemCount
        setItemVNum
=self.wndItem.SetItemSlot
        
for i in xrange(player.INVENTORY_PAGE_SIZE):
            
slotNumber self.__InventoryLocalSlotPosToGlobalSlotPos(i)
            
itemCount getItemCount(slotNumber)
            if 
itemCount <= 1:
                
itemCount 0
            setItemVNum
(igetItemVNum(slotNumber), itemCount)

        
self.wndItem.RefreshSlot()

    
def RefreshEquipSlotWindow(self):
        
getItemVNum=player.GetItemIndex
        getItemCount
=player.GetItemCount
        setItemVNum
=self.wndEquip.SetItemSlot
        
for i in xrange(player.EQUIPMENT_PAGE_COUNT):
            
slotNumber player.EQUIPMENT_SLOT_START i
            itemCount 
getItemCount(slotNumber)
            if 
itemCount <= 1:
                
itemCount 0
            setItemVNum
(slotNumbergetItemVNum(slotNumber), itemCount)

        
self.wndEquip.RefreshSlot()

    
def RefreshItemSlot(self):
        
self.RefreshBagSlotWindow()
        
self.RefreshEquipSlotWindow()

    
def RefreshStatus(self):
        
money player.GetElk()
        
self.wndMoney.SetText(locale.NumberToMoneyString(money))

    
def SetItemToolTip(selftooltipItem):
        
self.tooltipItem tooltipItem

    def SellItem
(self):

        
net.SendShopSellPacketNew(self.sellingSlotNumberself.questionDialog.count)
        
snd.PlaySound("sound/ui/money.wav")
        
self.OnCloseQuestionDialog()

    
def OnDetachMetinFromItem(self):
        if 
None == self.questionDialog:
            return

        
#net.SendItemUseToItemPacket(self.questionDialog.sourcePos, self.questionDialog.targetPos)
        
self.__SendUseItemToItemPacket(self.questionDialog.sourcePosself.questionDialog.targetPos)
        
self.OnCloseQuestionDialog()

    
def OnCloseQuestionDialog(self):
        if 
self.questionDialog:
            
self.questionDialog.Close()

        
self.questionDialog None

    
## Slot Event
    
def SelectEmptySlot(selfselectedSlotPos):
        if 
constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
            return

        
selectedSlotPos self.__InventoryLocalSlotPosToGlobalSlotPos(selectedSlotPos)

        if 
mouseModule.mouseController.isAttached():

            
attachedSlotType mouseModule.mouseController.GetAttachedType()
            
attachedSlotPos mouseModule.mouseController.GetAttachedSlotNumber()
            
attachedItemCount mouseModule.mouseController.GetAttachedItemCount()
            
attachedItemIndex mouseModule.mouseController.GetAttachedItemIndex()

            if 
player.SLOT_TYPE_INVENTORY == attachedSlotType:
                
itemCount player.GetItemCount(attachedSlotPos)
                
attachedCount mouseModule.mouseController.GetAttachedItemCount()
                
self.__SendMoveItemPacket(attachedSlotPosselectedSlotPosattachedCount)

                if 
item.IsRefineScroll(attachedItemIndex):
                    
self.wndItem.SetUseMode(FALSE)

            
elif player.SLOT_TYPE_PRIVATE_SHOP == attachedSlotType:
                
mouseModule.mouseController.RunCallBack("INVENTORY")

            
elif player.SLOT_TYPE_SHOP == attachedSlotType:
                
net.SendShopBuyPacket(attachedSlotPos)

            
elif player.SLOT_TYPE_SAFEBOX == attachedSlotType:

                if 
player.ITEM_MONEY == attachedItemIndex:
                    
net.SendSafeboxWithdrawMoneyPacket(mouseModule.mouseController.GetAttachedItemCount())
                    
snd.PlaySound("sound/ui/money.wav")

                else:
                    
net.SendSafeboxCheckoutPacket(attachedSlotPosselectedSlotPos)

            
elif player.SLOT_TYPE_MALL == attachedSlotType:
                
net.SendMallCheckoutPacket(attachedSlotPosselectedSlotPos)

            
mouseModule.mouseController.DeattachObject()

    
def SelectItemSlot(selfitemSlotIndex):
        if 
constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
            return

        
itemSlotIndex self.__InventoryLocalSlotPosToGlobalSlotPos(itemSlotIndex)

        if 
mouseModule.mouseController.isAttached():
            
attachedSlotType mouseModule.mouseController.GetAttachedType()
            
attachedSlotPos mouseModule.mouseController.GetAttachedSlotNumber()
            
attachedItemVID mouseModule.mouseController.GetAttachedItemIndex()

            if 
player.SLOT_TYPE_INVENTORY == attachedSlotType:
                
self.__DropSrcItemToDestItemInInventory(attachedItemVIDattachedSlotPositemSlotIndex)

            
mouseModule.mouseController.DeattachObject()

        else:

            
curCursorNum app.GetCursor()
            if 
app.SELL == curCursorNum:
                
self.__SellItem(itemSlotIndex)

            
elif app.BUY == curCursorNum:
                
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.SHOP_BUY_INFO)

            
elif app.IsPressed(app.DIK_LALT):
                
link player.GetItemLink(itemSlotIndex)
                
ime.PasteString(link)

            
elif app.IsPressed(app.DIK_LSHIFT):
                
itemCount player.GetItemCount(itemSlotIndex)

                if 
itemCount 1:
                    
self.dlgPickMoney.SetTitleName(locale.PICK_ITEM_TITLE)
                    
self.dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickItem))
                    
self.dlgPickMoney.Open(itemCount)
                    
self.dlgPickMoney.itemGlobalSlotIndex itemSlotIndex
                
#else:
                    #selectedItemVNum = player.GetItemIndex(itemSlotIndex)
                    #mouseModule.mouseController.AttachObject(self, player.SLOT_TYPE_INVENTORY, itemSlotIndex, selectedItemVNum)

            
elif app.IsPressed(app.DIK_LCONTROL):
                
itemIndex player.GetItemIndex(itemSlotIndex)

                if 
TRUE == item.CanAddToQuickSlotItem(itemIndex):
                    
player.RequestAddToEmptyLocalQuickSlot(player.SLOT_TYPE_INVENTORYitemSlotIndex)
                else:
                    
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.QUICKSLOT_REGISTER_DISABLE_ITEM)

            else:
                
selectedItemVNum player.GetItemIndex(itemSlotIndex)
                
itemCount player.GetItemCount(itemSlotIndex)
                
mouseModule.mouseController.AttachObject(selfplayer.SLOT_TYPE_INVENTORYitemSlotIndexselectedItemVNumitemCount)

                if 
self.__IsUsableItemToItem(selectedItemVNumitemSlotIndex):
                    
self.wndItem.SetUseMode(TRUE)
                else:
                    
self.wndItem.SetUseMode(FALSE)

                
snd.PlaySound("sound/ui/pick.wav")

    
def __DropSrcItemToDestItemInInventory(selfsrcItemVIDsrcItemSlotPosdstItemSlotPos):
        if 
srcItemSlotPos == dstItemSlotPos:
            return

        if 
item.IsRefineScroll(srcItemVID):
            
self.RefineItem(srcItemSlotPosdstItemSlotPos)
            
self.wndItem.SetUseMode(FALSE)

        
elif item.IsMetin(srcItemVID):
            
self.AttachMetinToItem(srcItemSlotPosdstItemSlotPos)

        
elif item.IsDetachScroll(srcItemVID):
            
self.DetachMetinFromItem(srcItemSlotPosdstItemSlotPos)

        
elif item.IsKey(srcItemVID):
            
self.__SendUseItemToItemPacket(srcItemSlotPosdstItemSlotPos)

        
elif (player.GetItemFlags(srcItemSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
            
self.__SendUseItemToItemPacket(srcItemSlotPosdstItemSlotPos)

        
elif item.GetUseType(srcItemVIDin self.USE_TYPE_TUPLE:
            
self.__SendUseItemToItemPacket(srcItemSlotPosdstItemSlotPos)

        else:
            
#snd.PlaySound("sound/ui/drop.wav")

            ## À̵¿½ÃŲ °÷ÀÌ ÀåÂø ½½·ÔÀÏ °æ¿ì ¾ÆÀÌÅÛÀ» »ç¿ëÇؼ* ÀåÂø ½ÃŲ´Ù - [levites]
            
if player.IsEquipmentSlot(dstItemSlotPos):

                
## µé°í Àִ ¾ÆÀÌÅÛÀÌ ÀåºñÀ϶§¸¸
                
if item.IsEquipmentVID(srcItemVID):
                    
self.__UseItem(srcItemSlotPos)

            else:
                
self.__SendMoveItemPacket(srcItemSlotPosdstItemSlotPos0)
                
#net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0)

    
def __SellItem(selfitemSlotPos):
        if 
not player.IsEquipmentSlot(itemSlotPos):
            
self.sellingSlotNumber itemSlotPos
            itemIndex 
player.GetItemIndex(itemSlotPos)
            
itemCount player.GetItemCount(itemSlotPos)

            
item.SelectItem(itemIndex)
            
itemPrice item.GetISellItemPrice()

            if 
item.Is1GoldItem():
                
itemPrice itemCount itemPrice 5
            
else:
                
itemPrice itemPrice itemCount 5

            item
.GetItemName(itemIndex)
            
itemName item.GetItemName()

            
self.questionDialog uiCommon.QuestionDialog()
            
self.questionDialog.SetText(locale.DO_YOU_SELL_ITEM(itemNameitemCountitemPrice))
            
self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.SellItem))
            
self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
            
self.questionDialog.Open()
            
self.questionDialog.count itemCount

    def RefineItem
(selfscrollSlotPostargetSlotPos):

        
scrollIndex player.GetItemIndex(scrollSlotPos)
        
targetIndex player.GetItemIndex(targetSlotPos)

        if 
player.REFINE_OK != player.CanRefine(scrollIndextargetSlotPos):
            return

        
###########################################################
        
self.__SendUseItemToItemPacket(scrollSlotPostargetSlotPos)
        
#net.SendItemUseToItemPacket(scrollSlotPos, targetSlotPos)
        
return
        
###########################################################

        ###########################################################
        #net.SendRequestRefineInfoPacket(targetSlotPos)
        #return
        ###########################################################

        
result player.CanRefine(scrollIndextargetSlotPos)

        if 
player.REFINE_ALREADY_MAX_SOCKET_COUNT == result:
            
#snd.PlaySound("sound/ui/jaeryun_fail.wav")
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_NO_MORE_SOCKET)

        
elif player.REFINE_NEED_MORE_GOOD_SCROLL == result:
            
#snd.PlaySound("sound/ui/jaeryun_fail.wav")
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_NEED_BETTER_SCROLL)

        
elif player.REFINE_CANT_MAKE_SOCKET_ITEM == result:
            
#snd.PlaySound("sound/ui/jaeryun_fail.wav")
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_SOCKET_DISABLE_ITEM)

        
elif player.REFINE_NOT_NEXT_GRADE_ITEM == result:
            
#snd.PlaySound("sound/ui/jaeryun_fail.wav")
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_UPGRADE_DISABLE_ITEM)

        
elif player.REFINE_CANT_REFINE_METIN_TO_EQUIPMENT == result:
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_EQUIP_ITEM)

        if 
player.REFINE_OK != result:
            return

        
self.refineDialog.Open(scrollSlotPostargetSlotPos)

    
def DetachMetinFromItem(selfscrollSlotPostargetSlotPos):
        
scrollIndex player.GetItemIndex(scrollSlotPos)
        
targetIndex player.GetItemIndex(targetSlotPos)

        if 
not player.CanDetach(scrollIndextargetSlotPos):
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_METIN_INSEPARABLE_ITEM)
            return

        
self.questionDialog uiCommon.QuestionDialog()
        
self.questionDialog.SetText(locale.REFINE_DO_YOU_SEPARATE_METIN)
        
self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.OnDetachMetinFromItem))
        
self.questionDialog.SetCancelEvent(ui.__mem_func__(self.OnCloseQuestionDialog))
        
self.questionDialog.Open()
        
self.questionDialog.sourcePos scrollSlotPos
        self
.questionDialog.targetPos targetSlotPos

    def AttachMetinToItem
(selfmetinSlotPostargetSlotPos):
        
metinIndex player.GetItemIndex(metinSlotPos)
        
targetIndex player.GetItemIndex(targetSlotPos)

        
item.SelectItem(metinIndex)
        
itemName item.GetItemName()

        
result player.CanAttachMetin(metinIndextargetSlotPos)

        if 
player.ATTACH_METIN_NOT_MATCHABLE_ITEM == result:
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_CAN_NOT_ATTACH(itemName))

        if 
player.ATTACH_METIN_NO_MATCHABLE_SOCKET == result:
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_NO_SOCKET(itemName))

        
elif player.ATTACH_METIN_NOT_EXIST_GOLD_SOCKET == result:
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_NO_GOLD_SOCKET(itemName))

        
elif player.ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT == result:
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.REFINE_FAILURE_EQUIP_ITEM)

        if 
player.ATTACH_METIN_OK != result:
            return

        
self.attachMetinDialog.Open(metinSlotPostargetSlotPos)



    
def OverOutItem(self):
        
self.wndItem.SetUsableItem(FALSE)
        if 
None != self.tooltipItem:
            
self.tooltipItem.HideToolTip()

    
def OverInItem(selfoverSlotPos):
        
overSlotPos self.__InventoryLocalSlotPosToGlobalSlotPos(overSlotPos)
        
self.wndItem.SetUsableItem(FALSE)

        if 
mouseModule.mouseController.isAttached():
            
attachedItemType mouseModule.mouseController.GetAttachedType()
            if 
player.SLOT_TYPE_INVENTORY == attachedItemType:

                
attachedSlotPos mouseModule.mouseController.GetAttachedSlotNumber()
                
attachedItemVNum mouseModule.mouseController.GetAttachedItemIndex()

                if 
self.__CanUseSrcItemToDstItem(attachedItemVNumattachedSlotPosoverSlotPos):
                    
self.wndItem.SetUsableItem(TRUE)
                    
self.ShowToolTip(overSlotPos)
                    return

        
self.ShowToolTip(overSlotPos)


    
def __IsUsableItemToItem(selfsrcItemVNumsrcSlotPos):
        
"´Ù¸¥ ¾ÆÀÌÅÛ¿¡ »ç¿ëÇÒ ¼ö Àִ ¾ÆÀÌÅÛÀΰ¡?"

        
if item.IsRefineScroll(srcItemVNum):
            return 
TRUE
        elif item
.IsMetin(srcItemVNum):
            return 
TRUE
        elif item
.IsDetachScroll(srcItemVNum):
            return 
TRUE
        elif item
.IsKey(srcItemVNum):
            return 
TRUE
        elif 
(player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
            return 
TRUE
        
else:
            if 
item.GetUseType(srcItemVNumin self.USE_TYPE_TUPLE:
                return 
TRUE

        
return FALSE

    def __CanUseSrcItemToDstItem
(selfsrcItemVNumsrcSlotPosdstSlotPos):
        
"´ë»ó ¾ÆÀÌÅÛ¿¡ »ç¿ëÇÒ ¼ö Àִ°¡?"

        
if srcSlotPos == dstSlotPos:
            return 
FALSE

        
if item.IsRefineScroll(srcItemVNum):
            if 
player.REFINE_OK == player.CanRefine(srcItemVNumdstSlotPos):
                return 
TRUE
        elif item
.IsMetin(srcItemVNum):
            if 
player.ATTACH_METIN_OK == player.CanAttachMetin(srcItemVNumdstSlotPos):
                return 
TRUE
        elif item
.IsDetachScroll(srcItemVNum):
            if 
player.DETACH_METIN_OK == player.CanDetach(srcItemVNumdstSlotPos):
                return 
TRUE
        elif item
.IsKey(srcItemVNum):
            if 
player.CanUnlock(srcItemVNumdstSlotPos):
                return 
TRUE

        elif 
(player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE:
            return 
TRUE

        
else:
            
useType=item.GetUseType(srcItemVNum)

            if 
"USE_CLEAN_SOCKET" == useType:
                if 
self.__CanCleanBrokenMetinStone(dstSlotPos):
                    return 
TRUE
            elif 
"USE_CHANGE_ATTRIBUTE" == useType:
                if 
self.__CanChangeItemAttrList(dstSlotPos):
                    return 
TRUE
            elif 
"USE_ADD_ATTRIBUTE" == useType:
                if 
self.__CanAddItemAttr(dstSlotPos):
                    return 
TRUE
            elif 
"USE_ADD_ATTRIBUTE2" == useType:
                if 
self.__CanAddItemAttr(dstSlotPos):
                    return 
TRUE
            elif 
"USE_ADD_ACCESSORY_SOCKET" == useType:
                if 
self.__CanAddAccessorySocket(dstSlotPos):
                    return 
TRUE
            elif 
"USE_PUT_INTO_ACCESSORY_SOCKET" == useType:
                if 
self.__CanPutAccessorySocket(dstSlotPossrcItemVNum):
                    return 
TRUE;

        return 
FALSE

    def __CanCleanBrokenMetinStone
(selfdstSlotPos):
        
dstItemVNum player.GetItemIndex(dstSlotPos)
        if 
dstItemVNum == 0:
            return 
FALSE

        item
.SelectItem(dstItemVNum)

        if 
item.ITEM_TYPE_WEAPON != item.GetItemType():
            return 
FALSE

        
for i in xrange(player.METIN_SOCKET_MAX_NUM):
            if 
player.GetItemMetinSocket(dstSlotPosi) == constInfo.ERROR_METIN_STONE:
                return 
TRUE

        
return FALSE

    def __CanChangeItemAttrList
(selfdstSlotPos):
        
dstItemVNum player.GetItemIndex(dstSlotPos)
        if 
dstItemVNum == 0:
            return 
FALSE

        item
.SelectItem(dstItemVNum)

        if 
not item.GetItemType() in (item.ITEM_TYPE_WEAPONitem.ITEM_TYPE_ARMOR):
            return 
FALSE

        
for i in xrange(player.METIN_SOCKET_MAX_NUM):
            if 
player.GetItemAttribute(dstSlotPosi) != 0:
                return 
TRUE

        
return FALSE

    def __CanPutAccessorySocket
(selfdstSlotPosmtrlVnum):
        
dstItemVNum player.GetItemIndex(dstSlotPos)
        if 
dstItemVNum == 0:
            return 
FALSE

        item
.SelectItem(dstItemVNum)

        if 
item.GetItemType() != item.ITEM_TYPE_ARMOR:
            return 
FALSE

        
if not item.GetItemSubType() in (item.ARMOR_WRISTitem.ARMOR_NECKitem.ARMOR_EAR):
            return 
FALSE

        curCount 
player.GetItemMetinSocket(dstSlotPos0)
        
maxCount player.GetItemMetinSocket(dstSlotPos1)

        if 
mtrlVnum != constInfo.GET_ACCESSORY_MATERIAL_VNUM(dstItemVNumitem.GetItemSubType()):
            return 
FALSE

        
if curCount>=maxCount:
            return 
FALSE

        
return TRUE

    def __CanAddAccessorySocket
(selfdstSlotPos):
        
dstItemVNum player.GetItemIndex(dstSlotPos)
        if 
dstItemVNum == 0:
            return 
FALSE

        item
.SelectItem(dstItemVNum)

        if 
item.GetItemType() != item.ITEM_TYPE_ARMOR:
            return 
FALSE

        
if not item.GetItemSubType() in (item.ARMOR_WRISTitem.ARMOR_NECKitem.ARMOR_EAR):
            return 
FALSE

        curCount 
player.GetItemMetinSocket(dstSlotPos0)
        
maxCount player.GetItemMetinSocket(dstSlotPos1)

        
ACCESSORY_SOCKET_MAX_SIZE 3
        
if maxCount >= ACCESSORY_SOCKET_MAX_SIZE:
            return 
FALSE

        
return TRUE

    def __CanAddItemAttr
(selfdstSlotPos):
        
dstItemVNum player.GetItemIndex(dstSlotPos)
        if 
dstItemVNum == 0:
            return 
FALSE

        item
.SelectItem(dstItemVNum)

        if 
not item.GetItemType() in (item.ITEM_TYPE_WEAPONitem.ITEM_TYPE_ARMOR):
            return 
FALSE

        attrCount 
0
        
for i in xrange(player.METIN_SOCKET_MAX_NUM):
            if 
player.GetItemAttribute(dstSlotPosi) != 0:
                
attrCount += 1

        
if attrCount<4:
            return 
TRUE

        
return FALSE

    def ShowToolTip
(selfslotIndex):
        if 
None != self.tooltipItem:
            
self.tooltipItem.SetInventoryItem(slotIndex)

    
def OnTop(self):
        if 
None != self.tooltipItem:
            
self.tooltipItem.SetTop()

    
def OnPressEscapeKey(self):
        
self.Close()
        return 
TRUE

    def UseItemSlot
(selfslotIndex):
        if 
constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS():
            return

        
slotIndex self.__InventoryLocalSlotPosToGlobalSlotPos(slotIndex)

        
self.__UseItem(slotIndex)
        
mouseModule.mouseController.DeattachObject()
        
self.OverOutItem()

    
def __UseItem(selfslotIndex):
        
ItemVNum player.GetItemIndex(slotIndex)
        
item.SelectItem(ItemVNum)
        if 
item.IsFlag(item.ITEM_FLAG_CONFIRM_WHEN_USE):
            
self.questionDialog uiCommon.QuestionDialog()
            
self.questionDialog.SetText(locale.INVENTORY_REALLY_USE_ITEM)
            
self.questionDialog.SetAcceptEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnAccept))
            
self.questionDialog.SetCancelEvent(ui.__mem_func__(self.__UseItemQuestionDialog_OnCancel))
            
self.questionDialog.Open()
            
self.questionDialog.slotIndex slotIndex
        
else:
            
self.__SendUseItemPacket(slotIndex)
            
#net.SendItemUsePacket(slotIndex)

    
def __UseItemQuestionDialog_OnCancel(self):
        
self.OnCloseQuestionDialog()

    
def __UseItemQuestionDialog_OnAccept(self):
        
self.__SendUseItemPacket(self.questionDialog.slotIndex)

        if 
self.questionDialog:
            
self.questionDialog.Close()
        
self.questionDialog None

    def __SendUseItemToItemPacket
(selfsrcSlotPosdstSlotPos):
        
# °³ÀλóÁ¡ ¿*°í Àִ µ¿¾È ¾ÆÀÌÅÛ »ç¿ë ¹æÁö
        
if uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.USE_ITEM_FAILURE_PRIVATE_SHOP)
            return

        
net.SendItemUseToItemPacket(srcSlotPosdstSlotPos)

    
def __SendUseItemPacket(selfslotPos):
        
# °³ÀλóÁ¡ ¿*°í Àִ µ¿¾È ¾ÆÀÌÅÛ »ç¿ë ¹æÁö
        
if uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.USE_ITEM_FAILURE_PRIVATE_SHOP)
            return

        
## WARP_SCROLL_BLOCK
        # Atlasinfo.txt szerint kell megadni a map neveket!
        
itemVNum player.GetItemIndex(slotPos)
        if 
itemVNum in WARP_SCROLLS:
            
MapName str(background.GetCurrentMapName())
            if 
MapName == "season1/metin2_map_oxevent" or MapName =="metin2_map_deviltower1"  or MapName == "metin2_map_t1" or MapName == "metin2_map_t2" or MapName == "metin2_map_t3":
                
chat.AppendChat(chat.CHAT_TYPE_INFO"Ezen a területen nem használatod a Visszaszállító tekercset!")
                return 
TRUE
        
## END_OF_WARP_SCROLL_BLOCK

        
net.SendItemUsePacket(slotPos)

    
def __SendMoveItemPacket(selfsrcSlotPosdstSlotPossrcItemCount):
        
# °³ÀλóÁ¡ ¿*°í Àִ µ¿¾È ¾ÆÀÌÅÛ »ç¿ë ¹æÁö
        
if uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
            return

        
net.SendItemMovePacket(srcSlotPosdstSlotPossrcItemCount)

##BonusPageDialog
    
def OnUpdate(self):
        if 
self.isLoaded == 1:
            
self.__LoadRefreshBonus()
##BonusPageDialog 
P.S.: Ich habe ein paar Probleme mit der Nacht... Sie funktioniert nicht, habe den Sanii Clienten.
Da fehlt wahrscheinlich eine Datei, kann mir einer dabei helfen?

Ansonsten wär es super wenn mir jemand helfen kann und auch, dass
mit der Nacht. Der bekommt aufjedenfall ein Thanks.
lolLipton is offline  
Reply


Similar Threads Similar Threads
[Hilfe] Reittiere gehen in den Inventar Sockel
08/04/2013 - Metin2 Private Server - 9 Replies
Guten Tag Community! Und zwar hätte ich mal eine Frage an euch. Ich würde gerne bei meinen Reittieren einstellen: Das wenn man einen Rechtsklick auf das Siegel macht das man auf das Reittier aufsteigt ohne das, das siegel oben in einen der zwei Sockel rutscht und das man es unten in die leiste ziehen kann wo die Pots und Fertigekeiten sind.. Kann mir da jemand weiter helfen? Danke im voraus. Lg Toshiro
Hilfe zum Inventar Dropper & 10€ PAYSAFEKART!
02/06/2012 - Metin2 Private Server - 3 Replies
hey in letzer zeit läuft viel kacke mann will sachen runterladen und immer nur FBI megaupload kim schmitz musste der sich so erwischen lassen suche seit längerem ein INVENTAR DROPPER! und wollte fragen ob jemand ein von euch hat halt nur für ein P server ist mir egal ob der auf DE geht oder nicht Wenn sich was Funktionierendes Finden lässt wäre ich uach bereit 10€ psc dafür zu geben würde mich über eine Schnelle antwort freuen ;)
[Hilfe]Rüssi im inventar nicht sichtbar
10/14/2011 - Metin2 Private Server - 0 Replies
Hi! Ich hab jetzt diese Frage schon öfters gestellt und nach vielen mehr oder weniger guten antworten, weiß ich jetzt mehr, aber nicht genug! Also, 3 meiner 2011er Rüssis werden nicht angezeigt!Im inventar sind sie nicht zu sehene, wenn ich sie anziehe an dem körper schon...Ich hab den Datei-Pfad in der Item_List schon überprüft, Richtig, die .tga Datei hat das richtige icon, nur leider zeigt er ihn nicht im Spiel an! Was ich auch komisch finde ist das NUR 3 nicht angezeigt werden... Thx im...
[Hilfe]2011 Rüstungen im inventar unsichtbar
10/13/2011 - Metin2 Private Server - 3 Replies
Hi Ich weiß das diese Frage schon sehr oft gestellt wurde, doch nie wurde sie richtig beantwortet, also: ich hab die neuen 2011er Rüssis eingefügt und es auch schon mehrmals neu versucht, über einfache...und die schwere(FR) methode versucht,l doch jedes mal failed es! Die rüstungen sind im inventar nicht zu sehen, anziehen kann ich sie und seh sie auch am körper, nur hallt nicht im inventar! Es ist einmal der Zombie-umhang, die silber rüssi und der levis panzer!!! Hilfe!!! mfg Asasi
[METIN 35] Hilfe Inventar leer
12/26/2009 - Metin2 Private Server - 13 Replies
Hay, also ich mich gerade auf metin35 eingeloggt habe, war mein kompletter inventar leer;es sah so aus als ob ich gehackt worden wäre. Doch mein gesamtes Yang war noch da! Bei meinem zweiten Account auch; die accounts zweier freunde waren auch betroffen. Ich unterhielt mich mit einem anderen Spieler, bei dem das selbe Phenomän auftrat. Inve leer, Yang da! Was soll das?



All times are GMT +2. The time now is 09:04.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.