Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
2 registered members (TipmyPip, AndrewAMD), 14,540 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
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 Offline OP
Member
Noobi  Offline 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:
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 Offline
Senior Expert
Pappenheimer  Offline
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: Pappenheimer] #271331
06/12/09 13:24
06/12/09 13:24
Joined: Dec 2007
Posts: 188
Germany
Noobi Offline OP
Member
Noobi  Offline OP
Member

Joined: Dec 2007
Posts: 188
Germany
ahhh ok intressante wendung^^danke
wenn ich den auf 30 setze gehts aufeinmal aber was ist nun der richtige wert?
(der polygon flag bringt keine änderungen)

MFG Noobi

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 Offline
Senior Expert
Pappenheimer  Offline
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 Offline OP
Member
Noobi  Offline 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.
Quote:
dann könntest du nach Werten, die Dir der Trace zurückliefert, z.B. das you eines Models, Unterscheidungen einführen usw.



Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1