Benötigt:
- brain
Sachen die ihr könnt nach diesem Thread:
- Class in bezug auf GUI creation
- IQ = IQ + 10
- Button + Funktion
- Ein bischen über for schleifen & Listen
- imports
- Bilder einfügen
- SetParent (Hab ich schonmal erklärt:Hier)
How-to:
So die ersten zeilen sollten klar sein. Ich hab mal das wichtigste Importet.
In Zeile 12 finden wir den Namer der Beginn der Class:
Erklärt sich denk ich mal von selbst ist halt der Name :P
Dann gehts weiter
Zu Zeile 14 & 15
Dort legen wir eine Leere Liste UI an und eine eine schon mit ein tragen versehende Liste namens Text
Das ist das Herzstück der GUI. Ohne diese Funktion lädt sie sich nicht und ohne das constInfo.epvpgui = 1 könnte man sie hundert mal aufrufen. ConstInfo wird weiter unten erklärt
So wie ihr oben vllt schon festgestellt habt wird bei der Funktion __init__ eine Funktion namens LoadUI() geladen. Diese müssen wir natürlich erstellen. Das wird auch unsere Funktion sein wo wir unsere Ganzen Buttons Board etc. reinschreiben
Name der Funktion und dann gehts jetzt ins eingemachte
Mit
Erstellt ihr ein Board mit den Maßen 700 breit und 350 px hoch. Dieses Board is beweglich & und ihr habt eine TitleBar die "InfoBoard " heißt. Desweiteren setzen wir das Board ihr die Mitte wenn man es auffruft mit SetCenterPosition(). Danach setzten wir das Close Event zur Funktion die wir eben schon geschrieben haben nämlich __del__. P.s. ich rate euch immer __init__ und __del__ zu nehmen.
So jetzt erstellen wir ein Button:
Ich hab den code kommentiert
So jetzt erstellen wir ein Bild:
Ja ihr kennt das Prozedere. Ist eig immer das selbe. Nun kommen wir zum Text normalerweise seht ihr jetzt 6 mal Text1 = ui.Textline() Text2 = ui.Textline() Text3 = ui.Textline() usw. Da ihr ab sofort zu den 'coolen' Scriptern gehört. Verwendet ihr dieses:
So kommen wir zum letzten Punkt wir haben ja mit:
Den Button 1 die Funktion __buttonfunc zu gewiesen. Diese müssen wir natürlich auch noch erstellen. Dies tuhen wir in der selben Datei natürlich mit
Setzt epvpgui auf 0 und schließt das Board.
In Zeile 12 finden wir den Namer der Beginn der Class:
Code:
class EpvpGuiDialog(ui.ScriptWindow): # <-- Open with EpvpGuiDialog().Show()
Dann gehts weiter
Zu Zeile 14 & 15
Code:
UI = [] Text = ["[SA]Horny IST DOLL", "NOCH MEHR TEXT", "MR.CAPSLOCK FUCK YEAH" , "WEIL ICH ES KANN", ".Analyze is guter Junge <3"]
Code:
def __init__(self): ui.ScriptWindow.__init__(self) self.LoadUI() constInfo.epvpgui = 1 def __del__(self): ui.ScriptWindow.__del__(self) self.Board.Hide() constInfo.epvpgui = 0
So wie ihr oben vllt schon festgestellt habt wird bei der Funktion __init__ eine Funktion namens LoadUI() geladen. Diese müssen wir natürlich erstellen. Das wird auch unsere Funktion sein wo wir unsere Ganzen Buttons Board etc. reinschreiben
Code:
def LoadUI(self):
Mit
Code:
self.Board = ui.BoardWithTitleBar() # Erstellt ein Board mit einer Bar oben d.h. mann kann es bewegen self.Board.SetSize(700, 350) # Höhe und Breite Des Boards self.Board.SetCenterPosition() # Setzt in die Mitter des Screens self.Board.AddFlag("movable") # Ja das macht erst eig movable self.Board.AddFlag("float") self.Board.SetTitleName("Info Board :)")# Name der TittelBar self.Board.SetCloseEvent(self.__del__) self.Board.Show()
So jetzt erstellen wir ein Button:
Code:
Button1 = ui.Button() # Buttonname = Button Button1.SetParent(self.Board) # Schaut mein Guide über SetParents Button1.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub") # So sieht der Button normal aus Button1.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub") # Wenn die Maus drüber ist Button1.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub") # Wenn er gedrückt wird Button1.SetText("Schliess Mich") # Name des Buttons Button1.SetEvent(self.__buttonfunc) # Funktionsname des Buttons Button1.SetPosition(350, 50) #Position auf dem Board Button1.Show() # Wird Angezeigt self.UI.append(Button1) # Wird in die Liste UI aufgenommen Nötig sonst wird er nicht angezeigt
So jetzt erstellen wir ein Bild:
Code:
Bild = ui.AniImageBox() # Bildname = AniImageBox() Bild.SetParent(self.Board) # Siehe Oben Bild.AppendImage("d:/ymir work/ui/namida2.dds") # Pfad des Bildes Bild.SetPosition(100, 200) # Position des Bildes Bild.Show() # Wird angezeigt self.UI.append(Bild) # In Die Liste damit :D
Code:
y = 40 # Startwert von y for i in xrange(5): # Schleife von 0 - 4 einmal durch Update1 = ui.TextLine() # Textlinie Update1.SetParent(self.Board) # Siehe oben Update1.SetDefaultFontName() # erklärt sich von selbst Update1.SetOutline() # Kein plan was das is xD Update1.SetFeather() # Kein plan was das is xD Update1.SetText(self.Text[i]) # So hier ruft ihr Eure Liste ab Python fängt immer bei 0 an also textlinie1 = [SA]Horny IST DOLL textlinie2 = NOCH MEHR TEXT usw. bis 4 halt Update1.SetPosition(20, y) # Hier wird bei jeder Textlinie immer 25 dazu gezählt y += 25 # da sind die 25 Update1.SetFontColor(0.42, 0.54, 0.25) # Farbe :D Update1.Show() # wird angezeigt self.UI.append(Update1) # in die liste damit :D
Code:
Button1.SetEvent(self.__buttonfunc)
Code:
def __buttonfunc(self): self.Board.Hide() constInfo.epvpgui = 0
How-to einbauen:
In der constInfo.py müsst ihr epvpgui = 0 schreiben
und in der game deklariert ihr einen hotkey + Funktion und schreibt dann dieses unter die Funktion:
Code:
import epvpgui try: if constInfo.epvpgui != 1: exec 'epvpgui.EpvpGuiDialog().Show()' else: chat.AppendChat(chat.CHAT_TYPE_INFO, "<System> Ist bereits offnen") except ImportError: import dbg,app dbg.Trace('epvpgui.py Importing error :(') app.Abort()
Hier der ganze Code:
Code:
import ui import chat import app import player import snd import game import item import net import constInfo import urllib class EpvpGuiDialog(ui.ScriptWindow): # <-- Open with EpvpGuiDialog().Show() UI = [] Text = ["[SA]Horny IST DOLL", "NOCH MEHR TEXT", "MR.CAPSLOCK FUCK YEAH" , "WEIL ICH ES KANN", ".Analyze is guter Junge <3"] def __init__(self): ui.ScriptWindow.__init__(self) self.LoadUI() constInfo.epvpgui = 1 def __del__(self): ui.ScriptWindow.__del__(self) self.Board.Hide() constInfo.epvpgui = 0 def LoadUI(self): ###Haupt-Board### self.Board = ui.BoardWithTitleBar() # Erstellt ein Board mit einer Bar oben d.h. mann kann es bewegen self.Board.SetSize(700, 350) # Höhe und Breite Des Boards self.Board.SetCenterPosition() # Setzt in die Mitter des Screens self.Board.AddFlag("movable") # Ja das macht erst eig movable self.Board.AddFlag("float") self.Board.SetTitleName("Info Board :)")# Name der TittelBar self.Board.SetCloseEvent(self.__del__) self.Board.Show() Button1 = ui.Button() Button1.SetParent(self.Board) Button1.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub") Button1.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub") Button1.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub") Button1.SetText("Schliess Mich") Button1.SetEvent(self.__buttonfunc) Button1.SetPosition(350, 50) Button1.Show() self.UI.append(Button1) Bild = ui.AniImageBox() Bild.SetParent(self.Board) Bild.AppendImage("d:/ymir work/ui/namida2.dds") Bild.SetPosition(100, 200) Bild.Show() self.UI.append(Bild) y = 40 for i in xrange(5): Update1 = ui.TextLine() Update1.SetParent(self.Board) Update1.SetDefaultFontName() Update1.SetOutline() Update1.SetFeather() Update1.SetText(self.Text[i]) Update1.SetPosition(20, y) y += 25 Update1.SetFontColor(0.42, 0.54, 0.25) Update1.Show() self.UI.append(Update1) def __buttonfunc(self): self.Board.Hide() constInfo.epvpgui = 0
P.s Falls ihr Fragen habt stellt diese Bitte hier danke.