Çözüldü Oyun içinde yeni bir buton ekleme

  • Konuyu açan Konuyu açan farukkaya
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 13
  • Gösterim Gösterim 227
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ı.

farukkaya

Üye
Üye
Mesaj
71
Beğeni
4
Puan
421
Ticaret Puanı
0
Merhaba ,

Şu şekilde statü butonunun oraya bunları nasıl ekleyebilirim? (admin panel gibi butonları)

1.webp
 
Çözüm
Hocam var olan toplu mesaj sistemini ben statü barının sağına gmler için yapmak istiyorum.
kısaca şunu yap

arat:
Genişlet Daralt Kopyala
        self.wndGuildBuilding = None

buna benzer ekle:
Genişlet Daralt Kopyala
        if app.BOSS_ARENA:
            self.wndBossArena = None
            wndBossArenabutton = ui.Button()
            wndBossArenabutton.SetUpVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetOverVisual("d:/ymir work/new/bos1.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetDownVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetPosition(systemSetting.GetWidth()-115, 100+100+30+30+30+30+30+30+30)...
uiscript içinde gamewindow.py den


Kod:
Genişlet Daralt Kopyala
        {
            "name":"StatusPlusButton",
            "type" : "button",
            "x" : 68,
            "y" : SCREEN_HEIGHT-100,
            "default_image" : "d:/ymir work/ui/game/windows/btn_bigplus_up.sub",
            "over_image" : "d:/ymir work/ui/game/windows/btn_bigplus_over.sub",
            "down_image" : "d:/ymir work/ui/game/windows/btn_bigplus_down.sub",

            "children" :
            (
                {
                    "name":"StatusPlusLabel",
                    "type":"text",
                    "x": 16,
                    "y": 40,
                    "text":uiScriptLocale.GAME_STAT_UP,
                    "r":1.0, "g":1.0, "b":1.0, "a":1.0,
                    "text_horizontal_align":"center"
                },
            ),
        },

kopyalayıp altına tekrar oluştur ve x ve y değerleri ile buton konumunu değiştirebilirsin
buton görüntüsünü değiştirmek için :

"default_image" : "d:/ymir work/ui/game/windows/btn_bigplus_up.sub",
"over_image" : "d:/ymir work/ui/game/windows/btn_bigplus_over.sub",
"down_image" : "d:/ymir work/ui/game/windows/btn_bigplus_down.sub",
 
Peki button Gm karakterinin görmesi ve diğerlerine gizlenmesi için ne yapmam gerek ?
 
Sadece uiscript dosyalarına ekleme yapman gerekmez ayrıyeten oradaki sistemleri kullanmak için gerekli sistemi src kısmında sorunsuz ekleyip sonrasında py tarafında da eklemen gerekli . Uiscript olarak eklersen sadece görsel olarak durur hiç bir işlevi olmaz . Bilmiyorsan eğer bilgi amaçlı yazdım
 
Sadece uiscript dosyalarına ekleme yapman gerekmez ayrıyeten oradaki sistemleri kullanmak için gerekli sistemi src kısmında sorunsuz ekleyip sonrasında py tarafında da eklemen gerekli . Uiscript olarak eklersen sadece görsel olarak durur hiç bir işlevi olmaz . Bilmiyorsan eğer bilgi amaçlı yazdım
Hocam var olan toplu mesaj sistemini ben statü barının sağına gmler için yapmak istiyorum.
 
Hocam var olan toplu mesaj sistemini ben statü barının sağına gmler için yapmak istiyorum.
kısaca şunu yap

arat:
Genişlet Daralt Kopyala
        self.wndGuildBuilding = None

buna benzer ekle:
Genişlet Daralt Kopyala
        if app.BOSS_ARENA:
            self.wndBossArena = None
            wndBossArenabutton = ui.Button()
            wndBossArenabutton.SetUpVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetOverVisual("d:/ymir work/new/bos1.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetDownVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetPosition(systemSetting.GetWidth()-115, 100+100+30+30+30+30+30+30+30)
            wndBossArenabutton.SetEvent(ui.__mem_func__(self.OpenBossArena))
            wndBossArenabutton.SetText("Boss Arena")
            wndBossArenabutton.Show()
            self.wndBossArenabutton = wndBossArenabutton
 
Çözüm
kısaca şunu yap

arat:
Genişlet Daralt Kopyala
        self.wndGuildBuilding = None

buna benzer ekle:
Genişlet Daralt Kopyala
        if app.BOSS_ARENA:
            self.wndBossArena = None
            wndBossArenabutton = ui.Button()
            wndBossArenabutton.SetUpVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetOverVisual("d:/ymir work/new/bos1.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetDownVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetPosition(systemSetting.GetWidth()-115, 100+100+30+30+30+30+30+30+30)
            wndBossArenabutton.SetEvent(ui.__mem_func__(self.OpenBossArena))
            wndBossArenabutton.SetText("Boss Arena")
            wndBossArenabutton.Show()
            self.wndBossArenabutton = wndBossArenabutton
Chatcpt amcayla yapalım dedimde o daha çok içine etti :D
 
1.webp





Syserr:
Genişlet Daralt Kopyala
1116 11:40:06566 :: Traceback (most recent call last):

1116 11:40:06566 ::   File "networkModule.py", line 236, in SetGamePhase

1116 11:40:06566 ::   File "game.py", line 112, in __init__

1116 11:40:06566 ::   File "interfaceModule.py", line 103, in __init__

1116 11:40:06566 :: AttributeError
1116 11:40:06566 :: :
1116 11:40:06566 :: 'module' object has no attribute 'BOSS_ARENA'
1116 11:40:06566 ::




Bir sorum daha var GM Paneli ekledim. Eğer yapabilirsem Ekrana Sistem Mesaji ve Bu Gm panelini eklemek Eğer olmazsa buton tanımlayıp ordan işlem yapacağım


2.webp

Örnek olarak Kahraman Yap 'ın Button click'i
Kod:
Genişlet Daralt Kopyala
    def __OnClickChivalricButton(self):
        self.Close()
        friendNameBoard9 = uiCommon.InputDialog()
        friendNameBoard9.SetTitle(localeInfo.GAMEMASTER_PANEL_HEROMAN)
        friendNameBoard9.SetAcceptEvent(ui.__mem_func__(self.OnAddChivalric))
        friendNameBoard9.SetCancelEvent(ui.__mem_func__(self.OnCancelChivalric))
        friendNameBoard9.SetBoardWidth(175)
        friendNameBoard9.Open()
        self.friendNameBoard9 = friendNameBoard9

    def OnAddChivalric(self):
        text = self.friendNameBoard9.GetText()
        net.SendChatPacket("/set " + text + " align 999999")
        self.friendNameBoard9.Hide()

    def OnCancelChivalric(self):
        self.friendNameBoard9.Hide()

Mesela ben buraya
Kod:
Genişlet Daralt Kopyala
onPressKeyDict[app.DIK_F9]    = lambda : self.whisperAdmin.OpenWindow()
tıklayınca bu olmasını istiyorum ?
Bu sistem nasıl oluyor yani tekrar tanımlamak mı lazım "uimastergame.py" de yoksa anlam vermedim rica etsem anlaşılır bi şekilde anlatma şansınız var mı
 
26946 eklentisini görüntüle




Syserr:
Genişlet Daralt Kopyala
1116 11:40:06566 :: Traceback (most recent call last):

1116 11:40:06566 ::   File "networkModule.py", line 236, in SetGamePhase

1116 11:40:06566 ::   File "game.py", line 112, in __init__

1116 11:40:06566 ::   File "interfaceModule.py", line 103, in __init__

1116 11:40:06566 :: AttributeError
1116 11:40:06566 :: :
1116 11:40:06566 :: 'module' object has no attribute 'BOSS_ARENA'
1116 11:40:06566 ::




Bir sorum daha var GM Paneli ekledim. Eğer yapabilirsem Ekrana Sistem Mesaji ve Bu Gm panelini eklemek Eğer olmazsa buton tanımlayıp ordan işlem yapacağım


26947 eklentisini görüntüle
Örnek olarak Kahraman Yap 'ın Button click'i
Kod:
Genişlet Daralt Kopyala
    def __OnClickChivalricButton(self):
        self.Close()
        friendNameBoard9 = uiCommon.InputDialog()
        friendNameBoard9.SetTitle(localeInfo.GAMEMASTER_PANEL_HEROMAN)
        friendNameBoard9.SetAcceptEvent(ui.__mem_func__(self.OnAddChivalric))
        friendNameBoard9.SetCancelEvent(ui.__mem_func__(self.OnCancelChivalric))
        friendNameBoard9.SetBoardWidth(175)
        friendNameBoard9.Open()
        self.friendNameBoard9 = friendNameBoard9

    def OnAddChivalric(self):
        text = self.friendNameBoard9.GetText()
        net.SendChatPacket("/set " + text + " align 999999")
        self.friendNameBoard9.Hide()

    def OnCancelChivalric(self):
        self.friendNameBoard9.Hide()

Mesela ben buraya
Kod:
Genişlet Daralt Kopyala
onPressKeyDict[app.DIK_F9]    = lambda : self.whisperAdmin.OpenWindow()
tıklayınca bu olmasını istiyorum ?
Bu sistem nasıl oluyor yani tekrar tanımlamak mı lazım "uimastergame.py" de yoksa anlam vermedim rica etsem anlaşılır bi şekilde anlatma şansınız var mı
Ben örnek olarak attım bos arenayi onu kendi dosyana gore duzenlemen lâzım
 
Bu bi örnek efsun botu icin alttaki boss arena yazanlari degismen lazim mantigini anlatiyorum sadece

Efsun botu:
Genişlet Daralt Kopyala
        if app.ENABLE_SWITCHBOT:
            self.wndSwitchbot = None
            wndBossArenabutton = ui.Button()
            wndBossArenabutton.SetUpVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetOverVisual("d:/ymir work/new/bos1.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetDownVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetPosition(systemSetting.GetWidth()-115, 100+100+30+30+30+30+30+30+30)
            wndBossArenabutton.SetEvent(ui.__mem_func__(self.OpenSwitchbot))//Burda efsun botu acmak icin kullandigin def kodu
            wndBossArenabutton.SetText("Boss Arena")
            wndBossArenabutton.Show()
            self.wndBossArenabutton = wndBossArenabutton
 
Bu bi örnek efsun botu icin alttaki boss arena yazanlari degismen lazim mantigini anlatiyorum sadece

Efsun botu:
Genişlet Daralt Kopyala
        if app.ENABLE_SWITCHBOT:
            self.wndSwitchbot = None
            wndBossArenabutton = ui.Button()
            wndBossArenabutton.SetUpVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetOverVisual("d:/ymir work/new/bos1.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetDownVisual("d:/ymir work/new/bos.tga") # kendinize gore duzenleyin
            wndBossArenabutton.SetPosition(systemSetting.GetWidth()-115, 100+100+30+30+30+30+30+30+30)
            wndBossArenabutton.SetEvent(ui.__mem_func__(self.OpenSwitchbot))//Burda efsun botu acmak icin kullandigin def kodu
            wndBossArenabutton.SetText("Boss Arena")
            wndBossArenabutton.Show()
            self.wndBossArenabutton = wndBossArenabutton



Kod:
Genişlet Daralt Kopyala
        if app.ENABLE_PM_ALL_SEND_SYSTEM:
            self.wndMesaj = uiwhisperadmin.AdminWhisperManager()
            whisperButton = uiWhisper.WhisperButton()
            whisperButton.SetUpVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
            whisperButton.SetOverVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
            whisperButton.SetDownVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
            whisperButton.SetPosition(systemSetting.GetWidth()-115, 100+100+30+30+30+30+30+30+30)
            whisperButton.SetEvent(ui.__mem_func__(self.wndMesaj.OpenWindow))
            whisperButton.SetText("Mesaj Paneli")
            whisperButton.Show()
            self.whisperButton = whisperButton

Çok teşekkürler.....

Peki :) Gm Kontrolü eklemem gerek ve bu nalet olası şey oyuna girişte direk açılıyor :) onu nasıl halledebilirim :(
 
Kod:
Genişlet Daralt Kopyala
        if app.ENABLE_PM_ALL_SEND_SYSTEM:
            self.wndMesaj = uiwhisperadmin.AdminWhisperManager()
            whisperButton = uiWhisper.WhisperButton()
            whisperButton.SetUpVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
            whisperButton.SetOverVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
            whisperButton.SetDownVisual("d:/ymir work/ui/game/windows/btn_mail_up.sub")
            whisperButton.SetPosition(systemSetting.GetWidth()-115, 100+100+30+30+30+30+30+30+30)
            whisperButton.SetEvent(ui.__mem_func__(self.wndMesaj.OpenWindow))
            whisperButton.SetText("Mesaj Paneli")
            whisperButton.Show()
            self.whisperButton = whisperButton

Çok teşekkürler.....

Peki :) Gm Kontrolü eklemem gerek ve bu nalet olası şey oyuna girişte direk açılıyor :) onu nasıl halledebilirim :(
if app.ENABLE_PM_ALL_SEND_SYSTEM and player.IsGM(): bunu bi dene
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst