Bulundu Prem. efekt kısmındaki bi istek

  • Konuyu açan Konuyu açan Destry
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 62
Konu sahibinin aradığı materyalleri bulduğu için "Bulundu" öneki eklenmiştir. Eğer aynı materyalleri arıyorsanız yorumlara bakabilirsiniz. İstediğiniz materyallere bu konuda bulamadıysanız yeni konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Destry

Üye
Üye
Mesaj
57
Çözümler
1
Beğeni
12
Puan
74
Ticaret Puanı
0
şebnemlerdeki özelliklerdir vs vs bu şekilde yapmak istiyorum
1766113555372.webp
elinizde bu sistem mevcutmudur
 

Dosya Eklentileri

  • 1766113529863.webp
    1766113529863.webp
    3,9 KB · Gösterim: 8
Çözüm
<3
1766115145235.webp




şebnem değer:
Genişlet Daralt Kopyala
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 = 0

        self.toolTip = uiToolTip.ToolTip(100)
        self.toolTip.HideToolTip()

    def __del__(self):
        ui.ExpandedImageBox.__del__(self)...
<3
1766115145235.webp




şebnem değer:
Genişlet Daralt Kopyala
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 = 0

        self.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 0

        return (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)
                return

            try:
                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)
                return

            if 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 = type

        if 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 = 0

        if 80.0 < amountPercent:
            grade = 4
            if 90.0 < amountPercent:
                grade = 5

        fmt = self.filePath + "%.2d.dds"
        fileName = fmt % grade

        print 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 = True
        self.value = 0
        self.pointType = 0

    def SetAffect(self, affect):
        self.affect = affect

    def GetAffect(self):
        return self.affect

    def 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 = textLine

        self.toolTipText.SetText(text)
        w, h = self.toolTipText.GetTextSize()
        if localeInfo.IsARABIC():
            self.toolTipText.SetPosition(w+20, y)
        else:
            self.toolTipText.SetPosition(max(0, x + self.GetWidth()/2 - w/2), y)

    def SetDescription(self, description):
        self.description = description

    def SetValue(self, value, pointType):
        self.value = value
        self.pointType = pointType

    def SetDuration(self, duration):
        self.endTime = 0
        if duration > 0:
            self.endTime = app.GetGlobalTimeStamp() + duration

    def 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_SP

        isActivated, 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.0

        self.SetToolTipText(self.description % amountPercent, 0, 40)

    def SetClock(self, isClocked):
        self.isClocked = isClocked

    def UpdateDescription(self):
        if not self.isClocked:
            self.__UpdateDescription2()
            return

        if not self.description:
            return
# Şebnemlerin süre gösterimi kaldırıldı
        toolTip = self.description
        #if self.endTime > 0:
        #    leftTime = localeInfo.SecondToDHM(self.endTime - app.GetGlobalTimeStamp())
        #    toolTip += " (%s : %s)" % (localeInfo.LEFT_TIME, leftTime)
        if self.value != 0:
            if self.pointType == player.POINT_MALL_ITEMBONUS or self.pointType == player.POINT_MALL_GOLDBONUS:
                valueStr = "%.1f%%" % ((self.value - 1) * 100)
            else:
                valueStr = str(self.value)
            toolTip += " (+%s)" % valueStr
        self.SetToolTipText(toolTip, 0, 40)

    def __UpdateDescription2(self):
        if not self.description:
            return

        toolTip = self.description
        if self.value != 0:
            if self.pointType == player.POINT_MALL_ITEMBONUS or self.pointType == player.POINT_MALL_GOLDBONUS:
                valueStr = "%.1f%%" % ((self.value - 1) * 100)
            else:
                valueStr = str(self.value)
            toolTip += " (+%s)" % valueStr
        self.SetToolTipText(toolTip, 0, 40)

    def SetSkillAffectFlag(self, flag):
        self.isSkillAffect = flag

    def IsSkillAffect(self):
        return self.isSkillAffect

    def 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 = 32

    INFINITE_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/offical_etc/affectshower/yesil_pot.png"),
            chr.AFFECT_MOV_SPEED_POTION : (localeInfo.SKILL_INC_MOVSPD, "d:/ymir work/offical_etc/affectshower/mor_pot.png"),
            chr.AFFECT_FISH_MIND : (localeInfo.SKILL_FISHMIND, "d:/ymir work/offical_etc/affectshower/4.png"),

            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"),

            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_MELEE_MAGIC_ATT_BONUS_PER : (localeInfo.TOOLTIP_MALL_ATTBONUS_STATIC, "icon/item/71028.tga",),
            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_TUNGA_BLEND_AFFECT:
        AFFECT_DATA_DICT[chr.RED_BLEND_POTION] = (localeInfo.RED_BLEND_POTION, "d:/ymir work/offical_etc/affectshower/17.png")
        AFFECT_DATA_DICT[chr.ORANGE_BLEND_POTION] = (localeInfo.ORANGE_BLEND_POTION, "d:/ymir work/offical_etc/affectshower/16.png")
        AFFECT_DATA_DICT[chr.YELLOW_BLEND_POTION] = (localeInfo.YELLOW_BLEND_POTION, "d:/ymir work/offical_etc/affectshower/18.png")
        AFFECT_DATA_DICT[chr.GREEN_BLEND_POTION] = (localeInfo.GREEN_BLEND_POTION, "d:/ymir work/offical_etc/affectshower/19.png")
        AFFECT_DATA_DICT[chr.BLUE_BLEND_POTION] = (localeInfo.BLUE_BLEND_POTION, "d:/ymir work/offical_etc/affectshower/15.png")
        AFFECT_DATA_DICT[chr.WHITE_BLEND_POTION] = (localeInfo.WHITE_BLEND_POTION, "d:/ymir work/offical_etc/affectshower/14.png")

    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=0

        self.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:
            return

        if type == chr.NEW_AFFECT_MALL:
            affect = self.MALL_DESC_IDX_START + pointIdx
        else:
            affect = type

        if self.affectImageDict.has_key(affect):
            return

        if not self.AFFECT_DATA_DICT.has_key(affect):
            return

        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 = 0

        affectData = 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.0

        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)
            image.SetValue(value,pointIdx)
            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
            pass

    def BINARY_NEW_RemoveAffect(self, type, pointIdx):
        if type == chr.NEW_AFFECT_MALL:
            affect = self.MALL_DESC_IDX_START + pointIdx
        else:
            affect = type

        print "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):
            return

        try:
            affectData = self.AFFECT_DATA_DICT[affect]
        except KeyError:
            return

        name = 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:
            pass

        image.SetToolTipText(name, 0, 40)
        image.SetScale(0.7, 0.7)
        image.Show()
        self.affectImageDict[affect] = image

    def __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
            return

        print "__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_STEP

        self.SetSize(width, 26)

        xPos = 0

        if self.lovePointImage:
            if self.lovePointImage.IsShow():
                self.lovePointImage.SetPosition(xPos, 0)
                xPos += self.IMAGE_STEP

        if self.horseImage:
            self.horseImage.SetPosition(xPos, 0)
            xPos += self.IMAGE_STEP

        for image in self.affectImageDict.values():
            image.SetPosition(xPos, 0)
            xPos += self.IMAGE_STEP

    def 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()
                        continue

                    if not image.IsSkillAffect():
                        image.UpdateDescription()
        except Exception, e:
            print "AffectShower::OnUpdate error : ", e
 
Çözüm
tüm satırı atmışız düzeltelim inceleyip gerekli yerlere ekleme yapıp kullanabilirsiniz ;


uiaffect:
Genişlet Daralt Kopyala
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 = True
        self.value = 0
        self.pointType = 0

uiafffect:
Genişlet Daralt Kopyala
    def SetValue(self, value, pointType):
        self.value = value
        self.pointType = pointType

    def SetDuration(self, duration):
        self.endTime = 0
        if duration > 0:
            self.endTime = app.GetGlobalTimeStamp() + duration


uiaffect:
Genişlet Daralt Kopyala
 Şebnemlerin süre gösterimi kaldırıldı
        toolTip = self.description
        #if self.endTime > 0:
        #    leftTime = localeInfo.SecondToDHM(self.endTime - app.GetGlobalTimeStamp())
        #    toolTip += " (%s : %s)" % (localeInfo.LEFT_TIME, leftTime)
        if self.value != 0:
            if self.pointType == player.POINT_MALL_ITEMBONUS or self.pointType == player.POINT_MALL_GOLDBONUS:
                valueStr = "%.1f%%" % ((self.value - 1) * 100)
            else:
                valueStr = str(self.value)
            toolTip += " (+%s)" % valueStr
        self.SetToolTipText(toolTip, 0, 40)




uiaffect:
Genişlet Daralt Kopyala
        toolTip = self.description
        if self.value != 0:
            if self.pointType == player.POINT_MALL_ITEMBONUS or self.pointType == player.POINT_MALL_GOLDBONUS:
                valueStr = "%.1f%%" % ((self.value - 1) * 100)
            else:
                valueStr = str(self.value)
            toolTip += " (+%s)" % valueStr
        self.SetToolTipText(toolTip, 0, 40)



uiaffackkt:
Genişlet Daralt Kopyala
        try:
            print "Add affect %s" % affect
            image = AffectImage()
            image.SetParent(self)
            image.LoadImage(filename)
            image.SetDescription(description)
            image.SetDuration(duration)
            image.SetAffect(affect)
            image.SetValue(value,pointIdx)
            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()
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst