-
Posts
8 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by POLICESmith
-
-
-
Hi Ikarus, thanks for you replay.
This is my code part:
https://metin2.download/picture/C6R68i4OZ9TDKd1Jhp3Ge591lHXD7EKK/.jpg- 2
-
On 15/3/2021 at 01:34, Cunoo said:
Origine client> PythonPlayerModule
Cerca: PyModule_AddIntConstant (poModule, "POINT_MALL_ATTBONUS", POINT_MALL_ATTBONUS);
Aggiungi sotto: PyModule_AddIntConstant (poModule, "POINT_ATT_BONUS", POINT_ATT_BONUS);
root> uiaffectshower.py
Ricerca: MALL_DESC_IDX_START + player.POINT_MALL_ATTBONUS: (localeInfo.TOOLTIP_MALL_ATTBONUS_STATIC, "icon / item / 71028.tga",),
Modifica: MALL_DESC_IDX_START + player.POINT_ATT_STATIC_locale_ATTBONUS_STATIC , "icon / item / 71028.tga",), Modifica: MALL_DESC_IDX_START + player.POINT_ATT_STATIC tga ",),Thank you for your help, I tried but it doesn't work.
-
import ui
import localeInfo
import chr
import item
import app
import skill
import player
import uiToolTip
import math# WEDDING
class LovePointImage(ui.ExpandedImageBox):FILE_PATH = "d:/ymir work/ui/pattern/LovePoint/"
FILE_DICT = {
0 : FILE_PATH + "01.dds",
1 : FILE_PATH + "02.dds",
2 : FILE_PATH + "02.dds",
3 : FILE_PATH + "03.dds",
4 : FILE_PATH + "04.dds",
5 : FILE_PATH + "05.dds",
}def __init__(self):
ui.ExpandedImageBox.__init__(self)self.loverName = ""
self.lovePoint = 0self.toolTip = uiToolTip.ToolTip(100)
self.toolTip.HideToolTip()def __del__(self):
ui.ExpandedImageBox.__del__(self)def SetLoverInfo(self, name, lovePoint):
self.loverName = name
self.lovePoint = lovePoint
self.__Refresh()def OnUpdateLovePoint(self, lovePoint):
self.lovePoint = lovePoint
self.__Refresh()def __Refresh(self):
self.lovePoint = max(0, self.lovePoint)
self.lovePoint = min(100, self.lovePoint)if 0 == self.lovePoint:
loveGrade = 0
else:
loveGrade = self.lovePoint / 25 + 1
fileName = self.FILE_DICT.get(loveGrade, self.FILE_PATH+"00.dds")try:
self.LoadImage(fileName)
except:
import dbg
dbg.TraceError("LovePointImage.SetLoverInfo(lovePoint=%d) - LoadError %s" % (self.lovePoint, fileName))self.SetScale(0.7, 0.7)
self.toolTip.ClearToolTip()
self.toolTip.SetTitle(self.loverName)
self.toolTip.AppendTextLine(localeInfo.AFF_LOVE_POINT % (self.lovePoint))
self.toolTip.ResizeToolTip()def OnMouseOverIn(self):
self.toolTip.ShowToolTip()def OnMouseOverOut(self):
self.toolTip.HideToolTip()
# END_OF_WEDDING
class HorseImage(ui.ExpandedImageBox):FILE_PATH = "d:/ymir work/ui/pattern/HorseState/"
FILE_DICT = {
00 : FILE_PATH+"00.dds",
01 : FILE_PATH+"00.dds",
02 : FILE_PATH+"00.dds",
03 : FILE_PATH+"00.dds",
10 : FILE_PATH+"10.dds",
11 : FILE_PATH+"11.dds",
12 : FILE_PATH+"12.dds",
13 : FILE_PATH+"13.dds",
20 : FILE_PATH+"20.dds",
21 : FILE_PATH+"21.dds",
22 : FILE_PATH+"22.dds",
23 : FILE_PATH+"23.dds",
30 : FILE_PATH+"30.dds",
31 : FILE_PATH+"31.dds",
32 : FILE_PATH+"32.dds",
33 : FILE_PATH+"33.dds",
}def __init__(self):
ui.ExpandedImageBox.__init__(self)#self.textLineList = []
self.toolTip = uiToolTip.ToolTip(100)
self.toolTip.HideToolTip()def __GetHorseGrade(self, level):
if 0 == level:
return 0return (level-1)/10 + 1
def SetState(self, level, health, battery):
#self.textLineList=[]
self.toolTip.ClearToolTip()if level>0:
try:
grade = self.__GetHorseGrade(level)
self.__AppendText(localeInfo.LEVEL_LIST[grade])
except IndexError:
print "HorseImage.SetState(level=%d, health=%d, battery=%d) - Unknown Index" % (level, health, battery)
returntry:
healthName=localeInfo.HEALTH_LIST[health]
if len(healthName)>0:
self.__AppendText(healthName)
except IndexError:
print "HorseImage.SetState(level=%d, health=%d, battery=%d) - Unknown Index" % (level, health, battery)
returnif health>0:
if battery==0:
self.__AppendText(localeInfo.NEEFD_REST)try:
fileName=self.FILE_DICT[health*10+battery]
except KeyError:
print "HorseImage.SetState(level=%d, health=%d, battery=%d) - KeyError" % (level, health, battery)try:
self.LoadImage(fileName)
except:
print "HorseImage.SetState(level=%d, health=%d, battery=%d) - LoadError %s" % (level, health, battery, fileName)self.SetScale(0.7, 0.7)
def __AppendText(self, text):
self.toolTip.AppendTextLine(text)
self.toolTip.ResizeToolTip()#x=self.GetWidth()/2
#textLine = ui.TextLine()
#textLine.SetParent(self)
#textLine.SetSize(0, 0)
#textLine.SetOutline()
#textLine.Hide()
#textLine.SetPosition(x, 40+len(self.textLineList)*16)
#textLine.SetText(text)
#self.textLineList.append(textLine)def OnMouseOverIn(self):
#for textLine in self.textLineList:
# textLine.Show()self.toolTip.ShowToolTip()
def OnMouseOverOut(self):
#for textLine in self.textLineList:
# textLine.Hide()self.toolTip.HideToolTip()
# AUTO_POTION
class AutoPotionImage(ui.ExpandedImageBox):FILE_PATH_HP = "d:/ymir work/ui/pattern/auto_hpgauge/"
FILE_PATH_SP = "d:/ymir work/ui/pattern/auto_spgauge/"def __init__(self):
ui.ExpandedImageBox.__init__(self)self.loverName = ""
self.lovePoint = 0
self.potionType = player.AUTO_POTION_TYPE_HP
self.filePath = ""self.toolTip = uiToolTip.ToolTip(100)
self.toolTip.HideToolTip()def __del__(self):
ui.ExpandedImageBox.__del__(self)def SetPotionType(self, type):
self.potionType = typeif player.AUTO_POTION_TYPE_HP == type:
self.filePath = self.FILE_PATH_HP
elif player.AUTO_POTION_TYPE_SP == type:
self.filePath = self.FILE_PATH_SP
def OnUpdateAutoPotionImage(self):
self.__Refresh()def __Refresh(self):
print "__Refresh"isActivated, currentAmount, totalAmount, slotIndex = player.GetAutoPotionInfo(self.potionType)
amountPercent = (float(currentAmount) / totalAmount) * 100.0
grade = math.ceil(amountPercent / 20)if 5.0 > amountPercent:
grade = 0if 80.0 < amountPercent:
grade = 4
if 90.0 < amountPercent:
grade = 5fmt = self.filePath + "%.2d.dds"
fileName = fmt % gradeprint self.potionType, amountPercent, fileName
try:
self.LoadImage(fileName)
except:
import dbg
dbg.TraceError("AutoPotionImage.__Refresh(potionType=%d) - LoadError %s" % (self.potionType, fileName))self.SetScale(0.7, 0.7)
self.toolTip.ClearToolTip()
if player.AUTO_POTION_TYPE_HP == type:
self.toolTip.SetTitle(localeInfo.TOOLTIP_AUTO_POTION_HP)
else:
self.toolTip.SetTitle(localeInfo.TOOLTIP_AUTO_POTION_SP)self.toolTip.AppendTextLine(localeInfo.TOOLTIP_AUTO_POTION_REST % (amountPercent))
self.toolTip.ResizeToolTip()def OnMouseOverIn(self):
self.toolTip.ShowToolTip()def OnMouseOverOut(self):
self.toolTip.HideToolTip()
# END_OF_AUTO_POTION
class AffectImage(ui.ExpandedImageBox):def __init__(self):
ui.ExpandedImageBox.__init__(self)self.toolTipText = None
self.isSkillAffect = True
self.description = None
self.endTime = 0
self.affect = None
self.isClocked = Truedef SetAffect(self, affect):
self.affect = affectdef GetAffect(self):
return self.affectdef SetToolTipText(self, text, x = 0, y = -19):
if not self.toolTipText:
textLine = ui.TextLine()
textLine.SetParent(self)
textLine.SetSize(0, 0)
textLine.SetOutline()
textLine.Hide()
self.toolTipText = textLineself.toolTipText.SetText(text)
w, h = self.toolTipText.GetTextSize()
self.toolTipText.SetPosition(max(0, x + self.GetWidth()/2 - w/2), y)def SetDescription(self, description):
self.description = descriptiondef SetDuration(self, duration):
self.endTime = 0
if duration > 0:
self.endTime = app.GetGlobalTimeStamp() + durationdef UpdateAutoPotionDescription(self):
potionType = 0
if self.affect == chr.NEW_AFFECT_AUTO_HP_RECOVERY:
potionType = player.AUTO_POTION_TYPE_HP
else:
potionType = player.AUTO_POTION_TYPE_SPisActivated, currentAmount, totalAmount, slotIndex = player.GetAutoPotionInfo(potionType)
#print "UpdateAutoPotionDescription ", isActivated, currentAmount, totalAmount, slotIndex
amountPercent = 0.0
try:
amountPercent = (float(currentAmount) / totalAmount) * 100.0
except:
amountPercent = 100.0self.SetToolTipText(self.description % amountPercent, 0, 40)
def SetClock(self, isClocked):
self.isClocked = isClockeddef UpdateDescription(self):
if not self.isClocked:
self.__UpdateDescription2()
returnif not self.description:
returntoolTip = self.description
if self.endTime > 0:
leftTime = localeInfo.SecondToDHM(self.endTime - app.GetGlobalTimeStamp())
toolTip += " (%s : %s)" % (localeInfo.LEFT_TIME, leftTime)
self.SetToolTipText(toolTip, 0, 40)#독일버전에서 시간을 제거하기 위해서 사용
def __UpdateDescription2(self):
if not self.description:
returntoolTip = self.description
self.SetToolTipText(toolTip, 0, 40)def SetSkillAffectFlag(self, flag):
self.isSkillAffect = flagdef IsSkillAffect(self):
return self.isSkillAffectdef OnMouseOverIn(self):
if self.toolTipText:
self.toolTipText.Show()def OnMouseOverOut(self):
if self.toolTipText:
self.toolTipText.Hide()class AffectShower(ui.Window):
MALL_DESC_IDX_START = 1000
IMAGE_STEP = 25
AFFECT_MAX_NUM = 32INFINITE_AFFECT_DURATION = 0x1FFFFFFF
AFFECT_DATA_DICT = {
chr.AFFECT_POISON : (localeInfo.SKILL_TOXICDIE, "d:/ymir work/ui/skill/common/affect/poison.sub"),
chr.AFFECT_SLOW : (localeInfo.SKILL_SLOW, "d:/ymir work/ui/skill/common/affect/slow.sub"),
chr.AFFECT_STUN : (localeInfo.SKILL_STUN, "d:/ymir work/ui/skill/common/affect/stun.sub"),chr.AFFECT_ATT_SPEED_POTION : (localeInfo.SKILL_INC_ATKSPD, "d:/ymir work/ui/skill/common/affect/Increase_Attack_Speed.sub"),
chr.AFFECT_MOV_SPEED_POTION : (localeInfo.SKILL_INC_MOVSPD, "d:/ymir work/ui/skill/common/affect/Increase_Move_Speed.sub"),
chr.AFFECT_FISH_MIND : (localeInfo.SKILL_FISHMIND, "d:/ymir work/ui/skill/common/affect/fishmind.sub"),chr.AFFECT_JEONGWI : (localeInfo.SKILL_JEONGWI, "d:/ymir work/ui/skill/warrior/jeongwi_03.sub",),
chr.AFFECT_GEOMGYEONG : (localeInfo.SKILL_GEOMGYEONG, "d:/ymir work/ui/skill/warrior/geomgyeong_03.sub",),
chr.AFFECT_CHEONGEUN : (localeInfo.SKILL_CHEONGEUN, "d:/ymir work/ui/skill/warrior/cheongeun_03.sub",),
chr.AFFECT_GYEONGGONG : (localeInfo.SKILL_GYEONGGONG, "d:/ymir work/ui/skill/assassin/gyeonggong_03.sub",),
chr.AFFECT_EUNHYEONG : (localeInfo.SKILL_EUNHYEONG, "d:/ymir work/ui/skill/assassin/eunhyeong_03.sub",),
chr.AFFECT_GWIGEOM : (localeInfo.SKILL_GWIGEOM, "d:/ymir work/ui/skill/sura/gwigeom_03.sub",),
chr.AFFECT_GONGPO : (localeInfo.SKILL_GONGPO, "d:/ymir work/ui/skill/sura/gongpo_03.sub",),
chr.AFFECT_JUMAGAP : (localeInfo.SKILL_JUMAGAP, "d:/ymir work/ui/skill/sura/jumagap_03.sub"),
chr.AFFECT_HOSIN : (localeInfo.SKILL_HOSIN, "d:/ymir work/ui/skill/shaman/hosin_03.sub",),
chr.AFFECT_BOHO : (localeInfo.SKILL_BOHO, "d:/ymir work/ui/skill/shaman/boho_03.sub",),
chr.AFFECT_KWAESOK : (localeInfo.SKILL_KWAESOK, "d:/ymir work/ui/skill/shaman/kwaesok_03.sub",),
chr.AFFECT_HEUKSIN : (localeInfo.SKILL_HEUKSIN, "d:/ymir work/ui/skill/sura/heuksin_03.sub",),
chr.AFFECT_MUYEONG : (localeInfo.SKILL_MUYEONG, "d:/ymir work/ui/skill/sura/muyeong_03.sub",),
chr.AFFECT_GICHEON : (localeInfo.SKILL_GICHEON, "d:/ymir work/ui/skill/shaman/gicheon_03.sub",),
chr.AFFECT_JEUNGRYEOK : (localeInfo.SKILL_JEUNGRYEOK, "d:/ymir work/ui/skill/shaman/jeungryeok_03.sub",),
chr.AFFECT_PABEOP : (localeInfo.SKILL_PABEOP, "d:/ymir work/ui/skill/sura/pabeop_03.sub",),
chr.AFFECT_FALLEN_CHEONGEUN : (localeInfo.SKILL_CHEONGEUN, "d:/ymir work/ui/skill/warrior/cheongeun_03.sub",),
28 : (localeInfo.SKILL_FIRE, "d:/ymir work/ui/skill/sura/hwayeom_03.sub",),
chr.AFFECT_CHINA_FIREWORK : (localeInfo.SKILL_POWERFUL_STRIKE, "d:/ymir work/ui/skill/common/affect/powerfulstrike.sub",),#64 - END
chr.NEW_AFFECT_EXP_BONUS : (localeInfo.TOOLTIP_MALL_EXPBONUS_STATIC, "d:/ymir work/ui/skill/common/affect/exp_bonus.sub",),chr.NEW_AFFECT_ITEM_BONUS : (localeInfo.TOOLTIP_MALL_ITEMBONUS_STATIC, "d:/ymir work/ui/skill/common/affect/item_bonus.sub",),
chr.NEW_AFFECT_SAFEBOX : (localeInfo.TOOLTIP_MALL_SAFEBOX, "d:/ymir work/ui/skill/common/affect/safebox.sub",),
chr.NEW_AFFECT_AUTOLOOT : (localeInfo.TOOLTIP_MALL_AUTOLOOT, "d:/ymir work/ui/skill/common/affect/autoloot.sub",),
chr.NEW_AFFECT_FISH_MIND : (localeInfo.TOOLTIP_MALL_FISH_MIND, "d:/ymir work/ui/skill/common/affect/fishmind.sub",),
chr.NEW_AFFECT_MARRIAGE_FAST : (localeInfo.TOOLTIP_MALL_MARRIAGE_FAST, "d:/ymir work/ui/skill/common/affect/marriage_fast.sub",),
chr.NEW_AFFECT_GOLD_BONUS : (localeInfo.TOOLTIP_MALL_GOLDBONUS_STATIC, "d:/ymir work/ui/skill/common/affect/gold_bonus.sub",),chr.NEW_AFFECT_NO_DEATH_PENALTY : (localeInfo.TOOLTIP_APPLY_NO_DEATH_PENALTY, "d:/ymir work/ui/skill/common/affect/gold_premium.sub"),
chr.NEW_AFFECT_SKILL_BOOK_BONUS : (localeInfo.TOOLTIP_APPLY_SKILL_BOOK_BONUS, "d:/ymir work/ui/skill/common/affect/gold_premium.sub"),
chr.NEW_AFFECT_SKILL_BOOK_NO_DELAY : (localeInfo.TOOLTIP_APPLY_SKILL_BOOK_NO_DELAY, "d:/ymir work/ui/skill/common/affect/gold_premium.sub"),# 자동물약 hp, sp
chr.NEW_AFFECT_AUTO_HP_RECOVERY : (localeInfo.TOOLTIP_AUTO_POTION_REST, "d:/ymir work/ui/pattern/auto_hpgauge/05.dds"),
chr.NEW_AFFECT_AUTO_SP_RECOVERY : (localeInfo.TOOLTIP_AUTO_POTION_REST, "d:/ymir work/ui/pattern/auto_spgauge/05.dds"),
#chr.NEW_AFFECT_AUTO_HP_RECOVERY : (localeInfo.TOOLTIP_AUTO_POTION_REST, "d:/ymir work/ui/skill/common/affect/gold_premium.sub"),
#chr.NEW_AFFECT_AUTO_SP_RECOVERY : (localeInfo.TOOLTIP_AUTO_POTION_REST, "d:/ymir work/ui/skill/common/affect/gold_bonus.sub"),MALL_DESC_IDX_START+player.POINT_MALL_ATTBONUS : (localeInfo.TOOLTIP_MALL_ATTBONUS_STATIC, "d:/ymir work/ui/skill/common/affect/att_bonus.sub",),
MALL_DESC_IDX_START+player.POINT_MALL_DEFBONUS : (localeInfo.TOOLTIP_MALL_DEFBONUS_STATIC, "d:/ymir work/ui/skill/common/affect/def_bonus.sub",),
MALL_DESC_IDX_START+player.POINT_MALL_EXPBONUS : (localeInfo.TOOLTIP_MALL_EXPBONUS, "d:/ymir work/ui/skill/common/affect/exp_bonus.sub",),
MALL_DESC_IDX_START+player.POINT_MALL_ITEMBONUS : (localeInfo.TOOLTIP_MALL_ITEMBONUS, "d:/ymir work/ui/skill/common/affect/item_bonus.sub",),
MALL_DESC_IDX_START+player.POINT_MALL_GOLDBONUS : (localeInfo.TOOLTIP_MALL_GOLDBONUS, "d:/ymir work/ui/skill/common/affect/gold_bonus.sub",),
MALL_DESC_IDX_START+player.POINT_CRITICAL_PCT : (localeInfo.TOOLTIP_APPLY_CRITICAL_PCT,"d:/ymir work/ui/skill/common/affect/critical.sub"),
MALL_DESC_IDX_START+player.POINT_PENETRATE_PCT : (localeInfo.TOOLTIP_APPLY_PENETRATE_PCT, "d:/ymir work/ui/skill/common/affect/gold_premium.sub"),
MALL_DESC_IDX_START+player.POINT_MAX_HP_PCT : (localeInfo.TOOLTIP_MAX_HP_PCT, "d:/ymir work/ui/skill/common/affect/gold_premium.sub"),
MALL_DESC_IDX_START+player.POINT_MAX_SP_PCT : (localeInfo.TOOLTIP_MAX_SP_PCT, "d:/ymir work/ui/skill/common/affect/gold_premium.sub"),MALL_DESC_IDX_START+player.POINT_PC_BANG_EXP_BONUS : (localeInfo.TOOLTIP_MALL_EXPBONUS_P_STATIC, "d:/ymir work/ui/skill/common/affect/EXP_Bonus_p_on.sub",),
MALL_DESC_IDX_START+player.POINT_PC_BANG_DROP_BONUS: (localeInfo.TOOLTIP_MALL_ITEMBONUS_P_STATIC, "d:/ymir work/ui/skill/common/affect/Item_Bonus_p_on.sub",),
}
if app.ENABLE_DRAGON_SOUL_SYSTEM:
# 용혼석 천, 지 덱.
AFFECT_DATA_DICT[chr.NEW_AFFECT_DRAGON_SOUL_DECK1] = (localeInfo.TOOLTIP_DRAGON_SOUL_DECK1, "d:/ymir work/ui/dragonsoul/buff_ds_sky1.tga")
AFFECT_DATA_DICT[chr.NEW_AFFECT_DRAGON_SOUL_DECK2] = (localeInfo.TOOLTIP_DRAGON_SOUL_DECK2, "d:/ymir work/ui/dragonsoul/buff_ds_land1.tga")
if app.ENABLE_WOLFMAN_CHARACTER:
AFFECT_DATA_DICT[chr.AFFECT_BLEEDING] = (localeInfo.SKILL_BLEEDING, "d:/ymir work/ui/skill/common/affect/poison.sub")
AFFECT_DATA_DICT[chr.AFFECT_RED_POSSESSION] = (localeInfo.SKILL_GWIGEOM, "d:/ymir work/ui/skill/wolfman/red_possession_03.sub")
AFFECT_DATA_DICT[chr.AFFECT_BLUE_POSSESSION] = (localeInfo.SKILL_CHEONGEUN, "d:/ymir work/ui/skill/wolfman/blue_possession_03.sub")def __init__(self):
ui.Window.__init__(self)self.serverPlayTime=0
self.clientPlayTime=0self.lastUpdateTime=0
self.affectImageDict={}
self.horseImage=None
self.lovePointImage=None
self.autoPotionImageHP = AutoPotionImage()
self.autoPotionImageSP = AutoPotionImage()
self.SetPosition(10, 10)
self.Show()def ClearAllAffects(self):
self.horseImage=None
self.lovePointImage=None
self.affectImageDict={}
self.__ArrangeImageList()def ClearAffects(self): ## 스킬 이펙트만 없앱니다.
self.living_affectImageDict={}
for key, image in self.affectImageDict.items():
if not image.IsSkillAffect():
self.living_affectImageDict[key] = image
self.affectImageDict = self.living_affectImageDict
self.__ArrangeImageList()def BINARY_NEW_AddAffect(self, type, pointIdx, value, duration):
print "BINARY_NEW_AddAffect", type, pointIdx, value, duration
if type < 500:
returnif type == chr.NEW_AFFECT_MALL:
affect = self.MALL_DESC_IDX_START + pointIdx
else:
affect = typeif self.affectImageDict.has_key(affect):
returnif not self.AFFECT_DATA_DICT.has_key(affect):
return## 용신의 가호, 선인의 교훈은 Duration 을 0 으로 설정한다.
if affect == chr.NEW_AFFECT_NO_DEATH_PENALTY or\
affect == chr.NEW_AFFECT_SKILL_BOOK_BONUS or\
affect == chr.NEW_AFFECT_AUTO_SP_RECOVERY or\
affect == chr.NEW_AFFECT_AUTO_HP_RECOVERY or\
affect == chr.NEW_AFFECT_SKILL_BOOK_NO_DELAY:
duration = 0affectData = self.AFFECT_DATA_DICT[affect]
description = affectData[0]
filename = affectData[1]if pointIdx == player.POINT_MALL_ITEMBONUS or\
pointIdx == player.POINT_MALL_GOLDBONUS:
value = 1 + float(value) / 100.0trashValue = 123
#if affect == chr.NEW_AFFECT_AUTO_SP_RECOVERY or affect == chr.NEW_AFFECT_AUTO_HP_RECOVERY:
if trashValue == 1:
try:
#image = AutoPotionImage()
#image.SetParent(self)
image = Noneif affect == chr.NEW_AFFECT_AUTO_SP_RECOVERY:
image.SetPotionType(player.AUTO_POTION_TYPE_SP)
image = self.autoPotionImageSP
#self.autoPotionImageSP = image;
else:
image.SetPotionType(player.AUTO_POTION_TYPE_HP)
image = self.autoPotionImageHP
#self.autoPotionImageHP = image;image.SetParent(self)
image.Show()
image.OnUpdateAutoPotionImage()self.affectImageDict[affect] = image
self.__ArrangeImageList()except Exception, e:
print "except Aff auto potion affect ", e
passelse:
if affect != chr.NEW_AFFECT_AUTO_SP_RECOVERY and affect != chr.NEW_AFFECT_AUTO_HP_RECOVERY:
description = description(float(value))try:
print "Add affect %s" % affect
image = AffectImage()
image.SetParent(self)
image.LoadImage(filename)
image.SetDescription(description)
image.SetDuration(duration)
image.SetAffect(affect)
if affect == chr.NEW_AFFECT_EXP_BONUS_EURO_FREE or\
affect == chr.NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15 or\
self.INFINITE_AFFECT_DURATION < duration:
image.SetClock(False)
image.UpdateDescription()
elif affect == chr.NEW_AFFECT_AUTO_SP_RECOVERY or affect == chr.NEW_AFFECT_AUTO_HP_RECOVERY:
image.UpdateAutoPotionDescription()
else:
image.UpdateDescription()if affect == chr.NEW_AFFECT_DRAGON_SOUL_DECK1 or affect == chr.NEW_AFFECT_DRAGON_SOUL_DECK2:
image.SetScale(1, 1)
else:
image.SetScale(0.7, 0.7)
image.SetSkillAffectFlag(False)
image.Show()
self.affectImageDict[affect] = image
self.__ArrangeImageList()
except Exception, e:
print "except Aff affect ", e
passdef BINARY_NEW_RemoveAffect(self, type, pointIdx):
if type == chr.NEW_AFFECT_MALL:
affect = self.MALL_DESC_IDX_START + pointIdx
else:
affect = typeprint "Remove Affect %s %s" % ( type , pointIdx )
self.__RemoveAffect(affect)
self.__ArrangeImageList()def SetAffect(self, affect):
self.__AppendAffect(affect)
self.__ArrangeImageList()def ResetAffect(self, affect):
self.__RemoveAffect(affect)
self.__ArrangeImageList()def SetLoverInfo(self, name, lovePoint):
image = LovePointImage()
image.SetParent(self)
image.SetLoverInfo(name, lovePoint)
self.lovePointImage = image
self.__ArrangeImageList()def ShowLoverState(self):
if self.lovePointImage:
self.lovePointImage.Show()
self.__ArrangeImageList()def HideLoverState(self):
if self.lovePointImage:
self.lovePointImage.Hide()
self.__ArrangeImageList()def ClearLoverState(self):
self.lovePointImage = None
self.__ArrangeImageList()def OnUpdateLovePoint(self, lovePoint):
if self.lovePointImage:
self.lovePointImage.OnUpdateLovePoint(lovePoint)def SetHorseState(self, level, health, battery):
if level==0:
self.horseImage=None
else:
image = HorseImage()
image.SetParent(self)
image.SetState(level, health, battery)
image.Show()self.horseImage=image
self.__ArrangeImageList()def SetPlayTime(self, playTime):
self.serverPlayTime = playTime
self.clientPlayTime = app.GetTime()if localeInfo.IsVIETNAM():
image = PlayTimeImage()
image.SetParent(self)
image.SetPlayTime(playTime)
image.Show()self.playTimeImage=image
self.__ArrangeImageList()def __AppendAffect(self, affect):
if self.affectImageDict.has_key(affect):
returntry:
affectData = self.AFFECT_DATA_DICT[affect]
except KeyError:
returnname = affectData[0]
filename = affectData[1]skillIndex = player.AffectIndexToSkillIndex(affect)
if 0 != skillIndex:
name = skill.GetSkillName(skillIndex)image = AffectImage()
image.SetParent(self)
image.SetSkillAffectFlag(True)try:
image.LoadImage(filename)
except:
passimage.SetToolTipText(name, 0, 40)
image.SetScale(0.7, 0.7)
image.Show()
self.affectImageDict[affect] = imagedef __RemoveAffect(self, affect):
"""
if affect == chr.NEW_AFFECT_AUTO_SP_RECOVERY:
self.autoPotionImageSP.Hide()if affect == chr.NEW_AFFECT_AUTO_HP_RECOVERY:
self.autoPotionImageHP.Hide()
"""if not self.affectImageDict.has_key(affect):
print "__RemoveAffect %s ( No Affect )" % affect
returnprint "__RemoveAffect %s ( Affect )" % affect
del self.affectImageDict[affect]self.__ArrangeImageList()
def __ArrangeImageList(self):
width = len(self.affectImageDict) * self.IMAGE_STEP
if self.lovePointImage:
width+=self.IMAGE_STEP
if self.horseImage:
width+=self.IMAGE_STEPself.SetSize(width, 26)
xPos = 0
if self.lovePointImage:
if self.lovePointImage.IsShow():
self.lovePointImage.SetPosition(xPos, 0)
xPos += self.IMAGE_STEPif self.horseImage:
self.horseImage.SetPosition(xPos, 0)
xPos += self.IMAGE_STEPfor image in self.affectImageDict.values():
image.SetPosition(xPos, 0)
xPos += self.IMAGE_STEPdef OnUpdate(self):
try:
if app.GetGlobalTime() - self.lastUpdateTime > 500:
#if 0 < app.GetGlobalTime():
self.lastUpdateTime = app.GetGlobalTime()for image in self.affectImageDict.values():
if image.GetAffect() == chr.NEW_AFFECT_AUTO_HP_RECOVERY or image.GetAffect() == chr.NEW_AFFECT_AUTO_SP_RECOVERY:
image.UpdateAutoPotionDescription()
continueif not image.IsSkillAffect():
image.UpdateDescription()
except Exception, e:
print "AffectShower::OnUpdate error : ", e -
Good evening, I have a problem with the alchemy system. Purity and Level do not come out. The only inventory that happens is that of Jade. Obviously there is no Syserr ..
Sorry for bad eng...
https://metin2.download/picture/Q5m5JJnV6OpRDsWQfk0gQwYRb1gWNNA8/.png -
Hello, I have a little problem with Dragon God Attack. Basically when I use it, the icon does not come out. It does not give me Syser and I have tried to check everywhere. Could anyone help me?
Spoiler
Dragon god attack not show
in Community Support - Questions & Answers
Posted
Up