- Mesaj
- 1.428
- Çözümler
- 38
- Beğeni
- 1.074
- Puan
- 1.370
- Ticaret Puanı
- 2
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.
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 :
Source :
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.
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.
Çözüm :
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)
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.
Örnek bir mob içerisine ekleme,
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.
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.
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
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.
Güncelleme v_01
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:
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ı : |
Çözüm :
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
###########################################################################################
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:
##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)
İtem varken : | İtem yokken: |
Güncelleme v_02
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:
if (IsStone())
{
DetermineDropMetinStone();
}
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:
// if (IsStone())
// {
//DetermineDropMetinStone();
// }
Örnek bir mob içerisine ekleme,
mob_drop_item.txt:
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.
Sadece MMOTutkunlarına Özeldir. Lütfen diğer yerlerde paylaşırken kaynak gösteriniz.
Son düzenleme: