- AdminCP
- #1
- MG Yaşı
- 2 Ay 1 Gün
- Katılım
- 2 Şub 2026
- Konular
- 224
- Mesajlar
- 363
- Tepkime puanı
- 54
- Puan
- 53
- Konum
- İstanbul
Merhaba arkadaşlar,
Uzun süredir araştırma yapıyorum fakat bu seviyede detaylı bir anlatıma pek rastlayamadım. Karşıma çıkan konulardan birinde yalnızca modüller paylaşılmış, ancak bununla birlikte kaynak kodları bulunan server files dosyaları da eklenmişti. Merak edenler için inceleyebileceğiniz bağlantıyı aşağıya bırakıyorum.
Zihin taşları ekranda rastgele şekilde görünmekte ve her değişimde açıklama metni de buna paralel olarak güncellenmektedir.
Aşağıda ilgili dosyaların tamamını paylaşıyorum. Umarım işinize yarar, herkese iyi kullanımlar.


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.
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)
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:
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.
İNDİR;
Uzun süredir araştırma yapıyorum fakat bu seviyede detaylı bir anlatıma pek rastlayamadım. Karşıma çıkan konulardan birinde yalnızca modüller paylaşılmış, ancak bununla birlikte kaynak kodları bulunan server files dosyaları da eklenmişti. Merak edenler için inceleyebileceğiniz bağlantıyı aşağıya bırakıyorum.
Zihin taşları ekranda rastgele şekilde görünmekte ve her değişimde açıklama metni de buna paralel olarak güncellenmektedir.
Aşağıda ilgili dosyaların tamamını paylaşıyorum. Umarım işinize yarar, herkese iyi kullanımlar.


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.
Kod:
uitooltip.py:
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
###########################################################################################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)
Kod:
##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:
Kod:
char.cpp:
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.
İNDİR;
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
