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 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 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 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 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 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
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.
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
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 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 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
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