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 (AndrewAMD, TipmyPip), 12,420 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
Page 1 of 3 1 2 3
Kann Kollisionsbox Grösse nicht ändern #280497
07/22/09 22:17
07/22/09 22:17
Joined: Jun 2004
Posts: 134
127.0.0.1
V
Vampir Offline OP
Member
Vampir  Offline OP
Member
V

Joined: Jun 2004
Posts: 134
127.0.0.1
Hi
Da in meinem multiplayer Spiel die Spieler verschiedene
Modelle haben, möchte ich die Kollisionsbox für alle Modelle
genau gleich gross haben.
Leider klappt das nicht so, wie ich mir das vorstelle.
Also eigentlich klappt es gar nicht.

Die Box verändert sich, wenn ich das NARROW flag setze, doch
ich möchte sie für alle gleich haben, also mit min_x, max_x etc
definieren.

Code:
ENTITY * PLAYER1;
PLAYER1 = ent_create("zoogon.mdl", vector(45,45,30), PlayerMove);
wait(1);

PLAYER1.eflags &= ~FAT;
PLAYER1.eflags |= NARROW;

var factor = 10;
PLAYER1.min_x  = vector(-factor,-factor,-factor);
PLAYER1.max_x = vector(factor,factor,factor);
PLAYER1.min_y  = vector(-factor,-factor,-factor);
PLAYER1.max_y = vector(factor,factor,factor);
PLAYER1.min_z  = vector(-factor,-factor,-factor);
PLAYER1.max_z = vector(factor,factor,factor);



Das ist nur ein sehr kleines Beispiel.
Ausprobiert hab ich viel mehr:
Alle Kombinationen mit c_updatehull() vorher und nachher.
Mit c_setminmac() vorher und nachher.
Alles in While schleife.
Statt mit vector halt mit einer var.
Und noch viel mehr.
Aber die Hülle ist einfach IMMER genau GLEICH.
Ausser mit NARROW ist sie etwas kleiner.

Wahrscheinlich hab ich was vergessen crazy

mfg
Vampir


My english is version 0.1 BETA. wow gamecard 4 president
Re: Kann Kollisionsbox Grösse nicht ändern [Re: Vampir] #280500
07/22/09 22:26
07/22/09 22:26
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Das letzte Mal als ich my.min_z verändern wollte, hatte es darüber gut funktionert, dass ich vorher einfach c_setminmax(my); gesetzt hatte.
NARROW oder HULL, oder was auch immer, brauchst Du doch nicht, wenn Du danach eh die Werte einzeln setzt.

Re: Kann Kollisionsbox Grösse nicht ändern [Re: Pappenheimer] #280501
07/22/09 22:28
07/22/09 22:28
Joined: Feb 2009
Posts: 2,154
Damocles_ Offline
Expert
Damocles_  Offline
Expert

Joined: Feb 2009
Posts: 2,154
Wo ist sie denn immer gleich, auf dem Server oder dem Client?
Ich schätze mal daß das eher ein problem mit den Serverupdates
der Hülle zum Client ist.
Erzeugt der client, oder der Server die Entities?

Re: Kann Kollisionsbox Grösse nicht ändern [Re: Damocles_] #280504
07/22/09 22:59
07/22/09 22:59
Joined: Jun 2004
Posts: 134
127.0.0.1
V
Vampir Offline OP
Member
Vampir  Offline OP
Member
V

Joined: Jun 2004
Posts: 134
127.0.0.1
Wenn ich vorher c_setminmax(PLAYER1); schreibe, fliegt das Modell
durch den Boden, ohne Kollision.

Liegt nicht am Client/Server da ich meine eigene Netzwerk Engine verwende.

Also auch offline gehts nicht.
Ich habe einfach ein Player den ich mit den Pfeiltasten
und c_move bewege und will die Kollisionshülle anpassen.

Eigentlich ganz einfach ^^


My english is version 0.1 BETA. wow gamecard 4 president
Re: Kann Kollisionsbox Grösse nicht ändern [Re: Vampir] #280505
07/22/09 23:13
07/22/09 23:13
Joined: Feb 2009
Posts: 2,154
Damocles_ Offline
Expert
Damocles_  Offline
Expert

Joined: Feb 2009
Posts: 2,154
Könnte noch einige andere Ursachen haben...

Aber das kannst Du, da Du ja vor dem Code sitzt alles schneller überprüfen.

Ich würde jedenfalls so vorgehen:
(wenn man durch direkte Änderungen nicht weiter kommt)

Testlevel machen. Einzelne Entity reinstzen. Eine einfache Action
erstellen, die die kollisionshülle ändert.
Im Log die Variables ausgeben (wie die Hüllen-Größen vor und nach der Änderung sind.)
Also quasi eine reiner Test der Kollisionshüllen ohne andere
Einflussfaktoren.

Wenn das funktioniert, kannst Du ein Bug in der Engine oder
dem grundsätzlichen Vorgehen schon mal ausschliessen.

Re: Kann Kollisionsbox Grösse nicht ändern [Re: Vampir] #280507
07/22/09 23:19
07/22/09 23:19
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Originally Posted By: Vampir
Wenn ich vorher c_setminmax(PLAYER1); schreibe, fliegt das Modell
durch den Boden, ohne Kollision.


Da stimmt dann aber noch etwas anderes nicht.
Ist denn sichergestellt, dass der Boden darunter schon erstellt ist, bevor du einen c_trace nach unten schickst?

Ich würde nach dem "Justieren" der Kollsisionshülle duch c_setminmax und die min_z, max_z etc.-Werte ein wait(5); setzen bevor du den ersten c_trace losschickst.

Re: Kann Kollisionsbox Grösse nicht ändern [Re: Pappenheimer] #280511
07/23/09 00:00
07/23/09 00:00
Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
Puppeteer Offline
Expert
Puppeteer  Offline
Expert

Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
einfach fat und narrow vorm festlegen der hülle setzen dann sollte es gehen wink
set(player1, FAT | NARROW);

Last edited by Puppeteer; 07/23/09 00:00.

Formally known as Omega
Avatar randomness by Quadraxas & Blade
http://omegapuppeteer.mybrute.com
Re: Kann Kollisionsbox Grösse nicht ändern [Re: Puppeteer] #280577
07/23/09 12:30
07/23/09 12:30
Joined: Jun 2004
Posts: 134
127.0.0.1
V
Vampir Offline OP
Member
Vampir  Offline OP
Member
V

Joined: Jun 2004
Posts: 134
127.0.0.1
Hab ein eigenes Level gemacht nur mit einem Model mit
Move action und Kamera.

War genau das gleiche Problem. Danach wollte ich hier im Forum
schreiben. Und zwar, dass es ein bisschen komisch ist, dass
man um eine Box (oder ähnlich) zu definieren für
min_x, max_x, min_y... etc überall ein Vektor angibt.

Das geben dann ja 6 Vektoren um eine Collisions-Hülle zu
definieren. Das kann nicht sein!

Also hab ich nun nur noch ein Zahl angegeben.

Ging auch nicht.

Anschliessend habe ich noch den Tipp von Pappenheimer "verwendet" und hab waits eingebaut - und nun gehts.

(übrigens wenn ich FAT | NARROW setzte flog er auch durch den
Boden)

Hier die Lösung:

Code:
var factor = 30;

c_setminmax(my);
wait(1);
		
my.min_x  = -factor;
my.max_x = factor;
my.min_y  = -factor;
my.max_y = factor;
my.min_z  = -factor;
my.max_z = factor;



Also kann ich jetzt die Kollisions Box Grösse ändern.

Der Krimi ist aber noch lange nicht zu Ende wink

Jetzt funktioniert die Bewegung nicht mehr!

Code:
my.pan = 0;
c_move(me, vector(5*time_step, 0, 0), vector(0, 0, 0), 
IGNORE_PASSABLE | GLIDE);

my.pan = 180;
c_move(me, vector(5*time_step, 0, 0)), vector(0, 0, 0), 
IGNORE_PASSABLE | GLIDE);

my.pan = 0;
c_move(me, vector(5*time_step, 0, 0)), vector(0, 0, 0), 
IGNORE_PASSABLE | GLIDE);

my.pan = 0;
c_move(me, vector(-5*time_step, 0, 0)), vector(0, 0, 0), 
IGNORE_PASSABLE | GLIDE);



Egal welches "c_move" ich verwende, er bewegt sich immer
in die selbe Richtung!

Mit c_move hatte ich eigentlich nie Probleme, aber im Moment scheint wirklich GAR NIX zu gehen.


My english is version 0.1 BETA. wow gamecard 4 president
Re: Kann Kollisionsbox Grösse nicht ändern [Re: Vampir] #280616
07/23/09 15:02
07/23/09 15:02
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Quote:
my.pan = 0;


Warum setzt du überhaupt feste Werte für den Drehwinkel vor c_move?
Willst Du die Figuren nur in rechten Winkeln gehen lassen?
Dann würde es aber keinen Sinn machen, dass Du dort 3mal "0" als Winkel stehen hast.

Re: Kann Kollisionsbox Grösse nicht ändern [Re: Pappenheimer] #280629
07/23/09 16:45
07/23/09 16:45

C
chris_oat
Unregistered
chris_oat
Unregistered
C



hallo,

ich habe zur zeit auch ein problem mit der Bounding-Box meines players.
ich verwende diesen code in meiner player_action;

Code:
wait(1);	// wait 1 frame after creation
c_setminmax(me); 
my.max_x = 4;
my.max_y = 4;
my.max_z = 35;
my.min_x = -4;
my.min_y = -4;
my.min_z = -35;
my.scale_x=0.51;my.scale_y=0.51;my.scale_z=0.51;



mit 2x F11 ich sehe die bounding box so wie sie ein soll, jedoch kann der player noch immer nicht z.b. so nah an wänden gehen, obwohl die box viel kleiner ist. was kann da sein???

Last edited by chris_oat; 07/23/09 16:46.
Page 1 of 3 1 2 3

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