2 registered members (AndrewAMD, TipmyPip),
12,420
guests, and 5
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Player kann nicht auf dem model laufen
#271314
06/12/09 12:27
06/12/09 12:27
|
Joined: Dec 2007
Posts: 188 Germany
Noobi
OP
Member
|
OP
Member
Joined: Dec 2007
Posts: 188
Germany
|
Hallo allerseits, mein Problem ist das mein Player nicht auf dem Model laufen kann. Er läuft immer so nen meter übern Boden. Hier ist erstmal der Code: FUNCTION handle_gravity() {
trace_mode = ignore_me+ignore_passable+use_box;
result = trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000));
IF (result < 3) {
IF (my.jumping_mode == 0) {
my.force_z = -1 * result;
IF (key_space == 0 && space_press == 1) { space_press = 0; }
IF (key_space == 1 && space_press == 0 && my.movement_mode == 0 && my.animblend >= stand && my.animblend != jump && my.animblend != fall) {
space_press = 1;
my.jumping_mode = 1;
my.force_z = 30;
my.blendframe = jump;
my.animate2 = 0;
my.animblend = blend;
}
}
IF (my.jumping_mode == 2 || my.jumping_mode == 3) { my.jumping_mode = 0; }
} ELSE {
IF (my.jumping_mode == 2) {
IF (result > 120) {
my.animate = 60;
my.jumping_mode = 3;
} ELSE {
my.jumping_mode = 0;
}
}
IF (my.jumping_mode == 3 && result <= 120) { my.jumping_mode = 0; }
IF (my.jumping_mode == 0 && my.movement_mode == 0) {
IF (result > 120 && my.animblend >= stand && my.animblend != jump && my.animblend != fall) {
my.jumping_mode = 3;
my.blendframe = fall;
my.animate2 = 0;
my.animblend = blend;
}
}
my.force_z -= my.gravity * time;
my.force_z = max(-15,my.force_z);
IF (my.movement_mode == 2) { my.force_z = 0; }
}
my.velocity_z += (time * my.force_z) - (min(time*0.7,1) * my.velocity_z);
my.move_z = my.velocity_z * time;
} Es liegt an dieser stelle: trace_mode = ignore_me+ignore_passable+use_box; result = trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000));wenn ich diese durch das hier ersetze: result = c_trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000),ignore_me|ignore_passable);dann kann er auf dem Model laufen aber kann nicht springen oder sonstiges. MFG Noobi
Last edited by Noobi; 06/12/09 12:51.
|
|
|
Re: Player kann nicht auf dem model laufen
[Re: Noobi]
#271326
06/12/09 13:07
06/12/09 13:07
|
Joined: Sep 2003
Posts: 5,900 Bielefeld, Germany
Pappenheimer
Senior Expert
|
Senior Expert
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
|
So wie Du es schilderst, ist also nicht Dein Problem, dass der Player nicht auf dem anderen Model laufen kann, sondern dass er nicht springen kann. Denn Du musst c_trace benutzen, wenn Du Models als Untergrund verwendest (und natürlich, wenn Du mit aktuellem Code arbeiten möchtest.)
Das Problem liegt vielleicht daran, dass bei c_trace ein anderer Wert bei result herauskommt.
Das heißt Du könntest mit dem Wert in dieser Abfrage herumspielen: IF (result < 3) { setz ihn spaßeshalber mal auf 30. Ich nehme ja mal an, dass hier überprüft wird, ob der Player auf dem Boden steht.
ein anderer Versuch, der es wert ist: Setz bei dem Model, auf dem der Player herumlaufen können soll auf polygon = on; oder bei Lite-C set(me, POLYGON); - ich nehme ja mal an, dass sich das Model nicht bewegt.
|
|
|
Re: Player kann nicht auf dem model laufen
[Re: Noobi]
#271332
06/12/09 13:30
06/12/09 13:30
|
Joined: Sep 2003
Posts: 5,900 Bielefeld, Germany
Pappenheimer
Senior Expert
|
Senior Expert
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
|
Der richtige Wert ist der, der für Deine Zwecke funktioniert. In diesem Fall solltest die verschiedenen Situationen, in denen der Player springen können soll und die, wo er nicht springen können soll, durchtesten und den Wert entsprechend variieren bis er den Erfordernissen entspricht. Das kann auch darauf hinauslaufen, dass Du kein befriedigendes Ergebnis findest, was bedeuten kann, dass Du für spezielle Situationen etwas zusätzlich programmieren musst. z.B. kann der Wert 30 gut dafür sein, wenn er auf einem Model steht, aber viel zu hoch sein, wenn er auf Levelgeometrie steht, dann könntest du nach Werten, die Dir der Trace zurückliefert, z.B. das you eines Models, Unterscheidungen einführen usw.
|
|
|
Re: Player kann nicht auf dem model laufen
[Re: Pappenheimer]
#271333
06/12/09 13:35
06/12/09 13:35
|
Joined: Dec 2007
Posts: 188 Germany
Noobi
OP
Member
|
OP
Member
Joined: Dec 2007
Posts: 188
Germany
|
stimmt das was mir auffahlt das er bei dem wert 30 wenn er auf einem levelblock steht im bode versinkt.aber ich versteh nicht so ganz was du mit dienem letzten satz meinst. dann könntest du nach Werten, die Dir der Trace zurückliefert, z.B. das you eines Models, Unterscheidungen einführen usw.
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|