Detaylı Mob Target İnfo Tam Sistem

/usr/game/share/locale/xx içerisindeki droplarıda kaldırdınmı. Bende sorunsuz kalkıyor, dediklerimi yapınca. Hatta kanıt bile attım. :)
bakayım hocam tekrardan yazacağım

droplarda taş yok hocam . içinde taş olmayan metinde de gösteriyor. syser da yok
 
En son bir moderatör tarafından düzenlenmiş:

Arat​

ui.py:
Genişlet Daralt Kopyala
    def __init__(self, layer = "UI"):
        Window.__init__(self, layer)

        CornerFileNames = [ "d:/ymir work/ui/pattern/ThinBoard_Corner_"+dir+".tga" for dir in ["LeftTop","LeftBottom","RightTop","RightBottom"] ]
        LineFileNames = [ "d:/ymir work/ui/pattern/ThinBoard_Line_"+dir+".tga" for dir in ["Left","Right","Top","Bottom"] ]

        self.Corners = []
        for fileName in CornerFileNames:
            Corner = ExpandedImageBox()
            Corner.AddFlag("attach")
            Corner.AddFlag("not_pick")
            Corner.LoadImage(fileName)
            Corner.SetParent(self)
            Corner.SetPosition(0, 0)
            Corner.Show()
            self.Corners.append(Corner)

        self.Lines = []
        for fileName in LineFileNames:
            Line = ExpandedImageBox()
            Line.AddFlag("attach")
            Line.AddFlag("not_pick")
            Line.LoadImage(fileName)
            Line.SetParent(self)
            Line.SetPosition(0, 0)
            Line.Show()
            self.Lines.append(Line)

        Base = Bar()
        Base.SetParent(self)
        Base.AddFlag("attach")
        Base.AddFlag("not_pick")
        Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT)
        Base.SetColor(self.BOARD_COLOR)
        Base.Show()
        self.Base = Base

        self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT)
        self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0)

    def __del__(self):
        Window.__del__(self)

Altına ekle


ui.py:
Genişlet Daralt Kopyala
    if app.ENABLE_TARGET_INFORMATION_SYSTEM:
        def ShowCorner(self, corner):
            self.Corners[corner].Show()
            self.SetSize(self.GetWidth(), self.GetHeight())

        def HideCorners(self, corner):
            self.Corners[corner].Hide()
            self.SetSize(self.GetWidth(), self.GetHeight())

        def ShowLine(self, line):
            self.Lines[line].Show()
            self.SetSize(self.GetWidth(), self.GetHeight())

        def HideLine(self, line):
            self.Lines[line].Hide()
            self.SetSize(self.GetWidth(), self.GetHeight())

Arat​

uitarget.py:
Genişlet Daralt Kopyala
            def __init__(self):
                ui.ThinBoard.__init__(self)

Altına ekle​


uitarget.py:
Genişlet Daralt Kopyala
                self.HideCorners(self.LT)
                self.HideCorners(self.RT)

Bunları ekleyince çözülmesi lazım.

hocam bunu hallettim @enes turan sayesinde ama şimdi şöyle bir sorun var
eksiksiz eklememe rağmen metinlerde veya bosslarda ? işareti kısmı çıkmıyor
syserrde vermiyor şuan
 
bakayım hocam tekrardan yazacağım

droplarda taş yok hocam . içinde taş olmayan metinde de gösteriyor. syser da yok
Şua aşağıda alıntıladığım fonksiyonu kapat.
Yani yapman gereken şu:

// if (IsStone()) // { //DetermineDropMetinStone(); // }
Sil yada yorum satırına al.



hocam bunu hallettim @enes turan sayesinde ama şimdi şöyle bir sorun var
eksiksiz eklememe rağmen metinlerde veya bosslarda ? işareti kısmı çıkmıyor
syserrde vermiyor şuan
Hocam sistemdeki buton kısmını değiştirmiştim. Sistem dosyalarında düzeltmeyi unuttum tekrar upload etmek istemediğimden öyle kaldı düzeltiyorum şimdi.

uitarget.py:
Genişlet Daralt Kopyala
## Arat

            infoButton.SetUpVisual("d:/ymir work/ui/game/mark/question_mark_1.tga")
            infoButton.SetOverVisual("d:/ymir work/ui/game/mark/question_mark_2.tga")
            infoButton.SetDownVisual("d:/ymir work/ui/game/mark/question_mark_3.tga")

##Değiştir

            infoButton.SetUpVisual("d:/ymir work/ui/pattern/q_mark_01.tga")
            infoButton.SetOverVisual("d:/ymir work/ui/pattern/q_mark_02.tga")
            infoButton.SetDownVisual("d:/ymir work/ui/pattern/q_mark_01.tga")
 
infoButton.SetUpVisual("d:/ymir work/ui/pattern/q_mark_01.tga") infoButton.SetOverVisual("d:/ymir work/ui/pattern/q_mark_02.tga") infoButton.SetDownVisual("d:/ymir work/ui/pattern/q_mark_01.tga")
hocam buton geldi ama tıklayınca bu syserri veriyor

Kod:
Genişlet Daralt Kopyala
0113 01:54:27625 :: Traceback (most recent call last):

0113 01:54:27625 ::   File "ui.py", line 1349, in CallEvent

0113 01:54:27625 ::   File "ui.py", line 88, in __call__

0113 01:54:27625 ::   File "ui.py", line 70, in __call__

0113 01:54:27625 ::   File "uiTarget.py", line 603, in OnPressedInfoButton

0113 01:54:27626 ::   File "uiTarget.py", line 152, in Open

0113 01:54:27626 ::   File "uiTarget.py", line 180, in __LoadInformation

0113 01:54:27626 ::   File "uiTarget.py", line 202, in __LoadInformation_Default

0113 01:54:27626 :: AttributeError
0113 01:54:27626 :: :
0113 01:54:27626 :: 'module' object has no attribute 'NumberToString'
0113 01:54:27626 ::
 
En son bir moderatör tarafından düzenlenmiş:
hocam buton geldi ama tıklayınca bu syserri veriyor

0113 01:54:27625 :: Traceback (most recent call last):

0113 01:54:27625 :: File "ui.py", line 1349, in CallEvent

0113 01:54:27625 :: File "ui.py", line 88, in __call__

0113 01:54:27625 :: File "ui.py", line 70, in __call__

0113 01:54:27625 :: File "uiTarget.py", line 603, in OnPressedInfoButton

0113 01:54:27626 :: File "uiTarget.py", line 152, in Open

0113 01:54:27626 :: File "uiTarget.py", line 180, in __LoadInformation

0113 01:54:27626 :: File "uiTarget.py", line 202, in __LoadInformation_Default

0113 01:54:27626 :: AttributeError
0113 01:54:27626 :: :
0113 01:54:27626 :: 'module' object has no attribute 'NumberToString'
0113 01:54:27626 ::
Bu hatanın çözümü konuda mevcuttu aslında.

Müsait bi yere ekle.

localeinfo.py:
Genişlet Daralt Kopyala
def NumberToString(n) :
    if n <= 0 :
        return "0"

    return "%s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]))
 
Bu hatanın çözümü konuda mevcuttu aslında.

Müsait bi yere ekle.

localeinfo.py:
Genişlet Daralt Kopyala
def NumberToString(n) :
    if n <= 0 :
        return "0"

    return "%s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]))
hocam çalıştırdım her şey güzel fakat şu syserri veriyor şuan çalışmasına rağmen

Kod:
Genişlet Daralt Kopyala
0113 02:02:06938 :: Traceback (most recent call last):

0113 02:02:06938 ::   File "ui.py", line 307, in OnMouseLeftButtonDown

0113 02:02:06938 :: AttributeError
0113 02:02:06938 :: :
0113 02:02:06938 :: 'InfoBoard' object has no attribute 'clickEvent'
0113 02:02:06938 ::

0113 02:02:07746 :: Traceback (most recent call last):

0113 02:02:07746 ::   File "ui.py", line 307, in OnMouseLeftButtonDown

0113 02:02:07746 :: AttributeError
0113 02:02:07746 :: :
0113 02:02:07746 :: 'ItemListBoxItem' object has no attribute 'clickEvent'
0113 02:02:07746 ::
 
En son bir moderatör tarafından düzenlenmiş:
Taşın üstüne gelince tooltip gözükmeme sorunu yaşayan varmı? Taşın üstüne geldiğimde hiçbirşey yazmıyor fakat diğer itemler ve bk sorunsuz
 
Taşın üstüne gelince tooltip gözükmeme sorunu yaşayan varmı? Taşın üstüne geldiğimde hiçbirşey yazmıyor fakat diğer itemler ve bk sorunsuz
konuda verilen çözümleri uyguladın mı

hocam çalıştırdım her şey güzel fakat şu syserri veriyor şuan çalışmasına rağmen

Kod:
Genişlet Daralt Kopyala
0113 02:02:06938 :: Traceback (most recent call last):

0113 02:02:06938 ::   File "ui.py", line 307, in OnMouseLeftButtonDown

0113 02:02:06938 :: AttributeError
0113 02:02:06938 :: :
0113 02:02:06938 :: 'InfoBoard' object has no attribute 'clickEvent'
0113 02:02:06938 ::

0113 02:02:07746 :: Traceback (most recent call last):

0113 02:02:07746 ::   File "ui.py", line 307, in OnMouseLeftButtonDown

0113 02:02:07746 :: AttributeError
0113 02:02:07746 :: :
0113 02:02:07746 :: 'ItemListBoxItem' object has no attribute 'clickEvent'
0113 02:02:07746 ::

burda bir çözüm vermişler ama dener misin
 

burda bir çözüm vermişler ama dener misin

Konudaki tüm herşeyi denedim fakat tooltip gözükmüyor taşın
 
En son bir moderatör tarafından düzenlenmiş:
Konudaki tüm herşeyi denedim fakat tooltip gözükmüyor taşın

uitooltip.py:
Genişlet Daralt Kopyala
##Arat

    def AppendTextLine(self, text, color = FONT_COLOR, centerAlign = True):
        if not self.CanEquip() and self.bCannotUseItemForceSetDisableColor:
            color = self.DISABLE_COLOR

        return ToolTip.AppendTextLine(self, text, color, centerAlign)

    def ClearToolTip(self):
        self.isShopItem = False
        self.toolTipWidth = self.TOOL_TIP_WIDTH
        ToolTip.ClearToolTip(self)

uitooltip.py:
Genişlet Daralt Kopyala
## Altına Ekle

    if app.ENABLE_TARGET_INFORMATION_SYSTEM:
        def SetItemToolTipStone(self, itemVnum):
            self.itemVnum = itemVnum
            item.SelectItem(itemVnum)
            itemType = item.GetItemType()

            itemDesc = item.GetItemDescription()
            itemSummary = item.GetItemSummary()
            attrSlot = 0
            self.__AdjustMaxWidth(attrSlot, itemDesc)
            itemName = item.GetItemName()
            realName = itemName[:itemName.find("+")]
            self.SetTitle(realName + " +0 - +4")

            ## Description ###
            self.AppendDescription(itemDesc, 26)
            self.AppendDescription(itemSummary, 26, self.CONDITION_COLOR)

            if item.ITEM_TYPE_METIN == itemType:
                self.AppendMetinInformation()
                self.AppendMetinWearInformation()

            for i in xrange(item.LIMIT_MAX_NUM):
                (limitType, limitValue) = item.GetLimit(i)

                if item.LIMIT_REAL_TIME_START_FIRST_USE == limitType:
                    self.AppendRealTimeStartFirstUseLastTime(item, metinSlot, i)

                elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
                    self.AppendTimerBasedOnWearLastTime(metinSlot)

            self.ShowToolTip()

Buradaki kodları eklerken bu işaretlediğim satırlara dikkat et kodlar olabilr ama taş kodları olmayabilr ona göre eksikleri tamamla direk alma.
 
uitooltip.py:
Genişlet Daralt Kopyala
##Arat

    def AppendTextLine(self, text, color = FONT_COLOR, centerAlign = True):
        if not self.CanEquip() and self.bCannotUseItemForceSetDisableColor:
            color = self.DISABLE_COLOR

        return ToolTip.AppendTextLine(self, text, color, centerAlign)

    def ClearToolTip(self):
        self.isShopItem = False
        self.toolTipWidth = self.TOOL_TIP_WIDTH
        ToolTip.ClearToolTip(self)

uitooltip.py:
Genişlet Daralt Kopyala
## Altına Ekle

    if app.ENABLE_TARGET_INFORMATION_SYSTEM:
        def SetItemToolTipStone(self, itemVnum):
            self.itemVnum = itemVnum
            item.SelectItem(itemVnum)
            itemType = item.GetItemType()

            itemDesc = item.GetItemDescription()
            itemSummary = item.GetItemSummary()
            attrSlot = 0
            self.__AdjustMaxWidth(attrSlot, itemDesc)
            itemName = item.GetItemName()
            realName = itemName[:itemName.find("+")]
            self.SetTitle(realName + " +0 - +4")

            ## Description ###
            self.AppendDescription(itemDesc, 26)
            self.AppendDescription(itemSummary, 26, self.CONDITION_COLOR)

            if item.ITEM_TYPE_METIN == itemType:
                self.AppendMetinInformation()
                self.AppendMetinWearInformation()

            for i in xrange(item.LIMIT_MAX_NUM):
                (limitType, limitValue) = item.GetLimit(i)

                if item.LIMIT_REAL_TIME_START_FIRST_USE == limitType:
                    self.AppendRealTimeStartFirstUseLastTime(item, metinSlot, i)

                elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
                    self.AppendTimerBasedOnWearLastTime(metinSlot)

            self.ShowToolTip()

Buradaki kodları eklerken bu işaretlediğim satırlara dikkat et kodlar olabilr ama taş kodları olmayabilr ona göre eksikleri tamamla direk alma.
Tamamdır deneyeyim teşekkür ederiö
 
Şua aşağıda alıntıladığım fonksiyonu kapat.





Hocam sistemdeki buton kısmını değiştirmiştim. Sistem dosyalarında düzeltmeyi unuttum tekrar upload etmek istemediğimden öyle kaldı düzeltiyorum şimdi.

uitarget.py:
Genişlet Daralt Kopyala
## Arat

            infoButton.SetUpVisual("d:/ymir work/ui/game/mark/question_mark_1.tga")
            infoButton.SetOverVisual("d:/ymir work/ui/game/mark/question_mark_2.tga")
            infoButton.SetDownVisual("d:/ymir work/ui/game/mark/question_mark_3.tga")

##Değiştir

            infoButton.SetUpVisual("d:/ymir work/ui/pattern/q_mark_01.tga")
            infoButton.SetOverVisual("d:/ymir work/ui/pattern/q_mark_02.tga")
            infoButton.SetDownVisual("d:/ymir work/ui/pattern/q_mark_01.tga")
Şua aşağıda alıntıladığım fonksiyonu kapat. // bunu yaptım hocam fakat hala taş olamsada görünüyor dropta da taş yok
 
Merhaba Arkadaşlar uzun uzun aradım ama bu kadar detaylısını bulamadım. Bulduğum bir konu vardı o da modülleri paylaşmış bırakmış ve kaynak kodları olan server files dosyalarını koymuş. İncelemek isterseniz buraya tıklayın.

Gözüken zihin taşları sürekli değişir, aynı zamanda açıklaması da onunla birlikte değişir.

Şimdi tam dosyalarını ekliyorum. İyi Kullanımlar.

14596 eklentisini görüntüle 14597 eklentisini görüntüle20627 eklentisini görüntüle20628 eklentisini görüntüle


Alıntılarda özel içerikler gözükmez.

Alıntılarda özel içerikler gözükmez.

Not: Hiç bir forumdan yada konudan alıntı değildir. Osmanlı2 ve Pachi Tunganın paylaştığı server files dosyalarından bizzat kendim söktüm. Ayrıca bazı yerleri farklıdır. Uzun uğraşlar sonucu sorunsuz kurulabilecek hale getirdim. Söktükten sonra bizzat kendi filesime kurdum. Rehberi takip ettiğiniz ve düzgün eklediğiniz sürece hiç bir sorun çıkarmaz o yüzden eklemek için bana yazmayınız. Hata alırsanız konu altından bildirin çözeriz. İyi kullanımlar.

Source :
Linkleri görebilmek için giriş yap veya kayıt ol.

Source :
Linkleri görebilmek için giriş yap veya kayıt ol.





1 )
uitarget.py de NumberToString tanımlaması var. Aslında bildiğiniz string, daha güzel yazması için eklenmişti. Bunun tanımlamasını yapmasını dosyalarda unutmuşum bende var ama eklememişim. Str olarak değiştirdiğinizde de düzeliyordu orası ama yinede tanımlamasını yapalım güzel görünsün.

localeinfo.py:
Genişlet Daralt Kopyala
def NumberToString(n) :
    if n <= 0 :
        return "0"

    return "%s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]))


2 )

Beceri kitapları gibi, tüm kitapların görünmeme sorununu aşağıdaki adımları uygulayarak çözebilrsiniz.
Not: Beceri kitapları skillerin isimlerine göre gösterilmez sadece beceri kitabı yazar. Onun için ayrıca değişiklikler yapmanız gerekli.


Öncesi :
Sonrası :
1728259695840-webp.19298
1728259619393-webp.19296

1728259633366-webp.19297

Çözüm :

uitooltip.py:
Genişlet Daralt Kopyala
## Arat
        ### Skill Book ###
        if 50300 == itemVnum:
            if 0 != metinSlot:
                self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILLBOOK_NAME, 1)
                self.ShowToolTip()
            return
        elif 70037 == itemVnum:
            if 0 != metinSlot:
                self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
                self.AppendDescription(item.GetItemDescription(), 26)
                self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
                self.ShowToolTip()
            return
        elif 70055 == itemVnum:
            if 0 != metinSlot:
                self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
                self.AppendDescription(item.GetItemDescription(), 26)
                self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
                self.ShowToolTip()
            return
    
###########################################################################################



## Değiştir.

        ### Skill Book ###
        elif 50300 == itemVnum:
            if 0 != metinSlot and not self.isBook:
                self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILLBOOK_NAME, 1)
                self.ShowToolTip()
            elif self.isBook:
                self.SetTitle(item.GetItemName())
                self.AppendDescription(item.GetItemDescription(), 26)
                self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
                self.ShowToolTip()
            return
        elif 70037 == itemVnum:
            if 0 != metinSlot and not self.isBook2:
                self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
                self.AppendDescription(item.GetItemDescription(), 26)
                self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
                self.ShowToolTip()
            elif self.isBook2:
                self.SetTitle(item.GetItemName())
                self.AppendDescription(item.GetItemDescription(), 26)
                self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
                self.ShowToolTip()
            return
        elif 70055 == itemVnum:
            if 0 != metinSlot:
                self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILL_FORGET_BOOK_NAME, 0)
                self.AppendDescription(item.GetItemDescription(), 26)
                self.AppendDescription(item.GetItemSummary(), 26, self.CONDITION_COLOR)
                self.ShowToolTip()
            return
    
###########################################################################################

3 )
Görünüşü scroll barlı değilde tam göstermek için aşağıdakileri uygulayın.
Not: İtemler sadece 1 kez yüklenecek şekilde düzenlendi.(fixed)
Python:
Genişlet Daralt Kopyala
##Arat - Sil

MAX_ITEM_COUNT = 5


## Arat
                for value in xrange(self.slotSize):

## Değiştir

                for value in xrange(35):

##Arat

                            if emptySlotIndex >= self.slotSize:

## Değiştir

                            if emptySlotIndex >= 35:

## Arat

            def __LoadInformation_Drops(self, race):
                self.AppendSeperator()

                if race in constInfo.MONSTER_INFO_DATA:
                    if len(constInfo.MONSTER_INFO_DATA[race]["items"]) == 0:
                        self.AppendTextLine(localeInfo.TARGET_INFO_NO_ITEM_TEXT)
                    else:
                        itemListBox = ui.ListBoxExNew(32 + 5, self.MAX_ITEM_COUNT)
                        itemListBox.SetSize(self.GetWidth() - 15 * 2 - ui.ScrollBar.SCROLLBAR_WIDTH, (32 + 5) * self.MAX_ITEM_COUNT)
                        height = 0
                        for curItem in constInfo.MONSTER_INFO_DATA[race]["items"]:
                            if curItem.has_key("vnum_list"):
                                height += self.AppendItem(itemListBox, curItem["vnum_list"], curItem["count"])
                            else:
                                height += self.AppendItem(itemListBox, curItem["vnum"], curItem["count"])
                        if height < itemListBox.GetHeight():
                            itemListBox.SetSize(itemListBox.GetWidth(), height)
                        self.AppendWindow(itemListBox, 15)
                        itemListBox.SetBasePos(0)

                        if len(constInfo.MONSTER_INFO_DATA[race]["items"]) > itemListBox.GetViewItemCount():
                            itemScrollBar = ui.ScrollBar()
                            itemScrollBar.SetParent(self)
                            itemScrollBar.SetPosition(itemListBox.GetRight(), itemListBox.GetTop())
                            itemScrollBar.SetScrollBarSize(32 * self.MAX_ITEM_COUNT + 5 * (self.MAX_ITEM_COUNT - 1))
                            itemScrollBar.SetMiddleBarSize(float(self.MAX_ITEM_COUNT) / float(height / (32 + 5)))
                            itemScrollBar.Show()
                            itemListBox.SetScrollBar(itemScrollBar)
                else:
                    self.AppendTextLine(localeInfo.TARGET_INFO_NO_ITEM_TEXT)

            def OverInItem(self, slotIndex):
                vnum = self.itemVnums[slotIndex]
                if vnum == 0 or vnum == 50300 or vnum == 70037:
                    self.itemTooltip.HideToolTip()
                elif vnum > 27999 and vnum < 28960:
                    self.itemTooltip.HideToolTip()
                else:
                    self.OnShowItemTooltip(vnum)
## Tamamını değiştir

            def __LoadInformation_Drops(self, race):
                self.AppendSeperator()

                if race in constInfo.MONSTER_INFO_DATA:
                    if len(constInfo.MONSTER_INFO_DATA[race]["items"]) == 0:
                        self.AppendTextLine(localeInfo.TARGET_INFO_NO_ITEM_TEXT)
                        self.wndItem.Hide()
                    else:
                        self.wndItem.SetPosition(10, self.yPos - 7)
                        self.yPos += 32*5
                        self.SetSize(self.BOARD_WIDTH, self.yPos + 5)
                        self.UpdateRect()
                        self.wndItem.Show()

                        for curItem in constInfo.MONSTER_INFO_DATA[race]["items"]:
                            getItemID = 0
                            if curItem.has_key("vnum_list"):
                                getItemID = curItem["vnum_list"][0]
                                vnum = curItem["vnum_list"][0]
                            else:
                                getItemID = curItem["vnum"]
                                vnum=curItem["vnum"]

                            getItemCount=curItem["count"]
                            item.SelectItem(getItemID)
                            itemSize = item.GetItemSize()
                            if item.GetItemType() == item.ITEM_TYPE_METIN:
                                self.stoneVnum = getItemID
                                self.lastStoneVnum = 28430

                            emptySlotPos = self.SerachEmptySlot(itemSize[1])

                            if -1 != emptySlotPos:
                                self.itemArray[emptySlotPos] = 1

                                if itemSize[1] == 2:
                                    self.itemArray[emptySlotPos + 7] = 1
                                elif itemSize[1] == 3:
                                    self.itemArray[emptySlotPos + 7] = 1
                                    self.itemArray[emptySlotPos + 14] = 1

                                if item.GetItemType() == item.ITEM_TYPE_METIN:
                                    self.stoneImg = emptySlotPos

                                self.wndItem.SetItemSlot(emptySlotPos, getItemID, getItemCount)
                                self.itemVnums[emptySlotPos] = getItemID

                        self.wndItem.RefreshSlot()
                else:
                    self.AppendTextLine(localeInfo.TARGET_INFO_NO_ITEM_TEXT)
                    self.wndItem.Hide()

            def OverInItem(self, slotIndex):
                vnum = self.itemVnums[slotIndex]
                if vnum != 0:
                    self.OnShowItemTooltip(vnum)

## Arat

                    self.stoneImg.LoadImage(item.GetIconImageFileName(), realName)

## Değiştir

                    self.wndItem.SetItemSlot(self.stoneImg, nextImg, 1)

## Arat

    def __Initialize(self):
        self.nameString = ""
        self.nameLength = 0
        self.vid = 0
        if app.ENABLE_TARGET_INFORMATION_SYSTEM:
            self.vnum = 0
        self.isShowButton = False

## Altına ekle

        self.reload = False

## Arat

        def OnPressedInfoButton(self):

## Tamamını değiştir

        def OnPressedInfoButton(self):
            if self.infoButton.showWnd.IsShow():
                self.infoButton.showWnd.Close()
            else:
                if self.vnum !=0:
                    if self.reload == False:
                        net.SendTargetInfoLoad(player.GetTargetVID())
                        self.reload = True
                    self.infoButton.showWnd.Open(self, self.vnum)




Merhaba arkadaşlar bu güncellememizde ekli olmayan metin taşlarında gösterilen taşlarla ilgilidir. Bu güncellemeyle birlikte sadece belirlediğiniz moblarda, metin taşlarında görünücektir. Eğer bunu uygulamassanız sorun olmaz, ancak bilmelisinizki tüm metin taşlarında görünücektir. Drop düşmese bile.

Gelelim güncelleme'ye :

server srcde char.cpp içerisinde:

char.cpp:
Genişlet Daralt Kopyala
    if (IsStone())
    {
        DetermineDropMetinStone();
    }
Böyle bir kod var. Bu kodun açıklaması, eğer metin taşı ise DetermineDropMetinStone fonksiyonunu çağır demek.

Bu fonksiyonu yorum satırına aldığında tüm metinlerdeki taşları kaldırır. /usr/game/share/locale/turkey içerisindeki mob_drop_item.txtye eklediğinde de sırayla üst üste gösterir. Kodlar ona ayarlı çünkü.

Yani yapman gereken şu:

Burayı sil yada yorum satırına al.

char.cpp:
Genişlet Daralt Kopyala
    // if (IsStone())
    // {
        //DetermineDropMetinStone();
    // }

Örnek bir mob içerisine ekleme,

mob_drop_item.txt:
Genişlet Daralt Kopyala
Group    Àü¸¶¼®
{
    Mob    8002
    Type    drop
    1    5000    1    20
    2    11210    1    20
    3    11410    1    20
    4    11610    1    20
    5    11810    1    20
    6    30    1    20
    7    1010    1    20
    8    3020    1    20
    9    2020    1    20
    10    7020    1    20
    11    5001    1    15
    12    11211    1    15
    13    11411    1    15
    14    11611    1    15
    15    11811    1    15
    16    31    1    15
    17    1011    1    15
    18    3021    1    15
    19    2021    1    15
    20    7021    1    15
    21    5002    1    10
    22    11212    1    10
    23    11412    1    10
    24    11612    1    10
    25    11812    1    10
    26    32    1    5
    27    1012    1    5
    28    3022    1    5
    29    2022    1    5
    30    7022    1    5
    31    27002    50    100
    32    27003    30    50
    33    27005    30    50
    34    27006    20    50
    35    50300    1    10000
    36    50300    1    10000
    37    50300    1    10000
    38    50300    1    10000
    39    25041    1    10000
    40    70102    1    10000
    41    28430    1    50    15
    42    28431    1    50    15
    43    28432    1    50    15
    44    28433    1    50    15
    45    28434    1    50    15
    46    28435    1    50    15
    47    28436    1    50    15
    48    28437    1    50    15
    49    28438    1    50    15
    50    28439    1    50    15
    51    28440    1    50    15
    52    28441    1    50    15
    53    28442    1    50    15
    54    28443    1    50    15

}

Bu şekilde tüm taşları eklediğinizde, eklenen mobda görünecektir.

8002 - Dövüş Metni kodlu mob için yaptım. Sen istediğine ekleyebilirsin. Ayrıca sadece metin taşlarında değil istediğin moba ekleyebilirsin.

Böylece tüm metinlerde değilde mob_drop_item içerisindeki mob koduyla eklediklerinde görünür. 1 den fazla taş eklediğinde uitarget.py içerisinde sıralama olduğu için taşların fotosu sırayla değişir.

20622 eklentisini görüntüle

20623 eklentisini görüntüle
20624 eklentisini görüntüle

Sadece MMOTutkunlarına Özeldir. Lütfen diğer yerlerde paylaşırken kaynak gösteriniz.
deneyeceğim
 
Geri
Üst