Detaylı Mob Target İnfo Tam Sistem

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
 
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.
teşekkürler
 
Merhaba arkadaşlar,
Ufak bir bilgilendirme yayınlamak istiyorum. Sistemim sorunsuz çalışıyor. Rehberine uyduğunuz sürece hiç bir sorunla karşılaşmadan ekliyceksiniz. Zaten alınacak hataları vs, güncellemeleri konuda verdim. Sağolsun turuncu forumda konumu mesajlarımı ve dahası güncelleme mesajlarımı bile 1 e 1 alan arkadaş olduğu için ve referans göstermediği için, sistemi oradaki dosya ve konuya göre eklerken hata alan arkadaşlar var. Sistemi benim konumdan eklediğiniz sürece her türlü hatada yardımcı olurum ve konuya eklerim. Daha önce çok yaptım. Sadece bu konu için değil forum üzerinde paylaştığım tüm konular tarafımca önce test edilmiş ve alınan tüm sorunlar çözümlenerek paylaşılmıştır ve dahası güncellemelerini her zaman veriyorum paylaştığım her konunun.

Güncelleme v_01 deki 1. seçenek ve 'module' object has no attribute 'MOB_RESIST_SWORD' bu hatanın çözümlerini direk githubdaki sisteme ekledim. Artık şuan bu konudan eklediğiniz zaman direk aşağıdaki scroll barlı görüntüyü elde ediceksiniz.

1745773730872.webp


Yine güncelleme Güncelleme v_01 deki seçenek 3ü eklediğinizde aşağıdaki tam görünümü elde ediceksiniz. Zevkinize oyun yapınıza ve görünüşü hangisi hoşunuza gidiyosa onu uygulamanız için böyle birşey yapmıştım. Kullanacak arkadaşlar için hayırlı olsun.

Lafı fazla uzatmadan, dediğim gibi bu konu üzerindeki sistemi eklediğiniz zaman sorunsuz kullanabileceksiniz. Diğer konular ve alınan hatalar beni bağlamaz lütfen bunun için rahatsız etmeyin beni. Konuda tüm hatalar ve çözümleri mevcut. Güle güle kullanın. İyi forumlar.


1745774022044.webp
 
Merhaba arkadaşlar,
Ufak bir bilgilendirme yayınlamak istiyorum. Sistemim sorunsuz çalışıyor. Rehberine uyduğunuz sürece hiç bir sorunla karşılaşmadan ekliyceksiniz. Zaten alınacak hataları vs, güncellemeleri konuda verdim. Sağolsun turuncu forumda konumu mesajlarımı ve dahası güncelleme mesajlarımı bile 1 e 1 alan arkadaş olduğu için ve referans göstermediği için, sistemi oradaki dosya ve konuya göre eklerken hata alan arkadaşlar var. Sistemi benim konumdan eklediğiniz sürece her türlü hatada yardımcı olurum ve konuya eklerim. Daha önce çok yaptım. Sadece bu konu için değil forum üzerinde paylaştığım tüm konular tarafımca önce test edilmiş ve alınan tüm sorunlar çözümlenerek paylaşılmıştır ve dahası güncellemelerini her zaman veriyorum paylaştığım her konunun.

Güncelleme v_01 deki 1. seçenek ve 'module' object has no attribute 'MOB_RESIST_SWORD' bu hatanın çözümlerini direk githubdaki sisteme ekledim. Artık şuan bu konudan eklediğiniz zaman direk aşağıdaki scroll barlı görüntüyü elde ediceksiniz.

23138 eklentisini görüntüle

Yine güncelleme Güncelleme v_01 deki seçenek 3ü eklediğinizde aşağıdaki tam görünümü elde ediceksiniz. Zevkinize oyun yapınıza ve görünüşü hangisi hoşunuza gidiyosa onu uygulamanız için böyle birşey yapmıştım. Kullanacak arkadaşlar için hayırlı olsun.

Lafı fazla uzatmadan, dediğim gibi bu konu üzerindeki sistemi eklediğiniz zaman sorunsuz kullanabileceksiniz. Diğer konular ve alınan hatalar beni bağlamaz lütfen bunun için rahatsız etmeyin beni. Konuda tüm hatalar ve çözümleri mevcut. Güle güle kullanın. İyi forumlar.


23139 eklentisini görüntüle

Merhaba,

Metne sadece +2 taşlar koyduğum halde drop info da +0/+4 arası drop olduğu geçiyor bunu nasıl düzeltebilirim

1748401417428.webp


Düşen taşlar aslında sadece +2
 
Merhaba,

Metne sadece +2 taşlar koyduğum halde drop info da +0/+4 arası drop olduğu geçiyor bunu nasıl düzeltebilirim

23678 eklentisini görüntüle

Düşen taşlar aslında sadece +2
Merhabalar,
Metin2de taşları, mob droptan çekmiyor. Src kısmından çekiyor. Sadece görüntüsü öyle ama kestiğiniz zaman +2 taş atacak. Bunu çözmek için Güncelleme v_02 yi okuyup uygulayın düzelecektir.
 
Merhabalar,
Metin2de taşları, mob droptan çekmiyor. Src kısmından çekiyor. Sadece görüntüsü öyle ama kestiğiniz zaman +2 taş atacak. Bunu çözmek için Güncelleme v_02 yi okuyup uygulayın düzelecektir.

Benim filesta bu taş gösterim sistemi ekliydi. Ancak mob dropta taş olmayan metinlerde bile taş varmış gibi gösteriyordu. v_02'yi yaptım artık mob dropta taş drobu yoksa metinde de göstermiyor. Buraya kadar doğru. Ama drop varsa + sı farketmeksizin standart olarak +0 ile +4 arası varmış gibi info geçiyor. Tabii ki +2 taş düşürüyor ama görüntü de halen +0/+4 yazmakta. Dediğim gibi; v_02 yi yaptım.
 
Benim filesta bu taş gösterim sistemi ekliydi. Ancak mob dropta taş olmayan metinlerde bile taş varmış gibi gösteriyordu. v_02'yi yaptım artık mob dropta taş drobu yoksa metinde de göstermiyor. Buraya kadar doğru. Ama drop varsa + sı farketmeksizin standart olarak +0 ile +4 arası varmış gibi info geçiyor. Tabii ki +2 taş düşürüyor ama görüntü de halen +0/+4 yazmakta. Dediğim gibi; v_02 yi yaptım.
Uitarget.py de fonksiyonları kapat zaten kodlara bakarsan anlarsın neresi olduğunu oraları yorum sıtırına al düzelir. 2 yerde var bu arada bakarsın zaten. Taşdan dolayı öyle görünüyor. + kaç olursa olsun +0 +4 görünücek. Yapamazsan haber ver pcye geçip yapılışını anlatayım. Telefondayım şimdi.
 
ui.py:
Genişlet Daralt Kopyala
system.py(line:273)
RunMainScript
system.py(line:192)
execfile system.py(line:163) Run
prototype.py(line:61) 
prototype.py(line:47) RunApp
networkModule.py(line:122) Create
networkModule.py(line:161) CreatePopupDialog
networkModule.py(line:34)LoadDialog
ui.py(line:3121) LoadScriptFile





Run - :PopupDialog object has no attribute 'SetPosition'
client server buildleri aldım eksiksiz ekledim
pack ui.py de şöyle bi hata var




ui.py ilgili satırlar:
Genişlet Daralt Kopyala
            dbg.TraceError("Failed to load script file : %s" % (FileName))
            exception.Abort("LoadScriptFile!!!!!!!!!!!!!!")
        
        #####

        Body = self.ScriptDictionary["window"]
        self.CheckKeyList("window", Body, self.BODY_KEY_LIST)

        window.ClearDictionary()
        self.InsertFunction = window.InsertChild

        window.SetPosition(int(Body["x"]), int(Body["y"]))

        if localeInfo.IsARABIC():
            w = wndMgr.GetScreenWidth()
            h = wndMgr.GetScreenHeight()
            if Body.has_key("width"):
                w = int(Body["width"])
            if Body.has_key("height"):
                h = int(Body["height"])

            window.SetSize(w, h)
        else:
            window.SetSize(int(Body["width"]), int(Body["height"]))
            if True == Body.has_key("style"):
                for StyleList in Body["style"]:
                    window.AddFlag(StyleList)
        

        self.LoadChildren(window, Body)

    def LoadChildren(self, parent, dicChildren):

        if localeInfo.IsARABIC():
            parent.AddFlag( "rtl" )

        if True == dicChildren.has_key("style"):
            for style in dicChildren["style"]:
                parent.AddFlag(style)

        if False == dicChildren.has_key("children"):
            return False

        Index = 0
 
taşlar gözükmesin isteyen arkadşlar item_manager.cppden TARGET INFORMATION içinde IsStone olan yeri kaldırsın taşlar gözükmüyor
Öyle yaparsan hiç görünmez, pack kısmında uitarget.pyden doğru satırları yorum satırına aldığınız zaman, taşları tek tek ekleyebilirsiniz.
Yinede tavsiyen için teşekkürler.
 
1750470860230.webp
1750470900841.webp
hocam merhabba ben herşeyi ekledim fakat mob dropda eşyalarımda var fakat gözükmüyor neden olabilir yardımcı olacak varmı, marty 5.8
 
Gösterdiğin 8002 olması lazım, 104 gösteriyorsun.
 
Bu sistemde oyuncularıda yaratık gibi algılayıp drop list açıyordu yani oyuncuyla duello yaptığında veya pk açtığında sanki mob gibi algılıyordu düzeldimi o ?
 
Geri
Üst