Ich bin ein totaler Neuling. Ich möchte eine Abfrage machen, und zwar soll der Button erst dann angezeigt werden, wenn der User ein [GM] vor dem Namen hat. Nicht anders, genau so. Sollte er kein GM sein, soll der Button nicht angezeigt werden.
Ich habe das Gefühl, das ist total falsch. Was kann ich da tun?
Ja. Das war mein erster Versuch, und ich wusste auch, das er nicht klappen kann. Zudem kann es AUCH nicht funktionieren, da "player.GetName()" bereits [GM] enthält, und er den Button erst anzeigen würde, hieße ich: [GM][GM]xyz.
Ich sagte euch, ich bin ein Neuling.
Quote:
Originally Posted by Seחsi
Ich würde empfehlen mit Regex zu arbeiten:
Code:
import re
if not re.search("^\\[GM\\].+$", player.GetName()):
return
Allerdings würde ich generell davon abraten, solche Abfragen im Client (besonders im Python-Teil) zu machen.
Danke dir für den Tipp, aber es dient mehr zu meinem eigenen Zweck, und ich würde es erst zur Demonstration nutzen. Das Admin Panel können die User sowieso nicht verwenden, trotzdem sollen sie es nicht sehen, einfach, weil sie keine Admins sind.
Und wie ich bereits sagte, ich bin ein totaler Neuling. Ich habe keine Ahnung, wie ich mein Admin Panel ohne Probleme geschrieben habe.
Könntest du meinen Code mit deinem verbinden? Und könntest du mir auch erklären, was er genau bedeutet? Ich würde es sehr gerne verstehen.
In python an sich gibts die nette Function startswith(), ob die im Mt2 Client sinnvoll ist müssen dir Andere beantworten
Sprich ich würde mir das als absolut unerfahrener Python Programmier so vorstellen:
if player.GetName.startswith("[GM]")
In python an sich gibts die nette Function startswith(), ob die im Mt2 Client sinnvoll ist müssen dir Andere beantworten
Sprich ich würde mir das als absolut unerfahrener Python Programmier so vorstellen:
if player.GetName.startswith("[GM]")
Danke dir, sieht zwar sehr vielversprechend aus, aber funktioniert leider auch nicht. Hier war ich mir relativ sicher, das es klappen könnte. Vielleicht muss man den Befehl anders nutzen.
Könntest du meinen Code mit deinem verbinden? Und könntest du mir auch erklären, was er genau bedeutet? Ich würde es sehr gerne verstehen.
Ich wäre dir sehr dankbar.
Code:
def FaceButton(self):
if not re.search("^\\[GM\\].+$", player.GetName()):
self.Hide()
return
global AdminPanelOpen
AdminPanelOpen = ui.Button()
AdminPanelOpen.SetText("")
AdminPanelOpen.SetPosition(wndMgr.GetScreenWidth()-110,wndMgr.GetScreenHeight()-120)
AdminPanelOpen.SetSize(88, 21)
AdminPanelOpen.SetEvent(self.LoadMainForm.Show)
AdminPanelOpen.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
AdminPanelOpen.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
AdminPanelOpen.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
AdminPanelOpen.Show()
global AdminPanelText
AdminPanelText = ui.TextLine()
AdminPanelText.SetParent(AdminPanelOpen)
AdminPanelText.SetVerticalAlignCenter()
AdminPanelText.SetHorizontalAlignCenter()
AdminPanelText.SetPosition(43,10)
AdminPanelText.SetText("Admin Panel")
AdminPanelText.Show()
import re nicht vergessen!
Was das ganze macht kannst du hier nachlesen:
die Funktionen der einzelnen sind (fast) die selben wie in Java, nur finde ich die Liste in Java simpler aufgebaut, deshalb hier nochmal von Java:
Der von mir gezeigte Regex prüft funktioniert wie folgt:
^
Der String muss an dieser Stelle starten, es darf nichts vorher stehen.
\\
Escape für [, weil [ eine eigene Funktion als Regex-Zeichen hat, wir diese aber hier nicht nutzen möchten sondern das Zeichen im String vorhanden sein soll
[GM]
ein festgelegter Text, der in dem String so vorkommen soll. Das ] wird wieder escaped.
.
Beliebiges Zeichen
+
1 - * Vorkommnisse des zuvor angegebenen Ausdrucks.
$
Ende des Strings, auf den bis hierhin genannten Regex darf im String kein Zeichen folgen.
In Textform:
Der String muss mit [GM] anfangen, gefolgt von mindestens einem oder mehr weiteren beliebigen Zeichen. Danach darf nichts mehr kommen.
def FaceButton(self):
if not re.search("^\\[GM\\].+$", player.GetName()):
self.Hide()
return
global AdminPanelOpen
AdminPanelOpen = ui.Button()
AdminPanelOpen.SetText("")
AdminPanelOpen.SetPosition(wndMgr.GetScreenWidth()-110,wndMgr.GetScreenHeight()-120)
AdminPanelOpen.SetSize(88, 21)
AdminPanelOpen.SetEvent(self.LoadMainForm.Show)
AdminPanelOpen.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
AdminPanelOpen.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
AdminPanelOpen.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
AdminPanelOpen.Show()
global AdminPanelText
AdminPanelText = ui.TextLine()
AdminPanelText.SetParent(AdminPanelOpen)
AdminPanelText.SetVerticalAlignCenter()
AdminPanelText.SetHorizontalAlignCenter()
AdminPanelText.SetPosition(43,10)
AdminPanelText.SetText("Admin Panel")
AdminPanelText.Show()
import re nicht vergessen!
Was das ganze macht kannst du hier nachlesen:
die Funktionen der einzelnen sind (fast) die selben wie in Java, nur finde ich die Liste in Java simpler aufgebaut, deshalb hier nochmal von Java:
Der von mir gezeigte Regex prüft funktioniert wie folgt:
^
Der String muss an dieser Stelle starten, es darf nichts vorher stehen.
\\
Escape für [, weil [ eine eigene Funktion als Regex-Zeichen hat, wir diese aber hier nicht nutzen möchten sondern das Zeichen im String vorhanden sein soll
[GM]
ein festgelegter Text, der in dem String so vorkommen soll. Das ] wird wieder escaped.
.
Beliebiges Zeichen
+
1 - * Vorkommnisse des zuvor angegebenen Ausdrucks.
$
Ende des Strings, auf den bis hierhin genannten Regex darf im String kein Zeichen folgen.
In Textform:
Der String muss mit [GM] anfangen, gefolgt von mindestens einem oder mehr weiteren beliebigen Zeichen. Danach darf nichts mehr kommen.
Ich habe es getestet, und leider klappt es nicht. Du, können wir uns darüber in Skype unterhalten? Du scheinst mir, einiges zu verstehen, und ich lerne wirklich schnell. Magst du mir da ein wenig weiterhelfen? Ich möchte das Admin Panel nämlich langsam abschließen, brauche aber diese Abfrage, sonst kann ich es nicht vollkommen testen.
Generell hier mit globals zu arbeiten ist ziemlich unnütz und unschön..
Sonst wurden hier ja bereits zahlreiche Lösungswege vorgeschlagen. Wenn etwas nicht funktioniert liegt es an dir..
Phyton bildeinfügen? 07/14/2013 - General Coding - 3 Replies Hallo!
ich habe 2 fragen zu phyton
Frage 1.
window = {
"name" : "TaskBar",
"x" : 0,
M2 Phyton Loader.exe 05/13/2013 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 2 Replies Hey guys,i saw a phyton fishbot at DaRealFreak and i need a phyton loader to use it,how can i get it? a link for download may be...?
Phyton Help 11/28/2012 - Metin2 Private Server - 1 Replies Suche Jemand Der sich mit Python Auskennt und Kurz Zeit in Skype Hatt. Einfach Hier Rein Schreiben und ich adde
Phyton-Tutorial 09/26/2010 - Coding Tutorials - 4 Replies Hier ist ein kleines Tutorial mit Phyton:
[S]Phyton Experten 09/05/2010 - Metin2 Private Server - 0 Replies Halluuu...
Ich bin grade dabei etwas am 010er Client zu basteln ich doch ich bin schon weit gekommen nur suche ich noch einen Phyton Spezialisten der sich wirklich mit Phyton auskennt.
Da ich nicht all zuu viel Ahnung von .py habe.
Ich hoffe auf eine antwort.
Lg