1 registered members (TipmyPip),
18,631
guests, and 7
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
c_trace ground Problem
#106777
01/13/07 20:32
01/13/07 20:32
|
Joined: Aug 2005
Posts: 512 Bayern
Schmerzmittel
OP
User
|
OP
User
Joined: Aug 2005
Posts: 512
Bayern
|
Tagchen... ich schon wieder  Ich habe diesmal folgendes Problem. Ich habe mal mein Trace gegen c_trace ausgetauscht. Aber egal was ich mache. Jedes mal, wenn ich einen kleinen Berg hinaufgehe, werde ich extrem langsam und der Boden schiebt mich quasie. Wenn ich stehen bleibe, dann rutsche ich den Berg runter, bis er auf einem ganz graden Boden steht. Ist echt merkwürdig. Hier mal der Code... Wäre nett wenn mir jemand helfen könnte. vec_set (temp, my.x); temp.z -= 10000; //trace_mode = ignore_me + ignore_passable + use_box; //Spieler_geschwindigkeit.z = -trace(my.x, temp); Spieler_geschwindigkeit.z = -c_trace(my.x, temp, ignore_passable + ignore_sprites); my.pan -= 5 * mouse_force.x; // Benutze die Maus zum schauen camera.tilt -= 5 * mouse_force.y; move_mode = ignore_passable + ignore_passents + ignore_sprites + glide; ent_move(Spieler_geschwindigkeit, nullvector); Edit: Ich habe mal Use_box mit dazu gesetzt. Dann läuft alles in richtiger Geschwindigkeit, aber er fällt nicht mehr runter. Also wenn er mal steigt, dann bleibt er auf der gestiegenen höhe und schwebt in der Luft. P.S. my.polygon ist auch auf on. Danke schon mal im Vorraus
Last edited by Schmerzmittel; 01/13/07 20:36.
A7 Com V7.80
|
|
|
Re: c_trace ground Problem
[Re: Scorpion]
#106779
01/13/07 22:39
01/13/07 22:39
|
Joined: Aug 2005
Posts: 512 Bayern
Schmerzmittel
OP
User
|
OP
User
Joined: Aug 2005
Posts: 512
Bayern
|
Ich habe etwas rumprobiert.
Dies hier ist das neue Script, aber dann ist es wie vorher. Er rutscht dann wieder auf den Boden runter. Aber er soll ja am Hang stehen bleiben. BITTE HELFT mir!!! Ich bin am verzweifeln.
Hier mal der Code:
c_move(player_1st,nullvector, vector(0, 0, -12 * time), ignore_passable + ignore_passents + ignore_sprites + glide + use_box);
Sobald ich aber das -12 * time rausnehmen, dann nimmt er die höhe des Terrains an und bleibt da hängen. Schwebt umher und nimmst sich frei.
Danke schon mal.
A7 Com V7.80
|
|
|
Re: c_trace ground Problem
[Re: Scorpion]
#106781
01/13/07 23:15
01/13/07 23:15
|
Joined: Aug 2005
Posts: 512 Bayern
Schmerzmittel
OP
User
|
OP
User
Joined: Aug 2005
Posts: 512
Bayern
|
Das ist ja das Problem. Ich Trace ja. Habe als erstes mit dem normalen Ent_move usw. gearbeitet. Aber das gefiel mir nicht. C_move ist schöner, ABER entweder rutscht er runter, oder bleibt ind er Luft hängen.
Hier mal nochmal das ganze Script. Vielleicht findest du ja den Fehler.
action bewege_spieler { var Spieler_geschwindigkeit; player_1st = my; Gesundheit = 100; //camera.genius = my; my.invisible = on; while (gesundheit > 0) { camera.x = my.x; camera.y = my.y; camera.z = my.z + 20; camera.pan = my.pan; Spieler_geschwindigkeit.x = 10 * (key_w - key_s) * time; //Vorwärts Spieler_geschwindigkeit.y = 6 * (key_q - key_e) * time; //Seitwärts vec_set (temp, my); temp.z -= 10000; c_trace(my.x, temp , ignore_passable + ignore_sprites + use_box); c_move(player_1st,spieler_geschwindigkeit, vector(0,0,-12 * time), ignore_passable + ignore_passents + ignore_sprites + glide + use_box); my.pan -= 5 * mouse_force.x; // Benutze die Maus zum schauen camera.tilt -= 5 * mouse_force.y; wait(1); } }
Edit: Ich weiß nicht, kommt bei c_trace in der Klammer hinter Temp das .z hin? Weil wenn ja, dann ist das scheisse, weil da die Framerate um mehr 70 FPS runtersaust. Habs getestet.
EDIT2:
Mir ist was komisches aufgefallne. Wenn ich c_trace rauskommentiere und einfach C_move ohne Trace verwende, ist es das selbe. Er steigt hinauf, und bleibt auf der höhe dann stehen. ALSO wird c_trace ja gar nicht beachtet. Wie geht denn das? Muss man bei c_trace noch voher was anderes definieren?
Last edited by Schmerzmittel; 01/14/07 01:14.
A7 Com V7.80
|
|
|
Re: c_trace ground Problem
[Re: ack]
#106783
09/21/07 23:05
09/21/07 23:05
|
Joined: May 2005
Posts: 2,713 Lübeck
Slin
Expert
|
Expert
Joined: May 2005
Posts: 2,713
Lübeck
|
Code:
c_trace(my.x, temp , ignore_passable + ignore_sprites + use_box);
c_move(player_1st,spieler_geschwindigkeit, vector(0,0,-12 * time), ignore_passable + ignore_passents + ignore_sprites + glide + use_box);
Da gibt es keinen Zusammenhang bei dir. In deinem ersten Post ist dieser noch gegeben... Code:
vec_set (temp, my);
Das ist auch falsch! (und oben erst richtig) Ersetze Code:
vector(0,0,-12 * time)
im c_move wieder mit nullvector. das c_trace sollte als mode auch noch ignore_me gesetzt bekommen. und time wurde inzwischen mit time_step ersetzt...
|
|
|
Re: c_trace ground Problem
[Re: Slin]
#106784
10/01/07 15:42
10/01/07 15:42
|
Joined: Oct 2007
Posts: 40 Switzerland
Nikozu86
Newbie
|
Newbie
Joined: Oct 2007
Posts: 40
Switzerland
|
Hallo ich habe den Thread kurz überflogen.
die C_MOVE-Anweisung ist komplett falsch aufgebaut.
c_move(my,VectorX(vorwärts),VectorY(seitliche),VectorZ(vertikale), IgnoreMODES)
In deinem Fall sagst du der Engine; c_move(player_1st,spieler_geschwindigkeit, vector(0,0,-12 * time),
BEWEGE(MICH , x=spieler_geschw , y=vector(0,0,-12), und in Z steht nichts mehr) // also warum muss sich den Spieler nach unten bewegen?
ich würde folgendes versuchen:
c_move(player_1st,spieler_geschwindigkeit,nullvector,Spieler_geschwindigkeit.z, DEINE IGNOREMODES); ------------------- Wenn`s nicht funktioniert, sollten wir was komplett Anderes versuchen.
Gruss, Nikozu86
|
|
|
|