Evet bunu kopyala. Sen buton ekledin mi? Eklediysen bana hangi kodları yazdığını gönder.
{
"name" : "SkyboxSelectMode",
"type" : "button",
"x" : -10,
"y" : 7,
"tooltip_text" : " Skybox",
"default_image" : "d:/ymir work/interface/inventory/inventory_buttons/btn_itemshop_01_normal.tga",
"over_image" : "d:/ymir work/interface/inventory/inventory_buttons/btn_itemshop_02_hover.tga",
"down_image" : "d:/ymir work/interface/inventory/inventory_buttons/btn_itemshop_03_active.tga",
},
Mesele zaten çağrı kodlarını ayarlamaktaAlttaki butonun bir kopyasını oluşturun, sonra çağrı kodlarını vs. değiştirerek yapabilirsiniz.
pek anlamadım? F8 e basınca zaten bir hava durumu geliyor sadece bu F8'i tuşa atamak istiyorum.Python:def __denemeskybox(self): import skybox #skybox yazanları kendince düzelt self.skybox = skybox.OptionDialog() self.skybox.Show()
hocam f8 zaten bir tuş değil mi .dpek anlamadım? F8 e basınca zaten bir hava durumu geliyor sadece bu F8'i tuşa atamak istiyorum.
def Destroy(self):
[...]
self.DSSButton = None
---------------------------
def __LoadWindow(self):
[...]
self.DSSButton = self.GetChild2("DSSButton")
[...]
[...]
if self.DSSButton:
self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton))
---------------------------
def ClickDSSButton(self):
print "click_dss_button"
self.interface.ToggleDragonSoulWindow()
## Dragon Soul Button
{
"name" : "DSSButton",
"type" : "button",
"x" : 114,
"y" : 107,
"tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL,
"default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga",
"over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga",
"down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga",
},
Root ve locale içinde hızlı menüdeki butonlardan birinin adını aratın.(örn: ornekbutton)
Bulduğunuz sonuçları, bir alt satıra kopyalayıp yapıştırın ve fonksiyon isimlerini değiştirin.
İsmini değiştirirken F8 e atanan fonksiyon ismini kullanmanız gerekiyor. Bunun için de;
Game.py içinde F8 diye aratın, bulunan satırda çağrılan fonksiyonu görürsünüz. Ordaki çağrılan fonksiyonun adını kopyalayın ve oluşturduğunuz kopyaların ismini bununla değiştirin.
Örnek simya butonu:
root>uiinventory.py:def Destroy(self): [...] self.DSSButton = None --------------------------- def __LoadWindow(self): [...] self.DSSButton = self.GetChild2("DSSButton") [...] [...] if self.DSSButton: self.DSSButton.SetEvent(ui.__mem_func__(self.ClickDSSButton)) --------------------------- def ClickDSSButton(self): print "click_dss_button" self.interface.ToggleDragonSoulWindow()
locale_tr>inventorywindow.py:## Dragon Soul Button { "name" : "DSSButton", "type" : "button", "x" : 114, "y" : 107, "tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL, "default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga", "over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga", "down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga", },
Kendinize göre düzenleyin.
0318 22:36:50787 :: Failed to load script file : locale/tr/ui/InventoryWindow.py
0318 22:36:50866 ::
ui.py(line:6531) LoadScriptFile
system.py(line:192) execfile
system.py(line:161) Run
system.py(line:177) __LoadTextFile__
LoadScriptFile!!!!!!!!!!!!!! - <type 'exceptions.SyntaxError'>:invalid syntax (locale/tr/ui/InventoryWindow.py, line 74)
0318 22:36:50866 :: ============================================================================================================
0318 22:36:50866 :: Abort!!!!
0318 22:36:50868 ::
uiInventory.py(line:335) __LoadWindow
ui.py(line:6548) LoadScriptFile
exception.py(line:36) Abort
InventoryWindow.LoadWindow.LoadObject - <type 'exceptions.SystemExit'>:
0318 22:36:50868 :: ============================================================================================================
0318 22:36:50868 :: Abort!!!!
root ve locale dosyalarınızı konuya dahil ederseniz daha iyi olur
game.py de SkyboxSelectMode adında bir def tanımı var mı? Eğer varsa söylediklerimi o def bloğunu baz alarak yapmayı deneyin. Sanırım burdaki sonradan eklediğiniz. Orjinal tanımı olması gerekiyor.Linkleri görebilmek için giriş yap veya kayıt ol.uiİnventory.py
Linkleri görebilmek için giriş yap veya kayıt ol.inventorywindow.py ( Locale_tr )
Linkleri görebilmek için giriş yap veya kayıt ol.uidragonsuol.py
Başka gereken birşey varmı?
Buda game.py'deki tuş kombinasyonu ;
onPressKeyDict[app.DIK_F8] = lambda : self.SkyboxSelectMode()
Anlamadım tam olarak nereyi kastediyorsunuz?Game.py deki F8 ile açılan pencereyi bul. Hangi fonksiyonu tetiklediğini bul. Sayfanın en altlarındadır muhtemelen. O fonksiyonun def ... ile başlayanı kopyala, diğer dosyaya yapıştır. Fonksiyon ismi def ClickSkyboxSelectMode yap. Bu kadar. Fonksiyon isimleri önemli değil, tuşun hangi fonksiyonu tetiklediğini bulman yeterli.
Game.py içerisinde def SkyboxSelectMode diye arat. Bulduğun fonksiyonu tamamen kopyala. Hani demiştin ya send chat packete ne yazıcam diye sormuştun. Onunla değiştir kodları.
def SkyboxSelectMode(self):
import skybox
if not self.skybox:
self.skybox = skybox.OptionDialog()
self.skybox.Show()
Evet bunu kopyala. Sen buton ekledin mi? Eklediysen bana hangi kodları yazdığını gönder.Python:def SkyboxSelectMode(self): import skybox if not self.skybox: self.skybox = skybox.OptionDialog() self.skybox.Show()
galiba bunu demek istediniz?
Evet bunu kopyala. Sen buton ekledin mi? Eklediysen bana hangi kodları yazdığını gönder.
{
"name" : "SkyboxSelectMode",
"type" : "button",
"x" : -10,
"y" : 7,
"tooltip_text" : " Skybox",
"default_image" : "d:/ymir work/interface/inventory/inventory_buttons/btn_itemshop_01_normal.tga",
"over_image" : "d:/ymir work/interface/inventory/inventory_buttons/btn_itemshop_02_hover.tga",
"down_image" : "d:/ymir work/interface/inventory/inventory_buttons/btn_itemshop_03_active.tga",
},
def ClickSkyboxSelectMode(self):
import skybox
if self.SkyboxSelectMode:
self.SkyboxSelectMode = skybox.OptionDialog()
self.SkyboxSelectMode.Show()