Spiel beenden

Posted By: Cemper

Spiel beenden - 04/16/06 17:16

Hallo mal wieder,
ich bin einen Templateshooter am machen, muss mir aber selbst ein Skript zum Spiel beenden schreiben(A5). Ich hab im Level eine Mapentity platziert und hab ihr ein Skript geschrieben dass das Spiel beendet werden soll sobald der Player sie eingesammelt hat. Ich hab das folgendermassen gemacht:
Code:
 
action spiel_ziel
{
while (1)
{
if (my.x == player.x && my.y == player.y && my.z == player.z)
{ freeze_mode = 1;
wait (1);
exit();
}
}
}



Wenn ich das Spiel starte sagt der aber immer:

Error(97): Misssing keywords nonexistent/empty action exit

Was kann ich dagegen machen?
Dankeschön im voraus!!!
Posted By: Chansang

Re: Spiel beenden - 04/16/06 17:24

hi,
bei exit(); willst du ne Funktion aufrufen die nicht existiert.
Du must die Klammern weglassen

exit;
Posted By: Cemper

Re: Spiel beenden - 04/16/06 17:34

Dankeschön!!!
Daran lags!
(Den Fehler hab ich gemacht, weil das mit den Klammern in der Referenz steht
und ich auch Visual Basic schreibe und mich die ganzen Klammern in C-Skript also sowieso total verwirren...
Posted By: Cemper

Spiel beenden - Problem zwei - 04/16/06 17:43

Ich hab noch ein Problem mit obenstehendem Skript:
Man kann natürlich nie exakt die x,y und z-Werte der Mapentity treffen.
Sie ist zwar passable abba das geit trotzdem net.
Was kann man da machen???
Posted By: Xarthor

Re: Spiel beenden - Problem zwei - 04/16/06 17:58

Per vec_dist die distanz überprüfen und falls diese kleiner als ein bestimmter wert ist, dann das spiel beenden:
Code:

action spiel_ziel
{
while(player == null) { wait(1); }
while(1)
{
if(vec_dist(my.x,player.x) < 50)
{
freeze_mode = 1;
wait(1);
exit;
}
wait(1);
}
}


Posted By: Cemper

Re: Spiel beenden - Problem zwei - 04/17/06 09:00

Klappt nich.
Bei der vec_dist-Zeile sagt der jetzt immer

Missing/wrong parameter comma unexpected

Ich hab A5, ne? Kann das sein, dass das bei dir 'n A&-Skrpt ist?
Trotzdem danke... Was aber nicht heissen soll, das ich nich auf weitere Ideen hoffe...?
Posted By: Xarthor

Re: Spiel beenden - Problem zwei - 04/17/06 09:04

Hmm vec_dist(vector1,vector2); gabs auch schon in A5, das sollte also kein Problem sein.

Hast du in die action noch irgendetwas eingefügt?
Poste doch mal die action so wie du sie hast, ich kann in meinem Beispiel nämlich keinen Fehler entdecken.
Posted By: Cemper

Re: Spiel beenden - Problem zwei - 04/17/06 09:11

Code:


action spiel_ziel
{ while(player == null)
{ wait(1); }
while(1)
{ if(vec_dist(my.x,player.x && my.y,player.y && my.z,player.z) < 50)
{ freeze_mode = 1; wait(1); exit; } wait(1); }}



die y & z-Parameter habe ich noch eingefügt, damit das Spiel nicht beendet wird, wenn der Player dran vorbeiläuft.
Posted By: Xarthor

Re: Spiel beenden - Problem zwei - 04/17/06 09:48

jo is auch klar:
du kannst innerhalb des vec_dist befehls keine logischen verknüpfungen machen (&&).
Um die chance das der spieler dran vorbeiläuf zu minimieren kannst du:
a) die distanz kleiner machen also die 50 auf sagen wir 10 ändern
oder b) Ein collisions event benutzen

hier möglichkeit a:
Code:

action spiel_ziel
{
while(player==null) { wait(1); }
while(1)
{
if(vec_dist(my.x,player.x) < 10)
{
freeze_mode = 1;
wait(1);
exit;
}
wait(1);
}
}


Lass dich von dem .x innerhalb des vec_dists nicht irritieren! es werden trotzdem alle drei werte (x,y,z) übergeben, da das .x nur den ersten wert des vectors angibt.
vec_dist nimmt dann automatisch noch die nächsten beiden hinzu. (also in diesem fall .y und .z)

Möglichkeit b) (ZIEL MODEL DARF NICHT PASSABLE SEIN!)
Code:

function ziel_event()
{
if(event_type == event_impact || event_type == event_entity)
{
my.skill21 = 1;
}
}

action spiel_ziel
{
my.skill21 = 0;
my.enable_impact = on;
my.enable_entity = on;
my.event = ziel_event;

while(my.skill21 == 0) { wait(1); }

freeze_mode = 1;
wait(1);
exit;
}


© 2024 lite-C Forums