Bloodsteins auto remove plugin(xx second) + 2 plugin edit

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Kvothe
Извън линия
Foreigner
Foreigner
Мнения: 33
Регистриран на: 12 Ное 2018, 22:36
Се отблагодари: 3 пъти

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от Kvothe » 23 Ное 2018, 16:55

Hi.
1- İ need auto remove bloodsteins '' xx '' seconds later. Some like remove_drop_weapon & remove_bodies. ( im using zp 5.0.8 allienmod original )

2- I am using auto respawn plugins. But i need add ==> no repsawn round_sva & no respawn round_armageddon ( 3 sma files attached )
i added assassin and sniper round is worked. But does not work when I add sva_round and armageddon_round

i solved [ armageddon round==> if(zp_is_lnj_round() && !get_pcvar_num(pcvar[armageddon])
sva round ===> zombieplague.inc added write round_sva + added write native zp_is_sva_round() :)

3- Pls anyone add function extra_buy_nemesis ==> Per map all buy 5 ( very important for me ). sma + buymenu.inc is attached
i tried hard but i can't :(

[/hr] Solved ===> OciXCrom[/hr]
Thank you

1- respawn

Код за потвърждение: Избери целия код

#include < amxmodx >
#include < zombieplague >
#include < hamsandwich >
#include < cstrike >
#include <zp50_gamemodes>
#include <zp50_deathmatch>

#define PLUGIN  "[ZP]: Custom respawn"
#define VERSION "1.0"
#define AUTHOR  "Weltgericht"

enum (+= 100)
{
	TASK_SPAWN
}

enum cvar
{
	spawndelay,
	amount,
	nemesis,
	survivor,
	plague,
	swarm,
	assassin,
	sniper
}

new pcvar[cvar]
new current[33] = 0 
new bool: ended = false

#define ID_SPAWN (taskid - TASK_SPAWN)

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	events()
	cvars()
}

public events()
{
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
	RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}

public cvars()
{
	pcvar[spawndelay] = register_cvar("zp_spawn_delay", "3.0")
	pcvar[amount] = register_cvar("zp_spawn_amount", "2")
	
	pcvar[nemesis] = register_cvar("zp_respawn_in_nemesis", "0")
	pcvar[assassin] = register_cvar("zp_respawn_in_assassin", "0")
	pcvar[sniper] = register_cvar("zp_respawn_in_sniper", "0")
	pcvar[survivor] = register_cvar("zp_respawn_in_survivor", "0")
	pcvar[plague] = register_cvar("zp_respawn_in_plague", "1")
	pcvar[swarm] = register_cvar("zp_respawn_in_swarm", "0")
}

public fw_PlayerSpawn_Post(id)
{
	if(!is_user_alive(id))
		return
		
	remove_task(id+TASK_SPAWN)
	return
}

public fw_PlayerKilled(victim, attacker, shouldgib)
{
	if(zp_is_nemesis_round() && !get_pcvar_num(pcvar[nemesis]))
		return
		
	if(zp_is_assassin_round() && !get_pcvar_num(pcvar[assassin]))
		return
		
	if(zp_is_sniper_round() && !get_pcvar_num(pcvar[sniper]))
		return
	
	if(zp_is_survivor_round() && !get_pcvar_num(pcvar[survivor]))
		return
	
	if(zp_is_plague_round() && !get_pcvar_num(pcvar[plague]))
		return

	if(zp_is_swarm_round() && !get_pcvar_num(pcvar[swarm]))
		return

	set_task(get_pcvar_float(pcvar[spawndelay]), "respawn_player_task", victim+TASK_SPAWN)
	return
}

public respawn_player_task(taskid)
{
	if(!is_user_connected(ID_SPAWN))
	{
		remove_task(ID_SPAWN+TASK_SPAWN)
		return
	}

	if(current[ID_SPAWN] >= get_pcvar_num(pcvar[amount]))
	{
		remove_task(ID_SPAWN+TASK_SPAWN)
		return
	}
		
	if(ended)
	{
		remove_task(ID_SPAWN+TASK_SPAWN)
		return
	}

	
	if(cs_get_user_team(ID_SPAWN) != CS_TEAM_SPECTATOR && cs_get_user_team(ID_SPAWN) != CS_TEAM_UNASSIGNED)
	{
		if(zp_is_nemesis_round())
		{
			zp_respawn_user(ID_SPAWN, ZP_TEAM_HUMAN)
			current[ID_SPAWN]++
			return
		}
		else if(zp_is_plague_round())
		{
			random_spawn(ID_SPAWN)
			return
		}
		else if(zp_is_swarm_round())
		{
			random_spawn(ID_SPAWN)
			return
		}
		
		zp_respawn_user(ID_SPAWN, ZP_TEAM_ZOMBIE)
		current[ID_SPAWN]++
	}
	return
}

public zp_round_ended(winter)
{
	ended = true
}

public zp_round_started()
{
	ended = false

	new MaxPlayers = get_maxplayers()
	
	for (new player = 1; player <= MaxPlayers; player++)   
	{
		current[player] = 0
	}
}

stock random_spawn(id)
{
	switch(random_num(0,1))
	{
		case 0:
		{
			zp_respawn_user(id, ZP_TEAM_ZOMBIE)
			current[id]++
		}
		case 1:
		{
			zp_respawn_user(id, ZP_TEAM_HUMAN)
			current[id]++
		}
	}
}
round_sva

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fun>
#include <amx_settings_api>
#include <cs_teams_api>
#include <zp50_gamemodes>
#include <zp50_class_sniper>
#include <zp50_class_assassin>
#include <zp50_deathmatch>

#define HUD_EVENT_X -1.0
#define HUD_EVENT_Y 0.17
#define HUD_EVENT_R 0
#define HUD_EVENT_G 50
#define HUD_EVENT_B 200

new g_MaxPlayers
new g_HudSync

new cvar_sva_chance, cvar_sva_min_players
new cvar_sva_ratio
new cvar_sva_sniper_hp_multi, cvar_sva_assassin_hp_multi
new cvar_sva_show_hud
new cvar_sva_allow_respawn

public plugin_precache()
{
	register_plugin("[ZP] Game Mode: Sniper vs Assassin", ZP_VERSION_STRING, "zmd94")
	zp_gamemodes_register("Sniper vs Assassin")
	
	g_HudSync = CreateHudSyncObj()
	
	g_MaxPlayers = get_maxplayers()
	
	cvar_sva_chance = register_cvar("zp_sva_chance", "40")
	cvar_sva_min_players = register_cvar("zp_sva_min_players", "0")
	cvar_sva_ratio = register_cvar("zp_sva_ratio", "0.4")
	cvar_sva_sniper_hp_multi = register_cvar("zp_sva_sniper_hp_multi", "0.25")
	cvar_sva_assassin_hp_multi = register_cvar("zp_sva_assassin_hp_multi", "0.25")
	cvar_sva_show_hud = register_cvar("zp_sva_show_hud", "1")
	cvar_sva_allow_respawn = register_cvar("zp_sva_allow_respawn", "0")
}

public zp_fw_deathmatch_respawn_pre(id)
{
	if (!get_pcvar_num(cvar_sva_allow_respawn))
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}

public zp_fw_gamemodes_choose_pre(game_mode_id, skipchecks)
{
	if (!skipchecks)
	{
		if (random_num(1, get_pcvar_num(cvar_sva_chance)) != 1)
			return PLUGIN_HANDLED;
		
		if (GetAliveCount() < get_pcvar_num(cvar_sva_min_players))
			return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

public zp_fw_gamemodes_start()
{
	new id, alive_count = GetAliveCount()
	new sniper_count = floatround(alive_count * get_pcvar_float(cvar_sva_ratio), floatround_ceil)
	new assassin_count = alive_count - sniper_count
	
	new iSnipers, iMaxSnipers = sniper_count
	while (iSnipers < iMaxSnipers)
	{
		id = GetRandomAlive(random_num(1, alive_count))
		
		if (zp_class_sniper_get(id))
			continue;
		
		zp_class_sniper_set(id)
		iSnipers++
		
		set_user_health(id, floatround(get_user_health(id) * get_pcvar_float(cvar_sva_sniper_hp_multi)))
	}
	new iAssassin, iMaxAssassin = assassin_count
	while (iAssassin < iMaxAssassin)
	{
		id = GetRandomAlive(random_num(1, alive_count))
		
		if (zp_class_sniper_get(id) || zp_class_assassin_get(id))
			continue;
		
		zp_class_assassin_set(id)
		iAssassin++
		
		set_user_health(id, floatround(get_user_health(id) * get_pcvar_float(cvar_sva_assassin_hp_multi)))
	}
	
	if (get_pcvar_num(cvar_sva_show_hud))
	{
		set_hudmessage(HUD_EVENT_R, HUD_EVENT_G, HUD_EVENT_B, HUD_EVENT_X, HUD_EVENT_Y, 1, 0.0, 5.0, 1.0, 1.0, -1)
		ShowSyncHudMsg(0, g_HudSync, "Sniper vs Assassin Round!")
	}
}

GetAliveCount()
{
	new iAlive, id
	
	for (id = 1; id <= g_MaxPlayers; id++)
	{
		if (is_user_alive(id))
			iAlive++
	}
	
	return iAlive;
}

GetRandomAlive(target_index)
{
	new iAlive, id
	
	for (id = 1; id <= g_MaxPlayers; id++)
	{
		if (is_user_alive(id))
			iAlive++
		
		if (iAlive == target_index)
			return id;
	}
	
	return -1;
}
round_armageddon

Код за потвърждение: Избери целия код

/*================================================================================
	
	----------------------------------
	-*- [ZP] Game Mode: Armageddon -*-
	----------------------------------
	
	This plugin is part of Zombie Plague Mod and is distributed under the
	terms of the GNU General Public License. Check ZP_ReadMe.txt for details.
	
================================================================================*/

#include <amxmodx>
#include <fun>
#include <amx_settings_api>
#include <cs_teams_api>
#include <zp50_gamemodes>
#include <zp50_class_nemesis>
#include <zp50_class_survivor>
#include <zp50_deathmatch>

// Settings file
new const ZP_SETTINGS_FILE[] = "zombieplague.ini"

// Default sounds
new const sound_armageddon[][] = { "zombie_plague/nemesis1.wav" }

#define SOUND_MAX_LENGTH 64

new Array:g_sound_armageddon

// HUD messages
#define HUD_EVENT_X -1.0
#define HUD_EVENT_Y 0.17
#define HUD_EVENT_R 0
#define HUD_EVENT_G 50
#define HUD_EVENT_B 200

new g_MaxPlayers
new g_HudSync

new cvar_armageddon_chance, cvar_armageddon_min_players
new cvar_armageddon_ratio
new cvar_armageddon_nem_hp_multi, cvar_armageddon_surv_hp_multi
new cvar_armageddon_show_hud, cvar_armageddon_sounds
new cvar_armageddon_allow_respawn

public plugin_precache()
{
	// Register game mode at precache (plugin gets paused after this)
	register_plugin("[ZP] Game Mode: Armageddon", ZP_VERSION_STRING, "ZP Dev Team")
	zp_gamemodes_register("Armageddon Mode")
	
	// Create the HUD Sync Objects
	g_HudSync = CreateHudSyncObj()
	
	g_MaxPlayers = get_maxplayers()
	
	cvar_armageddon_chance = register_cvar("zp_armageddon_chance", "20")
	cvar_armageddon_min_players = register_cvar("zp_armageddon_min_players", "0")
	cvar_armageddon_ratio = register_cvar("zp_armageddon_ratio", "0.5")
	cvar_armageddon_nem_hp_multi = register_cvar("zp_armageddon_nem_hp_multi", "0.25")
	cvar_armageddon_surv_hp_multi = register_cvar("zp_armageddon_surv_hp_multi", "0.25")
	cvar_armageddon_show_hud = register_cvar("zp_armageddon_show_hud", "1")
	cvar_armageddon_sounds = register_cvar("zp_armageddon_sounds", "1")
	cvar_armageddon_allow_respawn = register_cvar("zp_armageddon_allow_respawn", "0")
	
	// Initialize arrays
	g_sound_armageddon = ArrayCreate(SOUND_MAX_LENGTH, 1)
	
	// Load from external file
	amx_load_setting_string_arr(ZP_SETTINGS_FILE, "Sounds", "ROUND ARMAGEDDON", g_sound_armageddon)
	
	// If we couldn't load custom sounds from file, use and save default ones
	new index
	if (ArraySize(g_sound_armageddon) == 0)
	{
		for (index = 0; index < sizeof sound_armageddon; index++)
			ArrayPushString(g_sound_armageddon, sound_armageddon[index])
		
		// Save to external file
		amx_save_setting_string_arr(ZP_SETTINGS_FILE, "Sounds", "ROUND ARMAGEDDON", g_sound_armageddon)
	}
	
	// Precache sounds
	new sound[SOUND_MAX_LENGTH]
	for (index = 0; index < ArraySize(g_sound_armageddon); index++)
	{
		ArrayGetString(g_sound_armageddon, index, sound, charsmax(sound))
		if (equal(sound[strlen(sound)-4], ".mp3"))
		{
			format(sound, charsmax(sound), "sound/%s", sound)
			precache_generic(sound)
		}
		else
			precache_sound(sound)
	}
}

// Deathmatch module's player respawn forward
public zp_fw_deathmatch_respawn_pre(id)
{
	// Respawning allowed?
	if (!get_pcvar_num(cvar_armageddon_allow_respawn))
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}

public zp_fw_gamemodes_choose_pre(game_mode_id, skipchecks)
{
	if (!skipchecks)
	{
		// Random chance
		if (random_num(1, get_pcvar_num(cvar_armageddon_chance)) != 1)
			return PLUGIN_HANDLED;
		
		// Min players
		if (GetAliveCount() < get_pcvar_num(cvar_armageddon_min_players))
			return PLUGIN_HANDLED;
	}
	
	// Game mode allowed
	return PLUGIN_CONTINUE;
}

public zp_fw_gamemodes_start()
{
	// Calculate player counts
	new id, alive_count = GetAliveCount()
	new survivor_count = floatround(alive_count * get_pcvar_float(cvar_armageddon_ratio), floatround_ceil)
	new nemesis_count = alive_count - survivor_count
	
	// Turn specified amount of players into Survivors
	new iSurvivors, iMaxSurvivors = survivor_count
	while (iSurvivors < iMaxSurvivors)
	{
		// Choose random guy
		id = GetRandomAlive(random_num(1, alive_count))
		
		// Already a survivor?
		if (zp_class_survivor_get(id))
			continue;
		
		// If not, turn him into one
		zp_class_survivor_set(id)
		iSurvivors++
		
		// Apply survivor health multiplier
		set_user_health(id, floatround(get_user_health(id) * get_pcvar_float(cvar_armageddon_surv_hp_multi)))
	}
	
	// Turn specified amount of players into Nemesis
	new iNemesis, iMaxNemesis = nemesis_count
	while (iNemesis < iMaxNemesis)
	{
		// Choose random guy
		id = GetRandomAlive(random_num(1, alive_count))
		
		// Already a survivor or nemesis?
		if (zp_class_survivor_get(id) || zp_class_nemesis_get(id))
			continue;
		
		// If not, turn him into one
		zp_class_nemesis_set(id)
		iNemesis++
		
		// Apply nemesis health multiplier
		set_user_health(id, floatround(get_user_health(id) * get_pcvar_float(cvar_armageddon_nem_hp_multi)))
	}
	
	// Play Armageddon sound
	if (get_pcvar_num(cvar_armageddon_sounds))
	{
		new sound[SOUND_MAX_LENGTH]
		ArrayGetString(g_sound_armageddon, random_num(0, ArraySize(g_sound_armageddon) - 1), sound, charsmax(sound))
		PlaySoundToClients(sound)
	}
	
	if (get_pcvar_num(cvar_armageddon_show_hud))
	{
		// Show Armageddon HUD notice
		set_hudmessage(HUD_EVENT_R, HUD_EVENT_G, HUD_EVENT_B, HUD_EVENT_X, HUD_EVENT_Y, 1, 0.0, 5.0, 1.0, 1.0, -1)
		ShowSyncHudMsg(0, g_HudSync, "%L", LANG_PLAYER, "NOTICE_ARMAGEDDON")
	}
}

// Plays a sound on clients
PlaySoundToClients(const sound[])
{
	if (equal(sound[strlen(sound)-4], ".mp3"))
		client_cmd(0, "mp3 play ^"sound/%s^"", sound)
	else
		client_cmd(0, "spk ^"%s^"", sound)
}

// Get Alive Count -returns alive players number-
GetAliveCount()
{
	new iAlive, id
	
	for (id = 1; id <= g_MaxPlayers; id++)
	{
		if (is_user_alive(id))
			iAlive++
	}
	
	return iAlive;
}

// Get Random Alive -returns index of alive player number target_index -
GetRandomAlive(target_index)
{
	new iAlive, id
	
	for (id = 1; id <= g_MaxPlayers; id++)
	{
		if (is_user_alive(id))
			iAlive++
		
		if (iAlive == target_index)
			return id;
	}
	
	return -1;
}
extra buy nemesis

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <zombieplague>
#include <dhudmessage>

#define PLUGIN "[ZP] Extra Item: Nemesis"
#define VERSION "0.2"
#define AUTHOR "fezh/Shidla/QuZ"

new g_nemesis
new g_msgSayText
new g_maxplayers

new pcvar_enabled, pcvar_cost, pcvar_hudtime

new const sound_nemesis[] = { "zombie_plague/nemesis1.wav" }

public plugin_init()
{
	register_plugin( PLUGIN, VERSION, AUTHOR )
	
	pcvar_enabled = register_cvar( "zp_nemesis_buy", "1" )
	pcvar_cost = register_cvar( "zp_nemesis_cost", "100" )
	pcvar_hudtime = register_cvar( "zp_nemesis_hudtime", "0.2" )
	
	g_nemesis = zp_register_extra_item( "Nemesis", get_pcvar_num( pcvar_cost ) , ZP_TEAM_ZOMBIE )

	g_maxplayers = get_maxplayers()
	g_msgSayText = get_user_msgid( "SayText" )

	register_cvar( "zp_extra_nemesis", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY )
}
public plugin_precache()
{
      precache_sound(sound_nemesis)
}
public zp_extra_item_selected( id, item )
{
	if( !get_pcvar_num( pcvar_enabled ) )
		return PLUGIN_HANDLED
	
	if( item == g_nemesis )
	{

		zp_make_user_nemesis( id )

		colored_print( id, "^x03 [ZP] ^x04[CSO Turkiye]^x03 Nemesis aldin!" )

		set_task( get_pcvar_float( pcvar_hudtime ), "nemesis_message", id )
	}
	return PLUGIN_HANDLED
}

public nemesis_message( id )
{
	new szName[ 32 ]
	get_user_name( id, szName, 31 )
	client_cmd(id, "spk %s", sound_nemesis)
	set_dhudmessage( 255, 0, 0, 0.05, 0.45, 1, 0.0, 5.0, 1.0, 1.0, -1 )
	show_dhudmessage( 0, "%s Nemesis satin aldi!", szName )
}

stock colored_print( target, const message[],  any:... )
{
	static buffer[ 512 ]

	if( !target )
	{
		static player
		for( player = 1; player <= g_maxplayers; player++ )
		{
			if ( !is_user_connected( player ) )
				continue;
			
			vformat( buffer, charsmax( buffer ), message, 1 )
			
			message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, player )
			write_byte( player )
			write_string( buffer )
			message_end()
		}
	}

	else
	{
		vformat( buffer, charsmax( buffer ), message, 1 )
		
		message_begin( MSG_ONE, g_msgSayText, _, target )
		write_byte( target )
		write_string( buffer )
		message_end()
	}
}
this my zp_buymenu.inc

Код за потвърждение: Избери целия код

/*Âîçâğàùàåò äåíüãè èãğîêà*/

native zp_cs_get_user_money(id)

/*Óñòàíàâëèâàåò äåíüãè èãğîêà*/

native zp_cs_set_user_money(id, value)

/*Âîçâğàùàåò level èãğîêà*/

native zp_get_user_level(id)

/*Óñòàíàâëèâàåò level èãğîêà*/

native zp_set_user_level(id, value)

/*Âîçâğàùàåò exp èãğîêà*/

native zp_get_user_exp(id)

/*Óñòàíàâëèâàåò exp èãğîêà*/

native zp_set_user_exp(id, value)

/*Âîçâğàùàåò ñêîëüêî åõğ íàäî íàáğàòü èãğîêó äëÿ ñëåäóşùåãî ëåâåëà*/

native zp_get_exp_current(id)
Последно промяна от Kvothe на 24 Ное 2018, 16:06, променено общо 2 пъти.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от OciXCrom » 24 Ное 2018, 14:46

3.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <zombieplague>

#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
#endif

#define PLUGIN "[ZP] Extra Item: Nemesis"
#define VERSION "0.2"
#define AUTHOR "fezh/Shidla/QuZ"

new g_nemesis
new g_msgSayText
new g_maxplayers

new pcvar_enabled, pcvar_cost, pcvar_hudtime, pcvar_maxbuys
new times_bought

new const sound_nemesis[] = { "zombie_plague/nemesis1.wav" }

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, AUTHOR )
    
    pcvar_enabled = register_cvar( "zp_nemesis_buy", "1" )
    pcvar_cost = register_cvar( "zp_nemesis_cost", "100" )
    pcvar_hudtime = register_cvar( "zp_nemesis_hudtime", "0.2" )
    pcvar_maxbuys = register_cvar( "zp_nemesis_maxbuys", "5" )
    
    g_nemesis = zp_register_extra_item( "Nemesis", get_pcvar_num( pcvar_cost ) , ZP_TEAM_ZOMBIE )

    g_maxplayers = get_maxplayers()
    g_msgSayText = get_user_msgid( "SayText" )

    register_cvar( "zp_extra_nemesis", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY )
}
public plugin_precache()
{
      precache_sound(sound_nemesis)
}
public zp_extra_item_selected( id, item )
{
    if( !get_pcvar_num( pcvar_enabled ) )
        return PLUGIN_HANDLED
    
    if( item == g_nemesis )
    {
        new max_buys = get_pcvar_num(pcvar_maxbuys)

        if(times_bought++ >= max_buys)
        {
            client_print(id, print_center, "This item can't be purchased more than %i times per map.", max_buys)
            return PLUGIN_HANDLED
        }

        zp_make_user_nemesis( id )

        colored_print( id, "^x03 [ZP] ^x04[CSO Turkiye]^x03 Nemesis aldin!" )

        set_task( get_pcvar_float( pcvar_hudtime ), "nemesis_message", id )
    }
    return PLUGIN_HANDLED
}

public nemesis_message( id )
{
    new szName[ 32 ]
    get_user_name( id, szName, 31 )
    client_cmd(id, "spk %s", sound_nemesis)
    set_dhudmessage( 255, 0, 0, 0.05, 0.45, 1, 0.0, 5.0, 1.0, 1.0 )
    show_dhudmessage( 0, "%s Nemesis satin aldi!", szName )
}

stock colored_print( target, const message[],  any:... )
{
    static buffer[ 512 ]

    if( !target )
    {
        static player
        for( player = 1; player <= g_maxplayers; player++ )
        {
            if ( !is_user_connected( player ) )
                continue;
            
            vformat( buffer, charsmax( buffer ), message, 1 )
            
            message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, player )
            write_byte( player )
            write_string( buffer )
            message_end()
        }
    }

    else
    {
        vformat( buffer, charsmax( buffer ), message, 1 )
        
        message_begin( MSG_ONE, g_msgSayText, _, target )
        write_byte( target )
        write_string( buffer )
        message_end()
    }
}

Аватар
Kvothe
Извън линия
Foreigner
Foreigner
Мнения: 33
Регистриран на: 12 Ное 2018, 22:36
Се отблагодари: 3 пъти

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от Kvothe » 24 Ное 2018, 16:09

Thank you very much bro.
İ only need 1. Is there such a plugin ? Auto remove bloodsteins

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от OciXCrom » 24 Ное 2018, 17:15

In which .sma file is that?

Аватар
Kvothe
Извън линия
Foreigner
Foreigner
Мнения: 33
Регистриран на: 12 Ное 2018, 22:36
Се отблагодари: 3 пъти

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от Kvothe » 24 Ное 2018, 18:26

zp_zombie_bleeding 1 // Only 1 or 0 ( open and close )
if made 1 all the time round no delete footprints/bloodstains
I want it deleted in 5 seconds

this sma zp50_zombie_features.sma

Код за потвърждение: Избери целия код

/*================================================================================
	
	----------------------------
	-*- [ZP] Zombie Features -*-
	----------------------------
	
	This plugin is part of Zombie Plague Mod and is distributed under the
	terms of the GNU General Public License. Check ZP_ReadMe.txt for details.
	
================================================================================*/

#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_ham_bots_api>
#include <zp50_core>
#define LIBRARY_NEMESIS "zp50_class_nemesis"
#include <zp50_class_nemesis>
#define LIBRARY_ASSASSIN "zp50_class_assassin"
#include <zp50_class_assassin>

// Settings file
new const ZP_SETTINGS_FILE[] = "zombieplague.ini"

new const bleeding_decals[] = { 99 , 107 , 108 , 184 , 185 , 186 , 187 , 188 , 189 }

new Array:g_bleeding_decals

#define TASK_BLOOD 100
#define ID_BLOOD (taskid - TASK_BLOOD)

#define CS_DEFAULT_FOV 90

new g_IsModCZ
new g_MsgSetFOV

new cvar_zombie_fov, cvar_zombie_silent, cvar_zombie_bleeding

public plugin_init()
{
	register_plugin("[ZP] Zombie Features", ZP_VERSION_STRING, "ZP Dev Team")
	
	g_MsgSetFOV = get_user_msgid("SetFOV")
	register_message(g_MsgSetFOV, "message_setfov")
	
	cvar_zombie_fov = register_cvar("zp_zombie_fov", "110")
	cvar_zombie_silent = register_cvar("zp_zombie_silent", "1")
	cvar_zombie_bleeding = register_cvar("zp_zombie_bleeding", "1")
	
	RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
	RegisterHamBots(Ham_Killed, "fw_PlayerKilled")
	
	// Check if it's a CZ server
	new mymod[6]
	get_modname(mymod, charsmax(mymod))
	if (equal(mymod, "czero")) g_IsModCZ = 1
}

public plugin_precache()
{
	// Initialize arrays
	g_bleeding_decals = ArrayCreate(1, 1)
	
	// Load from external file
	amx_load_setting_int_arr(ZP_SETTINGS_FILE, "Zombie Decals", "DECALS", g_bleeding_decals)
	
	// If we couldn't load from file, use and save default ones
	new index
	if (ArraySize(g_bleeding_decals) == 0)
	{
		for (index = 0; index < sizeof bleeding_decals; index++)
			ArrayPushCell(g_bleeding_decals, bleeding_decals[index])
		
		// Save to external file
		amx_save_setting_int_arr(ZP_SETTINGS_FILE, "Zombie Decals", "DECALS", g_bleeding_decals)
	}
}

public plugin_natives()
{
	set_module_filter("module_filter")
	set_native_filter("native_filter")
}
public module_filter(const module[])
{
	if (equal(module, LIBRARY_NEMESIS) || equal(module, LIBRARY_ASSASSIN))
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}
public native_filter(const name[], index, trap)
{
	if (!trap)
		return PLUGIN_HANDLED;
		
	return PLUGIN_CONTINUE;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victim, attacker, shouldgib)
{
	// Remove bleeding task
	remove_task(victim+TASK_BLOOD)
}

public client_disconnect(id)
{
	// Remove bleeding task
	remove_task(id+TASK_BLOOD)
}

public message_setfov(msg_id, msg_dest, msg_entity)
{
	if (!is_user_alive(msg_entity) || !zp_core_is_zombie(msg_entity) || get_msg_arg_int(1) != CS_DEFAULT_FOV)
		return;
	
	set_msg_arg_int(1, get_msg_argtype(1), get_pcvar_num(cvar_zombie_fov))
}

public zp_fw_core_infect_post(id, attacker)
{
	// Set custom FOV?
	if (get_pcvar_num(cvar_zombie_fov) != CS_DEFAULT_FOV && get_pcvar_num(cvar_zombie_fov) != 0)
	{
		message_begin(MSG_ONE, g_MsgSetFOV, _, id)
		write_byte(get_pcvar_num(cvar_zombie_fov)) // angle
		message_end()
	}
	
	// Remove previous tasks
	remove_task(id+TASK_BLOOD)
	
	// Nemesis Class loaded?
	if (!LibraryExists(LIBRARY_NEMESIS, LibType_Library) || !zp_class_nemesis_get(id))
	{
		// Set silent footsteps?
		if (get_pcvar_num(cvar_zombie_silent))
			set_user_footsteps(id, 1)
		
		// Zombie bleeding?
		if (get_pcvar_num(cvar_zombie_bleeding))
			set_task(0.7, "zombie_bleeding", id+TASK_BLOOD, _, _, "b")
	}
	// Assassin Class loaded?
	else if (!LibraryExists(LIBRARY_ASSASSIN, LibType_Library) || !zp_class_assassin_get(id))
	{
		// Set silent footsteps?
		if (get_pcvar_num(cvar_zombie_silent))
			set_user_footsteps(id, 1)
		
		// Zombie bleeding?
		if (get_pcvar_num(cvar_zombie_bleeding))
			set_task(0.7, "zombie_bleeding", id+TASK_BLOOD, _, _, "b")
	}
	else
	{
		// Restore normal footsteps?
		if (get_pcvar_num(cvar_zombie_silent))
			set_user_footsteps(id, 0)
	}
}

public zp_fw_core_cure_post(id, attacker)
{
	// Restore FOV?
	if (get_pcvar_num(cvar_zombie_fov) != CS_DEFAULT_FOV && get_pcvar_num(cvar_zombie_fov) != 0)
	{
		message_begin(MSG_ONE, g_MsgSetFOV, _, id)
		write_byte(CS_DEFAULT_FOV) // angle
		message_end()
	}
	
	// Restore normal footsteps?
	if (get_pcvar_num(cvar_zombie_silent))
		set_user_footsteps(id, 0)
	
	// Remove bleeding task
	remove_task(id+TASK_BLOOD)
}

// Make zombies leave footsteps and bloodstains on the floor
public zombie_bleeding(taskid)
{
	// Only bleed when moving on ground
	if (!(pev(ID_BLOOD, pev_flags) & FL_ONGROUND) || fm_get_speed(ID_BLOOD) < 80)
		return;
	
	// Get user origin
	static Float:originF[3]
	pev(ID_BLOOD, pev_origin, originF)
	
	// If ducking set a little lower
	if (pev(ID_BLOOD, pev_bInDuck))
		originF[2] -= 18.0
	else
		originF[2] -= 36.0
	
	// Send the decal message
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_WORLDDECAL) // TE id
	engfunc(EngFunc_WriteCoord, originF[0]) // x
	engfunc(EngFunc_WriteCoord, originF[1]) // y
	engfunc(EngFunc_WriteCoord, originF[2]) // z
	write_byte(ArrayGetCell(g_bleeding_decals, random_num(0, ArraySize(g_bleeding_decals) - 1)) + (g_IsModCZ * 12)) // decal number (offsets +12 for CZ)
	message_end()
}

// Get entity's speed (from fakemeta_util)
stock fm_get_speed(entity)
{
	static Float:velocity[3]
	pev(entity, pev_velocity, velocity)
	
	return floatround(vector_length(velocity));
}

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от OciXCrom » 24 Ное 2018, 20:10

I don't think it's possible. The timelimit of the decals depends on your r_decals cvar and the server's mp_decals setting. The bloodstains are removed when all the applied decals surpass this setting, not when a specific amount of time passes.

Аватар
Kvothe
Извън линия
Foreigner
Foreigner
Мнения: 33
Регистриран на: 12 Ное 2018, 22:36
Се отблагодари: 3 пъти

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от Kvothe » 24 Ное 2018, 23:33

This possible. Automatic deletion on some servers ( 1-2 russian server )
Maybe close it zp50_zombie_features and added new bloodstein plugin..

Аватар
Kvothe
Извън линия
Foreigner
Foreigner
Мнения: 33
Регистриран на: 12 Ное 2018, 22:36
Се отблагодари: 3 пъти

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от Kvothe » 10 Дек 2018, 21:43

Hi.
OciXCroM You edit my plugins. perfect running but little problem
5 player buy nemesis --> nemesis buy locked map ( no problem )
problem --> item is locked but money is gone
Example: Player push b-6-6 nemesis : 50.000 $
message: "This item can't be purchased more than %i times per map." ( no buy )
But player money -50.000 $
Pls fix

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <zombieplague>

#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
#endif

#define PLUGIN "[ZP] Extra Item: Nemesis"
#define VERSION "0.2"
#define AUTHOR "fezh/Shidla/QuZ"

new g_nemesis
new g_msgSayText
new g_maxplayers

new pcvar_enabled, pcvar_cost, pcvar_hudtime, pcvar_maxbuys
new times_bought

new const sound_nemesis[] = { "zombie_plague/nemesis1.wav" }

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, AUTHOR )
    
    pcvar_enabled = register_cvar( "zp_nemesis_buy", "1" )
    pcvar_cost = register_cvar( "zp_nemesis_cost", "100" )
    pcvar_hudtime = register_cvar( "zp_nemesis_hudtime", "0.2" )
    pcvar_maxbuys = register_cvar( "zp_nemesis_maxbuys", "5" )
    
    g_nemesis = zp_register_extra_item( "Nemesis", get_pcvar_num( pcvar_cost ) , ZP_TEAM_ZOMBIE )

    g_maxplayers = get_maxplayers()
    g_msgSayText = get_user_msgid( "SayText" )

    register_cvar( "zp_extra_nemesis", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY )
}
public plugin_precache()
{
      precache_sound(sound_nemesis)
}
public zp_extra_item_selected( id, item )
{
    if( !get_pcvar_num( pcvar_enabled ) )
        return PLUGIN_HANDLED
    
    if( item == g_nemesis )
    {
        new max_buys = get_pcvar_num(pcvar_maxbuys)

        if(times_bought++ >= max_buys)
        {
            client_print(id, print_center, "This item can't be purchased more than %i times per map.", max_buys)
            return PLUGIN_HANDLED
        }

        zp_make_user_nemesis( id )

        colored_print( id, "^x03 [ZP] ^x04[CSO Turkiye]^x03 Nemesis aldin!" )

        set_task( get_pcvar_float( pcvar_hudtime ), "nemesis_message", id )
    }
    return PLUGIN_HANDLED
}

public nemesis_message( id )
{
    new szName[ 32 ]
    get_user_name( id, szName, 31 )
    client_cmd(id, "spk %s", sound_nemesis)
    set_dhudmessage( 255, 0, 0, 0.05, 0.45, 1, 0.0, 5.0, 1.0, 1.0 )
    show_dhudmessage( 0, "%s Nemesis satin aldi!", szName )
}

stock colored_print( target, const message[],  any:... )
{
    static buffer[ 512 ]

    if( !target )
    {
        static player
        for( player = 1; player <= g_maxplayers; player++ )
        {
            if ( !is_user_connected( player ) )
                continue;
            
            vformat( buffer, charsmax( buffer ), message, 1 )
            
            message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, player )
            write_byte( player )
            write_string( buffer )
            message_end()
        }
    }

    else
    {
        vformat( buffer, charsmax( buffer ), message, 1 )
        
        message_begin( MSG_ONE, g_msgSayText, _, target )
        write_byte( target )
        write_string( buffer )
        message_end()
    }
}

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от OciXCrom » 11 Дек 2018, 15:12

That should not happen. It's a bug from Zombie Plague. Here, I made it give back the money:

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <zombieplague>

#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
#endif

#define PLUGIN "[ZP] Extra Item: Nemesis"
#define VERSION "0.2"
#define AUTHOR "fezh/Shidla/QuZ"

new g_nemesis
new g_msgSayText
new g_maxplayers

new pcvar_enabled, pcvar_cost, pcvar_hudtime, pcvar_maxbuys
new times_bought

new const sound_nemesis[] = { "zombie_plague/nemesis1.wav" }

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, AUTHOR )
    
    pcvar_enabled = register_cvar( "zp_nemesis_buy", "1" )
    pcvar_cost = register_cvar( "zp_nemesis_cost", "100" )
    pcvar_hudtime = register_cvar( "zp_nemesis_hudtime", "0.2" )
    pcvar_maxbuys = register_cvar( "zp_nemesis_maxbuys", "5" )
    
    g_nemesis = zp_register_extra_item( "Nemesis", get_pcvar_num( pcvar_cost ) , ZP_TEAM_ZOMBIE )

    g_maxplayers = get_maxplayers()
    g_msgSayText = get_user_msgid( "SayText" )

    register_cvar( "zp_extra_nemesis", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY )
}
public plugin_precache()
{
      precache_sound(sound_nemesis)
}
public zp_extra_item_selected( id, item )
{
    if( !get_pcvar_num( pcvar_enabled ) )
        return PLUGIN_HANDLED
    
    if( item == g_nemesis )
    {
        new max_buys = get_pcvar_num(pcvar_maxbuys)

        if(times_bought++ >= max_buys)
        {
        	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + get_pcvar_num(pcvar_cost))
            client_print(id, print_center, "This item can't be purchased more than %i times per map.", max_buys)
            return PLUGIN_HANDLED
        }

        zp_make_user_nemesis( id )

        colored_print( id, "^x03 [ZP] ^x04[CSO Turkiye]^x03 Nemesis aldin!" )

        set_task( get_pcvar_float( pcvar_hudtime ), "nemesis_message", id )
    }
    return PLUGIN_HANDLED
}

public nemesis_message( id )
{
    new szName[ 32 ]
    get_user_name( id, szName, 31 )
    client_cmd(id, "spk %s", sound_nemesis)
    set_dhudmessage( 255, 0, 0, 0.05, 0.45, 1, 0.0, 5.0, 1.0, 1.0 )
    show_dhudmessage( 0, "%s Nemesis satin aldi!", szName )
}

stock colored_print( target, const message[],  any:... )
{
    static buffer[ 512 ]

    if( !target )
    {
        static player
        for( player = 1; player <= g_maxplayers; player++ )
        {
            if ( !is_user_connected( player ) )
                continue;
            
            vformat( buffer, charsmax( buffer ), message, 1 )
            
            message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, player )
            write_byte( player )
            write_string( buffer )
            message_end()
        }
    }

    else
    {
        vformat( buffer, charsmax( buffer ), message, 1 )
        
        message_begin( MSG_ONE, g_msgSayText, _, target )
        write_byte( target )
        write_string( buffer )
        message_end()
    }
}

Аватар
Kvothe
Извън линия
Foreigner
Foreigner
Мнения: 33
Регистриран на: 12 Ное 2018, 22:36
Се отблагодари: 3 пъти

Bloodsteins auto remove plugin(xx second) + 2 plugin edit

Мнение от Kvothe » 12 Дек 2018, 23:51

thank you bro is perfect <3

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Bing [Bot] и 7 госта