Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 2 » Fix-Dateien, Modding-Fragen, Scripting » eigenes geschütz erstellen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen eigenes geschütz erstellen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


eigenes geschütz erstellen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hey leute

hab mir mal komplett modsonline von cod 2 und cod 4 durchgsehen und mir die meisten einträge angeschaut, und ja ich bin viel schlauer geworden smile

nun mal eine frage

ich würde mir gerne einen eigenen geschützturm (z.b. wie ein flak-vierling oder eine flak) mappen/scripten

ich weiß, das man den player mit link to oder so (genaue befehle hab ich nicht im kopf, stehen aber in einen script) an das geschütz bindet
man ermittelt dann die angles vom player und richtet die kanone dann darauf aus, das ist bis jetzt das kleinere problem
dann weiß ich das man script origins an die geschützrohre linkt und da seine fx abspielt

mit viel bastelarbeit könnte ich das eventuell hinbekommen
(es müsste ja ein origin gesetzt werden um das sich das geschütz bzwdie rohre bewegen, steh grad aufm schlauch)

nur weiß ich leider noch nicht wie man den schaden an das geschütz bindet, es muss ja schiessen und am ziel auch eine 'einschlag-fx' abspielen sowie schaden anrichten

achso es soll natürlich für den multiplayer sein

ich schreib morgen mal weiter und versuch ein script zu entwickeln xD

ich hoffe ihr könnt mir helfen, ich hab zu so einen thema noch nirgends was gelesen

Serthy *<:-D


Edit:
ich würde ein credits-system dazu einfügen, wo man pro runde und pro kills/killstreak bestimmte punkte bekommt
grundlagen kenn ich schon, nur wollte ich wissen ob man und wie weit man das mapseitig machen muss und wie weit man das modweitig machen kann?
mapseitig hab ich bereits eine creditsanzeige, give_ammo script usw
aber ich kann ja keinen gesamten minimod in die gsc kloppen? grosses Grinsen grosses Grinsen
da ich vom scripten vll 5 % versteh und von modden 10 % weniger grosses Grinsen frag ich euch mal
in einem jahr sieht das ganz anders aus :p

Lg serthy

Dieser Beitrag wurde 5 mal editiert, zum letzten Mal von serthy: 10.12.2010 17:38.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


RE: eigenen geschützturm erstellen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hey hab mir mal 4-5 scripte für benutzbare flaks flugzeuge panzer jeeps und vierlinge angesehn und den den ich teilweise verstanden hab war der script aus der map chelmfinal für die benutzbare flak-88

hier der script:

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:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
//oraco aug.2006
//flak simulator script by Julian
main(){
	precacheShader("white");	//needed for drawing crosshair
	level.targetcolor = (1,1,1); //crosshair color, red=reload, green=fire, dot=target collision
	level.angles = (0,0,0); //the angles where player is looking at; horizontal and verticle
	level.lastangles = (0,0,0);	//last angle in the cycle
	level.barrelangles = (0,0,0);	//angles where the gun barrel is aimming at, direction it shoots
	level.gunpoint = (0,0,0);	//the tip of the gun point, where we play light and smoke fx when shot
	level.nohit = 1;	//no hit is 1 if there is no target collision if shot
	level.flak_inuse = 0;	//only one person can use flak at a time, inuse =0 or 1
	level.reloaddelay = 3;
	
	//off or on by cvar "/seta chelm_flak 1" (1=on, 0=off, undefined=off, default=on)
	if(isdefined(getcvar("chelm_flak")) && getcvar("chelm_flak") == "0")
		wait 0.1;
	else{
		if(!isdefined(getcvar("chelm_flakdelay")))
			level.reloaddelay = 12;
		else{
			if(getcvar("chelm_flakdelay") == "0")
				level.reloaddelay = 3;
			else if(getcvar("chelm_flakdelay") == "1")
				level.reloaddelay = 6;
			else if(getcvar("chelm_flakdelay") == "2")
				level.reloaddelay = 9;
			else if(getcvar("chelm_flakdelay") == "3")
				level.reloaddelay = 12;
			else if(getcvar("chelm_flakdelay") == "4")
				level.reloaddelay = 15;
			else if(getcvar("chelm_flakdelay") == "5")
				level.reloaddelay = 18;
			else if(getcvar("chelm_flakdelay") == "6")
				level.reloaddelay = 21;
			else if(getcvar("chelm_flakdelay") == "7")
				level.reloaddelay = 24;
			else if(getcvar("chelm_flakdelay") == "8")
				level.reloaddelay = 27;
			else
				level.reloaddelay = 3;
		}	
		wait 5; //I need this cuz i need the gametypes to finish initializing
		thread flak_operator();
		thread flak_aim();
		thread flak_shoot();
		//thread debugflak();
	}
}
//==============================Custom Flak88 starts=======================
//		allowing only one player to use the flak at a time by pressing F
//		moves the player in position and transfers control
flak_operator(){
	playerlink = getent("playerlink", "targetname");
	outlink = getent("outlink", "targetname");
	level.flak_trig = getent("flak_trig", "targetname");
	while(1){
		players = getentarray("player", "classname");
		for(i=0; i<players.size; i++){
			player = players[i];
			if(isdefined(player) && player istouching(level.flak_trig) && player useButtonPressed() && (level.flak_inuse == 0))
			{
				while(player useButtonPressed())
					wait 0.01;
				while(player istouching (level.flak_trig)){
				
					//draw crosshair the dumb way ===========
					if (isdefined (player.ch))
						player.ch destroy();
					player.ch = newClientHudElem(player);
					player.ch.x = 316;
					player.ch.y = 238;
					player.ch.alpha = 0.5;
					player.ch.color = level.targetcolor;
					player.ch setshader("white", 2, 4);
					
					if (isdefined (player.ch1))
						player.ch1 destroy();
					player.ch1 = newClientHudElem(player);
					player.ch1.x = 322;
					player.ch1.y = 238;
					player.ch1.alpha = 0.5;
					player.ch1.color = level.targetcolor;
					player.ch1 setshader("white", 2, 4);
					
					if (isdefined (player.ch2))
						player.ch2 destroy();
					player.ch2 = newClientHudElem(player);
					player.ch2.x = 318;
					player.ch2.y = 240;
					player.ch2.alpha = 0.5;
					player.ch2.color = level.targetcolor;
					player.ch2 setshader("white", 4, 2);
					
					if(level.nohit==0){
						if (isdefined (player.cd))
							player.cd destroy();
						player.cd = newClientHudElem(player);
						player.cd.x = 318;
						player.cd.y = 243;
						player.cd.alpha = 0.5;
						player.cd.color = (1,1,1);
						player.cd setshader("white", 4, 1);
					}
					else{
						if (isdefined (player.cd))
							player.cd destroy();
					}
					//end draw crosshair===================
				
					level.flak_inuse = 1;
					player.origin = playerlink.origin;
					player linkto(playerlink);
					//disable weapons
					player disableWeapon();
					level.angles = (0-player.angles[0], 180+player.angles[1], 0-player.angles[2]);
					level.flak_operator = player;
					
					if(player useButtonPressed()){
						while(player useButtonPressed())
							wait 0.01;
						player unlink();
						player enableWeapon();
						wait 0.1;
						player.origin = outlink.origin;
						player linkto(outlink);
						wait 0.1;
						player unlink();
						level.flak_operator = undefined;
						break;
					}
					if(!isdefined(level.flak_operator) || !isdefined(player) || !isAlive(level.flak_operator) || !isAlive(player)){
						level.flak_operator = undefined;
						break;
					}
					wait 0.01;
					//wait 0.5;
				}
				level.flak_inuse = 0;
				
				//clear crosshair===========
				if (isdefined (player.ch))
					player.ch destroy();
				if (isdefined (player.ch1))
					player.ch1 destroy();
				if (isdefined (player.ch2))
					player.ch2 destroy();
				if (isdefined (player.cd))
					player.cd destroy();
				//end clear crosshair=======
			}
		}
		wait 0.01;
	}
}
//IW - extracted from _utility
vectorScale (vec, scale)
{
	vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
	return vec;
}
//shooting mechanism
flak_shoot(){
	timer = level.reloaddelay + 18;
	while(1){
		if(isdefined(level.flak_operator) && (level.flak_operator attackButtonPressed()) && (timer>(level.reloaddelay+17))){
			temp_angles = level.angles;
			level.angles += (5,0,5);
			level.flak_operator playSound("flak_fire");				
			playfx(level.flak_light, level.gunpoint);	
			playfx(level._effect["thin_light_smoke_M"], level.gunpoint);
			//shake em
			earthquake(0.3, 0.3, level.flak_operator.origin, 100);
			wait 0.1;
			
			if(level.nohit == 0 && isdefined(level.hit)){		
				playfx(level._effect["bombexplosion"], level.hit.origin);
				level.hit playSound("building_explosion1");
				radiusDamage(vectorScale(level.hit.origin, 0.98), 180, 400, 25);
				//scoring system
				players = getentarray("player", "classname");
				for(i=0; i<players.size; i++){
					player = players[i];
					away = distance(player.origin, level.hit.origin);
					if(away<180){
						if(player.health<=0){
							level.flak_operator.score++;
							iprintln(level.flak_operator.name + "^7 killed "+ player.name + "^7 with ^2Flak88\n");
						}
					}
				}
			}
			level.angles = temp_angles;
			timer = 0;
			level.hit = undefined;
		}
		if((timer==level.reloaddelay+5) && isdefined(level.flak_operator))
			level.flak_operator playSound("flak_reloading");
		if(timer<(level.reloaddelay+18)){
			level.targetcolor = (1,0,0);
			timer++;
		}
		else
			level.targetcolor = (0,1,0);
		wait 0.2;
	}				
}
//flak's aim, movement, shooting mechanism
flak_aim(){
	//get&spawn ents
	pointhit = spawn("script_model", (0,0,0));
	flak_chase = getent("flak_chase", "targetname");
	flak_gun = getent("flak_gun", "targetname");
	flak_barrel = getent("flak_barrel", "targetname");
	played = 0;
	//main loop
	while(1){
		//flak's movement======================================
		rotate0 = level.angles[0];
		rotate1 = level.angles[1];
		rotate2 = level.angles[2];
		
		if(level.angles[0]<-6)
			rotate0 = -6;
		if(level.angles[0]>30)
			rotate0 = 30;
		if(level.angles[1]<350 && level.angles[1]>270)
			rotate1 = 350;
		if(level.angles[1]>100 && level.angles[1]<300)
			rotate1 = 100;
	
		if(!(level.lastangles == (rotate0, rotate1, rotate2)))
		{
			flak_chase rotateto((0, rotate1, 0), 0.65);
			flak_gun rotateto((rotate0, rotate1, 0), 0.65);
			flak_barrel rotateto((rotate0, rotate1, 0), 0.65);
			played = 0;
		}
		else{
			if(played == 0){
				flak_chase playSound("flak_stop");
				played = 1;
			}
		}
			
		level.lastangles = (rotate0, rotate1, rotate2);
		
		//flak's movement vector calculation===================
		origin = anglestoforward(flak_barrel.angles);
		origin = (0,0,0)-origin;
		shortorigin = vectorScale(origin, 350);
		farorigin = vectorScale(origin, 10000);
		level.gunpoint = vectorScale(origin, 230);
		
		//flak's target aim position calculation ===============
		coll_detect = bulletTrace(shortorigin, farorigin, false, undefined); 
		//if there is collision then there is a target to play explosion
		if(!(coll_detect["fraction"] == 1)){
			level.nohit = 0;
			pointhit.origin = coll_detect["position"];
			//pointhit.origin = vectorScale(pointhit.origin, 0.1);		
			//level.hit.origin is the position of the target
			level.hit = pointhit;
		}
		else{
			level.nohit=1;
		}
		//else there is no place to play explosion, shooting into sky	
		wait 0.2; //<-- loop's only wait command, !!important value!!
	}
}
//==============================Custom Flak88 ends=======================



wobei das hier der schuss an sich ist:

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:
flak_shoot(){
	timer = level.reloaddelay + 18;
	while(1){
		if(isdefined(level.flak_operator) && (level.flak_operator attackButtonPressed()) && (timer>(level.reloaddelay+17))){
			temp_angles = level.angles;
			level.angles += (5,0,5);
			level.flak_operator playSound("flak_fire");				
			playfx(level.flak_light, level.gunpoint);	
			playfx(level._effect["thin_light_smoke_M"], level.gunpoint);
			//shake em
			earthquake(0.3, 0.3, level.flak_operator.origin, 100);
			wait 0.1;
			
			if(level.nohit == 0 && isdefined(level.hit)){		
				playfx(level._effect["bombexplosion"], level.hit.origin);
				level.hit playSound("building_explosion1");
				radiusDamage(vectorScale(level.hit.origin, 0.98), 180, 400, 25);
				//scoring system
				players = getentarray("player", "classname");
				for(i=0; i<players.size; i++){
					player = players[i];
					away = distance(player.origin, level.hit.origin);
					if(away<180){
						if(player.health<=0){
							level.flak_operator.score++;
							iprintln(level.flak_operator.name + "^7 killed "+ player.name + "^7 with ^2Flak88\n");
						}
					}
				}
			}




hier ist das ziel ja als level.hit.origin definiert, kann mir das jmd mal erläutern?


außerdem steht hier wo die fx beim schuss abgespielt werden:

level.gunpoint = (0,0,0); //the tip of the gun point, where we play light and smoke fx when shot

und

playfx(level.flak_light, level.gunpoint);
playfx(level._effect["thin_light_smoke_M"], level.gunpoint);

wie definiere ich das? müsste ich diesen origin setzen? oder ist ein neues xmodel erstellt worden mit dem origin an der'geschützmündung'?
(ist hier z.b. ein normales flak xmodel verwendet worden? da sich ja nur der obere teil bewegt und der untere fest ist müssten es doch im prinzip 2 xmodel sein, oder?)

und zu guter letzt noch die frage was es mit dem 'level'befehl auf sich hat

ich hoffe ihr könnt mir antworten smile

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von serthy: 10.12.2010 16:08.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hab mal was versucht und hab seit stunden dran gesessen
jaja aller anfang ist schwer aber hab halt den script compile error um den ich nicht drumherum komme... (bad syntax)

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:
main()
{ thread artillery();
}

artillery()
{	
	trigger = getent( "trig_art"; "targetname");
 	playerlink = getent( "link"; "targetname");
 	playerunlink = getent( "unlink"; "targetname");
  
while(1);
  { 
	self waittill( "trigger", user );
	if (user istouching(self))
		user.origin = playerlink.origin;
		user linkto(playerlink);
		wait 20;
		user.origin = playerunlink.origin;
		user linkto(playerunlink);
		wait 0.01;
		user unlink();

		
}	

}




naja ich geh mal schlafen rotes Gesicht



EDIT:

okay okay
ich weiß absolut nich was ich falsch mache?! (ja ich hab 0 ahnung vom scripten, aber mein code sieht für mich logisch aus..)
ich hab den jetzt auf das minimalste reduziert um erstmal den player in das geschütz zu verlinken (noch ohne geschütz, nur zum test)
ich werd schritt für schritt vorgehen
also
-player per trigger auf script_origin verlinken

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
linker()
{
	trigger = getent( "trig_art"; "targetname");
	playerlink = getent( "link"; "targetname");
                       while (1)
			{
				player waittill ("trigger",player);
				if (player istouching(trigger) && playeruseButtonPressed() 
				player.origin = playerlink.origin;
				player linkto (playerlink);
				iprintln("linked to artillery");
			}
}



es kommt jedesmal ein script compile error mit bad syntax...
ich hab meine testmap schon auf das nötigste reduziert und es laufen keine anderen scripts ab
mh ich teste dann ml weiter...


okay okay okay
ich hab es endlich geschafft grosses Grinsen

hier mein code der auch geht Augenzwinkern

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:
main()
{
thread linker();
} 
linker()
{
	trigger = getent( "trig_art","targetname");
	playerlink = getent( "link","targetname");
		while (1)
			{
				trigger waittill ("trigger",player);				
				player.origin = playerlink.origin;
				player linkto (playerlink);
				iprintln("^3linked to aartillery");
			}
}



so jetzt gibts essen und danach kommt deas unlinken dran grosses Grinsen

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von serthy: 11.12.2010 18:53.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

okay leute zum aus und absitzen hab ich es ja schon gebracht, jetzt muss ich das ganze noch zum rotieren bringen
dazu werde ich:
>den standfuß mir aus brushes bauen, der fest steht
>das geschütz, (script_brushmodel mit originstab in der achse)wo der player 'draufsitzt' und auch hinverlinkt wird (targetname|frame) das bewegt sich jedoch nur in die y-richtung, da es ja auf dem standfu0 rotiert ergo:>> rotateto((0,wiknel_y_wo_der_spieler_hinschaut,0),time)
>das geschützrohr (script_brushmodel mit originwürfel in der achse) mit targetname|barrel soll/darf sich nur in eine richtung drehen, nach oben und unten, also die x-achse..da man aber die bewegung nicht ausführen kann wenn das rohr mit dem geschütz verbunden ist, muss man das rohr auf der y-achse genauso rotieren lassen wie das geschütz ergo:>> rotateto((winkel_x_wo_spieler_hinschaut,winkel_y_wo_spieler_hinschaut,0),ti
me)

soweit so gut

die winkel bekomme ich mit getplayerangles(); raus

und dazu sieht mein script folgendermaßen aus (erstmal nur mit dem geschütz in eine richtung rotierend, ohne rohr):

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:
main()

{
thread linker();
} 
linker()
{
	trigger = getent( "trig_art","targetname");
	playerlink = getent( "link","targetname");
	playerunlink = getent( "unlink","targetname");
	barrel = getent( "barrel","targetname");
		while (1)
			{
				trigger waittill ("trigger",player);				
				player.origin = playerlink.origin;
				player linkto (playerlink);
				player disableWeapon();
				iprintln(linked to artillery");

				if(player useButtonPressed())
						{
						while(player useButtonPressed())
						wait 0.01;
						player unlink();
						player enableWeapon();
						wait 0.1;
						player.origin = playerunlink.origin;
						player linkto(playerunlink);
						wait 0.1;
						player unlink();
						iprintln("unlinked");
						}
			}
		while (1)
			{
			trigger waittill("trigger",player)
			while (player.sessionstate == "playing")
				{
				targetangles = player getplayerangles();
				barrel rotateto((0,targetangles[1],0),1);
				wait0.1
				}
			}
}




wie es nicht anders zu erwarten war ein script compile error mit bad syntax...
könnte mir ein etwas erfahrener scripter eventuell mal diese eine sache berichtigen? ich hab schon in diversen foren gesucht und nirgendswo hab ich das passende gefunden.. wär sehr nett
aber ich bleib am basteln

serthy

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von serthy: 12.12.2010 22:19.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
bangingbernie
Alter Sack ;-)


images/avatars/avatar-1034.jpg


Dabei seit: 20.05.2005
Beiträge: 2.372


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wäre schön, wenn Du den Fehler posten würdest. Da steht immer dabei, in welcher Zeile der Fehler liegt.... Zunge raus

__________________

bangingbernie ist offline E-Mail an bangingbernie senden Homepage von bangingbernie Beiträge von bangingbernie suchen Nehmen Sie bangingbernie in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

mh ja würde ich ja gerne
ich weiß das man mit shift+~ die console aufbekommt und wo kann ich das kopieren?
meine console_mp_log ist leer... kA warum
ich mache einfach eins zwei screens



ich dachte immer bei bad syntax steht nicht da wo der fehler ist, zumindest habe ich es noch nie gesehn (bin ich wirklich soooo blind?!)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von serthy: 13.12.2010 01:54.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
bangingbernie
Alter Sack ;-)


images/avatars/avatar-1034.jpg


Dabei seit: 20.05.2005
Beiträge: 2.372


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Der Fehler tritt doch wohl beim kompilieren auf? Diese Konsole (die kleine, schwarze cool ) meine ich.

__________________

bangingbernie ist offline E-Mail an bangingbernie senden Homepage von bangingbernie Beiträge von bangingbernie suchen Nehmen Sie bangingbernie in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

wie meinst du das?
ich hab eine kleine testmap mit dem geschütz drauf und den script wo ich auf das geschütz (bzw die 2 scriptt_origins) verlinkt werde
das klappt einwandfrei
nur sobald ich den script verändere, so wie der letzte gepostete von mir ist mit dem rotateto und getplayerangles kommt es beim spielstart zu dem error.. ich bin verwirrt was hat das mit dem compilen zu tun? grosses Grinsen
ich mein spielen kann ich ja nur wenn ich den script verändere geht es nicht mehr
ich hab bis jetzt immer so lange am script rumgearbeitet und vereinfach bis es ging, nur mit dem rotateto und getplayerangles komm ich nicht weiter., es gibt nur spärliche informationen im net darüber
bitte berichtige mich falls ich i-wo mist schreibe grosses Grinsen
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
bangingbernie
Alter Sack ;-)


images/avatars/avatar-1034.jpg


Dabei seit: 20.05.2005
Beiträge: 2.372


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

O.k., dann hatte ich das falsch verstanden. Von Oraco gibt es schon eine Flak88 für den MP in der Map Chelm. Dort findest Du das Skript, die Effekte etc.

http://callofduty.filefront.com/file/Chelm_Poland;68828

__________________

bangingbernie ist offline E-Mail an bangingbernie senden Homepage von bangingbernie Beiträge von bangingbernie suchen Nehmen Sie bangingbernie in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

nunja ich will ungerne klauen
und mich würde das thema auch intressieren ich meine ich hab bis jetzt schon so viel dazugelernt, und i-wo muss man ja anfangen
außerdem macht es mir i-wei auch spaß sowas zu bauen
ich hab den script aus der chelm-flak jederzeit vor mir und schaue fleißig nach wie er es gemacht hat
ich verstehe zwar noch nicht alles aber es hilft echt weiter


öhm... xD i-wie hab ich mich grad verlesen
naja ^^
aber das rotateto interessiert mich jetzt, man kann das da mit getplayerangles so oft und verschieden einsetzen

zb hatte jemand einen flakscheinwerfer gemacht, der sich ebenso gedreht hatte
http://www.youtube.com/watch?gl=US&hl=uk&v=0sqjb8-5PWk

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von serthy: 13.12.2010 12:58.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

omg jungs ich könnt euch knutschen grosses Grinsen grosses Grinsen grosses Grinsen
ich hab geschafft xD
ich hab einfach mal nur den rotationsscript ausprobiert und es funktioniert einwandfrei
in 5 min kommt der script mit hoffentlich schon 2 bewegungen

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:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
main()

{
thread linker();
thread rotate();
thread smoke();
} 
linker()
{
	trigger = getent( "trig_art","targetname");
	playerlink = getent( "link","targetname");
	playerunlink = getent( "unlink","targetname");
		while (1)
			{
				trigger waittill ("trigger",player);				
				player.origin = playerlink.origin;
				player linkto (playerlink);
				player disableWeapon();
				iprintln("^3linked to aartillery");

				if(player useButtonPressed())
								{
						while(player useButtonPressed())
							wait 0.01;
						player unlink();
						player enableWeapon();
						wait 0.1;
						player.origin = playerunlink.origin;
						player linkto(playerunlink);
						wait 0.1;
						player unlink();
						iprintln("unlinked");
								  }
			}
}
rotate()
{
barrel = getent("barrel","targetname");
gun = getent("gun","targetname");
trigger_rotate = getent("trig_rotate","targetname");
playerlink = getent( "link","targetname");
gunori = getent("gun_ori","targetname");
gunori enablelinkto();
gunori linkto(gun);
while(1)
{
   trigger_rotate waittill ("trigger", player);
   while(player.sessionstate == "playing" && player useButtonPressed())
   {
      targetangles = player getplayerangles();
   
      barrel rotateto((0,targetangles[1],0),1);
	gun rotateto((targetangles[0],targetangles[1],0),1);
   
      wait 0.1;
		if(player attackButtonPressed())
		{
		earthquake(0.3, 0.3, playerlink.origin, 100);
		iprintln("Earthquake");
		playfxontag(level._effect["smoke_plumeBG"], gunori, "tag_origin" );
		wait 0.1;
		}
	}
}
}




smoke()
{
}




so jetzt ist nur das problem dass wenn ich mich vom geschütz weglinke also wieder normal auf der map rumlaufe, bewegt sich das geschütz immernoch mit... jemand eine idee? grosses Grinsen
ich hab im geshütz ein trigger multiple (trig_rotate|targetname) geht aber trotzdem nicht
wie sag ich dem spiel das ich nur das bewegen kann solange ich f drücke und nicht länger?

gelöst, script verbessert hab ein player usebuttonpressed() eingefügt smile




OKAY leute und weiter gehts grosses Grinsen
ich habe jetzt ein tag_origin (targetname|gun_ori, achtung das kleine dreieck muss ein script_model sein!) vorne an das rohr gelinkt und will da ein effekt abspielen wenn ich schießen drücke
außerdem will ich das ich 3 sekunden warten muss eh ich erneut schießen kann
mit wait 3; klappt es nicht, da bewegt sich das ganze geschütz 3 sekunden nicht, mhh mal weiter basteln
und mit dem fx hab ich auhc noch ein problem

ich update mal eben mein script
ich hab die zeile
playfxontag(level._effect["smoke_plumeBG"], gunori, "tag_origin" );
eingefügt und im ordner maps/mp eine _fx.gsc
und hab sie nat. in meiner haupt gsc aufgerufen

verzweifluuuung xD
irgendetwas stimmt mit meiner _fx.gsc nicht
selbst wenn sie leer ist kommt ein error
unknown function 41166
wenn ich den eintrag aus der main gsc lösche geht es (nur ohne effekt) schreib ich maps\mp\mp_test_fx::main(); rein kommt der error
hier nochmal meine mp_test_fx.gsc:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
main()
{
test_fx();
}
test_fx()
{
	level._effect["flak_explosion"]		= loadfx ("fx/explosions/flak88_explosion.efx");
}



weiß jemand rat?

okay alles geht einwandfrei
ich weiß nicht woran es lag, hab einfach alle ein paar mal neu geschrieben ^^
jetzt kommen wir wohl zu dem schwersten...
dem schaden
...

Dieser Beitrag wurde 9 mal editiert, zum letzten Mal von serthy: 13.12.2010 21:32.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

sooooo
leute jetzt gehts ans eingemachte
ich weiß zur schadensübertragung nur soviel:
das i-wie ermittelt wird ob eine collision zwischen geschütz und dem vektor ist

aber wie man das genau macht weiß ich leider echt nicht
vll ein script_origin in 100000000 units entfernung platzeiren und dann mit dem geschütz verlinken und das dazwischen ermitteln und dann rausfinden wo die collision ist und da einen damage erzeuigen

jetztbrauch ich aber echt eure hilfe :S

bitte helft mir

ich hab herausgefunden was man braucht aber ob das alles so stimmt weiß ich leider nicht

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:
rotate()
{
pointhit = spawn("script_model", (0,0,0));
barrel = getent("barrel","targetname");
gun = getent("gun","targetname");
gunstart = getent("gun_origin","targetname");
gunstart enablelinkto();
gunstart linkto(gun);
trigger_rotate = getent("trig_rotate","targetname");
playerlink = getent( "link","targetname");
gunori = getent("gun_ori","targetname");
gunori enablelinkto();
gunori linkto(gun);
while(1)
{
	trigger_rotate waittill ("trigger", player);
	while(player.sessionstate == "playing" && player useButtonPressed())
	{
      targetangles = player getplayerangles();
      barrel rotateto((0,targetangles[1],0),0.7);
	gun rotateto((targetangles[0],targetangles[1],0),0.7);
         wait 0.1;
		if(player attackButtonPressed() && isdefined(level.hit))
		{
		earthquake(0.3, 0.3, playerlink.origin, 100);
		iprintln("Boom");
		playfxontag(level._effect["flak_explosion"], gunori, "tag_origin");
		radiusDamage(vectorScale(level.hit.origin, 0.98), 180, 400, 25);
		wait 0.1;
		}
	}
}
start = gunstart.origin;
direction = anglesToForward(gun.angles);
direction = (0,0,0)-direction;
tracestart = start;
traceend = start + direction;
coll_detect = bulletTrace(tracestart, traceend, false, undefined);
	if(isdefined (coll_detect["fraction"]== 1))
	{
	pointhit.origin = coll_detect["position"];
	level.hit = pointhit;
	}
}




es geht hauptsächlich um den letzten teil mit der collisionsabfrage
bitte kann mal jemand drüber schauen und sagen was grob falsch ist?

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von serthy: 15.12.2010 00:17.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hey leute
viel weiter gekommen bin ich noch nicht, ich bleib aber am ball!

hab aber grade dennoch eine frage, die nicht direkt damoit was zu tun hat
>>wie benutze ich einen trigger auf 2 verschiedene weisen?
also ich hab z.b. eine tür wenn ich dein EINEN trigger betätige soll die tür normal aufgehen und wieder zu nach paar sekunden
wenn ich den SELBEN trigger dann nochmal betätige soll die tür z.b. wie ein fahrstuhl nach oben gehen (es ist egal was die tür macht, hauptsache beim ersten und zwieten mal aktivieren ist die aktion verschieden)
nunja und dann beim dritten mall soll die tür wieder normal aufgehen, beim 4. nach oben beim 5. wieder normal beim 6. wieder nach oben....
wollt nur wissen ob soetwas ohne 10 seiten skript oder sowas möglich ist
vll weiß jemand rat grosses Grinsen
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hahaha
ich hab endlich meine semesterprüfungen alle hinter mir und endlich etwas mehr zeit
jetzt mach ich das hier mal alles zu ende was ich angefangen habe!
das kommt mir jetzt alles so einfach vor, jetzt wo man weiß wie das meiste geht :p
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 2 » Fix-Dateien, Modding-Fragen, Scripting » eigenes geschütz erstellen

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv