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, 1 invisible), 18,731 guests, and 7 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
Problem mit Schaden +Camera #413563
12/15/12 12:34
12/15/12 12:34
Joined: Nov 2012
Posts: 32
T
thorus Offline OP
Newbie
thorus  Offline OP
Newbie
T

Joined: Nov 2012
Posts: 32
hi leute, ist es irgendwie möglich das es auch abgefragt wird of ich mich zum gegner hin gedreht habe, also ich bin die camera..
hier der code
Code:
if(my.STATE == 3) 
		{
			my.ANIMATION += 7*time_step;
			ent_animate(me,"attack",my.ANIMATION,ANM_CYCLE);
			gegner_treffer = 1;
			treffmich =0;

			if (my.ANIMATION > 100) 
			{          
				treffmich =1;               // create the spell
				lebensenergie -= (random(5)) * 2.5 * time_step;
				whamm_handle = media_play("ouch.wav",0,100);
				my.ANIMATION -= 100;    // continue the cycle from the beginning
			}
			
			/////////// enemy Kills ME?!//////////////////////////			
			while (vec_dist (player.x, my.x) > 205)
			wait(1);
///////HIER HÄT ICH GERN NOCH DIE ABFRAGE WEGEN CAMERABLICK////////////////////////////////////
			if (treffer && !treffer1)
			{
				my.skill88 -= (staerke)  * 1.1 * time_step;

			}
			
			if (treffer1 && !treffer)
			{			
				my.skill88 -= (staerke)  * 1.0 * time_step;
			}  
			
			if (schwert_treffer && !schwert_treffer1)
			{
				my.skill88 -= (staerke)  * 2.0 * time_step;

			}
			
			if (schwert_treffer1 && !schwert_treffer)
			{			
				my.skill88 -= (staerke)  * 1.8 * time_step;
			}  
			
			////////////////////////Sterben///////////////////////////////////			
			if (my.skill88 <=0)
			{
				my.STATE = 4;
			}
			
			
			
			if (vec_dist (player.x, my.x) > 190)
			{
				gegner_treffer =0;
				my.STATE = 2;
			}
			
		}


Re: Problem mit Schaden +Camera [Re: thorus] #413564
12/15/12 12:58
12/15/12 12:58
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
ich habe vor einiger zeit eine kleine helper funktion dafür gemacht.
sie überprüft, ob ein punkt sich innerhalb einer pyramide befindet.
Code:
int point_check_pyramid(VECTOR *_point_pos, VECTOR *_pyramid_pos, VECTOR *_pyramid_ang, var _arcH, var _arcV)
{
	// Automatically set arcV to the video aspect
	if(!_arcV)
		_arcV = _arcH * (screen_size.y / screen_size.x);
	
	// Make Position and Orientation Local to the Pyramid
	vec_sub(_point_pos, _pyramid_pos);
	vec_rotate(_point_pos, vector(-_pyramid_ang.x, -_pyramid_ang.y, -_pyramid_ang.z));
	//---
	
	if( abs(_point_pos.y) < _point_pos.x * tan(_arcH / 2) && abs(_point_pos.z) < _point_pos.x * tan(_arcV / 2) && _point_pos.x > 0 )
		return 1; // the given coordinate IS within the pyramid
	else
		return 0; // the given coordinate is NOT within the pyramid
}



das ganze funktioniert so:

1.Parameter: Koordinaten des Punktes, der überprüft werden soll
2.Parameter: Position der Pyramide, falls die Kamera gecheckt werden soll: camera.x
3.Parameter: Winkel der Pyramide, falls die Kamera gecheckt werden soll: camera.pan
4.Parameter: Horizontaler 'Field of View', falls die Kamera gecheckt werden soll: camera.arc
5.Parameter: Vertikaler 'Field of View' oder 0, wenn der Wert automatisch kalkuliert werden soll, abhänging vom Bildschirverhältnis

Wenn du also überprüfen willst, ob der Punkt (100, 200, 300) auf dem Bildschirm sichtbar ist benutze:

point_check_pyramid(vector(100, 200, 300), camera.x, camera.pan, camera.arc, 0)

...ich hoffe das ist nicht zu kompliziert

EDIT: was nicht geprüft wird, ist ob der punkt von anderen objekten verdeckt wird. Das muss mit einem weiteren c_trace überprüft werden.

Last edited by Kartoffel; 12/15/12 13:24.

POTATO-MAN saves the day! - Random
Re: Problem mit Schaden +Camera [Re: Kartoffel] #413567
12/15/12 13:28
12/15/12 13:28
Joined: Nov 2012
Posts: 32
T
thorus Offline OP
Newbie
thorus  Offline OP
Newbie
T

Joined: Nov 2012
Posts: 32
danke erstemal, und wie soll ich das jetzt machen? so?
while (vec_dist (player.x, my.x) > 205)
wait(1);
if (point_check_pyramid(vector(100, 200, 300), camera.x, camera.pan, camera.arc, 0))
{
if (treffer && !treffer1)
{
my.skill88 -= (staerke) * 1.1 * time_step;

}

if (treffer1 && !treffer)
{
my.skill88 -= (staerke) * 1.0 * time_step;
}

if (schwert_treffer && !schwert_treffer1)
{
my.skill88 -= (staerke) * 2.0 * time_step;

}

if (schwert_treffer1 && !schwert_treffer)
{
my.skill88 -= (staerke) * 1.8 * time_step;
}

////////////////////////Sterben///////////////////////////////////
if (my.skill88 <=0)
{
my.STATE = 4;
}



if (vec_dist (player.x, my.x) > 190)
{
gegner_treffer =0;
my.STATE = 2;
}
}

Re: Problem mit Schaden +Camera [Re: thorus] #413568
12/15/12 13:31
12/15/12 13:31
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
naja, anstatt vector(100, 200, 300) musst du die position einsetzen, die du checken willst, in deinem fall ist das denk ich mal die position des gegners.


POTATO-MAN saves the day! - Random
Re: Problem mit Schaden +Camera [Re: Kartoffel] #413572
12/15/12 14:15
12/15/12 14:15
Joined: Nov 2012
Posts: 32
T
thorus Offline OP
Newbie
thorus  Offline OP
Newbie
T

Joined: Nov 2012
Posts: 32
mhmm danke, haut irgendwie nicht hin bei mir..
sagmal, hast du schonmal etwas mit c_trace gemacht in sachen wie zb: eine schwertklinge im c_trace zu haben und wenn ein gegner beim schlag dazwischen kommt dann halt -=health.. oder so?


Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

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