Camping Optionen bei v1.6

firestorm17
Hallo!

hab mir denn mod inst. und läuft auch alles so wie es sein soll. mein problem ist nun, das ich die camper auf dem compass anzeigenlassen lassen möchte und sie gleichzeitig pupsen sollen. orginal sind es ja 2 verschiedene optionen. hab da schonmal in der _ex_camper.gsc etwas rumprobiert aber es hat nicht so wirklich funktioniert.
hatte es so geändert:

markTheCamper()
{
level endon("round_ended");
self endon("ex_dead");
self endon("stopcamper");

if(self.ex_iscamper || (isDefined(level.roundended) && level.roundended) || self.sessionstate != "playing") return;

self.ex_iscamper = true;

// notify player and players
self iprintlnbold(&"CAMPING_MARKED_MESSAGE_SELF", self);
self iprintlnbold(&"CAMPING_TIME_MESSAGE_SELF", level.ex_camptimer);
iprintln(&"CAMPING_MARKED_MESSAGE_ALL", self);
iprintln(&"CAMPING_TIME_MESSAGE_ALL", level.ex_camptimer);

if(isDefined(self.ex_objnum))
{
objective_delete(self.ex_objnum);
self.ex_objnum = undefined;
}

self.ex_objnum = getFreeObjective();

compass_icon = "";

if(self.pers["team"] == "allies")
{
compass_icon = "objective_" + game["allies"];
compass_team = "none";
}
else
{
compass_icon = "objective_" + game["axis"];
compass_team = "none";
}

objective_add(self.ex_objnum, "current", self.origin, compass_icon);
objective_team(self.ex_objnum, compass_team);

if(level.ex_camptimer >= 1) self thread countCamper();

while(isPlayer(self) && isAlive(self) && self.pers["team"] != "spectator")
{
for(i=0; (i<60 && isPlayer(self) && isAlive(self));
{
if((i <= 29) && self.ex_iscamper) objective_icon(self.ex_objnum, "objpoint_radio");
else if((i >= 30) && self.ex_iscamper) objective_icon(self.ex_objnum, compass_icon);

if(self.ex_iscamper) objective_position(self.ex_objnum, self.origin);

playfxontag(level.ex_effect["fartbomb"], self, "pelvis");
self playLocalSound("fart");

wait 0.02;
}
}
}



dabei ist dann allerdings nur dauergepupse,wegen dem wait 0.02, rausgekommen.

und das nächste was ich ändern wollte ist das verschiedene fartsound gespielt werden. da hab ich aber noch nichts weiter versucht.

hoffe ihr könnt mir weiter helfen, wäre echt super.

gruß firestorm!
Nightwing
So wird das nichts.

Probier mal bitte diesen Code, ich hab es nicht getestet.

Ändere im Original (ex_camper.gsc)

die Zeile 55 (hier die Zeile 6):

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:
		// ok, they didn't listen, punish them!
		if((campingtime >= level.ex_campobjtime || snipercampingtime >= level.ex_campsniper_objtime) && !self.ex_isunknown)
		{
			switch(level.ex_camppunish)
			{
				case 1:	self thread markTheCamper();	break;
				case 2:	self thread makeThemFart();	break;
				case 3:	self thread blowTheCamper();	break;
				case 4:	self thread shellshockPlayer(false);	break;
				case 5:	self thread shellshockPlayer(true);	break;
				default:
				{
					switch(randomInt(6))
					{
						case 2:	self thread makeThemFart();	break;
						case 3:	self thread blowTheCamper();	break;
						case 4:	self thread shellshockPlayer(false);	break;
						case 5:	self thread shellshockPlayer(true);	break;
						default:	self thread markTheCamper();	break;
					}
				}
			}
			
			campingtime = 0;
			snipercampingtime = 0;
			show_warning = false;
		}




so ab, dass beide Funktionen aufgerufen werden, das fällt mir (um diese Uhrzeit) auf die Schnelle ein.

Hier der neue Code:

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:
		// ok, they didn't listen, punish them!
		if((campingtime >= level.ex_campobjtime || snipercampingtime >= level.ex_campsniper_objtime) && !self.ex_isunknown)
		{
			switch(level.ex_camppunish)
			{
				case 1:	self thread markTheCamper();
					self thread makeThemFart();
					break;
				case 2:	self thread makeThemFart();	break;
				case 3:	self thread blowTheCamper();	break;
				case 4:	self thread shellshockPlayer(false);	break;
				case 5:	self thread shellshockPlayer(true);	break;
				default:
				{
					switch(randomInt(6))
					{
						case 2:	self thread makeThemFart();	break;
						case 3:	self thread blowTheCamper();	break;
						case 4:	self thread shellshockPlayer(false);	break;
						case 5:	self thread shellshockPlayer(true);	break;
						default:	self thread markTheCamper();	break;
					}
				}
			}
			
			campingtime = 0;
			snipercampingtime = 0;
			show_warning = false;
		}
	}
 }



Da gibts bestimmt noch viele andere Möglichkeiten, aber allzusehr bin ich auch (noch) nicht mit der Scripterei bewandert, aber es wird Augenzwinkern


So long

ToM

EDIT: Code korrigiert, grammatikalisch nun richtig, Test erfolgt nach Feierabend.
MikeTNT
Ich habe diesen Teil hier rein serverseitig eingebaut:
case 1: {
self thread markTheCamper();
self thread makeThemFart(); break;
}

Irgendwie hat sich nichts verändert. Habe ich irgendwo etwas übersehen? (Die Camper-Schikane steht auf 1)

cu Mike
Nightwing
Wie gesagt, ich habs nicht getestet, mach ich aber heut oder morgen noch, dann geb ich Dir Bescheid.

Der eXtreme iss grad LAN Einrichtungstechnisch eh drauf grosses Grinsen

Grüßle ToM

EDIT:

Sorry Mike, mag er net haben, mir fällt partout nicht ein, die beiden Funktionen ohne weiteres zu Verbinden... Wie michs scho wieder ankotzt Schlechtes Essen? Schlechtes Essen?

Da iss ausnahmsweise der AdmiralMod leichter...

Ich informier mich aber, da die case befehle mir zwar noch etwas unvertraut sind, aber Du bekommst ne Lösung, wenns einfach ist grosses Grinsen