|
You last visited: Today at 16:34
Advertisement
[Phyton] Sicherheits-Abfrage Fenster
Discussion on [Phyton] Sicherheits-Abfrage Fenster within the Metin2 Private Server forum part of the Metin2 category.
12/05/2015, 06:11
|
#1
|
elite*gold: 0
Join Date: Nov 2012
Posts: 1,620
Received Thanks: 1,746
|
[Phyton] Sicherheits-Abfrage Fenster
Guten Tag. Ich brauche wieder mal eure Hilfe. Ich habe hier diesen Code(ist eigentlich größer, ich habe aber nur das drinnen gelassen, was nun wichtig ist) und muss wissen, wie ich eine Art "Sicherheits-Abfrage" machen kann.
Wenn ich auf den Button "ClearINV" drücke, soll ein QuestionDialog auftauchen, so eins:
Das ist mein Code. In diesem Code wird, nachdem ich auf "ClearINV" gedrückt habe, direkt "self.IPCI" ausgeführt. Aber ich möchte, das er nicht diesen Befehl ausführt, sondern das oben genannte Fenster erscheint(oder sowas ähnliches). Wenn ich auf "Ja" drücke, DANN soll er erst "self.IPCI" ausführen.
Code:
from switchbot import Bot
import os
import uiwiki
import app
import dbg
import grp
import item
import background
import chr
import chrmgr
import player
import snd
import chat
import textTail
import snd
import net
import effect
import wndMgr
import fly
import systemSetting
import quest
import guild
import skill
import messenger
import localeInfo
import constInfo
import exchange
import ime
import time
import uiHealth
import event
import ui
import uiCommon
import uiPhaseCurtain
import uiMapNameShower
import uiAffectShower
import uiPlayerGauge
import uiCharacter
import uiTarget
import uiRainSystem
import uiAchievement
# PRIVATE_SHOP_PRICE_LIST
import uiPrivateShopBuilder
# END_OF_PRIVATE_SHOP_PRICE_LIST
import mouseModule
import consoleModule
import localeInfo
import playerSettingModule
import interfaceModule
import musicInfo
import debugInfo
import stringCommander
import uiteleport
import uiTaskbar
from _weakref import proxy
class AdminPanel(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.LoadInterface()
def __del__(self):
ui.ScriptWindow.__del__(self)
def LoadInterface(self):
self.LoadMainForm()
self.FaceButton()
def LoadMainForm(self):
##########MainForm##########
global OnOff
self.LoadMainForm = ui.BoardWithTitleBar()
self.LoadMainForm.SetSize(200, 600)
self.LoadMainForm.SetPosition(wndMgr.GetScreenWidth()-360, wndMgr.GetScreenHeight()-700)
self.LoadMainForm.AddFlag("movable")
self.LoadMainForm.AddFlag("float")
self.LoadMainForm.SetTitleName("Admin Panel")
self.LoadMainForm.SetCloseEvent(self.LoadMainForm.Hide)
self.LoadMainForm.Show()
##########Interface##########
##########Buttons im Programm##########
self.ipGM = ui.Button()
self.ipGM.SetParent(self.LoadMainForm)
self.ipGM.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
self.ipGM.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
self.ipGM.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
self.ipGM.SetText("ClearINV")
self.ipGM.SetPosition(125, 110)
self.ipGM.SetEvent(ui.__mem_func__(self.IPCI))
self.ipGM.Show()
##########Slotbars/EditLines im Programm##########
##########Definierungen##########
def FaceButton(self):
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()
def IPCI(self):
net.SendChatPacket("/ip")
AdminPanelDialog = AdminPanel()
AdminPanelDialog.LoadMainForm.Hide()
Natürlich frage ich wie immer nur, weil ich mit meinen eigenen Möglichkeiten am Ende bin, und total gestresst. Ich hoffe, mir kann jemand helfen.
|
|
|
12/05/2015, 12:22
|
#2
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,258
|
Wie im voherigen Thread auch, nutze ich die Möglichkeiten die der Client gibt.
In der uiCommon.py wird genau so ein Questiondialog generiert. Den nutze ich.
Code:
from switchbot import Bot
import os
import uiwiki
import app
import dbg
import grp
import item
import background
import chr
import chrmgr
import player
import snd
import chat
import textTail
import snd
import net
import effect
import wndMgr
import fly
import systemSetting
import quest
import guild
import skill
import messenger
import localeInfo
import constInfo
import exchange
import ime
import time
import uiHealth
import event
import ui
import uiCommon # import für den QuestionDialog
import uiPhaseCurtain
import uiMapNameShower
import uiAffectShower
import uiPlayerGauge
import uiCharacter
import uiTarget
import uiRainSystem
import uiAchievement
# PRIVATE_SHOP_PRICE_LIST
import uiPrivateShopBuilder
# END_OF_PRIVATE_SHOP_PRICE_LIST
import mouseModule
import consoleModule
import localeInfo
import playerSettingModule
import interfaceModule
import musicInfo
import debugInfo
import stringCommander
import uiteleport
import uiTaskbar
from _weakref import proxy
class AdminPanel(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.LoadInterface()
def __del__(self):
ui.ScriptWindow.__del__(self)
def LoadInterface(self):
self.LoadMainForm()
self.FaceButton()
def LoadMainForm(self):
##########MainForm##########
global OnOff
self.LoadMainForm = ui.BoardWithTitleBar()
self.LoadMainForm.SetSize(200, 600)
self.LoadMainForm.SetPosition(wndMgr.GetScreenWidth()-360, wndMgr.GetScreenHeight()-700)
self.LoadMainForm.AddFlag("movable")
self.LoadMainForm.AddFlag("float")
self.LoadMainForm.SetTitleName("Admin Panel")
self.LoadMainForm.SetCloseEvent(self.LoadMainForm.Hide)
self.LoadMainForm.Show()
##########Interface##########
##########Buttons im Programm##########
self.ipGM = ui.Button()
self.ipGM.SetParent(self.LoadMainForm)
self.ipGM.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
self.ipGM.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
self.ipGM.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
self.ipGM.SetText("ClearINV")
self.ipGM.SetPosition(125, 110)
self.ipGM.SetEvent(ui.__mem_func__(self.OpenQuestionDialog)) # QuestionDialog aufrufen
self.ipGM.Show()
##########Slotbars/EditLines im Programm##########
##########Definierungen##########
def FaceButton(self):
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()
# Meine Einträge
def OpenQuestionDialog(self):
wndQuestionDialog = uiCommon.QuestionDialog()
wndQuestionDialog.SetText("Willst du wirklich in die Stadt zurück?")
wndQuestionDialog.SetAcceptEvent(lambda arg=1: self.AnswerQuestionDialog(arg))
wndQuestionDialog.SetCancelEvent(lambda arg=0: self.AnswerQuestionDialog(arg))
wndQuestionDialog.Open()
self.wndQuestionDialog = wndQuestionDialog
def AnswerQuestionDialog(self, answer):
if not self.wndQuestionDialog:
return
if answer==1:
self.IPCI() # deine Funktion
self.wndQuestionDialog.Close()
self.wndQuestionDialog = None
# Meine Einträge End
def IPCI(self):
net.SendChatPacket("/ip")
AdminPanelDialog = AdminPanel()
AdminPanelDialog.LoadMainForm.Hide()
|
|
|
12/05/2015, 21:36
|
#3
|
elite*gold: 0
Join Date: Nov 2012
Posts: 1,620
Received Thanks: 1,746
|
Quote:
Originally Posted by Kilroy.
Wie im voherigen Thread auch, nutze ich die Möglichkeiten die der Client gibt.
In der uiCommon.py wird genau so ein Questiondialog generiert. Den nutze ich.
Code:
from switchbot import Bot
import os
import uiwiki
import app
import dbg
import grp
import item
import background
import chr
import chrmgr
import player
import snd
import chat
import textTail
import snd
import net
import effect
import wndMgr
import fly
import systemSetting
import quest
import guild
import skill
import messenger
import localeInfo
import constInfo
import exchange
import ime
import time
import uiHealth
import event
import ui
import uiCommon # import für den QuestionDialog
import uiPhaseCurtain
import uiMapNameShower
import uiAffectShower
import uiPlayerGauge
import uiCharacter
import uiTarget
import uiRainSystem
import uiAchievement
# PRIVATE_SHOP_PRICE_LIST
import uiPrivateShopBuilder
# END_OF_PRIVATE_SHOP_PRICE_LIST
import mouseModule
import consoleModule
import localeInfo
import playerSettingModule
import interfaceModule
import musicInfo
import debugInfo
import stringCommander
import uiteleport
import uiTaskbar
from _weakref import proxy
class AdminPanel(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.LoadInterface()
def __del__(self):
ui.ScriptWindow.__del__(self)
def LoadInterface(self):
self.LoadMainForm()
self.FaceButton()
def LoadMainForm(self):
##########MainForm##########
global OnOff
self.LoadMainForm = ui.BoardWithTitleBar()
self.LoadMainForm.SetSize(200, 600)
self.LoadMainForm.SetPosition(wndMgr.GetScreenWidth()-360, wndMgr.GetScreenHeight()-700)
self.LoadMainForm.AddFlag("movable")
self.LoadMainForm.AddFlag("float")
self.LoadMainForm.SetTitleName("Admin Panel")
self.LoadMainForm.SetCloseEvent(self.LoadMainForm.Hide)
self.LoadMainForm.Show()
##########Interface##########
##########Buttons im Programm##########
self.ipGM = ui.Button()
self.ipGM.SetParent(self.LoadMainForm)
self.ipGM.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")
self.ipGM.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")
self.ipGM.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")
self.ipGM.SetText("ClearINV")
self.ipGM.SetPosition(125, 110)
self.ipGM.SetEvent(ui.__mem_func__(self.OpenQuestionDialog)) # QuestionDialog aufrufen
self.ipGM.Show()
##########Slotbars/EditLines im Programm##########
##########Definierungen##########
def FaceButton(self):
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()
# Meine Einträge
def OpenQuestionDialog(self):
wndQuestionDialog = uiCommon.QuestionDialog()
wndQuestionDialog.SetText("Willst du wirklich in die Stadt zurück?")
wndQuestionDialog.SetAcceptEvent(lambda arg=1: self.AnswerQuestionDialog(arg))
wndQuestionDialog.SetCancelEvent(lambda arg=0: self.AnswerQuestionDialog(arg))
wndQuestionDialog.Open()
self.wndQuestionDialog = wndQuestionDialog
def AnswerQuestionDialog(self, answer):
if not self.wndQuestionDialog:
return
if answer==1:
self.IPCI() # deine Funktion
self.wndQuestionDialog.Close()
self.wndQuestionDialog = None
# Meine Einträge End
def IPCI(self):
net.SendChatPacket("/ip")
AdminPanelDialog = AdminPanel()
AdminPanelDialog.LoadMainForm.Hide()
|
Danke dir. Wieder mal sehr hilfreich.
Bitte seid mir nicht böse, wenn ich jetzt sehr sehr sehr viele Fragen stellen werde. Es ist viel stressfreier, es richtig zu machen, als es selber zu machen und dann mit vielen Fehlern.
Eine Frage hätte ich aber noch..
Und zwar: Wenn ich ein zweites QuestionDialog in der selben Class haben will, darf ich dann genau das selbe Script in einer neuen Definition(die anders heißt) eingeben, und diese dann aufrufen, ohne das der Code einen Fehler ausgibt?
|
|
|
12/06/2015, 00:42
|
#4
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,258
|
Quote:
Originally Posted by Kira Mikami
Danke dir. Wieder mal sehr hilfreich.
Bitte seid mir nicht böse, wenn ich jetzt sehr sehr sehr viele Fragen stellen werde. Es ist viel stressfreier, es richtig zu machen, als es selber zu machen und dann mit vielen Fehlern.
Eine Frage hätte ich aber noch..
Und zwar: Wenn ich ein zweites QuestionDialog in der selben Class haben will, darf ich dann genau das selbe Script in einer neuen Definition(die anders heißt) eingeben, und diese dann aufrufen, ohne das der Code einen Fehler ausgibt?
|
Ja. Hauptsache die Funktions- und Variablenname sind anders.
|
|
|
|
Similar Threads
|
[Source] Erweitertes/Modifiziertes Admin Item Create Fenster(/ci Fenster)
11/15/2016 - Flyff PServer Guides & Releases - 20 Replies
Ich hatte ein wenig Langeweile und habe mal das Admin Item Create Fenster geändert.
Features:
-Nach Kategorie IK3 sortieren
-Comboboxen haben jetzt eine Scrollbar(Wer es öfters benutzt weißt das der Inhalt der unter das Neuz Fenster geht nicht mehr auswählbar ist.)
-Sortieren nach Namen(Ihr könnt eine Buchstabenreihenfolge eingeben, nach dem gefiltert wird)
-Upgrade
-Element
-Element Upgrade
|
[PHYTON] GM Abfrage
12/05/2015 - Metin2 Private Server - 15 Replies
Guten Tag.
Ich verstehe etwas nicht.
def FaceButton(self):
if player.GetName == ("" + " " + (player.GetName)):
global AdminPanelOpen
AdminPanelOpen = ui.Button()
|
Fenster Position beim 1 Fenster falsch
10/17/2013 - Metin2 Private Server - 0 Replies
Hallo epvpler,
Ich habe zurzeit ein Problem bei meinem Client. Ich verwende den Invoice Client und habe ihn etwas umgepackt. An sich funktioniert er einwandfrei nur ist mir jetzt ein Bug aufgefallen.
Normalerweise sollte das erste Fenster des Client in der Oberen Linken ecke sein und das Zweite und weitere in der Unteren Rechten Ecke.
Bei mir ist es so dass sich schon das erste Fenster in der Unteren Rechten Ecke öffnen anstatt in der Oberen Linken Ecke.
Wenn jemand eine Idee hat...
|
Fenster gehen nicht in Hintegrund wenn man anderes Fenster anklickt
10/03/2013 - Technical Support - 2 Replies
Hey,
Habe nen echt nerviges Problem!
Habe ich irgendein Programm offen was kleines z.B Passwort Generator usw.. und gehe dann in das Programm, und dann wieder z.B auf den Ordner bleibt das Fenster offen, geht halt nicht wies eig sein soll automatisch im hintergrund
schon einige programme versucht, bei allen das gleiche
hoffe einer kann helfen!
|
win7 fenstervorschau / fenster neben fenster problem
09/17/2012 - Technical Support - 0 Replies
ich habe schon bei google gesucht aber ich finde nur müll oder falsche angaben dazu wie ich die zeit ändere die es braucht bis das vorschau fenster in der taskleiste braucht um angezeigt zu werden
das zweite:
in win 7 kann man fenster neben fenster neben fenster auf dem bildschirm aufteilen lassen
leider funktioniert das nicht mit allen fenstern wie ich das gerne möchte und wollte wissen ob es programme/tricks gibt die das ganze erzwingen sodas ich alle möglichen fenster aufteilen...
|
All times are GMT +2. The time now is 16:34.
|
|