2 registered members (AndrewAMD, ChrstphFr),
941
guests, and 4
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Skills an Pathnode abfragen klappt nicht!
#132776
05/30/07 20:12
05/30/07 20:12
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
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...
A8-Com-v 8.47.1
|
|
|
Re: Skills an Pathnode abfragen klappt nicht!
[Re: DexLoomer]
#132777
05/31/07 06:32
05/31/07 06:32
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
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!
A8-Com-v 8.47.1
|
|
|
Re: Skills an Pathnode abfragen klappt nicht!
[Re: Captain_Kiyaku]
#132779
05/31/07 11:58
05/31/07 11:58
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
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!
A8-Com-v 8.47.1
|
|
|
Re: Skills an Pathnode abfragen klappt nicht!
[Re: DexLoomer]
#132780
05/31/07 13:23
05/31/07 13:23
|
Joined: Jan 2007
Posts: 221
Fenriswolf
Member
|
Member
Joined: Jan 2007
Posts: 221
|
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.
|
|
|
Re: Skills an Pathnode abfragen klappt nicht!
[Re: Fenriswolf]
#132781
05/31/07 18:53
05/31/07 18:53
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
Hi Fenriswolf, vielen Dank für deine Tips, aber ich bekomme immer Fehlermeldungen wenn ich die Befehle ersetze. Kannst Du mir ein Beispiel geben?
A8-Com-v 8.47.1
|
|
|
Re: Skills an Pathnode abfragen klappt nicht!
[Re: DexLoomer]
#132782
05/31/07 20:24
05/31/07 20:24
|
Joined: Jan 2007
Posts: 221
Fenriswolf
Member
|
Member
Joined: Jan 2007
Posts: 221
|
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); } }
|
|
|
Re: Skills an Pathnode abfragen klappt nicht!
[Re: Fenriswolf]
#132783
05/31/07 23:07
05/31/07 23:07
|
Joined: Jan 2006
Posts: 168 Germany, Hannover
DexLoomer
OP
Member
|
OP
Member
Joined: Jan 2006
Posts: 168
Germany, Hannover
|
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 ..
A8-Com-v 8.47.1
|
|
|
|