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]++
}
}
}
Код за потвърждение: Избери целия код
#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;
}
Код за потвърждение: Избери целия код
/*================================================================================
----------------------------------
-*- [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;
}
Код за потвърждение: Избери целия код
#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()
}
}
Код за потвърждение: Избери целия код
/*Âîçâğàùàåò äåíüãè èãğîêà*/
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)