[H]Python befehl zum Server/Quest

07/24/2013 07:53 Noa_#1
Hallo, ich bin zurzeit am Python lernen und möchte ein befehl bzw ein integer zum Server senden, diese zahl möchte ich als variable benutzen
in der Game
PHP Code:
    def __get(self):
        return 
player.GetTargetVID() 
in der Quest
PHP Code:
when kill begin
            local vid
=cmdchat("get")
            if (
vid==pc.get_vid()) then return end
            say
("Vid des gegners "..vid)
        
end 
das Problem ist, das es nicht funktioniert (hätte mich auch gewundert wenn doch), gibt es eine andere Möglichkeit ein wert vom Clienten auf dem Server zu senden und diesen wert evtl. in einer Variable zu speichern?

Freue mich immer auf hilfreiche Antworten, mfg Noa
07/24/2013 08:05 Fr33ak#2
Das kann nicht funktionieren, du bräuchtest eine Methode die blockt, bis der Client antwortet.
07/24/2013 08:25 Noa_#3
das es nicht funktioniert sehe ich auch^^
in dem Beispiel habe ich nur das return lokal gestellt dh. nur im Clienten in der Funktion wiedergegeben es wird kein wert zum Server gesendet, dafür bräuchte ich die passende Funktion.
beim how to oder release kp vom client-server kommunikation wird diese Funktion benutzt
"net.SendQuestInputStringPacket("1")"
was mich daran stört ist das Eingabefeld...
07/24/2013 12:34 ProfessorEnte#4
Wenn du es raust hast koennteste es ja hier posten bitte, wuerd mich auch interessieren! :p
Probiere jetzt aber auch selber mal rum.
07/24/2013 12:58 Mijago#5
wie man Daten vom Client zu Quests schickt, wird doch schon seit Monaten praktiziert und publiziert Oo
07/24/2013 13:01 Noa_#6
praktizieren tue ich auch,publiziert eher weniger zumindest nicht so wie man es gerne möchte
07/24/2013 14:15 Fear *_*#7
Stört dich des Fenster was dann auf geht oder was stört dich genau an "net.SendQuestInputStringPacket("1")"
07/24/2013 14:17 .XXShuzZzle#8
1. Lösung ist mir net.SendQuestInputStringPacket
2. Eingabefeld weg schau mal uiquest da gibts sogar für die Lösung nen kommentar in der datei
07/24/2013 14:41 Noa_#9
Ich hab den howto/release nachgebaut und das hier in die quest eingetragen:
PHP Code:
        function getinput(par)
            
cmdchat("getinputbegin")
            
local ret input(cmdchat(par))
            
cmdchat("getinputend")
            return 
ret
        end
        when kill begin
            timer
("peng",1)
        
end
        when peng
.timer begin
            cleartimer
("peng")
            
local a =_lvlup.getinput("getinput")
            
say(a)
        
end 
game:
PHP Code:
            "getinputbegin"            self.__Inputget1,
            
"getinputend"            self.__Inputget2,
            
"getinput"                self.__Inputget3,
________________

    def __Inputget1
(self):
        
constInfo.INPUT_IGNORE 
        
    def __Inputget2
(self):
        
constInfo.INPUT_IGNORE 0
        
    def __Inputget3
(self): 
        
net.SendQuestInputStringPacket(str(player.GetTargetVID())) 
constinfo:
PHP Code:
INPUT_IGNORE 
uiquest:
unter
def __init__(self,skin,idx):
PHP Code:
        import constInfo
        
if constInfo.INPUT_IGNORE == 1:
            return 
Soweit alles schön und gut, bis ich ein mob kille, bekomme ich diesen Fehler.
PHP Code:
freebsd# terminate called after throwing an instance of 'std::logic_error'
  
what():  basic_string::_S_construct NULL not valid 
mein server stürtzt ab und wenn ich das 3x mache kommt connection refused
bei einem npc würde das direkt beim chat gehen, jedoch nicht beim kill