Çözüldü pm yazıyor... sistemi hk yardım

  • Konuyu açan Konuyu açan mehmet07
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 8
  • Gösterim Gösterim 175
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

mehmet07

Üye
Üye
Mesaj
227
Çözümler
3
Beğeni
38
Puan
439
Ticaret Puanı
0
pm yazıyor sistemi eklemek istedim
Sadece root ve locale pack içerisine eklemeler yapılıyor anlatım rehberinde söylenen herşeyi yaptım ve syssersiz olarak kurdum ama çalışmadı gözden kaçırdığım bişeyler olmalı ama çözemedim yardımcı olabilecek var mı acaba teşekkürler
 
Çözüm
@Mavi Ruh sorun bu dosyalarda değilmiş whisperdialog py den kaynaklandığını düşünüyorum onuda paylaşabilir misiniz peki
whisper.py:
Genişlet Daralt Kopyala
import uiScriptLocale

ROOT = "d:/ymir work/ui/public/"

window = {
    "name" : "WhisperDialog",
    "style" : ("movable", "float",),

    "x" : 0,
    "y" : 0,

    "width" : 280,
    "height" : 200,

    "children" :
    (
        {
            "name" : "board",
            "type" : "thinboard",
            "style" : ("attach",),

            "x" : 0,
            "y" : 0,

            "width" : 280,
            "height" : 200,

            "children" :
            (
                ## Title
                {
                    "name" : "name_slot",
                    "type" : "image"...
ZacqooLeaven inki paylaşılmış onu kurdumaya çalıştım bende
Roottaki dosyaları paylaşayım, karşılaştırınız. Diğerlerinde hata yapma payınız çok düşüktür.

game.py :
Linkleri görebilmek için giriş yap veya kayıt ol.


constinfo.py:
Genişlet Daralt Kopyala
# option

FAST_PAGE = 1
FAST_EQUIP = 0

ENVANTER_TARGET_VID = 0
COP_KUTUSU = 0
SIL_SLOT = 0

eigenmod = 0 # efsun botu

ItemSil_Slot = 0
ItemSil_Index = 0

KL_IMAGE = 0

tamekran = 0

DAKIKA = "%s dakika"
SAATVEDAKIKA = "%s saat %s dakika"
GUNSAAT = "%s gun %s saat"

SHOP_NAME = ""
SHOP_ITEMS = []

aciklar = []
bildirimler = 0
yolla = 0
benimki_yollama = 0

yazanlar = []

TIC_LOG_OPEN = 0
TICARET_LOG = []
ticsinif = 0
ticlonca = ""
ticlevel = ""


PV_SHOP_LOG = []

AFK = 0
Kar = 0
Night = 0
YANG_PICK_UP = 0
AUTO_PICK_UP = 0
kanal = 0

INPUT_IGNORE = 0
DUELLODAIZINVARMI = ""
BenimDuelloIznim = ""
PLAYER_HP = 0
PLAYER_MAX_HP = 0
PLAYER_NAME = ""

WHISPER_GORULDU_LIST = []
WHISPER_GORULDU_TIME_LIST = {}
WHISPER_GET = 0
WHISPER_SECILEN = ""
WHISPER_LEVEL = ""
WHISPER_ENGEL = ""
WHISPER_OTO_MESAJ = 0
WHISPER_OTO_MESAJ_TEXT = ""

INPUT = 0
PYTHONISLEM = ""
PYTHONTOLUA = 0

CLIENT_YOL = "lib/"
CONFIG_YOL = "locale/tr/ui/config/"

IN_GAME_SHOP_ENABLE = 1
CONSOLE_ENABLE = 0

BagirmaPm = ''

NEW_CREATE = 0
NEW_SELECT = 0

PVPMODE_ENABLE = 1
PVPMODE_TEST_ENABLE = 0
PVPMODE_ACCELKEY_ENABLE = 1
PVPMODE_ACCELKEY_DELAY = 0.5
PVPMODE_PROTECTED_LEVEL = 30

FOG_LEVEL0 = 4800.0
FOG_LEVEL1 = 9600.0
FOG_LEVEL2 = 12800.0
FOG_LEVEL = FOG_LEVEL0
FOG_LEVEL_LIST=[FOG_LEVEL0, FOG_LEVEL1, FOG_LEVEL2]      

CAMERA_MAX_DISTANCE_SHORT = 2500.0
CAMERA_MAX_DISTANCE_LONG = 3500.0
CAMERA_MAX_DISTANCE_LIST=[CAMERA_MAX_DISTANCE_SHORT, CAMERA_MAX_DISTANCE_LONG]
CAMERA_MAX_DISTANCE = CAMERA_MAX_DISTANCE_SHORT

CHRNAME_COLOR_INDEX = 0

ENVIRONMENT_NIGHT="d:/ymir work/environment/moonlight04.msenv"

# constant
HIGH_PRICE = 500000
MIDDLE_PRICE = 50000
ERROR_METIN_STONE = 28960
SUB2_LOADING_ENABLE = 1
EXPANDED_COMBO_ENABLE = 1
CONVERT_EMPIRE_LANGUAGE_ENABLE = 1
USE_ITEM_WEAPON_TABLE_ATTACK_BONUS = 0
ADD_DEF_BONUS_ENABLE = 1
LOGIN_COUNT_LIMIT_ENABLE = 0
DEPOZIT_QUESTINDEX = 0
ANTIEXP_QUESTINDEX = 0
TELEPORTER_QUESTINDEX = 0
MENU_BG = 0

USE_SKILL_EFFECT_UPGRADE_ENABLE = 1

VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD = 1
GUILD_MONEY_PER_GSP = 100
GUILD_WAR_TYPE_SELECT_ENABLE = 1
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE = 0

HAIR_COLOR_ENABLE = 1
ARMOR_SPECULAR_ENABLE = 1
WEAPON_SPECULAR_ENABLE = 1
SEQUENCE_PACKET_ENABLE = 1
KEEP_ACCOUNT_CONNETION_ENABLE = 1
MINIMAP_POSITIONINFO_ENABLE = 1
CONVERT_EMPIRE_LANGUAGE_ENABLE = 0
USE_ITEM_WEAPON_TABLE_ATTACK_BONUS = 0
ADD_DEF_BONUS_ENABLE = 0
LOGIN_COUNT_LIMIT_ENABLE = 0
PVPMODE_PROTECTED_LEVEL = 15
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE = 10

isItemQuestionDialog = 0

def GET_ITEM_QUESTION_DIALOG_STATUS():
    global isItemQuestionDialog
    return isItemQuestionDialog

def SET_ITEM_QUESTION_DIALOG_STATUS(flag):
    global isItemQuestionDialog
    isItemQuestionDialog = flag

import app
import net

########################

def SET_DEFAULT_FOG_LEVEL():
    global FOG_LEVEL
    app.SetMinFog(FOG_LEVEL)

def SET_FOG_LEVEL_INDEX(index):
    global FOG_LEVEL
    global FOG_LEVEL_LIST
    try:
        FOG_LEVEL=FOG_LEVEL_LIST[index]
    except IndexError:
        FOG_LEVEL=FOG_LEVEL_LIST[0]
    app.SetMinFog(FOG_LEVEL)

def GET_FOG_LEVEL_INDEX():
    global FOG_LEVEL
    global FOG_LEVEL_LIST
    return FOG_LEVEL_LIST.index(FOG_LEVEL)

########################

def SET_DEFAULT_CAMERA_MAX_DISTANCE():
    global CAMERA_MAX_DISTANCE
    app.SetCameraMaxDistance(CAMERA_MAX_DISTANCE)

def SET_CAMERA_MAX_DISTANCE_INDEX(index):
    global CAMERA_MAX_DISTANCE
    global CAMERA_MAX_DISTANCE_LIST
    try:
        CAMERA_MAX_DISTANCE=CAMERA_MAX_DISTANCE_LIST[index]
    except:
        CAMERA_MAX_DISTANCE=CAMERA_MAX_DISTANCE_LIST[0]

    app.SetCameraMaxDistance(CAMERA_MAX_DISTANCE)

def GET_CAMERA_MAX_DISTANCE_INDEX():
    global CAMERA_MAX_DISTANCE
    global CAMERA_MAX_DISTANCE_LIST
    return CAMERA_MAX_DISTANCE_LIST.index(CAMERA_MAX_DISTANCE)

########################

import chrmgr
import player
import app

def SET_DEFAULT_CHRNAME_COLOR():
    global CHRNAME_COLOR_INDEX
    chrmgr.SetEmpireNameMode(CHRNAME_COLOR_INDEX)

def SET_CHRNAME_COLOR_INDEX(index):
    global CHRNAME_COLOR_INDEX
    CHRNAME_COLOR_INDEX=index
    chrmgr.SetEmpireNameMode(index)

def GET_CHRNAME_COLOR_INDEX():
    global CHRNAME_COLOR_INDEX
    return CHRNAME_COLOR_INDEX

def SET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD(index):
    global VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD
    VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD = index

def GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD():
    global VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD
    return VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD

def SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE():
    global CONVERT_EMPIRE_LANGUAGE_ENABLE
    net.SetEmpireLanguageMode(CONVERT_EMPIRE_LANGUAGE_ENABLE)

def SET_DEFAULT_USE_ITEM_WEAPON_TABLE_ATTACK_BONUS():
    global USE_ITEM_WEAPON_TABLE_ATTACK_BONUS
    player.SetWeaponAttackBonusFlag(USE_ITEM_WEAPON_TABLE_ATTACK_BONUS)

def SET_DEFAULT_USE_SKILL_EFFECT_ENABLE():
    global USE_SKILL_EFFECT_UPGRADE_ENABLE
    app.SetSkillEffectUpgradeEnable(USE_SKILL_EFFECT_UPGRADE_ENABLE)

def SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE():
    global TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE
    app.SetTwoHandedWeaponAttSpeedDecreaseValue(TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE)

########################
import item

ACCESSORY_MATERIAL_LIST = [50623, 50624, 50625, 50626, 50627, 50628, 50629, 50630, 50631, 50632, 50633, 50634, 50635, 50636, 50637, 50638]
#ACCESSORY_MATERIAL_LIST = [50623, 50623, 50624, 50624, 50625, 50625, 50626, 50627, 50628, 50629, 50630, 50631, 50632, 50633,
#                50623, 50623, 50624, 50624, ]
JewelAccessoryInfos = [
        # jewel        wrist    neck    ear
        [ 50634,    14420,    16220,    17220 ],  
        [ 50635,    14500,    16500,    17500 ],  
        [ 50636,    14520,    16520,    17520 ],  
        [ 50637,    14540,    16540,    17540 ],  
        [ 50638,    14560,    16560,    17560 ],  
    ]
def GET_ACCESSORY_MATERIAL_VNUM(vnum, subType):
    ret = vnum
    item_base = (vnum / 10) * 10
    for info in JewelAccessoryInfos:
        if item.ARMOR_WRIST == subType:  
            if info[1] == item_base:
                return info[0]
        elif item.ARMOR_NECK == subType:  
            if info[2] == item_base:
                return info[0]
        elif item.ARMOR_EAR == subType:  
            if info[3] == item_base:
                return info[0]
 
    if vnum >= 16210 and vnum <= 16219:
        return 50625

    if item.ARMOR_WRIST == subType:  
        WRIST_ITEM_VNUM_BASE = 14000
        ret -= WRIST_ITEM_VNUM_BASE
    elif item.ARMOR_NECK == subType:
        NECK_ITEM_VNUM_BASE = 16000
        ret -= NECK_ITEM_VNUM_BASE
    elif item.ARMOR_EAR == subType:
        EAR_ITEM_VNUM_BASE = 17000
        ret -= EAR_ITEM_VNUM_BASE

    type = ret/20

    if type<0 or type>=len(ACCESSORY_MATERIAL_LIST):
        type = (ret-170) / 20
        if type<0 or type>=len(ACCESSORY_MATERIAL_LIST):
            return 0

    return ACCESSORY_MATERIAL_LIST[type]

##################################################################
## 새로 추가된 '벨트' 아이템 타입과, 벨트의 소켓에 꽂을 아이템 관련..
## 벨트의 소켓시스템은 악세서리와 동일하기 때문에, 위 악세서리 관련 하드코딩처럼 이런식으로 할 수밖에 없다..

def GET_BELT_MATERIAL_VNUM(vnum, subType = 0):
    # 현재는 모든 벨트에는 하나의 아이템(#18900)만 삽입 가능
    return 18900

##################################################################
## 자동물약 (HP: #72723 ~ #72726, SP: #72727 ~ #72730)

# 해당 vnum이 자동물약인가?
def IS_AUTO_POTION(itemVnum):
    return IS_AUTO_POTION_HP(itemVnum) or IS_AUTO_POTION_SP(itemVnum)
   
# 해당 vnum이 HP 자동물약인가?
def IS_AUTO_POTION_HP(itemVnum):
    if 72723 <= itemVnum and 72726 >= itemVnum:
        return 1
    elif itemVnum >= 76021 and itemVnum <= 76022:        ## 새로 들어간 선물용 화룡의 축복
        return 1
    elif itemVnum == 79012:
        return 1
       
    return 0
   
# 해당 vnum이 SP 자동물약인가?
def IS_AUTO_POTION_SP(itemVnum):
    if 72727 <= itemVnum and 72730 >= itemVnum:
        return 1
    elif itemVnum >= 76004 and itemVnum <= 76005:        ## 새로 들어간 선물용 수룡의 축복
        return 1
    elif itemVnum == 79013:
        return 1
               
    return 0

uiwhisper.py:
Genişlet Daralt Kopyala
import ui
import net
import chat
import player
import app
import localeInfo
import ime
import chr
import os
import constInfo
import time

tek = 0
tek2 = 0
yaz2 = 0
class WhisperButton(ui.Button):
    def __init__(self):
        ui.Button.__init__(self, "TOP_MOST")

    def __del__(self):
        ui.Button.__del__(self)

    def SetToolTipText(self, text, x=0, y = 32):
        ui.Button.SetToolTipText(self, text, x, y)
        self.ToolTipText.Show()

    def SetToolTipTextWithColor(self, text, color, x=0, y = 32):
        ui.Button.SetToolTipText(self, text, x, y)
        self.ToolTipText.SetPackedFontColor(color)
        self.ToolTipText.Show()

    def ShowToolTip(self):
        if 0 != self.ToolTipText:
            self.ToolTipText.Show()

    def HideToolTip(self):
        if 0 != self.ToolTipText:
            self.ToolTipText.Show()

class WhisperDialog(ui.ScriptWindow):

    class TextRenderer(ui.Window):
        def SetTargetName(self, targetName):
            self.targetName = targetName

        def OnRender(self):
            (x, y) = self.GetGlobalPosition()
            chat.RenderWhisper(self.targetName, x, y)

    class ResizeButton(ui.DragButton):

        def __init__(self):
            ui.DragButton.__init__(self)

        def __del__(self):
            ui.DragButton.__del__(self)

        def OnMouseOverIn(self):
            app.SetCursor(app.HVSIZE)

        def OnMouseOverOut(self):
            app.SetCursor(app.NORMAL)

    def __init__(self, eventMinimize, eventClose):
        print "NEW WHISPER DIALOG  ----------------------------------------------------------------------------"
        ui.ScriptWindow.__init__(self)
        self.targetName = ""
        self.eventMinimize = eventMinimize
        self.eventClose = eventClose
        self.eventAcceptTarget = None
    def __del__(self):
        print "---------------------------------------------------------------------------- DELETE WHISPER DIALOG"
        ui.ScriptWindow.__del__(self)      

    def LoadDialog(self):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, "UIScript/WhisperDialog.py")
        except:
            import exception
            exception.Abort("WhisperDialog.LoadDialog.LoadScript")

        try:
            GetObject=self.GetChild
            self.titleName = GetObject("titlename")
            self.titleNameEdit = GetObject("titlename_edit")
            self.closeButton = GetObject("closebutton")
            self.scrollBar = GetObject("scrollbar")
            self.chatLine = GetObject("chatline")
            self.minimizeButton = GetObject("minimizebutton")
            self.ignoreButton = GetObject("ignorebutton")
            self.reportViolentWhisperButton = GetObject("reportviolentwhisperbutton")
            self.acceptButton = GetObject("acceptbutton")
            self.sendButton = GetObject("sendbutton")
            self.board = GetObject("board")
            self.editBar = GetObject("editbar")
            self.gamemasterMark = GetObject("gamemastermark")
            self.yaziyor = GetObject("yaziyor")
        except:
            import exception
            exception.Abort("DialogWindow.LoadDialog.BindObject")

        self.gamemasterMark.Hide()
        self.titleName.SetText("")
        self.titleNameEdit.SetText("")
        self.minimizeButton.SetEvent(ui.__mem_func__(self.Minimize))
        self.closeButton.SetEvent(ui.__mem_func__(self.Close))
        self.scrollBar.SetPos(1.0)
        self.scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScroll))
        self.chatLine.SetReturnEvent(ui.__mem_func__(self.SendWhisper))
        self.chatLine.SetEscapeEvent(ui.__mem_func__(self.Minimize))
        self.chatLine.SetMultiLine()
        self.sendButton.SetEvent(ui.__mem_func__(self.SendWhisper))
        self.titleNameEdit.SetReturnEvent(ui.__mem_func__(self.AcceptTarget))
        self.titleNameEdit.SetEscapeEvent(ui.__mem_func__(self.Close))
        self.ignoreButton.SetToggleDownEvent(ui.__mem_func__(self.IgnoreTarget))
        self.ignoreButton.SetToggleUpEvent(ui.__mem_func__(self.IgnoreTarget))
        self.reportViolentWhisperButton.SetEvent(ui.__mem_func__(self.ReportViolentWhisper))
        self.acceptButton.SetEvent(ui.__mem_func__(self.AcceptTarget))

        self.textRenderer = self.TextRenderer()
        self.textRenderer.SetParent(self)
        self.textRenderer.SetPosition(20, 28)
        self.textRenderer.SetTargetName("")
        self.textRenderer.Show()

        self.resizeButton = self.ResizeButton()
        self.resizeButton.SetParent(self)
        self.resizeButton.SetSize(20, 20)
        self.resizeButton.SetPosition(280, 180)
        self.resizeButton.SetMoveEvent(ui.__mem_func__(self.ResizeWhisperDialog))
        self.resizeButton.Show()

        self.ResizeWhisperDialog()

    def Destroy(self):

        self.eventMinimize = None
        self.eventClose = None
        self.eventAcceptTarget = None

        self.ClearDictionary()
        self.scrollBar.Destroy()
        self.titleName = None
        self.titleNameEdit = None
        self.closeButton = None
        self.scrollBar = None
        self.chatLine = None
        self.sendButton = None
        self.ignoreButton = None
        self.reportViolentWhisperButton = None
        self.acceptButton = None
        self.minimizeButton = None
        self.textRenderer = None
        self.board = None
        self.editBar = None
        self.resizeButton = None

    def ResizeWhisperDialog(self):
        (xPos, yPos) = self.resizeButton.GetLocalPosition()
        if xPos < 280:
            self.resizeButton.SetPosition(280, yPos)
            return
        if yPos < 150:
            self.resizeButton.SetPosition(xPos, 150)
            return
        self.SetWhisperDialogSize(xPos + 20, yPos + 20)

    def SetWhisperDialogSize(self, width, height):
        try:

            max = int((width-90)/6) * 3 - 6

            self.board.SetSize(width, height)
            self.scrollBar.SetPosition(width-25, 35)
            self.scrollBar.SetScrollBarSize(height-100)
            self.scrollBar.SetPos(1.0)
            self.editBar.SetSize(width-18, 50)
            self.chatLine.SetSize(width-90, 40)
            self.chatLine.SetLimitWidth(width-90)
            self.SetSize(width, height)

            if 0 != self.targetName:
                chat.SetWhisperBoxSize(self.targetName, width - 50, height - 90)          
           
            if localeInfo.IsARABIC():
                self.textRenderer.SetPosition(width-20, 28)
                self.scrollBar.SetPosition(width-25+self.scrollBar.GetWidth(), 35)
                self.editBar.SetPosition(10 + self.editBar.GetWidth(), height-60)
                self.sendButton.SetPosition(width - 80 + self.sendButton.GetWidth(), 10)
                self.minimizeButton.SetPosition(width-42 + self.minimizeButton.GetWidth(), 12)
                self.closeButton.SetPosition(width-24+self.closeButton.GetWidth(), 12)              
                self.chatLine.SetPosition(5 + self.chatLine.GetWidth(), 5)
                self.board.SetPosition(self.board.GetWidth(), 0)
            else:
                self.textRenderer.SetPosition(20, 28)
                self.scrollBar.SetPosition(width-25, 35)
                self.editBar.SetPosition(10, height-60)
                self.sendButton.SetPosition(width-80, 10)
                self.minimizeButton.SetPosition(width-42, 12)
                self.closeButton.SetPosition(width-24, 12)

            self.SetChatLineMax(max)

        except:
            import exception
            exception.Abort("WhisperDialog.SetWhisperDialogSize.BindObject")

    def SetChatLineMax(self, max):
        self.chatLine.SetMax(max)

        from grpText import GetSplitingTextLine

        text = self.chatLine.GetText()
        if text:
            self.chatLine.SetText(GetSplitingTextLine(text, max, 0))

    def OpenWithTarget(self, targetName):
        chat.CreateWhisper(targetName)
        chat.SetWhisperBoxSize(targetName, self.GetWidth() - 60, self.GetHeight() - 90)
        self.chatLine.SetFocus()
        self.titleName.SetText(targetName)
        self.targetName = targetName
        self.textRenderer.SetTargetName(targetName)
        self.titleNameEdit.Hide()
        self.ignoreButton.Hide()
        if app.IsDevStage():
            self.reportViolentWhisperButton.Show()
        else:
            self.reportViolentWhisperButton.Hide()
        self.acceptButton.Hide()
        self.gamemasterMark.Hide()
        self.minimizeButton.Show
        import messenger
        if not messenger.IsFriendByName(self.targetName):
            self.friendButton = ui.Button()
            self.friendButton.SetParent(self.board)
            self.friendButton.SetPosition(119, 10)
            self.friendButton.SetUpVisual("d:/ymir work/ui/game/windows/messenger_add_friend_01.sub")
            self.friendButton.SetOverVisual("d:/ymir work/ui/game/windows/messenger_add_friend_02.sub")
            self.friendButton.SetDownVisual("d:/ymir work/ui/game/windows/messenger_add_friend_03.sub")
            self.friendButton.SetText("")
            self.friendButton.SetEvent(ui.__mem_func__(self.AddFrind))
            self.friendButton.Show()

        if os.path.exists(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf") and open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "r").read().find("#"+str(targetName)+"#") != -1:
            self.ignoreButton.Show()
            self.ignoreButton.SetText("Engeli aç")
        else:
            self.ignoreButton.Show()
            self.ignoreButton.SetText("Engelle")

        if "#"+str(self.targetName)+"#" in constInfo.WHISPER_GORULDU_LIST:
            vip_renk2 = {
                1: '|cFF00FFFF|H|h'
            }
            vip_text2 = str(vip_renk2[1])
            localtime = time.strftime("%H:%M:%S") #|cFF00FFFF|H|h
            net.SendWhisperPacket(self.targetName, "#" + vip_text2 + localeInfo.WHISPER_GORULDU + "(" + str(localtime) + ")#xsbyfatihbab34juwqysnmnsmqwnqmnsaxncvmwteqsmkuwhqnywqb#")
            constInfo.WHISPER_GORULDU_LIST.remove("#"+str(self.targetName)+"#")

    def AddFrind(self):
        net.SendMessengerAddByNamePacket(self.targetName)
        self.friendButton.Hide()              

    def OpenWithoutTarget(self, event):
        self.eventAcceptTarget = event
        self.titleName.SetText("")
        self.titleNameEdit.SetText("")
        self.titleNameEdit.SetFocus()
        self.targetName = 0
        self.titleNameEdit.Show()
        self.ignoreButton.Hide()
        self.reportViolentWhisperButton.Hide()
        self.acceptButton.Show()
        self.minimizeButton.Hide()
        self.gamemasterMark.Hide()
        self.yaziyor.Hide()

    def SetGameMasterLook(self):
        self.gamemasterMark.Show()
        self.reportViolentWhisperButton.Hide()

    def Minimize(self):
        self.titleNameEdit.KillFocus()
        self.chatLine.KillFocus()
        self.Hide()

        if None != self.eventMinimize:
            self.eventMinimize(self.targetName)

    def Close(self):
        chat.ClearWhisper(self.targetName)
        self.titleNameEdit.KillFocus()
        self.chatLine.KillFocus()
        self.Hide()

        if None != self.eventClose:
            self.eventClose(self.targetName)

    def ReportViolentWhisper(self):
        net.SendChatPacket("/reportviolentwhisper " + self.targetName)

    def IgnoreTarget(self):
        if str(self.targetName).find("[") != -1:
            chat.AppendChat(chat.CHAT_TYPE_INFO, "<Fısıltı>: Game Master'leri sohbetten engelleyemessin.")
            return
        if os.path.exists(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf") and open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "r").read().find("#"+str(self.targetName)+"#") != -1:
            ac = open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "r")
            oku = ac.read()
            ac.close()
            open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "w").write(str(oku).replace(str("#"+self.targetName+"#"), ""))
            self.ignoreButton.SetText("Engelle")
        else:
            if os.path.exists(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf"):
                open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "a+").write("\n"+str("#"+self.targetName+"#"))
            else:
                open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "a+").write(str("#"+self.targetName+"#"))
            self.ignoreButton.SetText("Engeli aç")

    def AcceptTarget(self):
        name = self.titleNameEdit.GetText()
        if len(name) <= 0:
            self.Close()
            return

        if None != self.eventAcceptTarget:
            self.titleNameEdit.KillFocus()
            self.eventAcceptTarget(name)

    def OnScroll(self):
        chat.SetWhisperPosition(self.targetName, self.scrollBar.GetPos())

    def SendWhisper(self):
        import time
        text = self.chatLine.GetText()
        textLength = len(text)

        if textLength > 0:
            if net.IsInsultIn(text):
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHAT_INSULT_STRING)
                return

            if os.path.exists(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf") and open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "r").read().find("#"+str(self.targetName)+"#") != -1:
                chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, self.targetName, 'Engellediğin kişiye mesaj gönderemezsin.')
                return
            Saat = time.strftime("%H:%M:%S")
            #net.SendWhisperPacket(self.targetName, "(Lv. " + str(player.GetStatus(player.LEVEL)) + ") " + text)
            net.SendWhisperPacket(self.targetName, " (Lv. " + str(player.GetStatus(player.LEVEL)) + ") " "(" + Saat + "): "  + text)
            self.chatLine.SetText("")
            #chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + " : " + text)
            chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + " (Lv. " + str(player.GetStatus(player.LEVEL)) + ") " "(" + Saat + "): "  + text)

    def OnTop(self):
        self.chatLine.SetFocus()

    def OnUpdate(self):
        global tek
        global yaz2
        global tek2
        toplam = self.chatLine.GetText()
        if len(toplam) > 7:
            if tek == 0:
                net.SendWhisperPacket(self.targetName, "|xyaziyorumsuanda|")
                tek = 1
                tek2 = 0
            else:
                pass
            yaz2 = 1
        else:
            if yaz2 == 1:
                if tek2 == 0:
                    net.SendWhisperPacket(self.targetName, "|xyazmiyorumsuanda|")
                    tek2 = 1
                    tek = 0
                else:
                    pass
        if self.targetName in constInfo.yazanlar:
            self.yaziyor.Show()
        else:
            self.yaziyor.Hide()
    def BindInterface(self, interface):
        self.interface = interface
       
    def OnMouseLeftButtonDown(self):
        hyperlink = ui.GetHyperlink()
        if hyperlink:
            if app.IsPressed(app.DIK_LALT):
                link = chat.GetLinkFromHyperlink(hyperlink)
                ime.PasteString(link)
            else:
                self.interface.MakeHyperlinkTooltip(hyperlink)

if "__main__" == __name__:
    import uiTest

    class TestApp(uiTest.App):
        def OnInit(self):
            wnd = WhisperDialog(self.OnMax, self.OnMin)
            wnd.LoadDialog()
            wnd.OpenWithoutTarget(self.OnNew)
            wnd.SetPosition(0, 0)
            wnd.Show()

            self.wnd = wnd

        def OnMax(self):
            pass

        def OnMin(self):
            pass

        def OnNew(self):
            pass

    TestApp().MainLoop()
 
Teşekkürler
Kontrol edip geri haber veriyim
Roottaki dosyaları paylaşayım, karşılaştırınız. Diğerlerinde hata yapma payınız çok düşüktür.

game.py :
Linkleri görebilmek için giriş yap veya kayıt ol.


constinfo.py:
Genişlet Daralt Kopyala
# option

FAST_PAGE = 1
FAST_EQUIP = 0

ENVANTER_TARGET_VID = 0
COP_KUTUSU = 0
SIL_SLOT = 0

eigenmod = 0 # efsun botu

ItemSil_Slot = 0
ItemSil_Index = 0

KL_IMAGE = 0

tamekran = 0

DAKIKA = "%s dakika"
SAATVEDAKIKA = "%s saat %s dakika"
GUNSAAT = "%s gun %s saat"

SHOP_NAME = ""
SHOP_ITEMS = []

aciklar = []
bildirimler = 0
yolla = 0
benimki_yollama = 0

yazanlar = []

TIC_LOG_OPEN = 0
TICARET_LOG = []
ticsinif = 0
ticlonca = ""
ticlevel = ""


PV_SHOP_LOG = []

AFK = 0
Kar = 0
Night = 0
YANG_PICK_UP = 0
AUTO_PICK_UP = 0
kanal = 0

INPUT_IGNORE = 0
DUELLODAIZINVARMI = ""
BenimDuelloIznim = ""
PLAYER_HP = 0
PLAYER_MAX_HP = 0
PLAYER_NAME = ""

WHISPER_GORULDU_LIST = []
WHISPER_GORULDU_TIME_LIST = {}
WHISPER_GET = 0
WHISPER_SECILEN = ""
WHISPER_LEVEL = ""
WHISPER_ENGEL = ""
WHISPER_OTO_MESAJ = 0
WHISPER_OTO_MESAJ_TEXT = ""

INPUT = 0
PYTHONISLEM = ""
PYTHONTOLUA = 0

CLIENT_YOL = "lib/"
CONFIG_YOL = "locale/tr/ui/config/"

IN_GAME_SHOP_ENABLE = 1
CONSOLE_ENABLE = 0

BagirmaPm = ''

NEW_CREATE = 0
NEW_SELECT = 0

PVPMODE_ENABLE = 1
PVPMODE_TEST_ENABLE = 0
PVPMODE_ACCELKEY_ENABLE = 1
PVPMODE_ACCELKEY_DELAY = 0.5
PVPMODE_PROTECTED_LEVEL = 30

FOG_LEVEL0 = 4800.0
FOG_LEVEL1 = 9600.0
FOG_LEVEL2 = 12800.0
FOG_LEVEL = FOG_LEVEL0
FOG_LEVEL_LIST=[FOG_LEVEL0, FOG_LEVEL1, FOG_LEVEL2]     

CAMERA_MAX_DISTANCE_SHORT = 2500.0
CAMERA_MAX_DISTANCE_LONG = 3500.0
CAMERA_MAX_DISTANCE_LIST=[CAMERA_MAX_DISTANCE_SHORT, CAMERA_MAX_DISTANCE_LONG]
CAMERA_MAX_DISTANCE = CAMERA_MAX_DISTANCE_SHORT

CHRNAME_COLOR_INDEX = 0

ENVIRONMENT_NIGHT="d:/ymir work/environment/moonlight04.msenv"

# constant
HIGH_PRICE = 500000
MIDDLE_PRICE = 50000
ERROR_METIN_STONE = 28960
SUB2_LOADING_ENABLE = 1
EXPANDED_COMBO_ENABLE = 1
CONVERT_EMPIRE_LANGUAGE_ENABLE = 1
USE_ITEM_WEAPON_TABLE_ATTACK_BONUS = 0
ADD_DEF_BONUS_ENABLE = 1
LOGIN_COUNT_LIMIT_ENABLE = 0
DEPOZIT_QUESTINDEX = 0
ANTIEXP_QUESTINDEX = 0
TELEPORTER_QUESTINDEX = 0
MENU_BG = 0

USE_SKILL_EFFECT_UPGRADE_ENABLE = 1

VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD = 1
GUILD_MONEY_PER_GSP = 100
GUILD_WAR_TYPE_SELECT_ENABLE = 1
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE = 0

HAIR_COLOR_ENABLE = 1
ARMOR_SPECULAR_ENABLE = 1
WEAPON_SPECULAR_ENABLE = 1
SEQUENCE_PACKET_ENABLE = 1
KEEP_ACCOUNT_CONNETION_ENABLE = 1
MINIMAP_POSITIONINFO_ENABLE = 1
CONVERT_EMPIRE_LANGUAGE_ENABLE = 0
USE_ITEM_WEAPON_TABLE_ATTACK_BONUS = 0
ADD_DEF_BONUS_ENABLE = 0
LOGIN_COUNT_LIMIT_ENABLE = 0
PVPMODE_PROTECTED_LEVEL = 15
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE = 10

isItemQuestionDialog = 0

def GET_ITEM_QUESTION_DIALOG_STATUS():
    global isItemQuestionDialog
    return isItemQuestionDialog

def SET_ITEM_QUESTION_DIALOG_STATUS(flag):
    global isItemQuestionDialog
    isItemQuestionDialog = flag

import app
import net

########################

def SET_DEFAULT_FOG_LEVEL():
    global FOG_LEVEL
    app.SetMinFog(FOG_LEVEL)

def SET_FOG_LEVEL_INDEX(index):
    global FOG_LEVEL
    global FOG_LEVEL_LIST
    try:
        FOG_LEVEL=FOG_LEVEL_LIST[index]
    except IndexError:
        FOG_LEVEL=FOG_LEVEL_LIST[0]
    app.SetMinFog(FOG_LEVEL)

def GET_FOG_LEVEL_INDEX():
    global FOG_LEVEL
    global FOG_LEVEL_LIST
    return FOG_LEVEL_LIST.index(FOG_LEVEL)

########################

def SET_DEFAULT_CAMERA_MAX_DISTANCE():
    global CAMERA_MAX_DISTANCE
    app.SetCameraMaxDistance(CAMERA_MAX_DISTANCE)

def SET_CAMERA_MAX_DISTANCE_INDEX(index):
    global CAMERA_MAX_DISTANCE
    global CAMERA_MAX_DISTANCE_LIST
    try:
        CAMERA_MAX_DISTANCE=CAMERA_MAX_DISTANCE_LIST[index]
    except:
        CAMERA_MAX_DISTANCE=CAMERA_MAX_DISTANCE_LIST[0]

    app.SetCameraMaxDistance(CAMERA_MAX_DISTANCE)

def GET_CAMERA_MAX_DISTANCE_INDEX():
    global CAMERA_MAX_DISTANCE
    global CAMERA_MAX_DISTANCE_LIST
    return CAMERA_MAX_DISTANCE_LIST.index(CAMERA_MAX_DISTANCE)

########################

import chrmgr
import player
import app

def SET_DEFAULT_CHRNAME_COLOR():
    global CHRNAME_COLOR_INDEX
    chrmgr.SetEmpireNameMode(CHRNAME_COLOR_INDEX)

def SET_CHRNAME_COLOR_INDEX(index):
    global CHRNAME_COLOR_INDEX
    CHRNAME_COLOR_INDEX=index
    chrmgr.SetEmpireNameMode(index)

def GET_CHRNAME_COLOR_INDEX():
    global CHRNAME_COLOR_INDEX
    return CHRNAME_COLOR_INDEX

def SET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD(index):
    global VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD
    VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD = index

def GET_VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD():
    global VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD
    return VIEW_OTHER_EMPIRE_PLAYER_TARGET_BOARD

def SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE():
    global CONVERT_EMPIRE_LANGUAGE_ENABLE
    net.SetEmpireLanguageMode(CONVERT_EMPIRE_LANGUAGE_ENABLE)

def SET_DEFAULT_USE_ITEM_WEAPON_TABLE_ATTACK_BONUS():
    global USE_ITEM_WEAPON_TABLE_ATTACK_BONUS
    player.SetWeaponAttackBonusFlag(USE_ITEM_WEAPON_TABLE_ATTACK_BONUS)

def SET_DEFAULT_USE_SKILL_EFFECT_ENABLE():
    global USE_SKILL_EFFECT_UPGRADE_ENABLE
    app.SetSkillEffectUpgradeEnable(USE_SKILL_EFFECT_UPGRADE_ENABLE)

def SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE():
    global TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE
    app.SetTwoHandedWeaponAttSpeedDecreaseValue(TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE)

########################
import item

ACCESSORY_MATERIAL_LIST = [50623, 50624, 50625, 50626, 50627, 50628, 50629, 50630, 50631, 50632, 50633, 50634, 50635, 50636, 50637, 50638]
#ACCESSORY_MATERIAL_LIST = [50623, 50623, 50624, 50624, 50625, 50625, 50626, 50627, 50628, 50629, 50630, 50631, 50632, 50633,
#                50623, 50623, 50624, 50624, ]
JewelAccessoryInfos = [
        # jewel        wrist    neck    ear
        [ 50634,    14420,    16220,    17220 ], 
        [ 50635,    14500,    16500,    17500 ], 
        [ 50636,    14520,    16520,    17520 ], 
        [ 50637,    14540,    16540,    17540 ], 
        [ 50638,    14560,    16560,    17560 ], 
    ]
def GET_ACCESSORY_MATERIAL_VNUM(vnum, subType):
    ret = vnum
    item_base = (vnum / 10) * 10
    for info in JewelAccessoryInfos:
        if item.ARMOR_WRIST == subType: 
            if info[1] == item_base:
                return info[0]
        elif item.ARMOR_NECK == subType: 
            if info[2] == item_base:
                return info[0]
        elif item.ARMOR_EAR == subType: 
            if info[3] == item_base:
                return info[0]
 
    if vnum >= 16210 and vnum <= 16219:
        return 50625

    if item.ARMOR_WRIST == subType: 
        WRIST_ITEM_VNUM_BASE = 14000
        ret -= WRIST_ITEM_VNUM_BASE
    elif item.ARMOR_NECK == subType:
        NECK_ITEM_VNUM_BASE = 16000
        ret -= NECK_ITEM_VNUM_BASE
    elif item.ARMOR_EAR == subType:
        EAR_ITEM_VNUM_BASE = 17000
        ret -= EAR_ITEM_VNUM_BASE

    type = ret/20

    if type<0 or type>=len(ACCESSORY_MATERIAL_LIST):
        type = (ret-170) / 20
        if type<0 or type>=len(ACCESSORY_MATERIAL_LIST):
            return 0

    return ACCESSORY_MATERIAL_LIST[type]

##################################################################
## 새로 추가된 '벨트' 아이템 타입과, 벨트의 소켓에 꽂을 아이템 관련..
## 벨트의 소켓시스템은 악세서리와 동일하기 때문에, 위 악세서리 관련 하드코딩처럼 이런식으로 할 수밖에 없다..

def GET_BELT_MATERIAL_VNUM(vnum, subType = 0):
    # 현재는 모든 벨트에는 하나의 아이템(#18900)만 삽입 가능
    return 18900

##################################################################
## 자동물약 (HP: #72723 ~ #72726, SP: #72727 ~ #72730)

# 해당 vnum이 자동물약인가?
def IS_AUTO_POTION(itemVnum):
    return IS_AUTO_POTION_HP(itemVnum) or IS_AUTO_POTION_SP(itemVnum)
  
# 해당 vnum이 HP 자동물약인가?
def IS_AUTO_POTION_HP(itemVnum):
    if 72723 <= itemVnum and 72726 >= itemVnum:
        return 1
    elif itemVnum >= 76021 and itemVnum <= 76022:        ## 새로 들어간 선물용 화룡의 축복
        return 1
    elif itemVnum == 79012:
        return 1
      
    return 0
  
# 해당 vnum이 SP 자동물약인가?
def IS_AUTO_POTION_SP(itemVnum):
    if 72727 <= itemVnum and 72730 >= itemVnum:
        return 1
    elif itemVnum >= 76004 and itemVnum <= 76005:        ## 새로 들어간 선물용 수룡의 축복
        return 1
    elif itemVnum == 79013:
        return 1
              
    return 0

uiwhisper.py:
Genişlet Daralt Kopyala
import ui
import net
import chat
import player
import app
import localeInfo
import ime
import chr
import os
import constInfo
import time

tek = 0
tek2 = 0
yaz2 = 0
class WhisperButton(ui.Button):
    def __init__(self):
        ui.Button.__init__(self, "TOP_MOST")

    def __del__(self):
        ui.Button.__del__(self)

    def SetToolTipText(self, text, x=0, y = 32):
        ui.Button.SetToolTipText(self, text, x, y)
        self.ToolTipText.Show()

    def SetToolTipTextWithColor(self, text, color, x=0, y = 32):
        ui.Button.SetToolTipText(self, text, x, y)
        self.ToolTipText.SetPackedFontColor(color)
        self.ToolTipText.Show()

    def ShowToolTip(self):
        if 0 != self.ToolTipText:
            self.ToolTipText.Show()

    def HideToolTip(self):
        if 0 != self.ToolTipText:
            self.ToolTipText.Show()

class WhisperDialog(ui.ScriptWindow):

    class TextRenderer(ui.Window):
        def SetTargetName(self, targetName):
            self.targetName = targetName

        def OnRender(self):
            (x, y) = self.GetGlobalPosition()
            chat.RenderWhisper(self.targetName, x, y)

    class ResizeButton(ui.DragButton):

        def __init__(self):
            ui.DragButton.__init__(self)

        def __del__(self):
            ui.DragButton.__del__(self)

        def OnMouseOverIn(self):
            app.SetCursor(app.HVSIZE)

        def OnMouseOverOut(self):
            app.SetCursor(app.NORMAL)

    def __init__(self, eventMinimize, eventClose):
        print "NEW WHISPER DIALOG  ----------------------------------------------------------------------------"
        ui.ScriptWindow.__init__(self)
        self.targetName = ""
        self.eventMinimize = eventMinimize
        self.eventClose = eventClose
        self.eventAcceptTarget = None
    def __del__(self):
        print "---------------------------------------------------------------------------- DELETE WHISPER DIALOG"
        ui.ScriptWindow.__del__(self)     

    def LoadDialog(self):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, "UIScript/WhisperDialog.py")
        except:
            import exception
            exception.Abort("WhisperDialog.LoadDialog.LoadScript")

        try:
            GetObject=self.GetChild
            self.titleName = GetObject("titlename")
            self.titleNameEdit = GetObject("titlename_edit")
            self.closeButton = GetObject("closebutton")
            self.scrollBar = GetObject("scrollbar")
            self.chatLine = GetObject("chatline")
            self.minimizeButton = GetObject("minimizebutton")
            self.ignoreButton = GetObject("ignorebutton")
            self.reportViolentWhisperButton = GetObject("reportviolentwhisperbutton")
            self.acceptButton = GetObject("acceptbutton")
            self.sendButton = GetObject("sendbutton")
            self.board = GetObject("board")
            self.editBar = GetObject("editbar")
            self.gamemasterMark = GetObject("gamemastermark")
            self.yaziyor = GetObject("yaziyor")
        except:
            import exception
            exception.Abort("DialogWindow.LoadDialog.BindObject")

        self.gamemasterMark.Hide()
        self.titleName.SetText("")
        self.titleNameEdit.SetText("")
        self.minimizeButton.SetEvent(ui.__mem_func__(self.Minimize))
        self.closeButton.SetEvent(ui.__mem_func__(self.Close))
        self.scrollBar.SetPos(1.0)
        self.scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScroll))
        self.chatLine.SetReturnEvent(ui.__mem_func__(self.SendWhisper))
        self.chatLine.SetEscapeEvent(ui.__mem_func__(self.Minimize))
        self.chatLine.SetMultiLine()
        self.sendButton.SetEvent(ui.__mem_func__(self.SendWhisper))
        self.titleNameEdit.SetReturnEvent(ui.__mem_func__(self.AcceptTarget))
        self.titleNameEdit.SetEscapeEvent(ui.__mem_func__(self.Close))
        self.ignoreButton.SetToggleDownEvent(ui.__mem_func__(self.IgnoreTarget))
        self.ignoreButton.SetToggleUpEvent(ui.__mem_func__(self.IgnoreTarget))
        self.reportViolentWhisperButton.SetEvent(ui.__mem_func__(self.ReportViolentWhisper))
        self.acceptButton.SetEvent(ui.__mem_func__(self.AcceptTarget))

        self.textRenderer = self.TextRenderer()
        self.textRenderer.SetParent(self)
        self.textRenderer.SetPosition(20, 28)
        self.textRenderer.SetTargetName("")
        self.textRenderer.Show()

        self.resizeButton = self.ResizeButton()
        self.resizeButton.SetParent(self)
        self.resizeButton.SetSize(20, 20)
        self.resizeButton.SetPosition(280, 180)
        self.resizeButton.SetMoveEvent(ui.__mem_func__(self.ResizeWhisperDialog))
        self.resizeButton.Show()

        self.ResizeWhisperDialog()

    def Destroy(self):

        self.eventMinimize = None
        self.eventClose = None
        self.eventAcceptTarget = None

        self.ClearDictionary()
        self.scrollBar.Destroy()
        self.titleName = None
        self.titleNameEdit = None
        self.closeButton = None
        self.scrollBar = None
        self.chatLine = None
        self.sendButton = None
        self.ignoreButton = None
        self.reportViolentWhisperButton = None
        self.acceptButton = None
        self.minimizeButton = None
        self.textRenderer = None
        self.board = None
        self.editBar = None
        self.resizeButton = None

    def ResizeWhisperDialog(self):
        (xPos, yPos) = self.resizeButton.GetLocalPosition()
        if xPos < 280:
            self.resizeButton.SetPosition(280, yPos)
            return
        if yPos < 150:
            self.resizeButton.SetPosition(xPos, 150)
            return
        self.SetWhisperDialogSize(xPos + 20, yPos + 20)

    def SetWhisperDialogSize(self, width, height):
        try:

            max = int((width-90)/6) * 3 - 6

            self.board.SetSize(width, height)
            self.scrollBar.SetPosition(width-25, 35)
            self.scrollBar.SetScrollBarSize(height-100)
            self.scrollBar.SetPos(1.0)
            self.editBar.SetSize(width-18, 50)
            self.chatLine.SetSize(width-90, 40)
            self.chatLine.SetLimitWidth(width-90)
            self.SetSize(width, height)

            if 0 != self.targetName:
                chat.SetWhisperBoxSize(self.targetName, width - 50, height - 90)         
          
            if localeInfo.IsARABIC():
                self.textRenderer.SetPosition(width-20, 28)
                self.scrollBar.SetPosition(width-25+self.scrollBar.GetWidth(), 35)
                self.editBar.SetPosition(10 + self.editBar.GetWidth(), height-60)
                self.sendButton.SetPosition(width - 80 + self.sendButton.GetWidth(), 10)
                self.minimizeButton.SetPosition(width-42 + self.minimizeButton.GetWidth(), 12)
                self.closeButton.SetPosition(width-24+self.closeButton.GetWidth(), 12)             
                self.chatLine.SetPosition(5 + self.chatLine.GetWidth(), 5)
                self.board.SetPosition(self.board.GetWidth(), 0)
            else:
                self.textRenderer.SetPosition(20, 28)
                self.scrollBar.SetPosition(width-25, 35)
                self.editBar.SetPosition(10, height-60)
                self.sendButton.SetPosition(width-80, 10)
                self.minimizeButton.SetPosition(width-42, 12)
                self.closeButton.SetPosition(width-24, 12)

            self.SetChatLineMax(max)

        except:
            import exception
            exception.Abort("WhisperDialog.SetWhisperDialogSize.BindObject")

    def SetChatLineMax(self, max):
        self.chatLine.SetMax(max)

        from grpText import GetSplitingTextLine

        text = self.chatLine.GetText()
        if text:
            self.chatLine.SetText(GetSplitingTextLine(text, max, 0))

    def OpenWithTarget(self, targetName):
        chat.CreateWhisper(targetName)
        chat.SetWhisperBoxSize(targetName, self.GetWidth() - 60, self.GetHeight() - 90)
        self.chatLine.SetFocus()
        self.titleName.SetText(targetName)
        self.targetName = targetName
        self.textRenderer.SetTargetName(targetName)
        self.titleNameEdit.Hide()
        self.ignoreButton.Hide()
        if app.IsDevStage():
            self.reportViolentWhisperButton.Show()
        else:
            self.reportViolentWhisperButton.Hide()
        self.acceptButton.Hide()
        self.gamemasterMark.Hide()
        self.minimizeButton.Show
        import messenger
        if not messenger.IsFriendByName(self.targetName):
            self.friendButton = ui.Button()
            self.friendButton.SetParent(self.board)
            self.friendButton.SetPosition(119, 10)
            self.friendButton.SetUpVisual("d:/ymir work/ui/game/windows/messenger_add_friend_01.sub")
            self.friendButton.SetOverVisual("d:/ymir work/ui/game/windows/messenger_add_friend_02.sub")
            self.friendButton.SetDownVisual("d:/ymir work/ui/game/windows/messenger_add_friend_03.sub")
            self.friendButton.SetText("")
            self.friendButton.SetEvent(ui.__mem_func__(self.AddFrind))
            self.friendButton.Show()

        if os.path.exists(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf") and open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "r").read().find("#"+str(targetName)+"#") != -1:
            self.ignoreButton.Show()
            self.ignoreButton.SetText("Engeli aç")
        else:
            self.ignoreButton.Show()
            self.ignoreButton.SetText("Engelle")

        if "#"+str(self.targetName)+"#" in constInfo.WHISPER_GORULDU_LIST:
            vip_renk2 = {
                1: '|cFF00FFFF|H|h'
            }
            vip_text2 = str(vip_renk2[1])
            localtime = time.strftime("%H:%M:%S") #|cFF00FFFF|H|h
            net.SendWhisperPacket(self.targetName, "#" + vip_text2 + localeInfo.WHISPER_GORULDU + "(" + str(localtime) + ")#xsbyfatihbab34juwqysnmnsmqwnqmnsaxncvmwteqsmkuwhqnywqb#")
            constInfo.WHISPER_GORULDU_LIST.remove("#"+str(self.targetName)+"#")

    def AddFrind(self):
        net.SendMessengerAddByNamePacket(self.targetName)
        self.friendButton.Hide()             

    def OpenWithoutTarget(self, event):
        self.eventAcceptTarget = event
        self.titleName.SetText("")
        self.titleNameEdit.SetText("")
        self.titleNameEdit.SetFocus()
        self.targetName = 0
        self.titleNameEdit.Show()
        self.ignoreButton.Hide()
        self.reportViolentWhisperButton.Hide()
        self.acceptButton.Show()
        self.minimizeButton.Hide()
        self.gamemasterMark.Hide()
        self.yaziyor.Hide()

    def SetGameMasterLook(self):
        self.gamemasterMark.Show()
        self.reportViolentWhisperButton.Hide()

    def Minimize(self):
        self.titleNameEdit.KillFocus()
        self.chatLine.KillFocus()
        self.Hide()

        if None != self.eventMinimize:
            self.eventMinimize(self.targetName)

    def Close(self):
        chat.ClearWhisper(self.targetName)
        self.titleNameEdit.KillFocus()
        self.chatLine.KillFocus()
        self.Hide()

        if None != self.eventClose:
            self.eventClose(self.targetName)

    def ReportViolentWhisper(self):
        net.SendChatPacket("/reportviolentwhisper " + self.targetName)

    def IgnoreTarget(self):
        if str(self.targetName).find("[") != -1:
            chat.AppendChat(chat.CHAT_TYPE_INFO, "<Fısıltı>: Game Master'leri sohbetten engelleyemessin.")
            return
        if os.path.exists(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf") and open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "r").read().find("#"+str(self.targetName)+"#") != -1:
            ac = open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "r")
            oku = ac.read()
            ac.close()
            open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "w").write(str(oku).replace(str("#"+self.targetName+"#"), ""))
            self.ignoreButton.SetText("Engelle")
        else:
            if os.path.exists(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf"):
                open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "a+").write("\n"+str("#"+self.targetName+"#"))
            else:
                open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "a+").write(str("#"+self.targetName+"#"))
            self.ignoreButton.SetText("Engeli aç")

    def AcceptTarget(self):
        name = self.titleNameEdit.GetText()
        if len(name) <= 0:
            self.Close()
            return

        if None != self.eventAcceptTarget:
            self.titleNameEdit.KillFocus()
            self.eventAcceptTarget(name)

    def OnScroll(self):
        chat.SetWhisperPosition(self.targetName, self.scrollBar.GetPos())

    def SendWhisper(self):
        import time
        text = self.chatLine.GetText()
        textLength = len(text)

        if textLength > 0:
            if net.IsInsultIn(text):
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHAT_INSULT_STRING)
                return

            if os.path.exists(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf") and open(str(constInfo.CLIENT_YOL)+"block_"+str(player.GetName())+".kf", "r").read().find("#"+str(self.targetName)+"#") != -1:
                chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, self.targetName, 'Engellediğin kişiye mesaj gönderemezsin.')
                return
            Saat = time.strftime("%H:%M:%S")
            #net.SendWhisperPacket(self.targetName, "(Lv. " + str(player.GetStatus(player.LEVEL)) + ") " + text)
            net.SendWhisperPacket(self.targetName, " (Lv. " + str(player.GetStatus(player.LEVEL)) + ") " "(" + Saat + "): "  + text)
            self.chatLine.SetText("")
            #chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + " : " + text)
            chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + " (Lv. " + str(player.GetStatus(player.LEVEL)) + ") " "(" + Saat + "): "  + text)

    def OnTop(self):
        self.chatLine.SetFocus()

    def OnUpdate(self):
        global tek
        global yaz2
        global tek2
        toplam = self.chatLine.GetText()
        if len(toplam) > 7:
            if tek == 0:
                net.SendWhisperPacket(self.targetName, "|xyaziyorumsuanda|")
                tek = 1
                tek2 = 0
            else:
                pass
            yaz2 = 1
        else:
            if yaz2 == 1:
                if tek2 == 0:
                    net.SendWhisperPacket(self.targetName, "|xyazmiyorumsuanda|")
                    tek2 = 1
                    tek = 0
                else:
                    pass
        if self.targetName in constInfo.yazanlar:
            self.yaziyor.Show()
        else:
            self.yaziyor.Hide()
    def BindInterface(self, interface):
        self.interface = interface
      
    def OnMouseLeftButtonDown(self):
        hyperlink = ui.GetHyperlink()
        if hyperlink:
            if app.IsPressed(app.DIK_LALT):
                link = chat.GetLinkFromHyperlink(hyperlink)
                ime.PasteString(link)
            else:
                self.interface.MakeHyperlinkTooltip(hyperlink)

if "__main__" == __name__:
    import uiTest

    class TestApp(uiTest.App):
        def OnInit(self):
            wnd = WhisperDialog(self.OnMax, self.OnMin)
            wnd.LoadDialog()
            wnd.OpenWithoutTarget(self.OnNew)
            wnd.SetPosition(0, 0)
            wnd.Show()

            self.wnd = wnd

        def OnMax(self):
            pass

        def OnMin(self):
            pass

        def OnNew(self):
            pass

    TestApp().MainLoop()
 
@Mavi Ruh sorun bu dosyalarda değilmiş whisperdialog py den kaynaklandığını düşünüyorum onuda paylaşabilir misiniz peki
 
Son düzenleme:
@Mavi Ruh sorun bu dosyalarda değilmiş whisperdialog py den kaynaklandığını düşünüyorum onuda paylaşabilir misiniz peki
whisper.py:
Genişlet Daralt Kopyala
import uiScriptLocale

ROOT = "d:/ymir work/ui/public/"

window = {
    "name" : "WhisperDialog",
    "style" : ("movable", "float",),

    "x" : 0,
    "y" : 0,

    "width" : 280,
    "height" : 200,

    "children" :
    (
        {
            "name" : "board",
            "type" : "thinboard",
            "style" : ("attach",),

            "x" : 0,
            "y" : 0,

            "width" : 280,
            "height" : 200,

            "children" :
            (
                ## Title
                {
                    "name" : "name_slot",
                    "type" : "image",
                    "style" : ("attach",),

                    "x" : 10,
                    "y" : 10,

                    "image":"d:/ymir work/ui/public/Parameter_Slot_05.sub",

                    "children" :
                    (
                        {
                            "name" : "titlename",
                            "type" : "text",

                            "x" : 3,
                            "y" : 3,

                            "text" : uiScriptLocale.WHISPER_NAME,
                        },
                        {
                            "name" : "titlename_edit",
                            "type" : "editline",

                            "x" : 3,
                            "y" : 3,

                            "width" : 120,
                            "height" : 17,

                            "input_limit" : PLAYER_NAME_MAX_LEN,

                            "text" : uiScriptLocale.WHISPER_NAME,
                        },
                    ),
                },

                {
                    "name" : "gamemastermark",
                    "type" : "expanded_image",
                    "style" : ("attach",),

                    "x" : 206,
                    "y" : 6,

                    "x_scale" : 0.2,
                    "y_scale" : 0.2,

                    "image" : LOCALE_PATH + "/effect/ymirred.tga",
                },

                ## Button
                {
                    "name" : "ignorebutton",
                    "type" : "toggle_button",

                    "x" : 145,
                    "y" : 10,

                    "text" : uiScriptLocale.WHISPER_BAN,

                    "default_image" : "d:/ymir work/ui/public/small_thin_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/small_thin_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/small_thin_button_03.sub",
                },
                {
                    "name" : "reportviolentwhisperbutton",
                    "type" : "button",

                    "x" : 145,
                    "y" : 10,

                    "text" : uiScriptLocale.WHISPER_REPORT,

                    "default_image" : "d:/ymir work/ui/public/large_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/large_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/large_button_03.sub",
                },
                {
                    "name" : "acceptbutton",
                    "type" : "button",

                    "x" : 145,
                    "y" : 10,

                    "text" : uiScriptLocale.OK,

                    "default_image" : "d:/ymir work/ui/public/small_thin_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/small_thin_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/small_thin_button_03.sub",
                },
                {
                    "name" : "minimizebutton",
                    "type" : "button",

                    "x" : 280 - 41,
                    "y" : 12,

                    "tooltip_text" : uiScriptLocale.MINIMIZE,

                    "default_image" : "d:/ymir work/ui/public/minimize_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/minimize_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/minimize_button_03.sub",
                },
                {
                    "name" : "closebutton",
                    "type" : "button",

                    "x" : 280 - 24,
                    "y" : 12,

                    "tooltip_text" : uiScriptLocale.CLOSE,

                    "default_image" : "d:/ymir work/ui/public/close_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/close_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/close_button_03.sub",
                },

                {
                    "name" : "yaziyor",
                    "type" : "text",
                    
                    "x" : 95-9,
                    "y" : 10+3,
                    
                    "text" : uiScriptLocale.YAZIYOR,
                    
                },

                ## ScrollBar
                {
                    "name" : "scrollbar",
                    "type" : "thin_scrollbar",

                    "x" : 280 - 25,
                    "y" : 35,

                    "size" : 280 - 160,
                },

                ## Edit Bar
                {
                    "name" : "editbar",
                    "type" : "bar",

                    "x" : 10,
                    "y" : 200 - 60,

                    "width" : 280 - 18,
                    "height" : 50,

                    "color" : 0x77000000,

                    "children" :
                    (
                        {
                            "name" : "chatline",
                            "type" : "editline",

                            "x" : 5,
                            "y" : 5,

                            "width" : 280 - 70,
                            "height" : 40,

                            "with_codepage" : 1,
                            "input_limit" : 40,
                            "limit_width" : 280 - 90,
                            "multi_line" : 1,
                        },
                        {
                            "name" : "sendbutton",
                            "type" : "button",

                            "x" : 280 - 80,
                            "y" : 10,

                            "text" : uiScriptLocale.WHISPER_SEND,

                            "default_image" : "d:/ymir work/ui/public/xlarge_thin_button_01.sub",
                            "over_image" : "d:/ymir work/ui/public/xlarge_thin_button_02.sub",
                            "down_image" : "d:/ymir work/ui/public/xlarge_thin_button_03.sub",
                        },
                    ),
                },
            ),
        },
    ),
}
 
Çözüm
whisper.py:
Genişlet Daralt Kopyala
import uiScriptLocale

ROOT = "d:/ymir work/ui/public/"

window = {
    "name" : "WhisperDialog",
    "style" : ("movable", "float",),

    "x" : 0,
    "y" : 0,

    "width" : 280,
    "height" : 200,

    "children" :
    (
        {
            "name" : "board",
            "type" : "thinboard",
            "style" : ("attach",),

            "x" : 0,
            "y" : 0,

            "width" : 280,
            "height" : 200,

            "children" :
            (
                ## Title
                {
                    "name" : "name_slot",
                    "type" : "image",
                    "style" : ("attach",),

                    "x" : 10,
                    "y" : 10,

                    "image":"d:/ymir work/ui/public/Parameter_Slot_05.sub",

                    "children" :
                    (
                        {
                            "name" : "titlename",
                            "type" : "text",

                            "x" : 3,
                            "y" : 3,

                            "text" : uiScriptLocale.WHISPER_NAME,
                        },
                        {
                            "name" : "titlename_edit",
                            "type" : "editline",

                            "x" : 3,
                            "y" : 3,

                            "width" : 120,
                            "height" : 17,

                            "input_limit" : PLAYER_NAME_MAX_LEN,

                            "text" : uiScriptLocale.WHISPER_NAME,
                        },
                    ),
                },

                {
                    "name" : "gamemastermark",
                    "type" : "expanded_image",
                    "style" : ("attach",),

                    "x" : 206,
                    "y" : 6,

                    "x_scale" : 0.2,
                    "y_scale" : 0.2,

                    "image" : LOCALE_PATH + "/effect/ymirred.tga",
                },

                ## Button
                {
                    "name" : "ignorebutton",
                    "type" : "toggle_button",

                    "x" : 145,
                    "y" : 10,

                    "text" : uiScriptLocale.WHISPER_BAN,

                    "default_image" : "d:/ymir work/ui/public/small_thin_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/small_thin_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/small_thin_button_03.sub",
                },
                {
                    "name" : "reportviolentwhisperbutton",
                    "type" : "button",

                    "x" : 145,
                    "y" : 10,

                    "text" : uiScriptLocale.WHISPER_REPORT,

                    "default_image" : "d:/ymir work/ui/public/large_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/large_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/large_button_03.sub",
                },
                {
                    "name" : "acceptbutton",
                    "type" : "button",

                    "x" : 145,
                    "y" : 10,

                    "text" : uiScriptLocale.OK,

                    "default_image" : "d:/ymir work/ui/public/small_thin_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/small_thin_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/small_thin_button_03.sub",
                },
                {
                    "name" : "minimizebutton",
                    "type" : "button",

                    "x" : 280 - 41,
                    "y" : 12,

                    "tooltip_text" : uiScriptLocale.MINIMIZE,

                    "default_image" : "d:/ymir work/ui/public/minimize_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/minimize_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/minimize_button_03.sub",
                },
                {
                    "name" : "closebutton",
                    "type" : "button",

                    "x" : 280 - 24,
                    "y" : 12,

                    "tooltip_text" : uiScriptLocale.CLOSE,

                    "default_image" : "d:/ymir work/ui/public/close_button_01.sub",
                    "over_image" : "d:/ymir work/ui/public/close_button_02.sub",
                    "down_image" : "d:/ymir work/ui/public/close_button_03.sub",
                },

                {
                    "name" : "yaziyor",
                    "type" : "text",
                   
                    "x" : 95-9,
                    "y" : 10+3,
                   
                    "text" : uiScriptLocale.YAZIYOR,
                   
                },

                ## ScrollBar
                {
                    "name" : "scrollbar",
                    "type" : "thin_scrollbar",

                    "x" : 280 - 25,
                    "y" : 35,

                    "size" : 280 - 160,
                },

                ## Edit Bar
                {
                    "name" : "editbar",
                    "type" : "bar",

                    "x" : 10,
                    "y" : 200 - 60,

                    "width" : 280 - 18,
                    "height" : 50,

                    "color" : 0x77000000,

                    "children" :
                    (
                        {
                            "name" : "chatline",
                            "type" : "editline",

                            "x" : 5,
                            "y" : 5,

                            "width" : 280 - 70,
                            "height" : 40,

                            "with_codepage" : 1,
                            "input_limit" : 40,
                            "limit_width" : 280 - 90,
                            "multi_line" : 1,
                        },
                        {
                            "name" : "sendbutton",
                            "type" : "button",

                            "x" : 280 - 80,
                            "y" : 10,

                            "text" : uiScriptLocale.WHISPER_SEND,

                            "default_image" : "d:/ymir work/ui/public/xlarge_thin_button_01.sub",
                            "over_image" : "d:/ymir work/ui/public/xlarge_thin_button_02.sub",
                            "down_image" : "d:/ymir work/ui/public/xlarge_thin_button_03.sub",
                        },
                    ),
                },
            ),
        },
    ),
}
Evet burada hata yapmışım akşam işten gelir gelmez düzeltip haber veriyim çalıştığını çalışacağına eminim. Çok teşekkür ederim Allah razı olsun
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst