Auf die Map zugreifen / kollision herausfinden?

SB*Silen.Ced
Hi, ich möchte in eine map sowas wie eine javelin oder so einbauen. ich will aber nicht, dass ich für die javelin einen panzer o. ä. brauche, sondern, dass er mir die koordinaten gibt, wo ich hinziele. Beispiel:
es gibt eine mission, in der man irgendwann auf einer farm ist und dauernd luftschläge anfordern kann. Man nimmt einfach so einen "sender", und wo man hinzielt, wird so ein kreis auf dem boden angezeigt. und dorthin fliegt der luftschlag.
ich hoffe das ist preziese genug.

wüsste jemand, wie man die kollision herausbekommt?

MfG SB*Silen.Ced

PS.: Entschuldigung für die kleinschreibung.
serthy
weißt du wie man solche dinge scripted?
wenn nicht wird schwierig...
SB*Silen.Ced
also ich weis, wie ich den luftschlag / javelin /... scripte.
was ich aber nicht weis, ist, wie man herausbekommt wo man hinguckt,
also wenn ich schießen würde, wo das einschussloch wäre.
MfG
serthy
hört sich schon gut an

also das macht man mit der funktion bullettrace()

lies dir bitte zuerst das durch, das enthält das wichtigste: http://modsonline.com/Tutorials-read-781.html

mit bullettrace kann man sogut wie alles machen

für dich:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
showTargetIndicator()
{
	self endon( "stop_targeting" );						// stoppt alles, tag muss aber noch gelöscht werden

	self.indicator_tag = spawn( "script_model" , self.origin );		//spawne ein tag_origin, um den effect bewegen zu können und um die richtung bestimmen zu können
	self.indicator_tag setModel( "xmodel/tag_origin" );			// weiß aber nich wie das in cod4 heißt
	self.indicator_tag.angles = anglesToUp( self.indicator_tag.angles );	//kA ob das so rictig ist, sollte den effect nach oben gehen lassen

	self.indicator_tag thread indicatorEffect();				//spielt den effect derzeit
	self.indicator_tag _deleteOnEvent( self , "death" );			//muss nicht unbedingt sein

	range = 100000;									// entfernung wie weit du zielen können willst

	while( self.sessionstate == "playing" )					//solange du am leben bist
	{
		start = self getEye() + ( 0 , 0 , 20 );				//start = dein auge
		forward = anglesToForward( self getPlayerAngles() );		// deine blickrichtung
		forward = _vectorScale( forward , range );			//dein blickpunkt in der entfernung
		end = start + forward;							// dein ziel wo du hinsiehst
	
		trace = bullettrace( start , end , true , self.indicator_tag );	// tag ignorieren, falls er dazwischen kommt

		self.indicator_tag.origin = trace["position"];			//tag an die position wo du hinguckst
		
		wait 0.05;									// kürzeste wartezeit im multiplayer

		/*	kürzer: das selbe nur in kurz
			eye = self getEye() + ( 0 , 0 , 20 );
			self.indicator_tag.origin = bullettrace( eye , eye + _vectorScale( anglesToForward( self getPlayerAngles() ) , range , true , self.indicator_tag )["position"];
			wait 0.05;
		*/
	}	
}

indicatorEffect()		//spielt den effect, aber ka wie der heißt und wie lange der brauch
{
	while( isDefined( self ) )
	{
		playFxOnTag( level._effect["target_indicator"] , self , "tag_origin" );
		wait time;
	}
}

_deleteOnEvent( owner , event ) //löscht tag wenn du stirbst
{
	self endon( "stop_targeting" );

	owner waittill( event );

	self delete();
}

_vectorScale( vec , scale )	//verlängert einen vektor 
{
	return ( vec[1] * scale , vec[2] * scale , vec[3] * scale );
}



das enthält sicher fehler, aber darauf kannst du dich in etwa orientieren
SB*Silen.Ced
danke!
MfG