AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [CS 1.6]/respawn protection (https://forums.alliedmods.net/showthread.php?t=132388)

0lenny0 07-14-2010 18:22

[CS 1.6]/respawn protection
 
Hello.
I am having a knife server running here that used to have Advanced Respawn.
But some periods this plugin couses problems with health.
Like in maps with 1hp or 35 hp we have something around 60hp.
Sow i used Respawn Forever wich worked fine.
Only the problem is people can use /respawn to gain full health and if i switch to spectator i spawn :S
Could you make it sow only dead people can use /respawn or if you use /respawn you get teleported to spawn with the same health?
And fix the spectator bug :P.
This is the code:
Code:

/* AMXX Mod script.
*
* (c) Copyright 2004, developed by Geesu
* This file is provided as is (no warranties).
*
* Changelog
* 1.1:
*  Added /respawn command to spawn a player if they're dead
*  Added a public cvar
* 1.0:
*    Pistols are now given to players when they respawn
*    sv_checkpistols cvar added, if this is set to 0, then players will always spawn with a pistol, otherwise they will only spawn with a pistol when it is not scoutzknivez and not a ka map
*    sv_respawn cvar added, set this to 0 to disable the plugin
*/

new const VERSION[] =    "1.1"

#include <amxmodx>
#include <fun>
#include <cstrike>

#define DISABLE_CS 0

// team ids
#define UNASSIGNED 0
#define TS 1
#define CTS 2
#define AUTO_TEAM 5

new bool:g_PistolsDisabled = false

public plugin_init(){

    register_plugin("Respawn Forever", VERSION, "Pimp Daddy (OoTOAoO)")

    register_event("DeathMsg","on_Death","a")
   
    register_cvar("sv_checkpistols", "1")
    register_cvar("sv_respawn", "1")
    register_cvar("respawn_forever_version", VERSION, FCVAR_SERVER)

    register_clcmd("say","on_Chat")
    register_clcmd("say_team","on_Chat")
}

public on_Chat(id)
{
    if ( !get_cvar_num("sv_respawn") )
    {
        client_print(id, print_chat, "* Respawn plugin disabled")
        return PLUGIN_CONTINUE
    }

    new szSaid[32]
    read_args(szSaid, 31)

    if (equali(szSaid,"^"/respawn^"") || equali(szSaid,"^"respawn^""))
    {
        spawn_func(id)
    }
}

public check_pistols()
{
    /* Determine if we should give players a pistol or not */
    if ( get_cvar_num("sv_checkpistols") )
    {
        set_task(1.0, "check_pistols")
        new mapname[32]
        get_mapname(mapname,31)
        if ( containi(mapname,"ka_")!=-1 || containi(mapname,"scoutzknivez")!=-1 )
                g_PistolsDisabled = true
    }
}

public spawn_func(id)
{
    new parm[1]
    parm[0]=id
   
    /* Spawn the player twice to avoid the HL engine bug */
    set_task(0.5,"player_spawn",72,parm,1)
    set_task(0.7,"player_spawn",72,parm,1)

    /* Then give them a suit and a knife */
    set_task(0.9,"player_giveitems",72,parm,1)
}

public on_Death()
{
    if ( !get_cvar_num("sv_respawn") )
        return PLUGIN_CONTINUE
   
    new victim_id = read_data(2)
   
    spawn_func( victim_id )

    return PLUGIN_CONTINUE
}

public player_giveitems(parm[1])
{
    new id = parm[0]

    give_item(id, "item_suit")
    give_item(id, "weapon_knife")

    /* Determines if a players should be given a pistol */
    if ( !g_PistolsDisabled )
    {
        new wpnList[32] = 0, number = 0, bool:foundGlock = false, bool:foundUSP = false
        get_user_weapons(id,wpnList,number)
       
        /* Determine if the player already has a pistol */
        for (new i = 0;i < number;i++)
        {
            if (wpnList[i] == CSW_GLOCK18)
                foundGlock = true
            if (wpnList[i] == CSW_USP)
                foundUSP = true
        }
       
        /* Give a T his/her pistol */
        if ( get_user_team(id)==TS && !foundGlock )
        {
                give_item(id,"weapon_glock18")
                give_item(id,"ammo_9mm")
                give_item(id,"ammo_9mm")
        }
        /* Give a CT his/her pistol */
        else if ( get_user_team(id)==CTS && !foundUSP )
        {
                give_item(id,"weapon_usp")
                give_item(id,"ammo_45acp")
                give_item(id,"ammo_45acp")
        }
    }

    return PLUGIN_CONTINUE
}

public player_spawn(parm[1])
{
    spawn(parm[0])
}

Thanks anyway.

mottzi 07-14-2010 18:47

Re: [CS 1.6]/respawn protection
 
PHP Code:

new const VERSION[] =    "1.1"

#include <amxmodx>
#include <fun>
#include <cstrike>

#define DISABLE_CS 0

// team ids 
#define UNASSIGNED 0 
#define TS 1 
#define CTS 2 
#define AUTO_TEAM 5 

new bool:g_PistolsDisabled false

public plugin_init(){

    
register_plugin("Respawn Forever"VERSION"Pimp Daddy (OoTOAoO)")

    
register_event("DeathMsg","on_Death","a")
    
    
register_cvar("sv_checkpistols""1")
    
register_cvar("sv_respawn""1")
    
register_cvar("respawn_forever_version"VERSIONFCVAR_SERVER)

    
register_clcmd("say","on_Chat")
    
register_clcmd("say_team","on_Chat")
}

public 
on_Chat(id)
{
    if ( !
get_cvar_num("sv_respawn") )
    {
        
client_print(idprint_chat"* Respawn plugin disabled")
        return 
PLUGIN_CONTINUE
    
}

    new 
szSaid[32]
    
read_args(szSaid31

    if (
equali(szSaid,"^"/respawn^"") || equali(szSaid,"^"respawn^""))
    {
    if(!
is_user_alive(id) && (cs_get_user_team(id) != CS_TEAM_SPECTATOR))
    {
        
spawn_func(id)
    }
    else
    {
        
client_print(idprint_chat"[Respawn] Only death players can respawn!")
    }

    }
}

public 
check_pistols()
{
    
/* Determine if we should give players a pistol or not */
    
if ( get_cvar_num("sv_checkpistols") )
    {
        
set_task(1.0"check_pistols")
        new 
mapname[32]
        
get_mapname(mapname,31
        if ( 
containi(mapname,"ka_")!=-|| containi(mapname,"scoutzknivez")!=-)
                
g_PistolsDisabled true
    
}
}

public 
spawn_func(id)
{
    new 
parm[1]
    
parm[0]=id
    
    
/* Spawn the player twice to avoid the HL engine bug */
    
set_task(0.5,"player_spawn",72,parm,1)
    
set_task(0.7,"player_spawn",72,parm,1)

    
/* Then give them a suit and a knife */
    
set_task(0.9,"player_giveitems",72,parm,1)
}

public 
on_Death()
{
    if ( !
get_cvar_num("sv_respawn") )
        return 
PLUGIN_CONTINUE
    
    
new victim_id read_data(2)
    
    
spawn_funcvictim_id )

    return 
PLUGIN_CONTINUE
}

public 
player_giveitems(parm[1])
{
    new 
id parm[0]

    
give_item(id"item_suit")
    
give_item(id"weapon_knife")

    
/* Determines if a players should be given a pistol */
    
if ( !g_PistolsDisabled )
    {
        new 
wpnList[32] = 0number 0bool:foundGlock falsebool:foundUSP false 
        get_user_weapons
(id,wpnList,number)
        
        
/* Determine if the player already has a pistol */
        
for (new 0;number;i++)
        { 
            if (
wpnList[i] == CSW_GLOCK18
                
foundGlock true 
            
if (wpnList[i] == CSW_USP
                
foundUSP true 
        
}
        
        
/* Give a T his/her pistol */
        
if ( get_user_team(id)==TS && !foundGlock )
        {
                
give_item(id,"weapon_glock18")
                
give_item(id,"ammo_9mm")
                
give_item(id,"ammo_9mm")
        }
        
/* Give a CT his/her pistol */
        
else if ( get_user_team(id)==CTS && !foundUSP )
        {
                
give_item(id,"weapon_usp")
                
give_item(id,"ammo_45acp")
                
give_item(id,"ammo_45acp")
        }
    }

    return 
PLUGIN_CONTINUE
}

public 
player_spawn(parm[1])
{
    
spawn(parm[0])


here you are.

They just get respawned it they are dead and not Spectator now!

0lenny0 07-14-2010 19:00

Re: [CS 1.6]/respawn protection
 
Thanks,it still has the spectator bug but i can live with that :wink:.

mottzi 07-14-2010 19:11

Re: [CS 1.6]/respawn protection
 
hm dont know why but if its OK... :)

No problem

Sanzdes 01-02-2015 21:34

Re: [CS 1.6]/respawn protection
 
It's imposibble to make,that CT have spawn protection and T don't have it?

Sanzdes 01-02-2015 21:35

Re: [CS 1.6]/respawn protection
 
Sorry wrong forrum :/


All times are GMT -4. The time now is 07:04.

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