Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu Detaylı Mob Target İnfo Sistemi Full Sürüm

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Is this client side drop info or it reads the drop from the server directly trough headers?
It will be better/faster if the drop was read directly from client /pack/root/mob_drop_info.json or txt...
do you have a system that works this way?
 
Eksik kodları ekleme yapayım

'module' object has no attribute 'MOB_RESIST_SWORD'

bu hatayı alanlar için

[CODE title="CLientSRC/Userinterface/PythonNonPlayerModule.cpp içinde"]

//ARAT GENELDE SONLARDA OLUR

PyModule_AddIntConstant(poModule, "PAWN", NRaceData::EMobRank::MOB_RANK_PAWN);
PyModule_AddIntConstant(poModule, "S_PAWN", NRaceData::EMobRank::MOB_RANK_S_PAWN);
PyModule_AddIntConstant(poModule, "KNIGHT", NRaceData::EMobRank::MOB_RANK_KNIGHT);
PyModule_AddIntConstant(poModule, "S_KNIGHT", NRaceData::EMobRank::MOB_RANK_S_KNIGHT);
PyModule_AddIntConstant(poModule, "BOSS", NRaceData::EMobRank::MOB_RANK_BOSS);
PyModule_AddIntConstant(poModule, "KING", NRaceData::EMobRank::MOB_RANK_KING);

//EKLE

#ifde#ifde#ifdefLE_TARGET_INFORMATION_SYSTEMPyModule_AddIntConstant(poModule, "MOB_RESIST_SWORD", CPythonNonPlayer::MOB_RESIST_SWORD);
PyModule_AddIntConstant(poModule, "MOB_RESIST_TWOHAND", CPythonNonPlayer::MOB_RESIST_TWOHAND);
PyModule_AddIntConstant(poModule, "MOB_RESIST_DAGGER", CPythonNonPlayer::MOB_RESIST_DAGGER);
PyModule_AddIntConstant(poModule, "MOB_RESIST_BELL", CPythonNonPlayer::MOB_RESIST_BELL);
PyModule_AddIntConstant(poModule, "MOB_RESIST_FAN", CPythonNonPlayer::MOB_RESIST_FAN);
PyModule_AddIntConstant(poModule, "MOB_RESIST_BOW", CPythonNonPlayer::MOB_RESIST_BOW);
PyModule_AddIntConstant(poModule, "MOB_RESIST_FIRE", CPythonNonPlayer::MOB_RESIST_FIRE);
PyModule_AddIntConstant(poModule, "MOB_RESIST_ELECT", CPythonNonPlayer::MOB_RESIST_ELECT);
PyModule_AddIntConstant(poModule, "MOB_RESIST_MAGIC", CPythonNonPlayer::MOB_RESIST_MAGIC);
PyModule_AddIntConstant(poModule, "MOB_RESIST_WIND", CPythonNonPlayer::MOB_RESIST_WIND);
PyModule_AddIntConstant(poModule, "MOB_RESIST_POISON", CPythonNonPlayer::MOB_RESIST_POISON);
PyModule_AddIntConstant(poModule, "MOB_RESIST_MAX_NUM", CPythonNonPlayer::MOB_RESISTS_MAX_NUM);
#endi#endi#endifen öncesine

[/CODE]
[CODE title="CLientSRC/Userinterface/PythonNonPlayer.h içinde"]//ARAT
enum EMobResists

//EKLE EĞER YOKSA
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGGER,
MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
MOB_RESISTS_MAX_NUM

//ARA EĞER EMobResists yoksa

enum EMobEnchants
{
MOB_ENCHANT_CURSE,
MOB_ENCHANT_SLOW,
MOB_ENCHANT_POISON,
MOB_ENCHANT_STUN,
MOB_ENCHANT_CRITICAL,
MOB_ENCHANT_PENETRATE,
MOB_ENCHANTS_MAX_NUM
};

//EKLE ALTINA

enum EMobResists
{
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGGER,
MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
MOB_RESISTS_MAX_NUM
};[/CODE]


VE EKSTRA BİR DÜZENLEME GÖRSEL YOLLARI YANLIŞ

bu hatayı alanlar için 'TargetBoard' object has no attribute 'clickEvent'


[CODE title="uitarget.py"]## 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

##DeğiştiroButton.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")[/CODE]
 
Son düzenleme:
Eksik kodları ekleme yapayım

'module' object has no attribute 'MOB_RESIST_SWORD'

bu hatayı alanlar için

[CODE title="CLientSRC/Userinterface/PythonNonPlayerModule.cpp içinde"]

//ARAT GENELDE SONLARDA OLUR

PyModule_AddIntConstant(poModule, "PAWN", NRaceData::EMobRank::MOB_RANK_PAWN);
PyModule_AddIntConstant(poModule, "S_PAWN", NRaceData::EMobRank::MOB_RANK_S_PAWN);
PyModule_AddIntConstant(poModule, "KNIGHT", NRaceData::EMobRank::MOB_RANK_KNIGHT);
PyModule_AddIntConstant(poModule, "S_KNIGHT", NRaceData::EMobRank::MOB_RANK_S_KNIGHT);
PyModule_AddIntConstant(poModule, "BOSS", NRaceData::EMobRank::MOB_RANK_BOSS);
PyModule_AddIntConstant(poModule, "KING", NRaceData::EMobRank::MOB_RANK_KING);

//EKLE

#ifde#ifde#ifdefLE_TARGET_INFORMATION_SYSTEMPyModule_AddIntConstant(poModule, "MOB_RESIST_SWORD", CPythonNonPlayer::MOB_RESIST_SWORD);
PyModule_AddIntConstant(poModule, "MOB_RESIST_TWOHAND", CPythonNonPlayer::MOB_RESIST_TWOHAND);
PyModule_AddIntConstant(poModule, "MOB_RESIST_DAGGER", CPythonNonPlayer::MOB_RESIST_DAGGER);
PyModule_AddIntConstant(poModule, "MOB_RESIST_BELL", CPythonNonPlayer::MOB_RESIST_BELL);
PyModule_AddIntConstant(poModule, "MOB_RESIST_FAN", CPythonNonPlayer::MOB_RESIST_FAN);
PyModule_AddIntConstant(poModule, "MOB_RESIST_BOW", CPythonNonPlayer::MOB_RESIST_BOW);
PyModule_AddIntConstant(poModule, "MOB_RESIST_FIRE", CPythonNonPlayer::MOB_RESIST_FIRE);
PyModule_AddIntConstant(poModule, "MOB_RESIST_ELECT", CPythonNonPlayer::MOB_RESIST_ELECT);
PyModule_AddIntConstant(poModule, "MOB_RESIST_MAGIC", CPythonNonPlayer::MOB_RESIST_MAGIC);
PyModule_AddIntConstant(poModule, "MOB_RESIST_WIND", CPythonNonPlayer::MOB_RESIST_WIND);
PyModule_AddIntConstant(poModule, "MOB_RESIST_POISON", CPythonNonPlayer::MOB_RESIST_POISON);
PyModule_AddIntConstant(poModule, "MOB_RESIST_MAX_NUM", CPythonNonPlayer::MOB_RESISTS_MAX_NUM);
#endi#endi#endifen öncesine

[/CODE]
[CODE title="CLientSRC/Userinterface/PythonNonPlayer.h içinde"]//ARAT
enum EMobResists

//EKLE EĞER YOKSA
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGGER,
MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
MOB_RESISTS_MAX_NUM

//ARA EĞER EMobResists yoksa

enum EMobEnchants
{
MOB_ENCHANT_CURSE,
MOB_ENCHANT_SLOW,
MOB_ENCHANT_POISON,
MOB_ENCHANT_STUN,
MOB_ENCHANT_CRITICAL,
MOB_ENCHANT_PENETRATE,
MOB_ENCHANTS_MAX_NUM
};

//EKLE ALTINA

enum EMobResists
{
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGGER,
MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
MOB_RESISTS_MAX_NUM
};[/CODE]


VE EKSTRA BİR DÜZENLEME GÖRSEL YOLLARI YANLIŞ

bu hatayı alanlar için 'TargetBoard' object has no attribute 'clickEvent'


[CODE title="uitarget.py"]## 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

##DeğiştiroButton.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")[/CODE]


Konuyu buna göre modere edebilirsin. Teşekkürler.
 
Merhaba,

Turkmmo'ya özel sizlere Detaylı Mob Target İnfo sistemini eksiksiz paylaşacağım.

Ekli dosyayı görüntüle 128565

Ekli dosyayı görüntüle 128566

Ekli dosyayı görüntüle 128567

Ekli dosyayı görüntüle 128568

Osmanlı2 ve Pachi Tunganın paylaştığı server files dosyalarından sökülmüştür. Konu alıntıdır, Ayrıca bazı yerleri farklıdır. Uzun uğraşlar sonucu sorunsuz kurulabilecek hale getirilmiştir. Rehberi takip ettiğiniz ve düzgün eklediğiniz sürece hiç bir sorun çıkarmaz.
Source : PACHI & Tunga ServerFiles
Source : Osmanlı 2 Server Files

Güncelleme v_01


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.
[CODE lang="python" title="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 ]))[/CODE]
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.

Ekli dosyayı görüntüle 128569

Çözüm:


[CODE lang="python" title="uitooltip.py"]## Arat
### Skill Book ###
if 50300 == itemVnum:
if 0 != metinSlot:
###### self.######killBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILLBOOK_NAME, 1)
### self.ShowToolTip()
return
elif 70037 == itemVnum:
### if 0 != metinSlot:
self.__SetSkillBookToolTip(metinSlot[0], loca###nfo.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:
i##0##= metinSlot and not######isBook:
### ### self.__SetSkillBookToolTip(metinSlot[0], localeInfo.TOOLTIP_SKILLBOOK_NAME, ### ### self.ShowToolTip()
elif self.isBook:
self.Se###t###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

##############################################################################################ODE]
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)

[CODE lang="python" title="Python"]##Arat - Sil

MAX_ITEM_COUNT = 5


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

## Değiştir

for value in xr##g##35):

##Arat

if emptySlotIn##x##= self.slotSize:

## Değiştir

##A##Arat emptySlotIndex >= 35:

## Arat

def __LoadInformati##_##ops(self, race):
s##AratpendSeperator()

## ## if race in constInfo.MONSTER_INFO_DATA:
if len(constInfo.MONSTER_INFO_DATA[race]["i##m##]) == 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.AppendSeperat##(##
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 __Initiali##(##lf):
self.na##S##ing = ""
self.nameLength = 0
self.vid = 0
## ## if app.ENABLE_TARGET_INFORMATION_SYSTEM:
self.vnum = 0
self.isShowButton = False

## Altın##e##e

self.reload = False

## Arat

def OnPressedInfoButton(self):

## Tamamını değiştir
## ## def OnPressedInfoButton(self):
## ## if self.infoButton.showWnd.IsShow():
## ## self.infoButton.sh##W##.Close()
else:
##i##self.vnum !=0:
if self.r##o## == False:
net.SendTargetInfoLoad(player.GetT##iftVID())
self.reload = True
self.infoButton.showWnd.Open(self, self.vnum)[/CODE]

Ekli dosyayı görüntüle 128570

Güncelleme v_02


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:
[CODE lang="python" title="char.cpp"] if (IsStone())
{
DetermineDropMetinStone();
}[/CODE]
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.
[CODE lang="python" title="char.cpp"] // if (IsStone())
// {
//DetermineDropMetinStone();
// }[/CODE]

Örnek bir mob içerisine ekleme,
[CODE lang="cpp" title="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

}[/CODE]

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.

Ekli dosyayı görüntüle 128571

Ekli dosyayı görüntüle 128572

Ekli dosyayı görüntüle 128573
'module' object has no attribute 'MOB_RESIST_SWORD'

bu hatayı alanlar için

[CODE title="CLientSRC/Userinterface/PythonNonPlayerModule.cpp içinde"]

//ARAT GENELDE SONLARDA OLUR

PyModule_AddIntConstant(poModule, "PAWN", NRaceData::EMobRank::MOB_RANK_PAWN);
PyModule_AddIntConstant(poModule, "S_PAWN", NRaceData::EMobRank::MOB_RANK_S_PAWN);
PyModule_AddIntConstant(poModule, "KNIGHT", NRaceData::EMobRank::MOB_RANK_KNIGHT);
PyModule_AddIntConstant(poModule, "S_KNIGHT", NRaceData::EMobRank::MOB_RANK_S_KNIGHT);
PyModule_AddIntConstant(poModule, "BOSS", NRaceData::EMobRank::MOB_RANK_BOSS);
PyModule_AddIntConstant(poModule, "KING", NRaceData::EMobRank::MOB_RANK_KING);

//EKLE

#ifde#ifde#ifdefLE_TARGET_INFORMATION_SYSTEMPyModule_AddIntConstant(poModule, "MOB_RESIST_SWORD", CPythonNonPlayer::MOB_RESIST_SWORD);
PyModule_AddIntConstant(poModule, "MOB_RESIST_TWOHAND", CPythonNonPlayer::MOB_RESIST_TWOHAND)#ifde PyModule_AddIntConstant(poModule, "MOB_RESIST_DAGGER", CPythonNonPlayer::MOB_RESIST_DAGGER);
PyModule_AddIntConstant(poModule, "MOB_RESIST_BELL", CPythonNonPlayer::MOB_RESIST_BELL);
PyModule_AddIntConstant(poModule, "MOB_RESIST_FAN", CPythonNonPlayer::MOB_RESIST_FAN);
PyModule_AddIntConstant(poModule, "MOB_RESIST_BOW", CPythonNonPlayer::MOB_RESIST_BOW);
PyModule_AddIntConstant(poModule, "MOB_RESIST_FIRE", CPythonNonPlayer::MOB_RESIST_FIRE);
PyModule_AddIntConstant(poModule, "MOB_RESIST_ELECT", CPythonNonPlayer::MOB_RESIST_ELECT);
PyModule_AddIntConstant(poModule, "MOB_RESIST_MAGIC", CPythonNonPlayer::MOB_RESIST_MAGIC);
PyModule_AddIntConstant(poModule, "MOB_RESIST_WIND", CPythonNonPlayer::MOB_RESIST_WIND);
PyModule_AddIntConstant(poModule, "MOB_RESIST_POISON", CPythonNonPlayer::MOB_RESIST_POISON);
PyModule_AddIntConstant(poModule, "MOB_RESIST_MAX_NUM", CPythonNonPlayer::MOB_RESISTS_MAX_NUM);
#endi#endi#endifen öncesine

[/CODE]
[CODE title="CLientSRC/Userinterface/PythonNonPlayer.h içinde"]//ARAT
enum EMobResists

//EKLE EĞER YOKSA
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGG#endi MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
MOB_RESISTS_MAX_NUM

//ARA EĞER EMobResists yoksa

enum EMobEnchants
{
MOB_ENCHANT_CURSE,
MOB_ENCHANT_SLOW,
MOB_ENCHANT_POISON,
MOB_ENCHANT_STUN,
MOB_ENCHANT_CRITICAL,
MOB_ENCHANT_PENETRATE,
MOB_ENCHANTS_MAX_NUM
};

//EKLE ALTINA

enum EMobResists
{
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGGER,
MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
MOB_RESISTS_MAX_NUM
};[/CODE]


VE EKSTRA BİR DÜZENLEME GÖRSEL YOLLARI YANLIŞ

bu hatayı alanlar için 'TargetBoard' object has no attribute 'clickEvent'


[CODE title="uitarget.py"]## 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

##DeğiştiroButton.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##Değiştir##DeğiştiroButton.SetUpVisual([/CODE]
Güncelleme v_02'de taşları bi kaldıramadım tüm metinlerde taşları gösteriyor drop olmasa bile gösteriyor

char.cpp içinden DetermineDropMetinStone(); fanksiyonunu yorum satırına almama rağmen devam ediyor yardımcı olur musunuz ?
 
0405 15:21:09762 :: File "networkModule.py", line 297, in SetGamePhase

0405 15:21:09762 :: File "game.py", line 86, in __init__

0405 15:21:09762 :: File "interfaceModule.py", line 350, in MakeInterface

0405 15:21:09762 :: File "interfaceModule.py", line 212, in __MakeWindows

0405 15:21:09762 :: File "uiMiniMap.py", line 223, in __init__

0405 15:21:09762 :: File "uiMiniMap.py", line 112, in LoadWindow

0405 15:21:09762 :: AttributeError
0405 15:21:09762 :: :
0405 15:21:09762 :: 'BoardWithTitleBar' object has no attribute 'SetOnMouseLeftButtonUpEvent'
0405 15:21:09762 ::


şöyle bir sysser alıyorum nasıl çözerim
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst