Spieler beim Namen nennen (iprintlnbold)

Oi!mel
Hallo,
Ich hab da mal ne Frage. Wie kann ich den Spieler in einem Script beim Namen nennen. Also zum Beispiel: iprintlnbold ("Good Luck, >Spielername>");?



--- Edit by Nightwing: Thema in Scripthilfe verschoben ---
Badboy
Das dürfte denn so aussehen :

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
main()
{ 
trig = getent("text","targetname"); 
while(1) 
{ 
trig waittill ("trigger",user); 
iprintlnbold ("Good Luck " + user.name ); 
} 
}



MFG
Oi!mel
Danke =). bei iprintinbold bekommt ja der ganze Server die Anzeige wenn der Trigger von einem Spieler ausgelöst wurde. Wie kann ich es nur für einen Spieler machen?
Badboy
Dürfte das sein ^^

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
main() 
{  
trig = getent("text","targetname");  
while(1)  
{  trig waittill ("trigger",user);  
user iprintlnbold ("Good Luck " + user.name ); 
}  
}

Oi!mel
Danke, aber jetzt kommt uninitaliesed variable: user
Nightwing
Versuch es mal mit der CoD Variable self:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
main()
{ 
	trig = getent("text", "targetname"); 
	
	while(1) 
	{ 
		trig waittill ("trigger", self); 
		self iprintlnbold ("Good Luck " + self.name ); 
	} 
}


ToM
Oi!mel
jetzt bekomm ich die Fehlermeldung entity 184 is not a player

Vllt sollte ich dazusagen dass ich das Teleporter Script verwende...
Nightwing
Dazu sollte man Wissen, was genau Du machen willst. Im Titel steht nur: Spieler beim Namen nennen (iprintlnbold)
Ich hab nur das letzte Script von Badboy genommen, (warum auch immer da ein Trigger drin ist).

ToM
Oi!mel
Also das ist mein 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:
finish_med()
{
level.scr_sound["finish_rocky"] = "finish_rocky";
entFinish_transfer_med = getentarray("finish","targetname");
if(isdefined(entFinish_transfer_med))
{
for(lp=0;lp<entFinish_transfer_med.size;lp++)
entFinish_transfer_med[lp] thread Finish_transfer_med();
}


}


Finish_transfer_med()
{
while(true)
{
self waittill("trigger",other);
entTarget = getent(self.target, "targetname");

wait(0.10);
other setorigin(entTarget.origin);
other setplayerangles(entTarget.angles);
iprintlnbold ("^2W^7ell done , you are finished on ^2med^7. ^2T^7ry out ^2hard^7.");
wait(0.10);
other playsound("finish_rocky");
}
}



Und an dieser Stelle:
iprintlnbold ("^2W^7ell done , you are finished on ^2med^7. ^2T^7ry out ^2hard^7.";);
Hätte ich gerne
iprintlnbold ("^2W^7ell done Spielername, you are finished on ^2med^7. ^2T^7ry out ^2hard^7.";);
Nightwing
Du kannst nicht einfach irgendein Script nehmen, wie hier den Teleporter, und nur Deine Änderungen einfügen.
Da sind noch genug Zeilen drin, die für Dein Vorhaben überhaupt nichts da zu suchen haben.
In diesem speziellen Fall wirst Du eher Modscripting benötigen, wie z.B. hier mit den Scores zuweisen:

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:
init()
{
	strafejump = getentarray( "strafejump", "targetname" );
	maps\mp\gametypes\_rank::registerScoreInfo( "strafejump", 5 );
	for( lp=0; lp < strafejump.size; lp++ )
		strafejump[lp] thread score();
}

score()
{
	while(1)
	{
		self waittill( "trigger", player );
		player thread [ [ level.onXPEvent ] ]( "strafejump" );
		maps\mp\gametypes\_globallogic::givePlayerScore( "strafejump", player );
		level notify( "update_allhud_score" );
	}
}


Diese Funktion kannst Du nun leicht ändern mit den iprintln Messages.

ToM
Oi!mel
Die anderen Zeilen benutze ich ja für meinen Teleporter, dieser funktioniert ja auch einwandfrei. Sobald man am Zielpunkt angekommen ist, soll das bereits genannte erscheinen.
Nightwing

Zitat:

Original von Oi!mel

Die anderen Zeilen benutze ich ja für meinen Teleporter

So eine Information könntest Du auch in den ersten Post packen, dann würde es weniger Missverständnisse geben. Augenzwinkern

ToM
Oi!mel
sry und danke für deine bemühungen. Wie würde das Script aussehen wenn ich den Spieler beim Namen nenne, und die Nachricht auch nur für ihn sehbar ist?
Nightwing

Zitat:

Original von Oi!mel

Wie würde das Script aussehen wenn ich den Spieler beim Namen nenne, und die Nachricht auch nur für ihn sehbar ist?

Kommt nur eine Zeile hinzu:

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:
init()
{
	strafejump = getentarray( "strafejump", "targetname" );
	maps\mp\gametypes\_rank::registerScoreInfo( "strafejump", 5 );
	for( lp=0; lp < strafejump.size; lp++ )
		strafejump[lp] thread score();
}

score()
{
	while(1)
	{
		self waittill( "trigger", player );
		player thread [ [ level.onXPEvent ] ]( "strafejump" );
		maps\mp\gametypes\_globallogic::givePlayerScore( "strafejump", player );
		level notify( "update_allhud_score" );
		self iprintlnbold( "Hier Dein Text" + self.name "." );
	}
}


Beim Teleporterscript ist die Zeile schon eingefügt, allerdings auskommentiert und noch sichtbar für alle.
Hab es mal geändert, sollte so funktionieren:

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:
main()
{
	level._effect[ "teleporter" ] = loadfx( "teleporter/teleport_red" );
	level.scr_sound[ "teleport_start" ] = "teleport_start";
	level.scr_sound[ "teleport_dest" ] = "teleport_dest";
	
	entTransporter = getentarray("enter", "targetname");
	
	if(isdefined(entTransporter)){
	
		for(i = 0; i < entTransporter.size; i++)
			entTransporter[i] thread Teleporter();
	}
}


Teleporter()
{
	maps\mp\_fx::loopfx( "teleporter", ( self.origin ), 3, ( self.origin ) + ( 0, 0, 270 ) );

	while(true)
	{
		self waittill("trigger", other);
		entTarget = getent(self.target, "targetname");
		other playsound("teleport_start");
		wait(0.30);
		other setorigin(entTarget.origin);
		other setplayerangles(entTarget.angles);
		other iprintlnbold("Hier Dein Text" + other.name ".");
		wait(0.10);
		other playsound("teleport_dest");
	}
}


Bedeutet für Dein Script: Setz die Var other vor den Funktionsaufruf, dann sieht es nur der eine Player.

ToM
Oi!mel
Danke dir. Und beim Teleporter Script geht das nicht, oda wie?
Nightwing

Zitat:

Original von Oi!mel

Danke dir. Und beim Teleporter Script geht das nicht, oda wie?

Hab grad noch was dazueditiert.

ToM
Oi!mel
Jetzt bekomme ich diese Fehlermeldung:
Nightwing
Bad Syntax bedeutet, das in dieser Zeile bzw. in der Zeile davor ein Fehler ist.
Ändere die Zeile mal bitte ab in:
other iprintlnbold("Hier Dein Text ", other.name);

ToM
Oi!mel
Funktioniert jetzt, danke vielmals.
Geändert hab ich nur das:
other iprintlnbold("^2W^7elcome back to the train lobby, " + other.name ".");
in
other iprintlnbold("^2W^7elcome back to the train lobby, " + other.name);

Aber es muss doch möglich sein nach dem Namen weiter zu schreiben?
Nightwing
Sollte so funktionieren (ich hatte das , vergessen):
other iprintlnbold("text 1 ", other.name, " text 2");

ToM