Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Na przycisk otwieranie okna


Rekomendowane odpowiedzi

Opublikowano

Witam.

Wie ktoś jaką linijkę dodać do pliku .py np żeby np na F9 F10 itp się otwierało okienko?

Panel działa tylko chcę żeby na przycisk otwierało się okienko panelu

Dam +y A jak było to prosiłbym o link

dzięki...

Opublikowano
1. Importowanie pliku z kodem:
# Na początku game musisz zaimportować swoj plik .py z oknem
# import nazwa_pliku (bez .py)
# np.	

import uiokno
 
2. Zdefiniowanie zmiennej odpowiedzialnej za przekierowanie do odpowiedniego fragmentu w pliku z kodem:
# def __init__(self, stream):
# tworzysz taki jakby odnośnik do kodu tego pliku
# czyli definujesz dowolnie nazwaną zmienną podając w niej nazwę zaimportowanego pliku oraz nagłówek który rozpoczyna cały kod okna
# znajdziesz go w twoim pliku z oknem np: class DialogWindow(ui.ScriptWindow):
# przykład:

[TAB][TAB]self.odnosnik = uiokno.DialogWindow()

3. Zaprogramowanie naszej zmiennej na uruchamianie za pomocą klawisza:
# kolejnym elementem w typ przypadku ostatnim, ponieważ znacznie uprościłem ten mini poradnik
# jest ustawienie wykonania naszeszej zmiennej za pomocą przycisku
# w tym celu przechodzisz do def __BuildKeyDict(self):
# i dodajesz taki fragment:

[TAB][TAB]onPressKeyDict[app.DIK_F9] = lambda : self.odnosnik.Show()

# self.odnosnik.Show() jest to ustawienie naszej zmiennej na parametr znajdujący się w pliku .py
# czyli def Show(self):
# Kiedy naciśniej klawisz nasza zdfiniowana zmienna czyli self.odnosnik uruchomi
# skrypt uiokno a nastepnie w class DialogWindow() wykona paratert Show()
 
Opublikowano
Dnia 25.05.2017 o 17:20, Intern napisał:
1. Importowanie pliku z kodem:

# Na początku game musisz zaimportować swoj plik .py z oknem
# import nazwa_pliku (bez .py)
# np.	

import uiokno
 
2. Zdefiniowanie zmiennej odpowiedzialnej za przekierowanie do odpowiedniego fragmentu w pliku z kodem:

# def __init__(self, stream):
# tworzysz taki jakby odnośnik do kodu tego pliku
# czyli definujesz dowolnie nazwaną zmienną podając w niej nazwę zaimportowanego pliku oraz nagłówek który rozpoczyna cały kod okna
# znajdziesz go w twoim pliku z oknem np: class DialogWindow(ui.ScriptWindow):
# przykład:

[TAB][TAB]self.odnosnik = uiokno.DialogWindow()

3. Zaprogramowanie naszej zmiennej na uruchamianie za pomocą klawisza:

# kolejnym elementem w typ przypadku ostatnim, ponieważ znacznie uprościłem ten mini poradnik
# jest ustawienie wykonania naszeszej zmiennej za pomocą przycisku
# w tym celu przechodzisz do def __BuildKeyDict(self):
# i dodajesz taki fragment:

[TAB][TAB]onPressKeyDict[app.DIK_F9] = lambda : self.odnosnik.Show()

# self.odnosnik.Show() jest to ustawienie naszej zmiennej na parametr znajdujący się w pliku .py
# czyli def Show(self):
# Kiedy naciśniej klawisz nasza zdfiniowana zmienna czyli self.odnosnik uruchomi
# skrypt uiokno a nastepnie w class DialogWindow() wykona paratert Show()
 

Wszystko spoko, tylko jak już tłumaczyć to robić dobrze, chodzi mi interfacemodoule :)

Opublikowano
@NoName#2
Masz na myśli otwieranie buttonem w eq a zamykanie klawiszem i odwrotnie?
Myśle że dobrze to wytłumaczyłem, tym bardziej że autor nie wspomniał o takim rozwiązaniu :)
@Vaxu
Jeśli wolisz ten sposób to cofnij wszystko co zrobiłeś z mojego 1 postu, ponieważ żeby nie było mieszania w kodzie napisze wszystko od nowa.

interfacemodule.py
# na początku importujemy nasz kod okna
import uiokno

# tworzymy zmienną do classy w zaimportowanym pliku
# dodajemy ją pod self.wndMall = wndMall

[TAB][TAB]self.odnosnik = uiokno.DialogWindow()

# przechodzimy do def Close(self):
# ustawiamy usuwanie naszej zmiennej gdzieś pod del self.wndMall

[TAB][TAB]del self.odnosnik

# na koniec zostało dodanie parametru wywołującego pokaz okna
# dodajemy nad if __name__ == "__main__":

[TAB]def ShowShopWindow(self):
[TAB][TAB]if False == player.IsObserverMode():
[TAB][TAB][TAB]self.odnosnik.Show()
 
uiinventory.py
# Tworzymy nowy button (w locale>inventorywindow.py nie chce mi sie już tego opisywać)
# przechodzimy do def __LoadWindow(self):
# ustwiamy go jako zmienna do której będziemy się odwoływać

[TAB][TAB][TAB]self.NaszButton = self.GetChild2("nazwa_z_locale")
    
#troche niżej ustwiamy co ma sie stać z naszym buttonem po kliknięciu
    
[TAB][TAB]if self.NaszButton :
[TAB][TAB][TAB]self.NaszButton.SetEvent(ui.__mem_func__(self.ShowWindow))

# zostało tylko przekierowanie do wcześniej przygotowanego kodu w interfacemodule
# dodajemy gdzieś pod koniec pliku  

[TAB]def ShowWindow(self):
[TAB][TAB]self.interface.ShowShopWindow()

 

game.py

 
# ostani krok to dodanie naszego przekierowania z klawisza :)

[TAB][TAB]onPressKeyDict[app.DIK_F6] = lambda : self.interface.ShowShopWindow()
 
@@@@@@
CO ZA GŁUPI TEN EDYTOR, 20 RAZY WSTWIAĆ 1 POST i dzielić na cześci bo się całości nie da....
Naprawcie to mpc ...

 

  • 2 tygodnie później...
Opublikowano

emm co do tworzenia nowego buttona to dobra nie opisales kk

ale ocb, gdzie ta linijka w jakim pliku?

 

przechodzimy do def __LoadWindow(self):
Opublikowano
Bez przesady, raczej jest masa tematów z tym jak dodać nowy button w eq, ale niech Ci będzie.. :
locale>inventorywindow.py
nad ## Inventory, Equipment Slots
dodajesz:
[TAB][TAB]{
[TAB][TAB][TAB]"name" : "panelboczny",
[TAB][TAB][TAB]"type" : "board",
[TAB][TAB][TAB]"style" : ("attach",),
[TAB][TAB][TAB]"x" : -5,
[TAB][TAB][TAB]"y" : 30,
[TAB][TAB][TAB]"width" : 60,
[TAB][TAB][TAB]"height" : 450,
[TAB][TAB][TAB]"children" :
[TAB][TAB][TAB](
[TAB][TAB][TAB][TAB]## CostumeButton
[TAB][TAB][TAB][TAB]{
[TAB][TAB][TAB][TAB][TAB]"name" : "nazwa_z_locale",
[TAB][TAB][TAB][TAB][TAB]"type" : "button",
[TAB][TAB][TAB][TAB][TAB]"x" : 11,
[TAB][TAB][TAB][TAB][TAB]"y" : 20,
[TAB][TAB][TAB][TAB][TAB]"tooltip_text" : "tekst po najechaniu",
[TAB][TAB][TAB][TAB][TAB]
[TAB][TAB][TAB][TAB][TAB]"tooltip_x" : -45,
[TAB][TAB][TAB][TAB][TAB]"tooltip_y" : 6,
[TAB][TAB][TAB][TAB][TAB]"default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga",
[TAB][TAB][TAB][TAB][TAB]"over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga",
[TAB][TAB][TAB][TAB][TAB]"down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga",
[TAB][TAB][TAB][TAB]},
[TAB][TAB][TAB]),
[TAB][TAB]},

 

A co do __LoadWindow to napisałem gdzie tego szukać (uiiventory.py), jedyne o czym zapomniałem to że są 3 takie,
wiec najlepiej będzie jak poszukasz:

wndItem = self.GetChild("ItemSlot")
 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...