Skills an Pathnode abfragen klappt nicht!

Posted By: DexLoomer

Skills an Pathnode abfragen klappt nicht! - 05/30/07 20:12

Hi Leute!
Ich mochte meine Gegner auf einen Pfad patolieren lassen, den ich im WED erstellt habe.
Das funktioniert auch prima, nur sollen sie auch an bestimmten Node´s anhalten uns pausieren.
Die Skills der Nodes habe ich im WED entsprechend erhöht, aber die Zeilen die diese Werte abfragen sollen klappen nicht!
Im Moment habe ich an der Stelle wo die Standanimation später hinkommt, nur einen Beep() zum Ausprobieren.
Kann mir jemand helfen?



Code:
  
//Var´s für Pathwalk
var force[3];
var aforce[3];
var my_angle[3];
var force;
var ang_fric = 0.6;

var path_skills[6];
/////////////////////////////////////////////////////



Auszug aus Code...
.
.
.
if ( my.pathwalk == 1 )
{
// lass die Entity einen Rundweg folgen
my._FORCE = 5; // Geschwindigkeit der Drehung des Gegners
temp.pan = 360; // finde den Pfad und hänge ihn an die Entity
temp.tilt = 180;
temp.z = 1000;
result = scan_path(my.x,temp);
if (result == 0) { return; } // kein Path gefunden
ent_waypoint(my._TARGET_X,1); // speichere ersten Wegpunkt
while (1)
{
check_state(); // Zustand wird überprüft
if (my.alarm != 0) {break;}

ent_cycle("walk", my.anim_perc % 100); // Hier den Animationsframe angeben
my.anim_perc += 6 * time; // Hier die Geschwindigkeit der Animation ändern
temp.x = my._TARGET_X - my.x; // finde die Richtung zum Wegpunkt
temp.y = my._TARGET_Y - my.y;
temp.z = 0;
result = vec_to_angle(my_angle,temp);
// in Zielnähe? Dann finde den nächsten Wegpunkt

if (result < 25)
{


// DIESE ZEILEN GEHEN NICHT!!!!
path_getnode(me, my._TARGET_X, NULL, path_skills);
if (path_skills[1] != 0)
{
Beep(); // Hier kommt später die `Stand`-Animation
}

ent_nextpoint(my._TARGET_X);
}
// wende und gehe Richtung Ziel
force = my._FORCE;
actor2_turn(); // wende dich dem Wegpunkt zu
actor2_move(); // geh geradeaus
wait(1);
}
}
.
.
.
Auszug aus Code...




Posted By: DexLoomer

Re: Skills an Pathnode abfragen klappt nicht! - 05/31/07 06:32

Kann mir jemand einen Tip geben?
Ich denke in meiner ´path_getnode(me, my._TARGET_X, NULL, path_skills);´ Anweisung ist eine Variable falsch.
Aber ich kann den Fehler nicht finden!
Posted By: Captain_Kiyaku

Re: Skills an Pathnode abfragen klappt nicht! - 05/31/07 08:54

sicher das im 2. skill auch was drin steht? Falls du nur dem 1. Skill einen wert gegeben hat, sollte das path_skills[0] sein, denke ich mal

ausserdem probier mal ein exit(); anstatt einem beep();, vielleicht geht das beep ja nicht.
Posted By: DexLoomer

Re: Skills an Pathnode abfragen klappt nicht! - 05/31/07 11:58

Jap, Danke für deine Antwort!
Habe zum testen in alle 6 Skills, einer Node, den Wert 100 eingetragen.
Das Beep() hab ich auch erstetzt.
Leider aber beides ohne Erfolg!
Posted By: Fenriswolf

Re: Skills an Pathnode abfragen klappt nicht! - 05/31/07 13:23

Hi,

Du solltest ertmal die alte Syntax deines Scriptes mit den neuen Befehlen ersetzen:
scan_path -> path_scan
ent_waypoint -> path_nodepos
ent_nextpoint -> path_nextnode
Im Handbuch findest du bei path_scan ein entsprechendes Scriptbeispiel!

Quote:

path_getnode(me, my._TARGET_X, NULL, path_skills);



Anstatt my._target_x musst du als zweiten Parameter die Nummer des Knotens angeben. Die erhältst du mit path_nextnode als Rückgabewert.
_target_x bzw. der Vektor in dem die Knotenposition gespeichert werden soll, wird als dritter Parameter (hier anstatt NULL) angegeben.
Posted By: DexLoomer

Re: Skills an Pathnode abfragen klappt nicht! - 05/31/07 18:53

Hi Fenriswolf, vielen Dank für deine Tips,
aber ich bekomme immer Fehlermeldungen wenn ich die Befehle ersetze.
Kannst Du mir ein Beispiel geben?
Posted By: Fenriswolf

Re: Skills an Pathnode abfragen klappt nicht! - 05/31/07 20:24

Klar, du kannst folgenden Code mal ausprobieren.
Es handelt sich um eine modifizierte Version des Codebeispiels aus dem Handbuch.
Dort funktioniert auch die if-Abfrage der Knoten-Skills, die du einbauen wolltest.

Und ich muss mich verbessern: ent_waypoint muss nicht mit ent_nodepos, sondern mit ent_getnode ausgetauscht werden. Die Function ent_nodepos wird zwar vom Beispielcode im Handbuch benutzt, existiert aber offenbar gar nicht..

Für folgenden Code musst du dir noch einen zusätzlichen Entityskill startklar machen (_node), in dem die Nummer des aktuellen Knotens gespeichert wird.
Code:
 function follow_path
{
// weise Entity dem nächsten Pfad zu
result = path_scan(me,my.x,my.pan,vector(360,180,1000));
if (result == 0) { return; } // kein Pfad gefunden

var angle[3];

// finde den ersten Wegpunkt
my._node = 1;
path_getnode(my,my._node, my._TARGET_X, NULL);

while (my) {

// finde die Richtung
result = vec_to_angle(angle,vec_diff(temp,my._TARGET_X,my.x));

if (result < 25) { // Knoten erreicht

// Skills von erreichten Knoten erhalten
path_getnode(my,my._node, my._TARGET_X, path_skills);

if (path_skills[0] == 12) {
beep;
}

// nächster Knoten
my._node = path_nextnode(my,my._node,1);
path_getnode(my,my._node, my._TARGET_X, NULL); // Koordinaten des Knotens erhalten
}

// zu Knoten drehen & bewegen
vec_set(my.pan, angle);
vec_set(temp, vector(6*time_step,0,0));
vec_rotate(temp, angle.pan);
vec_add(my.x, temp);

wait(1);
}
}


Posted By: DexLoomer

Re: Skills an Pathnode abfragen klappt nicht! - 05/31/07 23:07

Thank you Fenriswolf !
Hab den Code schon eingestzt und zum laufen gebracht! Bisher funktioniert die Stehanimation, beim erreichen der Node mit Skill, nur im Endlosloop.
Außerdem dreht der Character sich nur sehr eckig um die anderen Nodes.
Aber, dass kriege ich bestimmt noch in den Griff!
Vielen Dank noch einmal ..
© 2024 lite-C Forums