Raised This Month: $ Target: $400
 0% 

If a player join late


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Claw
Member
Join Date: Sep 2004
Old 11-20-2007 , 08:30   If a player join late
Reply With Quote #1

So im using this plugin which gives everyone a chance to get a random item at start of each round, but if it happens that a player joins about 5 seconds after the round starts, he doesnt get the use of this plugin.

How can i make it execute the same random chance on players if they join the game a few seconds after round starts?

Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define TIME_TO_WAIT 2.0

public plugin_init()
{
	register_logevent("round_start", 2, "1=Round_Start")
}

public main_func()
{ 
	new players[32], num
	get_players(players, num) 
	new player
	for(new i = 0; i < num; i++)
	{
		player = players[i]
		new health = get_user_health(player); 

		if(random_num(0, 100) <= 1)
		{			
			give_item(player, "weapon_scout")
			
			cs_set_user_bpammo(player, CSW_SCOUT, 0)
			client_print(player, print_chat, "[Lottery] you just won a scout with 1 bullet (1 percent chance)")
		}
		
		if(random_num(0, 100) <= 2)
		{
			give_item(player, "weapon_deagle")	
			
			cs_set_user_bpammo(player, CSW_DEAGLE, 0)
			client_print(player, print_chat, "[Lottery] you just won a deagle with 1 bullet (2 percent chance)")
		}
		
		if(random_num(0, 100) <= 15)
		{
			give_item(player, "weapon_hegrenade")
			client_print(player, print_chat, "[Lottery] you just won a HE-grenade (15 percent chance)")
		}
		
		if(random_num(0, 100) <= 10)
		if (cs_get_user_team(player) == CS_TEAM_T)
		{
  			give_item(player, "weapon_shield")
   			client_print(player, print_chat, "[Lottery] you just won a shield (10 percent chance)")
		} 
		
		if(random_num(0, 100) <= 1)
		{
			health += 100;
			set_user_health(player,health);  
			client_print(player, print_chat, "[Lottery] you just won 100 extra health (1 percent chance)")
		}

		if(random_num(0, 100) <= 5)
		{
			health += 50;
			set_user_health(player,health);  
			client_print(player, print_chat, "[Lottery] you just won 50 extra health (5 percent chance)")
		}

		if(random_num(0, 100) <= 10)
		{
			health += 25;
			set_user_health(player,health);  
			client_print(player, print_chat, "[Lottery] you just won 25 extra health (10 percent chance)")
		}

		if(random_num(0, 100) <= 25)
		{
			cs_set_user_armor(player, 100, CS_ARMOR_VESTHELM)	
			client_print(player, print_chat, "[Lottery] you just won a kevlar and helmet (25 percent chance)")
		}
}
}

public round_start()
{
	set_task(TIME_TO_WAIT, "main_func")
}
Claw is offline
purple_pixie
Veteran Member
Join Date: Jun 2007
Location: Winchester, England
Old 11-20-2007 , 09:09   Re: If a player join late
Reply With Quote #2

Couldn't you just up TIME_TO_WAIT to 5 seconds.

Then the players get their item 5 seconds after round starts.

So anyone who joined before then would get one.
purple_pixie is offline
Claw
Member
Join Date: Sep 2004
Old 11-20-2007 , 13:03   Re: If a player join late
Reply With Quote #3

Well but if the player joins later then 5 seconds? ;)
Claw is offline
purple_pixie
Veteran Member
Join Date: Jun 2007
Location: Winchester, England
Old 11-21-2007 , 04:34   Re: If a player join late
Reply With Quote #4

Nothing.

What is happening, is that 5 seconds (2 atm) after the round starts, it scans every connected player and gives the items on a chance.

So if they weren't connected then, they get no item.
It's not setting a timer to 5 seconds after they spawn, and then running it just for that player.


p.s. - you do know a player could win every single item, right?
purple_pixie is offline
Claw
Member
Join Date: Sep 2004
Old 11-21-2007 , 13:34   Re: If a player join late
Reply With Quote #5

Quote:
Originally Posted by purple_pixie View Post
Nothing.

What is happening, is that 5 seconds (2 atm) after the round starts, it scans every connected player and gives the items on a chance.

So if they weren't connected then, they get no item.
It's not setting a timer to 5 seconds after they spawn, and then running it just for that player.


p.s. - you do know a player could win every single item, right?
Well yeah i know what it does and im using it now, it's all good and i know that a player can win every thing if he is pretty darn lucky. Its the lottery!

But i dont want longer delay on the item chance, what i really want is that it executes the plugin on the player whenever he starts the round/joins and gets to play. And yeah btw, i have no clue on how to script/code so i dont know if it really is possible
Claw is offline
purple_pixie
Veteran Member
Join Date: Jun 2007
Location: Winchester, England
Old 11-22-2007 , 05:15   Re: If a player join late
Reply With Quote #6

Oh right, now I'm with you.

For some reason I thought you just wanted the time upped slightly, but really you want everyone to get the plugin.

In *that* case ... gimme a little time and I'll slightly rewrite it.

EDIT: Try this one for size:
Code:
#include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike> #include <fakemeta> #define TIME_TO_WAIT 2.0 #define TASK_ID 2796 public plugin_init() {     register_forward(FM_Spawn,"on_spawn",1) } public main_func(const taskid) {     new player = taskid - TASK_ID ;     if ( is_user_alive(player) )     {         new health = get_user_health(player);         if(random_num(0, 100) <= 1)         {                       give_item(player, "weapon_scout")                         cs_set_user_bpammo(player, CSW_SCOUT, 0)             client_print(player, print_chat, "[Lottery] you just won a scout with 1 bullet (1 percent chance)")         }                 if(random_num(0, 100) <= 2)         {             give_item(player, "weapon_deagle")                          cs_set_user_bpammo(player, CSW_DEAGLE, 0)             client_print(player, print_chat, "[Lottery] you just won a deagle with 1 bullet (2 percent chance)")         }                 if(random_num(0, 100) <= 15)         {             give_item(player, "weapon_hegrenade")             client_print(player, print_chat, "[Lottery] you just won a HE-grenade (15 percent chance)")         }                 if(random_num(0, 100) <= 10)         if (cs_get_user_team(player) == CS_TEAM_T)         {             give_item(player, "weapon_shield")             client_print(player, print_chat, "[Lottery] you just won a shield (10 percent chance)")         }                 if(random_num(0, 100) <= 1)         {             health += 100;             set_user_health(player,health);               client_print(player, print_chat, "[Lottery] you just won 100 extra health (1 percent chance)")         }         if(random_num(0, 100) <= 5)         {             health += 50;             set_user_health(player,health);               client_print(player, print_chat, "[Lottery] you just won 50 extra health (5 percent chance)")         }         if(random_num(0, 100) <= 10)         {             health += 25;             set_user_health(player,health);               client_print(player, print_chat, "[Lottery] you just won 25 extra health (10 percent chance)")         }         if(random_num(0, 100) <= 25)         {             cs_set_user_armor(player, 100, CS_ARMOR_VESTHELM)               client_print(player, print_chat, "[Lottery] you just won a kevlar and helmet (25 percent chance)")         }     } } public on_spawn(id) {     set_task(TIME_TO_WAIT, "main_func",TASK_ID+id) }

Last edited by purple_pixie; 11-22-2007 at 06:19.
purple_pixie is offline
Claw
Member
Join Date: Sep 2004
Old 11-22-2007 , 08:41   Re: If a player join late
Reply With Quote #7

Ehm is it only me, or is it not possible to copy it? When i copy it from here it get's like this:
Code:
 #include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike> #include <fakemeta> #define TIME_TO_WAIT 2.0 #define TASK_ID 2796 public plugin_init() {     register_forward(FM_Spawn,"on_spawn",1) } public main_func(const taskid) {     new player = taskid - TASK_ID ;     if ( is_user_alive(player) )     {         new health = get_user_health(player);         if(random_num(0, 100) <= 1)         {                      give_item(player, "weapon_scout")                         cs_set_user_bpammo(player, CSW_SCOUT, 0)             client_print(player, print_chat, "[Lottery] you just won a scout with 1 bullet (1 percent chance)")         }                 if(random_num(0, 100) <= 2)         {             give_item(player, "weapon_deagle")                          cs_set_user_bpammo(player, CSW_DEAGLE, 0)             client_print(player, print_chat, "[Lottery] you just won a deagle with 1 bullet (2 percent chance)")         }                 if(random_num(0, 100) <= 15)         {             give_item(player, "weapon_hegrenade")             client_print(player, print_chat, "[Lottery] you just won a HE-grenade (15 percent chance)")         }                 if(random_num(0, 100) <= 10)         if (cs_get_user_team(player) == CS_TEAM_T)         {         give_item(player, "weapon_shield")       client_print(player, print_chat, "[Lottery] you just won a shield (10 percent chance)")         }                 if(random_num(0, 100) <= 1)         {             health += 100;             set_user_health(player,health);              client_print(player, print_chat, "[Lottery] you just won 100 extra health (1 percent chance)")         }         if(random_num(0, 100) <= 5)         {             health += 50;             set_user_health(player,health);              client_print(player, print_chat, "[Lottery] you just won 50 extra health (5 percent chance)")         }         if(random_num(0, 100) <= 10)         {             health += 25;             set_user_health(player,health);              client_print(player, print_chat, "[Lottery] you just won 25 extra health (10 percent chance)")         }         if(random_num(0, 100) <= 25)         {             cs_set_user_armor(player, 100, CS_ARMOR_VESTHELM)                client_print(player, print_chat, "[Lottery] you just won a kevlar and helmet (25 percent chance)")         }     } } public on_spawn(id) {     set_task(TIME_TO_WAIT, "main_func",TASK_ID+id) }
And then it's not possible to compile, could you maybe compile it for me? ^^

Last edited by Claw; 11-22-2007 at 09:04.
Claw is offline
[ --<-@ ] Black Rose
ANNIHILATED
Join Date: Sep 2005
Location: Stockholm, Sweden.
Old 11-22-2007 , 10:28   Re: If a player join late
Reply With Quote #8

register_plugin()?
It's you.

Last edited by [ --<-@ ] Black Rose; 11-22-2007 at 10:30.
[ --<-@ ] Black Rose is offline
purple_pixie
Veteran Member
Join Date: Jun 2007
Location: Winchester, England
Old 11-22-2007 , 10:29   Re: If a player join late
Reply With Quote #9

But just for kicks
Attached Files
File Type: sma Get Plugin or Get Source (lottery.sma - 648 views - 2.3 KB)
purple_pixie is offline
Claw
Member
Join Date: Sep 2004
Old 11-22-2007 , 10:53   Re: If a player join late
Reply With Quote #10

Hmm doesn't seem to work, either im just damn unlucky not winning anything on 15rounds or it's not working
Claw is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 01:16.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode