Du hast denselben "Rookie"-Fehler : ) wie ich damals. Aber das ist nicht schlimm.
Mit "on_space" ladest du ein Entity und weist dem die funktion
ding zu. Wenn du jetzt mein Teil unten gelesen hast, wirst du jetzt wissen, dass diese Function/Action auf dem Server ausgeführt wird.
Da du jetzt in dieser Funktion
ding key_force.x und key_force.y verwendest, kann die Tastatureingabe nur vom Server verarbeitet werden. D.H. dass du nur auf dem PC mit "-sv -cl" den Fisch steuern kannst.
Tips:
Hier musst du eine Funktion erzeugen, die dir die Taste abfragt und sendet.
code:
function input_scan()
{
while (1)
{
if (player) // gibt's den Player?
{
player.force_x = key_force.x;
player.force_y = key_force.y;
player.force_z = 0;
send_vec(player.force_x); // sendet force_x, force_y und force_z zum Server
}
wait(1);
}
}
mit send_vec kennt der Server die Variablen und kannst du mit my.force_x ansprechen.
Dazu musst du 3 neue definitionen machen:
code:
define force_x skill30;
define force_y skill31;
define force_z skill32;
Sonst kannst du die Werte nicht senden.
Danach änderst du in der Action ding folgendes:
code:
force.x = my.force_y;
turnforce.pan = my.force_x;
Zusätzlich würde ich noch am Anfang dieser Action
code:
my.enable_disconnect = on;
my.event = _actor_connect;
und die funktion
code:
function _actor_connect()
{
if(event_type == event_disconnect) { wait(1); ent_remove(me); }
}
einfugen, damit, wenn sich einen Klient abhängt, auf allen anderen das Entity gelöscht wird.
P.S. Lösche die Funktion send_skill oder nenne diese um, weil diese ist eine wdl-funktion. Und wen du es über on_--- aufrufst, lasse while(1) weg.
So, ich hoffe, dass ich nichts vergessen habe. Sonnst zippe ich deine Sache und sende es dir.
Ach ja: Lösche in der Actin ding
[/CODE]
if(client == 0)
{
player = me;
}
[/CODE]
Weil das bringt dein Teil auch durcheinander
Gruss