Raised This Month: $ Target: $400
 0% 

Kick dead players after 60 sec


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
LaineN
Veteran Member
Join Date: Mar 2008
Location: Sweden
Old 05-21-2009 , 11:42   Kick dead players after 60 sec
Reply With Quote #1

Hi!
I've tryed to make a plugin that will kick a player if he was dead for 60 seconds, but I have some problems with it. Here is my code:

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#pragma semicolon 1

#define PLUGIN_NAME    "Dead Kicker"
#define PLUGIN_VERSION    "1.0"
#define PLUGIN_AUTHOR    "LaineN"

new bool:gbAlive[33];

new 
gDeadTime[33];

new 
gMaxPlayers;

public 
plugin_init()
{
    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR);
    
    
RegisterHam(Ham_Spawn"player""fwd_PlayerSpawn"1);
    
    
register_event("DeathMsg""event_PlayerDeath""a");
    
    
set_task(5.0"TaskCheckPlayers"___"b");
    
    
gMaxPlayers get_maxplayers();
}

public 
client_putinserver(id)
{
    
gbAlive[id] = false;
    
    
gDeadTime[id] = 0;
}

public 
client_disconnect(id)
{
    
gbAlive[id] = false;
}

public 
fwd_PlayerSpawn(id)
{
    
gbAlive[id] = true;
}

public 
event_PlayerDeath()
{
    new 
id read_data(2);
    
    
gbAlive[id] = false;
}

public 
TaskCheckPlayers()
{
    if ( 
get_playersnum() > )
    {
        for ( new 
id 1id <= gMaxPlayersid++ )
        {
            if ( 
access(idADMIN_IMMUNITY)
            || 
is_user_hltv(id) ) continue;
            
            if ( !
gbAlive[id] )
            {
                
gDeadTime[id] += 5;
                
CheckDeadTime(id);
            }
            else
            {
                if ( 
gDeadTime[id] > gDeadTime[id] = 0;
            }
        }
    }
}

CheckDeadTime(id)
{
    if ( 
gDeadTime[id] >= 60 )
    {
        new 
szName[32];
        
get_user_name(idszNamesizeof(szName) - 1);
        
        
client_print(0print_chat"%s was kicked for being dead longer than 60 seconds!"szName);
        
server_cmd("kick #%i ^"You were kicked for being dead longer than 60 seconds^""get_user_userid(id));
    }

After 60 seconds this message starts to print every 5 seconds:
Code:
 was kicked for being dead longer than 60 seconds!
Even if you are dead, or alive.

Someone see some faults in the code?
__________________
Bollnas Team - HideNSeek

See all of Bollnas Team's HideNSeek
servers at
http://bollnasteam.se/!


Last edited by LaineN; 05-21-2009 at 16:40.
LaineN is offline
Dores
Veteran Member
Join Date: Jun 2008
Location: You really don't wanna k
Old 05-21-2009 , 13:40   Re: Kick dead players after 60 sec
Reply With Quote #2

well, i don't know if there are more problems, didn't look deeply, but:
PHP Code:
public event_PlayerDeath(id)
{
    
gbAlive[id] = false;
    
    return 
PLUGIN_CONTINUE;
}

--->

public event_PlayerDeath()
{
    
gbAlive[read_data(2)] = false;
    
    return 
PLUGIN_CONTINUE;

__________________
O o
/Ż________________________
| IMMA FIRIN' MAH LAZOR!!!
\_ŻŻŻ
Dores is offline
LaineN
Veteran Member
Join Date: Mar 2008
Location: Sweden
Old 05-21-2009 , 14:14   Re: Kick dead players after 60 sec
Reply With Quote #3

Quote:
Originally Posted by Dores View Post
well, i don't know if there are more problems, didn't look deeply, but:
PHP Code:
public event_PlayerDeath(id)
{
    
gbAlive[id] = false;
    
    return 
PLUGIN_CONTINUE;
}

--->

public event_PlayerDeath()
{
    
gbAlive[read_data(2)] = false;
    
    return 
PLUGIN_CONTINUE;

Thanks, how could I be so blind?
__________________
Bollnas Team - HideNSeek

See all of Bollnas Team's HideNSeek
servers at
http://bollnasteam.se/!

LaineN is offline
xPaw
Retired AMX Mod X Moderator
Join Date: Jul 2008
Old 05-21-2009 , 14:19   Re: Kick dead players after 60 sec
Reply With Quote #4

Quote:
Originally Posted by LaineN View Post
Thanks, how could I be so blind?
Easy.
__________________
xPaw is offline
LaineN
Veteran Member
Join Date: Mar 2008
Location: Sweden
Old 05-21-2009 , 16:39   Re: Kick dead players after 60 sec
Reply With Quote #5

LOL. Still the same problem!
Can't find the fault.

EDIT: Code updated.
__________________
Bollnas Team - HideNSeek

See all of Bollnas Team's HideNSeek
servers at
http://bollnasteam.se/!

LaineN is offline
hleV
Veteran Member
Join Date: Mar 2007
Location: Lithuania
Old 05-21-2009 , 17:17   Re: Kick dead players after 60 sec
Reply With Quote #6

Code:
#include <amxmodx> #include <hamsandwich>   new MaxDeadTime, IsDead[33];   public plugin_init() {         MaxDeadTime = register_cvar("amx_maxdeadtime", "60");           RegisterHam(Ham_Killed, "player", "PlayerKilled", 1);         RegisterHam(Ham_Spawn, "player", "PlayerSpawned", 1); }   public client_disconnect(Cl)         IsDead[Cl] = false;   public PlayerKilled(Cl) {         IsDead[Cl] = true;           set_task(get_pcvar_float(MaxDeadTime), "KickDeadPlayer", Cl); } public PlayerSpawned(Cl) {         IsDead[Cl] = false;           remove_task(Cl); }   public KickDeadPlayer(Cl) {         new szName[32];         get_user_name(Cl, szName, sizeof(szName) - 1);                   client_print(0, print_chat, "%s was kicked for being dead longer than 60 seconds!", szName);         server_cmd("kick #%i ^"You were kicked for being dead longer than 60 seconds^"", get_user_userid(Cl)); }
__________________
hleV is offline
LaineN
Veteran Member
Join Date: Mar 2008
Location: Sweden
Old 05-21-2009 , 18:14   Re: Kick dead players after 60 sec
Reply With Quote #7

Thanks, worked!
__________________
Bollnas Team - HideNSeek

See all of Bollnas Team's HideNSeek
servers at
http://bollnasteam.se/!

LaineN 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:31.


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