Vielen Dank für die schnelle Antwort
Jetzt seh ich auch, warum meine Eingaben nicht geklappt haben.
Das der Input des RPG-Makers begrenzt ist, habe ich schon befürchtet, weil die Tabelle auf Scientia stark begrenzt war. Ich bin da auch leider mit dem Wert und der Konstanten durcheinander gekommen und ich hätte trigger statt press benutzen müssen. Als Script habe ich mir nun Cybersams geholt.
So wie ich das sehe müsste es ja reichen, wenn man im Input Modul die nötigen Tasten ergänzt, da ich aber dieses Modul nicht finde, gehe ich mal davon aus, dass man aus dem Script-Editor des RPG-Maker XP nicht drauf zugreifen kann, oder?
Was großes wollte ich nicht machen. Ich wollte nur, dass sich 2 Spieler ohne grafischen Schnickschnack verbinden und dann ein rundenbasierter Kampf startet.
Sonst hätte ich die IP auch mit einem Event über Input Number abfragen können.
Das Input-Modul ist versteckt in der RGSS, du kannst es mit dem Script-Editor nicht öffnen, nein, aber das ist auch nicht nötig. Du kannst funktionen einfach hinzufügen, alle Änderungen welche du im Script-Editor schreibst werden übernommen.
Also ich kriege leider einen ganzen Haufen Fehler. Zum einem gibt es wohl Probleme mit meiner Variable inputs wegen der Meldung "cannot convert fixum into string". Der Gedanke war eine Schleife zu basteln, welche die Tasten 0 bis 9 abfragt und wenn keine dieser Tasten gedrückt wurde, sollten Entf, Enter und . überprüft werden. Ich dachte, es wäre eine bessere Methode als jede Taste einzeln abzufragen, funktioniert aber leider nicht. Wie könnte ich diesen Fehler beheben? Und gibt es eine Möglichkeit die eingegebenen Zeichen auszugeben, während man die IP eingibt? Denn mache ich das über print oder ähnliches (hier Kernel.pbMessage), dann muss man nach jeder Eingabe die Meldung bestätigen, bevor man weiter machen kann.
Das andere Problem liegt wieder beim Socket. Soweit ich verstanden habe, muss der Port als Integer eingegeben werden, aber dann erhalte ich einen Syntaxfehler.
Mein letztes Problem ist, dass ich nach der Eingabe der IP in $aic = Socket.sockaddr_in(7654, target_ip) mit target_ip='127.0.0.1' die Fehlermeldung connection refused erhalte. Wohlgemerkt kann ich den Port im client socket ohne Unterschied als integer oder string angeben. Ersetze ich aber bei $s.listen(1) die 1 durch eine 2 verschwindet diese Fehlermeldung, aber das Spiel stürzt trotzdem ab.
Geändert von Krepusko (13.08.2012 um 03:08 Uhr)
Grund: ein paar kleine Fehler im Code korrigiert
Ich kann nur raten, da ich das Script nicht gesehen habe, aber ich nehme an, dass diese Zeile hier:
[quote]inputs="Keys::N_"+i[quote]
der Grund des Fehlers ist.
Immerhin versuchst du hier einen String und einen Integer zu addieren und das kann (und sollte auch) normalerweise nicht funktionieren.
Was Sockets und dergleichen angeht so solltest du vielleicht nicht hier sondern in einem Forum zur WinAPI nachfragen. Wir beantworten hier eigentlich nur Rubybezogene Probleme mit dem RPG-Maker.