[AMXX] Bad Spawn Preventer

Vaata eelmist teemat Vaata järgmist teemat Go down

avatar
Tonight


Postitusi : 13715
Maine : 2396
Liitus : 19/02/2012
Vaata kasutaja profiili

PostitamineTonight on 03.03.12 16:00

Autor: beast
Kirjeldus: Oled kindlasti kogenud seda, kui mapis on vähe spawn kohti ja laisk omanik pole viitsinud ise spawne juurde tekitada, siis saavad mõned inimesed surma roundi algul. Kui oled üks neist 'laiskadest serveriomanikest', siis kasuta seda plugini. See respawnib mängija kui ta peaks katkise spawni tõttu surema ja lisab ka logifaili, kus mapis õnnetus juhtus mis kella ajal jne.

Source:
Kood:
#include <amxmodx>
#include <hamsandwich>

#define PLUGIN "Bad spawn preventer"
#define AUTHOR "beast"
#define VERSION "1.1"

#define TASKID_FIXIT 256

new g_freezetime
new Float:g_flSpawned[ 33 ]
new Float:g_spawndelay = 2.0 // Should not be set lower. Higher values may reduce rare 'second spawn kills'.

public plugin_init()
{             
        register_plugin(PLUGIN, VERSION, AUTHOR)

        RegisterHam( Ham_Spawn,  "player", "FwdHamPlayerSpawn", 1 )
        RegisterHam( Ham_Killed, "player", "FwdHamPlayerKilled" )
       
        g_freezetime = get_cvar_pointer("mp_freezetime")
}

public FwdHamPlayerSpawn(id)
{
        if (is_user_alive(id))
                g_flSpawned[id] = get_gametime()
}

public FwdHamPlayerKilled( id, iAttacker, iShouldGib )
{
        // we don't want deathmatch
        if((get_gametime() - g_flSpawned[id]) < 0.01)
        {
                new Float:time1 = get_pcvar_num(g_freezetime) + g_spawndelay
                set_task(time1, "task_fixit", id + TASKID_FIXIT)
        }
        return HAM_IGNORED
}

public task_fixit(id)
{
        new map[32]
        get_mapname(map, 31)
       
        ExecuteHam(Ham_CS_RoundRespawn, id - TASKID_FIXIT)
       
        // we don't want to flood the log with the same msg
        if(CheckForString("logs", "bsp_log_file.log", map))
                return 1
        else
        {
                log_to_file("bsp_log_file.log", "[BSP] Check %s map, it may contain some bad spawn points.", map)
                return 0
        }
        return PLUGIN_CONTINUE
}

// thx Alka
stock CheckForString(const szDir[32], const szFile[32], const szString[32])
{
        new szLocalDir[32]
        get_localinfo("amx_basedir", szLocalDir, charsmax(szLocalDir))
        new szPath[64]
        formatex(szPath, charsmax(szPath), "%s/%s/%s", szLocalDir, szDir, szFile)
       
        new iFile = fopen(szPath, "rt")
        if(!iFile)
                return 0
               
        new szBuffer[128]
        while(!feof(iFile))
        {
                fgets(iFile, szBuffer, charsmax(szBuffer))
                if(!szBuffer[0])
                        continue
               
                if(containi(szBuffer, szString) != -1)
                {
                        fclose(iFile)
                        return 1
                }
        }
        fclose(iFile)
        return 0
}

DOWNLOAD:

Attachments
bsp.zip Siin .zip failis on .amxx fail :)You don't have permission to download attachments.(5 Kb) Downloaded 22 times


Vaata eelmist teemat Vaata järgmist teemat Tagasi üles

Postitada saavad ainult liitunud kasutajad

Vastamiseks tee endale kasutaja või logi sisse.

Liitu foorumiga

Tee endale kasutaja ning osale aruteludes.


Tee uus kasutaja

Logi sisse

Omad foorumis juba kasutajat? Logi sisse.


Logi sisse

 
Permissions in this forum:
Sa ei saa vastata siinsetele teemadele