Last Man Standing wird geteleported

Banana2077
Hallo Leute folgendes,

ich baue gerade eine map für den Novemberdobby Zombie Mod 1.52.
Nun möchte ich den Last man wohinteleporten, dass heisst wenn der letzte überlebende mensch gewählt ist wird er automatisch teleported....

Habe schon mit novemberdobby geschireben, er sagte das könnte möglich sein mit der map .gsc....

Nun Frage an euch, hat einer eine Idee wie?


Danke


Banana2077
Rycoon
Ich hätte die Idee, dass du in der Map irgendwo ein paar script_origins platzierst und den Spieler dann zu einem von denen teleportierst (zufällig).

Eine zweite Variante wäre den Spieler an einem Spawn Punkt zu teleportieren. Damit kannst du nämlich auch mit der spawnlogic das Problem beseitigen, dass der Spieler irgendwo mitten in einer Zombie Masse spawnen könnte.

Entscheide dich für eine Variante und ich mache dir dann ein Skript dazu. grosses Grinsen
Banana2077
Das heisst du könntest den Last Man zu einem Script_origin teleportieren?
Es darf aber nur der Last man sein niemand anders!
Rycoon
Ja das ist mir klar. In welchem Team ist denn der Last Human? Allies? Axis? Wenn er der letzte ist dann nehm ich mal an ist er auch der einzige in seinem Team. Das heißt ich müsste nur abfragen ob nur noch einer in diesem Team ist, wenn ja dann teleportiere ihn.
Banana2077
Ja das wäre der letze allies...
Rycoon
OK. Ich habe gerade eben schnell das Skript geschrieben und hoffe es funktioniert auch.

Zuerst gehst du nochmals in deine Map und setzt irgendwo (wo du möchtest) ein paar script_origins hinein. Selektier dein script_origin und drücke N. Dann fügst du folgendes ein:

key: targetname
value: teleport_origin

Wenn du das mit jedem so gemacht hast speicherst du deine Map und speicherst dieses Skript unter "cod4\raw\maps\mp\" mit dem Namen "_lastman.gsc":

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:
init()
{
	thread onConnected();
}

onConnected()
{
	while(1)
	{
		level waittill("connected", player);
		player thread onSpawn();
	}
}

onSpawn()
{
	self endon("disconnect");
	
	while(1)
	{
		self waittill("spawned_player");
		self.lastman = false;
		if(self.pers["team"] == "allies")
			self thread CheckLastMan();
	}
}

CheckLastMan()
{
	self endon("disconnect");
	self endon("death");
	
	while(1)
	{
		alive = GetTeamPlayesAlive("allies");
		if(alive == 1 && self.pers["team"] == "allies" && !self.lastman)
		{
			self.lastman = true;
			teleports = getentarray("teleport_origin", "targetname");
			target = RandomInt(teleports.size);
			self SetOrigin(target.origin);
			break;
		}
		wait 0.1;
	}
}



Anschließend öffnest du eine mp_mapname.gsc und fügst dort noch folgendes hinzu:

maps\mp\_lastman::init();

Speichern.

Zuletzt fügst du bei "Update Zone Files" noch folgendes hinzu:

rawfile,maps/mp/_lastman.gsc

So, das war es eigentlich. Ich hoffe ich habe es verständlich beschrieben und hoffe auch, dass es funktioniert.
Banana2077
Erstmal vielen dank dafür! grosses Grinsen
Ist es auch möglich dieses script nur zu aktivieren wenn tatsächlich der mod zom_db
Auf dem server läuft?
Danke!
Rycoon
Ja ich denke das geht schon. Nur ist es etwas schwierig, weil die Mod ja nicht immer nur zom_db heißt. Ich bin mir sicher dass es Leute gibt die es umbenannt haben, weil sie noch was mit eingefügt haben (Skins, waffen, etc...). Wie heißt denn der Gametype für die Mod (kurze Form wie "DM" - Deathmatch) ? Wenn es z.B. "zom" wäre, hätten wir ein Problem weil andere Zombie Mods auch schon so einen Namen haben (genau wie meine).
Banana2077
Banana2077
Hmja heisst zom Zunge raus

Naja eig. wird die map eh nur auf zom_db servern laufen, schreib ich eben ausdrücklich dazu ^^
Rycoon
Nagut dann mach aus dem Anfang wo onConnected(); steht folgendes drauß:

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

code:
1:
2:
3:
4:
5:
6:
7:
init()
{
	if( isSubStr( getdvar("fs_game"), "zom_db" ) )
		thread onConnected();
}



Sollte so gehen denke ich. grosses Grinsen
Banana2077

Zitat:

Original von Banana2077
Das bekomm ich beim Spielstart:

http://www.imagebanana.com/view/h0teykdy/cod4error.jpg


Trotzdem ist das noch ein Problem..
Rycoon
Oh, ups... das Bild hab ich voll übersehen geschockt
Sorry... grosses Grinsen

Ich sehe grade das bei GetTeamPlayersAlive ein "r" bei Players fehlt. Bei deinem Screen.
Banana2077
Da tut sich leider garnix :/