Page 1 of 1

iprintlnbold script help

Posted: April 19th, 2011, 2:02 pm
by Goro92
i want to make a script that shows ONLY one time for each player the iprintlnbold message like the end of peds propel
i tried this but doesn't work :(

with this script only one player can show the message
i tried also with " player wait 1000 "but i knew that was a stupid thing xD

Code: Select all

main()
{
thread finishmap();
}
 
finishmap()
{
trigger = getent ("finishmap","targetname");
 
while (1)
{
   
 
 
trigger waittill ("trigger",player);
if(isdefined(player.down)) return;
player iprintlnbold ("^1Congratulation, ^7" +player.name + "^1, You have finished the map^7!!!");     
 
 
 
 
 wait 10000.0;
 
 
}
}
 
help me :D

Re: iprintlnbold script help

Posted: April 19th, 2011, 3:30 pm
by megazor
btw, triggers catch only alive players, so checking for only 'player.done' is enough.

Re: iprintlnbold script help

Posted: April 19th, 2011, 4:42 pm
by Goro92
KillerSam wrote:Try this code:

Code: Select all

main()
{
thread finishmap();
}

finishmap()
{
trigger = getent("finishmap","targetname");

   while (1)
   {
      trigger waittill ("trigger", user );
      if ( isPlayer( user ) && isAlive( user ) && isdefined( user.done ) ) //checks if player is already done
               {
               wait 0.5;
               }
      else  //if not already done, display the message
         {
user iprintlnbold ("Congratulations, " + user.name + ", you have completed the map!");   
         user.done = true; //set the player to "done" so that it doesn't show again to that player.
         }
   }
}

THANK YOU! :mrgreen:

Re: iprintlnbold script help

Posted: April 19th, 2011, 6:42 pm
by Rezil
Unnecessary if-else and checking too much, this is enough:

Code: Select all

main()
{
	thread finishmap();
}

finishmap()
{
	trigger = getent("finishmap","targetname");

	while (1)
	{
		trigger waittill ("trigger", user);
		if (!isdefined(user.done))
		{
			user iprintlnbold ("Congratulations, " + user.name + ", you have completed the map!");   
			user.done = true; //set the player to "done" so that it doesn't show again to that player.
		}
	}
}