- Katılım
- 25 Nis 2019
- Konular
- 2
- Mesajlar
- 44
- Çözüm
- 1
- Online süresi
- 5h 34m
- Reaksiyon Skoru
- 3
- Altın Konu
- 0
- TM Yaşı
- 7 Yıl 1 Ay 13 Gün
- Başarım Puanı
- 52
- MmoLira
- 87
- DevLira
- 0
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!
merhaba kolay gelsın hocam serverımdekı uitargette aratın dedığınız bölüm yok biraz değişiği var rica etsem lgilenirmisin
- Katılım
- 12 Ara 2015
- Konular
- 106
- Mesajlar
- 1,849
- Çözüm
- 19
- Online süresi
- 1mo 7d
- Reaksiyon Skoru
- 934
- Altın Konu
- 1
- TM Yaşı
- 10 Yıl 5 Ay 28 Gün
- Başarım Puanı
- 211
- MmoLira
- 1,235
- DevLira
- 165
mob target ekle sonra bu sistemi eklemerhaba kolay gelsın hocam serverımdekı uitargette aratın dedığınız bölüm yok biraz değişiği var rica etsem lgilenirmisin
- Katılım
- 25 Nis 2019
- Konular
- 2
- Mesajlar
- 44
- Çözüm
- 1
- Online süresi
- 5h 34m
- Reaksiyon Skoru
- 3
- Altın Konu
- 0
- TM Yaşı
- 7 Yıl 1 Ay 13 Gün
- Başarım Puanı
- 52
- MmoLira
- 87
- DevLira
- 0
Sistemi mevcut hocam hatta atayım birazdanmob target ekle sonra bu sistemi ekle
- Katılım
- 25 Nis 2019
- Konular
- 2
- Mesajlar
- 44
- Çözüm
- 1
- Online süresi
- 5h 34m
- Reaksiyon Skoru
- 3
- Altın Konu
- 0
- TM Yaşı
- 7 Yıl 1 Ay 13 Gün
- Başarım Puanı
- 52
- MmoLira
- 87
- DevLira
- 0
uitarget.py içeriği altta hocammob target ekle sonra bu sistemi ekle
Kod:
import app
import ui
import player
import net
import wndMgr
import messenger
import guild
import chr
import nonplayer
import localeInfo
import background
import uiToolTip
import item
import uiCommon
import constInfo
import chat
if app.ENABLE_SEND_TARGET_INFO:
def HAS_FLAG(value, flag):
return (value & flag) == flag
class TargetBoard(ui.ThinBoard):
if app.ENABLE_SEND_TARGET_INFO:
class InfoBoard(ui.ThinBoard):
class ItemListBoxItem(ui.ListBoxExNew.Item):
def __init__(self, width):
ui.ListBoxExNew.Item.__init__(self)
image = ui.ExpandedImageBox()
image.SetParent(self)
image.Show()
self.image = image
nameLine = ui.TextLine()
nameLine.SetParent(self)
nameLine.SetPosition(32 + 5, 0)
nameLine.Show()
self.nameLine = nameLine
self.SetSize(width, 32 + 5)
def LoadImage(self, image, name = None):
self.image.LoadImage(image)
self.SetSize(self.GetWidth(), self.image.GetHeight() + 5 * (self.image.GetHeight() / 32))
if name != None:
self.SetText(name)
def SetText(self, text):
self.nameLine.SetText(text)
def RefreshHeight(self):
ui.ListBoxExNew.Item.RefreshHeight(self)
self.image.SetRenderingRect(0.0, 0.0 - float(self.removeTop) / float(self.GetHeight()), 0.0, 0.0 - float(self.removeBottom) / float(self.GetHeight()))
self.image.SetPosition(0, - self.removeTop)
MAX_ITEM_COUNT = 5
EXP_BASE_LVDELTA = [
1, # -15 0
5, # -14 1
10, # -13 2
20, # -12 3
30, # -11 4
50, # -10 5
70, # -9 6
80, # -8 7
85, # -7 8
90, # -6 9
92, # -5 10
94, # -4 11
96, # -3 12
98, # -2 13
100, # -1 14
100, # 0 15
105, # 1 16
110, # 2 17
115, # 3 18
120, # 4 19
125, # 5 20
130, # 6 21
135, # 7 22
140, # 8 23
145, # 9 24
150, # 10 25
155, # 11 26
160, # 12 27
165, # 13 28
170, # 14 29
180, # 15 30
]
RACE_FLAG_TO_NAME = {
1 << 0 : localeInfo.TARGET_INFO_RACE_ANIMAL,
1 << 1 : localeInfo.TARGET_INFO_RACE_UNDEAD,
1 << 2 : localeInfo.TARGET_INFO_RACE_DEVIL,
1 << 3 : localeInfo.TARGET_INFO_RACE_HUMAN,
1 << 4 : localeInfo.TARGET_INFO_RACE_ORC,
1 << 5 : localeInfo.TARGET_INFO_RACE_MILGYO,
}
SUB_RACE_FLAG_TO_NAME = {
1 << 11 : localeInfo.TARGET_INFO_RACE_ELEC,
1 << 12 : localeInfo.TARGET_INFO_RACE_FIRE,
1 << 13 : localeInfo.TARGET_INFO_RACE_ICE,
1 << 14 : localeInfo.TARGET_INFO_RACE_WIND,
1 << 15 : localeInfo.TARGET_INFO_RACE_EARTH,
1 << 16 : localeInfo.TARGET_INFO_RACE_DARK,
}
STONE_START_VNUM = 28030
STONE_LAST_VNUM = 28042
BOARD_WIDTH = 250
def __init__(self):
ui.ThinBoard.__init__(self)
self.HideCorners(self.LT)
self.HideCorners(self.RT)
self.HideLine(self.T)
self.race = 0
self.hasItems = False
self.itemTooltip = uiToolTip.ItemToolTip()
self.itemTooltip.HideToolTip()
self.stoneImg = None
self.stoneVnum = None
self.lastStoneVnum = 0
self.nextStoneIconChange = 0
self.SetSize(self.BOARD_WIDTH, 0)
def __del__(self):
ui.ThinBoard.__del__(self)
def __UpdatePosition(self, targetBoard):
self.SetPosition(targetBoard.GetLeft() + (targetBoard.GetWidth() - self.GetWidth()) / 2, targetBoard.GetBottom() - 17)
def Open(self, targetBoard, race):
self.__LoadInformation(race)
self.SetSize(self.BOARD_WIDTH, self.yPos + 10)
self.__UpdatePosition(targetBoard)
self.Show()
def Refresh(self):
self.__LoadInformation(self.race)
self.SetSize(self.BOARD_WIDTH, self.yPos + 10)
def Close(self):
self.itemTooltip.HideToolTip()
self.Hide()
def __LoadInformation(self, race):
self.yPos = 7
self.children = []
self.race = race
self.stoneImg = None
self.stoneVnum = None
self.nextStoneIconChange = 0
self.__LoadInformation_Default(race)
self.__LoadInformation_Race(race)
self.__LoadInformation_Drops(race)
def __LoadInformation_Default_GetHitRate(self, race):
attacker_dx = nonplayer.GetMonsterDX(race)
attacker_level = nonplayer.GetMonsterLevel(race)
self_dx = player.GetStatus(player.DX)
self_level = player.GetStatus(player.LEVEL)
iARSrc = min(90, (attacker_dx * 4 + attacker_level * 2) / 6)
iERSrc = min(90, (self_dx * 4 + self_level * 2) / 6)
fAR = (float(iARSrc) + 210.0) / 300.0
fER = (float(iERSrc) * 2 + 5) / (float(iERSrc) + 95) * 3.0 / 10.0
return fAR - fER
def __LoadInformation_Default(self, race):
#self.AppendSeperator()
#self.AppendTextLine(localeInfo.TARGET_INFO_MAX_HP % str(nonplayer.GetMonsterMaxHP(race)))
# calc att damage
monsterLevel = nonplayer.GetMonsterLevel(race)
fHitRate = self.__LoadInformation_Default_GetHitRate(race)
iDamMin, iDamMax = nonplayer.GetMonsterDamage(race)
iDamMin = int((iDamMin + nonplayer.GetMonsterST(race)) * 2 * fHitRate) + monsterLevel * 2
iDamMax = int((iDamMax + nonplayer.GetMonsterST(race)) * 2 * fHitRate) + monsterLevel * 2
iDef = player.GetStatus(player.DEF_GRADE) * (100 + player.GetStatus(player.DEF_BONUS)) / 100
fDamMulti = nonplayer.GetMonsterDamageMultiply(race)
iDamMin = int(max(0, iDamMin - iDef) * fDamMulti)
iDamMax = int(max(0, iDamMax - iDef) * fDamMulti)
if iDamMin < 1:
iDamMin = 1
if iDamMax < 5:
iDamMax = 5
#self.AppendTextLine(localeInfo.TARGET_INFO_DAMAGE % (str(iDamMin), str(iDamMax)))
idx = min(len(self.EXP_BASE_LVDELTA) - 1, max(0, (monsterLevel + 15) - player.GetStatus(player.LEVEL)))
iExp = nonplayer.GetMonsterExp(race) * self.EXP_BASE_LVDELTA[idx] / 100
#self.AppendTextLine(localeInfo.TARGET_INFO_EXP % str(iExp))
def __LoadInformation_Race(self, race):
dwRaceFlag = nonplayer.GetMonsterRaceFlag(race)
#self.AppendSeperator()
mainrace = ""
subrace = ""
for i in xrange(17):
curFlag = 1 << i
if HAS_FLAG(dwRaceFlag, curFlag):
if self.RACE_FLAG_TO_NAME.has_key(curFlag):
mainrace += self.RACE_FLAG_TO_NAME[curFlag] + ", "
elif self.SUB_RACE_FLAG_TO_NAME.has_key(curFlag):
subrace += self.SUB_RACE_FLAG_TO_NAME[curFlag] + ", "
if nonplayer.IsMonsterStone(race):
mainrace += localeInfo.TARGET_INFO_RACE_METIN + ", "
if mainrace == "":
mainrace = localeInfo.TARGET_INFO_NO_RACE
else:
mainrace = mainrace[:-2]
if subrace == "":
subrace = localeInfo.TARGET_INFO_NO_RACE
else:
subrace = subrace[:-2]
#self.AppendTextLine(localeInfo.TARGET_INFO_MAINRACE % mainrace)
#self.AppendTextLine(localeInfo.TARGET_INFO_SUBRACE % subrace)
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 AppendTextLine(self, text):
textLine = ui.TextLine()
textLine.SetParent(self)
textLine.SetWindowHorizontalAlignCenter()
textLine.SetHorizontalAlignCenter()
textLine.SetText(text)
textLine.SetPosition(0, self.yPos)
textLine.Show()
self.children.append(textLine)
self.yPos += 17
def AppendSeperator(self):
img = ui.ImageBox()
img.LoadImage("d:/ymir work/ui/seperator.tga")
self.AppendWindow(img)
img.SetPosition(img.GetLeft(), img.GetTop() - 15)
self.yPos -= 15
def AppendItem(self, listBox, vnums, count):
if type(vnums) == int:
vnum = vnums
else:
vnum = vnums[0]
item.SelectItem(vnum)
itemName = item.GetItemName()
if type(vnums) != int and len(vnums) > 1:
vnums = sorted(vnums)
realName = itemName[:itemName.find("+")]
if item.GetItemType() == item.ITEM_TYPE_METIN:
realName = localeInfo.TARGET_INFO_STONE_NAME
itemName = realName + "+0 - +4"
else:
itemName = realName + "+" + str(vnums[0] % 10) + " - +" + str(vnums[len(vnums) - 1] % 10)
vnum = vnums[len(vnums) - 1]
myItem = self.ItemListBoxItem(listBox.GetWidth())
myItem.LoadImage(item.GetIconImageFileName())
if count <= 1:
myItem.SetText(itemName)
else:
myItem.SetText("%dx %s" % (count, itemName))
myItem.SAFE_SetOverInEvent(self.OnShowItemTooltip, vnum)
myItem.SAFE_SetOverOutEvent(self.OnHideItemTooltip)
listBox.AppendItem(myItem)
if item.GetItemType() == item.ITEM_TYPE_METIN:
self.stoneImg = myItem
self.stoneVnum = vnums
self.lastStoneVnum = self.STONE_LAST_VNUM + vnums[len(vnums) - 1] % 1000 / 100 * 100
return myItem.GetHeight()
def OnShowItemTooltip(self, vnum):
item.SelectItem(vnum)
if item.GetItemType() == item.ITEM_TYPE_METIN:
self.itemTooltip.isStone = True
self.itemTooltip.isBook = False
self.itemTooltip.isBook2 = False
self.itemTooltip.SetItemToolTip(self.lastStoneVnum)
else:
self.itemTooltip.isStone = False
self.itemTooltip.isBook = True
self.itemTooltip.isBook2 = True
self.itemTooltip.SetItemToolTip(vnum)
def OnHideItemTooltip(self):
self.itemTooltip.HideToolTip()
def AppendWindow(self, wnd, x = 0, width = 0, height = 0):
if width == 0:
width = wnd.GetWidth()
if height == 0:
height = wnd.GetHeight()
wnd.SetParent(self)
if x == 0:
wnd.SetPosition((self.GetWidth() - width) / 2, self.yPos)
else:
wnd.SetPosition(x, self.yPos)
wnd.Show()
self.children.append(wnd)
self.yPos += height + 5
def OnUpdate(self):
if self.stoneImg != None and self.stoneVnum != None and app.GetTime() >= self.nextStoneIconChange:
nextImg = self.lastStoneVnum + 1
if nextImg % 100 > self.STONE_LAST_VNUM % 100:
nextImg -= (self.STONE_LAST_VNUM - self.STONE_START_VNUM) + 1
self.lastStoneVnum = nextImg
self.nextStoneIconChange = app.GetTime() + 2.5
item.SelectItem(nextImg)
itemName = item.GetItemName()
realName = itemName[:itemName.find("+")]
realName = realName + "+0 - +4"
self.stoneImg.LoadImage(item.GetIconImageFileName(), realName)
if self.itemTooltip.IsShow() and self.itemTooltip.isStone:
self.itemTooltip.SetItemToolTip(nextImg)
BUTTON_NAME_LIST = (
"Eşya ile Düello",
"İ.Düello Kabul Et",
localeInfo.TARGET_BUTTON_WHISPER,
localeInfo.TARGET_BUTTON_EXCHANGE,
localeInfo.TARGET_BUTTON_FIGHT,
localeInfo.TARGET_BUTTON_ACCEPT_FIGHT,
localeInfo.TARGET_BUTTON_AVENGE,
localeInfo.TARGET_BUTTON_FRIEND,
localeInfo.TARGET_BUTTON_INVITE_PARTY,
localeInfo.TARGET_BUTTON_LEAVE_PARTY,
localeInfo.TARGET_BUTTON_EXCLUDE,
localeInfo.TARGET_BUTTON_INVITE_GUILD,
localeInfo.TARGET_BUTTON_DISMOUNT,
localeInfo.TARGET_BUTTON_EXIT_OBSERVER,
localeInfo.TARGET_BUTTON_REQUEST_ENTER_PARTY,
localeInfo.TARGET_BUTTON_BUILDING_DESTROY,
localeInfo.TARGET_BUTTON_EMOTION_ALLOW,
"Profil",
"Ajan",
"Bonuslar",
"VOTE_BLOCK_CHAT",
)
GRADE_NAME = {
nonplayer.PAWN : localeInfo.TARGET_LEVEL_PAWN,
nonplayer.S_PAWN : localeInfo.TARGET_LEVEL_S_PAWN,
nonplayer.KNIGHT : localeInfo.TARGET_LEVEL_KNIGHT,
nonplayer.S_KNIGHT : localeInfo.TARGET_LEVEL_S_KNIGHT,
nonplayer.BOSS : localeInfo.TARGET_LEVEL_BOSS,
nonplayer.KING : localeInfo.TARGET_LEVEL_KING,
}
EXCHANGE_LIMIT_RANGE = 3000
def __init__(self):
ui.ThinBoard.__init__(self)
name = ui.TextLine()
name.SetParent(self)
name.SetDefaultFontName()
name.SetOutline()
name.Show()
hpGauge = ui.Gauge()
hpGauge.SetParent(self)
hpGauge.MakeGauge(130, "red")
hpGauge.Hide()
hpPercenttxt = ui.TextLine()
hpPercenttxt.SetParent(self)
hpPercenttxt.SetPosition(160, 13)
hpPercenttxt.SetText("")
hpPercenttxt.Hide()
closeButton = ui.Button()
closeButton.SetParent(self)
closeButton.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")
closeButton.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")
closeButton.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")
closeButton.SetPosition(30, 13)
if localeInfo.IsARABIC():
hpGauge.SetPosition(55, 17)
hpGauge.SetWindowHorizontalAlignLeft()
closeButton.SetWindowHorizontalAlignLeft()
else:
hpGauge.SetPosition(175, 17)
hpGauge.SetWindowHorizontalAlignRight()
closeButton.SetWindowHorizontalAlignRight()
if app.ENABLE_SEND_TARGET_INFO:
infoButton = ui.Button()
infoButton.SetParent(self)
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.SetEvent(ui.__mem_func__(self.OnPressedInfoButton))
infoButton.Hide()
infoBoard = self.InfoBoard()
infoBoard.Hide()
infoButton.showWnd = infoBoard
closeButton.SetEvent(ui.__mem_func__(self.OnPressedCloseButton))
closeButton.Show()
self.buttonDict = {}
self.showingButtonList = []
for buttonName in self.BUTTON_NAME_LIST:
button = ui.Button()
button.SetParent(self)
if localeInfo.IsARABIC():
button.SetUpVisual("d:/ymir work/ui/public/Small_Button_01.sub")
button.SetOverVisual("d:/ymir work/ui/public/Small_Button_02.sub")
button.SetDownVisual("d:/ymir work/ui/public/Small_Button_03.sub")
else:
button.SetUpVisual("d:/ymir work/ui/public/small_thin_button_01.sub")
button.SetOverVisual("d:/ymir work/ui/public/small_thin_button_02.sub")
button.SetDownVisual("d:/ymir work/ui/public/small_thin_button_03.sub")
button.SetWindowHorizontalAlignCenter()
button.SetText(buttonName)
button.Hide()
self.buttonDict[buttonName] = button
self.showingButtonList.append(button)
self.buttonDict[localeInfo.TARGET_BUTTON_WHISPER].SetEvent(ui.__mem_func__(self.OnWhisper))
self.buttonDict[localeInfo.TARGET_BUTTON_EXCHANGE].SetEvent(ui.__mem_func__(self.OnExchange))
self.buttonDict[localeInfo.TARGET_BUTTON_FIGHT].SetEvent(ui.__mem_func__(self.OnPVP))
self.buttonDict[localeInfo.TARGET_BUTTON_ACCEPT_FIGHT].SetEvent(ui.__mem_func__(self.OnPVP))
self.buttonDict[localeInfo.TARGET_BUTTON_AVENGE].SetEvent(ui.__mem_func__(self.OnPVP))
self.buttonDict[localeInfo.TARGET_BUTTON_FRIEND].SetEvent(ui.__mem_func__(self.OnAppendToMessenger))
self.buttonDict[localeInfo.TARGET_BUTTON_FRIEND].SetEvent(ui.__mem_func__(self.OnAppendToMessenger))
self.buttonDict[localeInfo.TARGET_BUTTON_INVITE_PARTY].SetEvent(ui.__mem_func__(self.OnPartyInvite))
self.buttonDict[localeInfo.TARGET_BUTTON_LEAVE_PARTY].SetEvent(ui.__mem_func__(self.OnPartyExit))
self.buttonDict[localeInfo.TARGET_BUTTON_EXCLUDE].SetEvent(ui.__mem_func__(self.OnPartyRemove))
self.buttonDict["Ajan"].SAFE_SetEvent(self.__AjanKimKopek)
self.buttonDict[localeInfo.TARGET_BUTTON_INVITE_GUILD].SAFE_SetEvent(self.__OnGuildAddMember)
self.buttonDict["Bonuslar"].SAFE_SetEvent(self.__OnBonuslar)
self.buttonDict[localeInfo.TARGET_BUTTON_DISMOUNT].SAFE_SetEvent(self.__OnDismount)
self.buttonDict[localeInfo.TARGET_BUTTON_EXIT_OBSERVER].SAFE_SetEvent(self.__OnExitObserver)
self.buttonDict["Profil"].SAFE_SetEvent(self.__OnProfilGoster)
self.buttonDict[localeInfo.TARGET_BUTTON_REQUEST_ENTER_PARTY].SAFE_SetEvent(self.__OnRequestParty)
self.buttonDict[localeInfo.TARGET_BUTTON_BUILDING_DESTROY].SAFE_SetEvent(self.__OnDestroyBuilding)
self.buttonDict[localeInfo.TARGET_BUTTON_EMOTION_ALLOW].SAFE_SetEvent(self.__OnEmotionAllow)
self.buttonDict["VOTE_BLOCK_CHAT"].SetEvent(ui.__mem_func__(self.__OnVoteBlockChat))
self.name = name
self.hpGauge = hpGauge
self.hpPercenttxt = hpPercenttxt
if app.ENABLE_SEND_TARGET_INFO:
self.infoButton = infoButton
if app.ENABLE_SEND_TARGET_INFO:
self.vnum = 0
self.closeButton = closeButton
self.nameString = 0
self.nameLength = 0
self.zaman = 0
self.vid = 0
self.eventWhisper = None
self.isShowButton = False
self.__Initialize()
self.ResetTargetBoard()
def __del__(self):
ui.ThinBoard.__del__(self)
print "===================================================== DESTROYED TARGET BOARD"
def __Initialize(self):
self.nameString = ""
self.nameLength = 0
self.zaman = 0
self.vid = 0
if app.ENABLE_SEND_TARGET_INFO:
self.vnum = 0
self.isShowButton = False
def Destroy(self):
self.eventWhisper = None
if app.ENABLE_SEND_TARGET_INFO:
self.infoButton = None
self.closeButton = None
self.showingButtonList = None
self.buttonDict = None
self.name = None
self.hpGauge = None
self.hpPercenttxt = None
self.__Initialize()
if app.ENABLE_SEND_TARGET_INFO:
def RefreshMonsterInfoBoard(self):
if not self.infoButton.showWnd.IsShow():
return
self.infoButton.showWnd.Refresh()
def OnPressedInfoButton(self):
net.SendTargetInfoLoad(player.GetTargetVID())
if self.infoButton.showWnd.IsShow():
self.infoButton.showWnd.Close()
elif self.vnum != 0:
self.infoButton.showWnd.Open(self, self.vnum)
def OnPressedCloseButton(self):
player.ClearTarget()
self.Close()
def Close(self):
self.__Initialize()
if app.ENABLE_SEND_TARGET_INFO:
self.infoButton.showWnd.Close()
self.Hide()
def Open(self, vid, name):
hiddenNames = ["'s Support","'s"]
for hiddenName in hiddenNames:
if hiddenName in name:
self.Hide()
return
if vid:
if not constInfo.GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD():
if not player.IsSameEmpire(vid):
self.Hide()
return
if vid != self.GetTargetVID():
self.ResetTargetBoard()
self.SetTargetVID(vid)
self.SetTargetName(name)
if player.IsMainCharacterIndex(vid):
self.__ShowMainCharacterMenu()
elif chr.INSTANCE_TYPE_BUILDING == chr.GetInstanceType(self.vid):
self.Hide()
else:
self.RefreshButton()
self.Show()
else:
self.HideAllButton()
self.__ShowButton(localeInfo.TARGET_BUTTON_WHISPER)
self.__ShowButton("VOTE_BLOCK_CHAT")
self.__ArrangeButtonPosition()
self.SetTargetName(name)
self.Show()
def Refresh(self):
if self.IsShow():
if self.IsShowButton():
self.RefreshButton()
def RefreshByVID(self, vid):
if vid == self.GetTargetVID():
self.Refresh()
def RefreshByName(self, name):
if name == self.GetTargetName():
self.Refresh()
def __ShowMainCharacterMenu(self):
canShow=0
self.HideAllButton()
if player.IsMountingHorse():
self.__ShowButton(localeInfo.TARGET_BUTTON_DISMOUNT)
canShow=1
if player.IsObserverMode():
self.__ShowButton(localeInfo.TARGET_BUTTON_EXIT_OBSERVER)
canShow=1
if canShow:
self.__ArrangeButtonPosition()
self.Show()
else:
self.Hide()
def __IsSpecialMap(self):
dis_maps = [
"season1/metin2_map_oxevent",
"season2/metin2_map_guild_inside01",
"season2/metin2_map_empirewar01",
"season2/metin2_map_empirewar02",
"season2/metin2_map_empirewar03",
"metin2_map_dragon_timeattack_01",
"metin2_map_dragon_timeattack_02",
"metin2_map_dragon_timeattack_03",
"metin2_map_skipia_dungeon_boss",
"metin2_map_skipia_dungeon_boss2",
"metin2_map_devilsCatacomb",
"metin2_map_deviltower1",
"metin2_map_t1",
"metin2_map_t2",
"metin2_map_t3",
"metin2_map_t4",
"metin2_map_t5",
"metin2_map_wedding_01",
"metin2_map_duel",
"metin2_map_orclabyrinth",
"metin2_map_n_flame_dungeon_01",
"metin2_map_n_snow_dungeon_01"
]
if str(background.GetCurrentMapName()) in dis_maps:
return TRUE
return FALSE
def __OnProfilGoster(self):
if not (self.zaman < app.GetTime()):
chat.AppendChat(chat.CHAT_TYPE_INFO, localegame.OYUN_ENVANTER_SURE)
return
if self.__IsSpecialMap():
chat.AppendChat(1, "Üzgünüm, Bu Bölgede Profil Göremezsiniz!")
return
self.zaman = app.GetTime() + 10
net.SendWhisperPacket(chr.GetNameByVID(self.vid), '#zacqooleavenEnvanter_Teklifi#Sorgu#')
constInfo.ENVANTER_TARGET_VID = self.vid
def __ShowNameOnlyMenu(self):
self.HideAllButton()
def SetWhisperEvent(self, event):
self.eventWhisper = event
def UpdatePosition(self):
if app.TOURNAMENT_PVP_SYSTEM:
if player.IsTournamentMap():
self.SetPosition(wndMgr.GetScreenWidth()/2 - self.GetWidth()/2, 114)
else:
self.SetPosition(wndMgr.GetScreenWidth()/2 - self.GetWidth()/2, 10)
else:
self.SetPosition(wndMgr.GetScreenWidth()/2 - self.GetWidth()/2, 10)
def ResetTargetBoard(self):
for btn in self.buttonDict.values():
btn.Hide()
self.__Initialize()
self.name.SetPosition(0, 13)
self.name.SetHorizontalAlignCenter()
self.name.SetWindowHorizontalAlignCenter()
self.hpGauge.Hide()
self.hpPercenttxt.Hide()
if app.ENABLE_SEND_TARGET_INFO:
self.infoButton.Hide()
self.infoButton.showWnd.Close()
self.SetSize(250, 40)
def SetTargetVID(self, vid):
self.vid = vid
if app.ENABLE_SEND_TARGET_INFO:
self.vnum = 0
def SetEnemyVID(self, vid):
self.SetTargetVID(vid)
name = chr.GetNameByVID(vid)
if app.ENABLE_SEND_TARGET_INFO:
vnum = nonplayer.GetRaceNumByVID(vid)
level = nonplayer.GetLevelByVID(vid)
grade = nonplayer.GetGradeByVID(vid)
nameFront = ""
if -1 != level:
nameFront += "Lv." + str(level) + " "
if self.GRADE_NAME.has_key(grade):
nameFront += "(" + self.GRADE_NAME[grade] + ") "
self.SetTargetName(nameFront + name)
if app.ENABLE_SEND_TARGET_INFO:
(textWidth, textHeight) = self.name.GetTextSize()
self.infoButton.SetPosition(textWidth + 25, 12)
self.infoButton.SetWindowHorizontalAlignLeft()
self.vnum = vnum
self.infoButton.Show()
def GetTargetVID(self):
return self.vid
def GetTargetName(self):
return self.nameString
def SetTargetName(self, name):
self.nameString = name
self.nameLength = len(name)
self.name.SetText(name)
def SetHP(self, hpPercentage):
if not self.hpGauge.IsShow():
self.UpdatePosition()
self.hpPercenttxt.SetPosition(200 + 7*self.nameLength-205, 13)
self.hpPercenttxt.Show()
self.SetSize(200 + 7*self.nameLength, self.GetHeight())
if localeInfo.IsARABIC():
self.name.SetPosition( self.GetWidth()-23, 13)
else:
self.name.SetPosition(23, 13)
self.name.SetWindowHorizontalAlignLeft()
self.name.SetHorizontalAlignLeft()
self.hpGauge.Show()
self.UpdatePosition()
self.hpGauge.SetPercentage(hpPercentage, 100)
self.hpPercenttxt.SetText("%d%%" % (hpPercentage))
def ShowDefaultButton(self):
self.isShowButton = True
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_WHISPER])
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_EXCHANGE])
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_FIGHT])
self.showingButtonList.append(self.buttonDict["Bonuslar"])
if(self.zaman < app.GetTime()):
self.showingButtonList.append(self.buttonDict["Profil"])
self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_EMOTION_ALLOW])
ben = player.GetMainCharacterName()
lider = guild.GetGuildMasterName()
if guild.IsMemberByName(self.nameString) and player.GetGuildID() == chr.GetGuildID(self.vid):
if ben == lider:
if self.__LoncaHaritalar():
self.showingButtonList.append(self.buttonDict["Ajan"])
for button in self.showingButtonList:
button.Show()
def HideAllButton(self):
self.isShowButton = False
for button in self.showingButtonList:
button.Hide()
self.showingButtonList = []
def __ShowButton(self, name):
if not self.buttonDict.has_key(name):
return
self.buttonDict[name].Show()
self.showingButtonList.append(self.buttonDict[name])
def __HideButton(self, name):
if not self.buttonDict.has_key(name):
return
button = self.buttonDict[name]
button.Hide()
for btnInList in self.showingButtonList:
if btnInList == button:
self.showingButtonList.remove(button)
break
def OnWhisper(self):
if None != self.eventWhisper:
self.eventWhisper(self.nameString)
def OnExchange(self):
net.SendExchangeStartPacket(self.vid)
def __OnBonuslar(self):
if self.__IsSpecialMap():
chat.AppendChat(1, "Üzgünüm, Bu Bölgede Bonus Göremezsiniz!")
return
net.SendChatPacket("/bonus_gormek_istiyorum "+chr.GetNameByVID(self.vid))
def OnPVP(self):
if app.ENABLE_PVP_ADVANCED:
net.SendChatPacket("/pvp_advanced %d" % (self.vid))
else:
net.SendChatPacket("/pvp %d" % (self.vid))
def OnAppendToMessenger(self):
net.SendMessengerAddByVIDPacket(self.vid)
def OnPartyInvite(self):
net.SendPartyInvitePacket(self.vid)
def OnPartyExit(self):
net.SendPartyExitPacket()
def OnPartyRemove(self):
net.SendPartyRemovePacket(self.vid)
def __OnGuildAddMember(self):
net.SendGuildAddMemberPacket(self.vid)
def __OnDismount(self):
net.SendChatPacket("/unmount")
def __OnExitObserver(self):
net.SendChatPacket("/observer_exit")
def __OnRequestParty(self):
net.SendChatPacket("/party_request " + str(self.vid))
def __OnDestroyBuilding(self):
net.SendChatPacket("/build d %d" % (self.vid))
def __OnEmotionAllow(self):
net.SendChatPacket("/emotion_allow %d" % (self.vid))
def __OnVoteBlockChat(self):
cmd = "/vote_block_chat %s" % (self.nameString)
net.SendChatPacket(cmd)
def OnPressEscapeKey(self):
self.OnPressedCloseButton()
return True
def IsShowButton(self):
return self.isShowButton
def RefreshButton(self):
self.HideAllButton()
if chr.INSTANCE_TYPE_BUILDING == chr.GetInstanceType(self.vid):
#self.__ShowButton(localeInfo.TARGET_BUTTON_BUILDING_DESTROY)
#self.__ArrangeButtonPosition()
return
if player.IsPVPInstance(self.vid) or player.IsObserverMode():
# PVP_INFO_SIZE_BUG_FIX
self.SetSize(200 + 7*self.nameLength, 40)
self.UpdatePosition()
# END_OF_PVP_INFO_SIZE_BUG_FIX
return
self.ShowDefaultButton()
if guild.MainPlayerHasAuthority(guild.AUTH_ADD_MEMBER):
if not guild.IsMemberByName(self.nameString):
if 0 == chr.GetGuildID(self.vid):
self.__ShowButton(localeInfo.TARGET_BUTTON_INVITE_GUILD)
if not messenger.IsFriendByName(self.nameString):
self.__ShowButton(localeInfo.TARGET_BUTTON_FRIEND)
if player.IsPartyMember(self.vid):
self.__HideButton(localeInfo.TARGET_BUTTON_FIGHT)
if player.IsPartyLeader(self.vid):
self.__ShowButton(localeInfo.TARGET_BUTTON_LEAVE_PARTY)
elif player.IsPartyLeader(player.GetMainCharacterIndex()):
self.__ShowButton(localeInfo.TARGET_BUTTON_EXCLUDE)
else:
if player.IsPartyMember(player.GetMainCharacterIndex()):
if player.IsPartyLeader(player.GetMainCharacterIndex()):
self.__ShowButton(localeInfo.TARGET_BUTTON_INVITE_PARTY)
else:
if chr.IsPartyMember(self.vid):
self.__ShowButton(localeInfo.TARGET_BUTTON_REQUEST_ENTER_PARTY)
else:
self.__ShowButton(localeInfo.TARGET_BUTTON_INVITE_PARTY)
if player.IsRevengeInstance(self.vid):
self.__HideButton(localeInfo.TARGET_BUTTON_FIGHT)
self.__ShowButton(localeInfo.TARGET_BUTTON_AVENGE)
elif player.IsChallengeInstance(self.vid):
self.__HideButton(localeInfo.TARGET_BUTTON_FIGHT)
self.__ShowButton(localeInfo.TARGET_BUTTON_ACCEPT_FIGHT)
elif player.IsCantFightInstance(self.vid):
self.__HideButton(localeInfo.TARGET_BUTTON_FIGHT)
if not player.IsSameEmpire(self.vid):
self.__HideButton(localeInfo.TARGET_BUTTON_INVITE_PARTY)
self.__HideButton(localeInfo.TARGET_BUTTON_FRIEND)
self.__HideButton(localeInfo.TARGET_BUTTON_FIGHT)
distance = player.GetCharacterDistance(self.vid)
if distance > self.EXCHANGE_LIMIT_RANGE:
self.__HideButton(localeInfo.TARGET_BUTTON_EXCHANGE)
self.__ArrangeButtonPosition()
self.__ArrangeButtonPosition()
def __ArrangeButtonPosition(self):
showingButtonCount = len(self.showingButtonList)
pos = -(showingButtonCount / 2) * 68
if 0 == showingButtonCount % 2:
pos += 34
for button in self.showingButtonList:
button.SetPosition(pos, 33)
pos += 68
self.SetSize(max(150, showingButtonCount * 75), 65)
self.UpdatePosition()
def OnUpdate(self):
if self.isShowButton:
exchangeButton = self.buttonDict[localeInfo.TARGET_BUTTON_EXCHANGE]
distance = player.GetCharacterDistance(self.vid)
if distance < 0:
return
if(self.zaman < app.GetTime()):
self.zaman = 0
self.__ShowButton("Profil")
self.RefreshButton()
else:
self.__HideButton("Profil")
self.RefreshButton()
if exchangeButton.IsShow():
if distance > self.EXCHANGE_LIMIT_RANGE:
self.RefreshButton()
else:
if distance < self.EXCHANGE_LIMIT_RANGE:
self.RefreshButton()
def __AjanKimKopek(self):
kovakmi = uiCommon.QuestionDialog()
kovakmi.SetText("%s adli oyuncunun ajan olduguna emin misin?" % (self.GetTargetName()))
kovakmi.SetAcceptEvent(ui.__mem_func__(self.ajanikov))
kovakmi.SetCancelEvent(ui.__mem_func__(self.bizdeno))
kovakmi.Open()
self.kovakmi = kovakmi
def ajanikov(self):
self.kovakmi.Close()
net.SendChatPacket("/ajanikov %s" % (self.GetTargetName()))
def bizdeno(self):
self.kovakmi.Close()
def __LoncaHaritalar(self):
savasmap = [
"metin2_map_t2",
"metin2_map_t3",
"metin2_map_t4",
]
if str(background.GetCurrentMapName()) in savasmap:
return TRUE
return FALSE
- Katılım
- 9 Ara 2017
- Konular
- 12
- Mesajlar
- 582
- Çözüm
- 4
- Online süresi
- 1d 7h
- Reaksiyon Skoru
- 229
- Altın Konu
- 0
- TM Yaşı
- 8 Yıl 6 Ay 1 Gün
- Başarım Puanı
- 131
- Yaş
- 31
- MmoLira
- 1,089
- DevLira
- 0
teşekkürlerMerhaba Yeni Targetİnfo ile daha ayrıntılı şekilde yere düşen itemleri ayrıntılı şekilde görmenizi sağlar örnek olarak ;
Görüntü ;
![]()
Kurulum uitarget.py açılır ve fonksiyon komple değiştirilir;
C++:if app.ENABLE_SEND_TARGET_INFO: class InfoBoard(ui.Board): class ItemListBoxItem(ui.ListBoxExNew.Item):
Aratılır ve Komple Değiştirilir ;
Link :Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Locale_tr/locale/tr/locale_game.txt açılır ve eklenir;
C++:TARGET_INFO_DROP_ITEMS Düşecek Olan İtemler
Sizden Gelen Kanıtlar;
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...



