Raised This Month: $32 Target: $400
 8% 

Bug Report Help To Many bugs :/


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Toni1
Member
Join Date: Sep 2016
Location: Kosova
Old 09-01-2016 , 15:13   Help To Many bugs :/
Reply With Quote #1

Please Help Iam goind to Much Bugs in mode Zp 5.0.8

Bugs Are This +more

PHP Code:
[AMXXDisplaying debug trace (plugin "zp50_zombie_features.amxx")
L 08/31/2016 15:10:04: [AMXXRun time error 10native error (native "zp_core_is_zombie")
L 08/31/2016 15:10:04: [AMXX]    [0zp50_zombie_features.sma::message_setfov (line 116)

[
AMXXDisplaying debug trace (plugin "zp50_flashlight.amxx")
L 08/31/2016 15:10:04: [AMXXRun time error 10native error (native "zp_core_is_zombie")
L 08/31/2016 15:10:04: [AMXX]    [0zp50_flashlight.sma::message_flashbat (line 223)

[
AMXXDisplaying debug trace (plugin "zp50_leap.amxx")
L 08/31/2016 15:09:50: [AMXXRun time error 10native error (native "zp_gamemodes_get_id")
L 08/31/2016 15:09:50: [AMXX]    [0zp50_leap.sma::plugin_cfg (line 106)

[
AMXXRun time error 10native error (native "zp_gamemodes_get_id")
L 08/31/2016 15:09:50: [AMXX]    [0zp50_item_infection_bomb.sma::plugin_cfg (line 130)

[
AMXXDisplaying debug trace (plugin "zp50_item_antidote.amxx")
L 08/31/2016 15:09:50: [AMXXRun time error 10native error (native "zp_gamemodes_get_id")
L 08/31/2016 15:09:50: [AMXX]    [0zp50_item_antidote.sma::plugin_cfg (line 37
Here Is And Sma I hope anyone fixed this :/

PHP Code:
/*================================================================================
    
    ---------------------------
    -*- [ZP] Item: Antidote -*-
    ---------------------------
    
    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.
    
================================================================================*/

#define ITEM_NAME "Antidote"
#define ITEM_COST 15

#include <amxmodx>
#include <zp50_items>
#include <zp50_gamemodes>

new g_ItemID
new g_GameModeInfectionID
new g_GameModeMultiID
new cvar_deathmatchcvar_respawn_after_last_human
new g_AntidotesTakencvar_antidote_round_limit

public plugin_init()
{
    
register_plugin("[ZP] Item: Antidote"ZP_VERSION_STRING"ZP Dev Team")
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
g_ItemID zp_items_register(ITEM_NAMEITEM_COST)
    
cvar_antidote_round_limit register_cvar("zp_antidote_round_limit""5")
}

public 
plugin_cfg()
{
    
g_GameModeInfectionID zp_gamemodes_get_id("Infection Mode")
    
g_GameModeMultiID zp_gamemodes_get_id("Multiple Infection Mode")
    
cvar_deathmatch get_cvar_pointer("zp_deathmatch")
    
cvar_respawn_after_last_human get_cvar_pointer("zp_respawn_after_last_human")
}

public 
event_round_start()
{
    
g_AntidotesTaken 0
}

public 
zp_fw_items_select_pre(iditemidignorecost)
{
    
// This is not our item
    
if (itemid != g_ItemID)
        return 
ZP_ITEM_AVAILABLE;
    
    
// Antidote only available during infection modes
    
new current_mode zp_gamemodes_get_current()
    if (
current_mode != g_GameModeInfectionID && current_mode != g_GameModeMultiID)
        return 
ZP_ITEM_DONT_SHOW;
    
    
// Antidote only available to zombies
    
if (!zp_core_is_zombie(id))
        return 
ZP_ITEM_DONT_SHOW;
    
    
// Display remaining item count for this round
    
static text[32]
    
formatex(textcharsmax(text), "[%d/%d]"g_AntidotesTakenget_pcvar_num(cvar_antidote_round_limit))
    
zp_items_menu_text_add(text)
    
    
// Antidote not available to last zombie
    
if (zp_core_get_zombie_count() == 1)
        return 
ZP_ITEM_NOT_AVAILABLE;
    
    
// Deathmatch mode enabled, respawn after last human disabled, and only one human left
    
if (cvar_deathmatch && get_pcvar_num(cvar_deathmatch) && cvar_respawn_after_last_human
    
&& !get_pcvar_num(cvar_respawn_after_last_human) && zp_core_get_human_count() == 1)
        return 
ZP_ITEM_NOT_AVAILABLE;
    
    
// Reached antidote limit for this round
    
if (g_AntidotesTaken >= get_pcvar_num(cvar_antidote_round_limit))
        return 
ZP_ITEM_NOT_AVAILABLE;
    
    return 
ZP_ITEM_AVAILABLE;
}

public 
zp_fw_items_select_post(iditemidignorecost)
{
    
// This is not our item
    
if (itemid != g_ItemID)
        return;
    
    
// Make player cure himself
    
zp_core_cure(idid)
    
g_AntidotesTaken++

PHP Code:
/*================================================================================
    
    ---------------------------------
    -*- [ZP] Item: Infection Bomb -*-
    ---------------------------------
    
    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.
    
================================================================================*/

#define ITEM_NAME "Infection Bomb"
#define ITEM_COST 20

#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_weap_models_api>
#include <zp50_items>
#include <zp50_gamemodes>

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

// Default sounds
new const sound_grenade_infect_explode[][] = { "zombie_plague/grenade_infect.wav" }
new const 
sound_grenade_infect_player[][] = { "scientist/scream20.wav" "scientist/scream22.wav" "scientist/scream05.wav" }

#define MODEL_MAX_LENGTH 64
#define SOUND_MAX_LENGTH 64
#define SPRITE_MAX_LENGTH 64

// Models
new g_model_grenade_infect[MODEL_MAX_LENGTH] = "models/zombie_plague/v_grenade_infect.mdl"

// Sprites
new g_sprite_grenade_trail[SPRITE_MAX_LENGTH] = "sprites/laserbeam.spr"
new g_sprite_grenade_ring[SPRITE_MAX_LENGTH] = "sprites/shockwave.spr"

new Array:g_sound_grenade_infect_explode
new Array:g_sound_grenade_infect_player

// Explosion radius for custom grenades
const Float:NADE_EXPLOSION_RADIUS 240.0

// HACK: pev_ field used to store custom nade types and their values
const PEV_NADE_TYPE pev_flTimeStepSound
const NADE_TYPE_INFECTION 1111

new g_trailSprg_exploSpr

new g_ItemID
new g_GameModeInfectionID
new g_GameModeMultiID
new g_InfectionBombCountercvar_infection_bomb_round_limit

public plugin_init()
{
    
register_plugin("[ZP] Item: Infection Bomb"ZP_VERSION_STRING"ZP Dev Team")
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
register_forward(FM_SetModel"fw_SetModel")
    
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade")
    
    
g_ItemID zp_items_register(ITEM_NAMEITEM_COST)
    
cvar_infection_bomb_round_limit register_cvar("zp_infection_bomb_round_limit""3")
}

public 
plugin_precache()
{
    
// Initialize arrays
    
g_sound_grenade_infect_explode ArrayCreate(SOUND_MAX_LENGTH1)
    
g_sound_grenade_infect_player ArrayCreate(SOUND_MAX_LENGTH1)
    
    
// Load from external file
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Sounds""GRENADE INFECT EXPLODE"g_sound_grenade_infect_explode)
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Sounds""GRENADE INFECT PLAYER"g_sound_grenade_infect_player)
    
    
// If we couldn't load custom sounds from file, use and save default ones
    
new index
    
if (ArraySize(g_sound_grenade_infect_explode) == 0)
    {
        for (
index 0index sizeof sound_grenade_infect_explodeindex++)
            
ArrayPushString(g_sound_grenade_infect_explodesound_grenade_infect_explode[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Sounds""GRENADE INFECT EXPLODE"g_sound_grenade_infect_explode)
    }
    if (
ArraySize(g_sound_grenade_infect_player) == 0)
    {
        for (
index 0index sizeof sound_grenade_infect_playerindex++)
            
ArrayPushString(g_sound_grenade_infect_playersound_grenade_infect_player[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Sounds""GRENADE INFECT PLAYER"g_sound_grenade_infect_player)
    }
    
    
// Load from external file, save if not found
    
if (!amx_load_setting_string(ZP_SETTINGS_FILE"Weapon Models""GRENADE INFECT"g_model_grenade_infectcharsmax(g_model_grenade_infect)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Weapon Models""GRENADE INFECT"g_model_grenade_infect)
    if (!
amx_load_setting_string(ZP_SETTINGS_FILE"Grenade Sprites""TRAIL"g_sprite_grenade_trailcharsmax(g_sprite_grenade_trail)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Grenade Sprites""TRAIL"g_sprite_grenade_trail)
    if (!
amx_load_setting_string(ZP_SETTINGS_FILE"Grenade Sprites""RING"g_sprite_grenade_ringcharsmax(g_sprite_grenade_ring)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Grenade Sprites""RING"g_sprite_grenade_ring)
    
    
// Precache sounds
    
new sound[SOUND_MAX_LENGTH]
    for (
index 0index ArraySize(g_sound_grenade_infect_explode); index++)
    {
        
ArrayGetString(g_sound_grenade_infect_explodeindexsoundcharsmax(sound))
        
precache_sound(sound)
    }
    for (
index 0index ArraySize(g_sound_grenade_infect_player); index++)
    {
        
ArrayGetString(g_sound_grenade_infect_playerindexsoundcharsmax(sound))
        
precache_sound(sound)
    }
    
    
// Precache models
    
precache_model(g_model_grenade_infect)
    
g_trailSpr precache_model(g_sprite_grenade_trail)
    
g_exploSpr precache_model(g_sprite_grenade_ring)
}

public 
plugin_cfg()
{
    
g_GameModeInfectionID zp_gamemodes_get_id("Infection Mode")
    
g_GameModeMultiID zp_gamemodes_get_id("Multiple Infection Mode")
}

public 
event_round_start()
{
    
g_InfectionBombCounter 0
}

public 
zp_fw_items_select_pre(iditemidignorecost)
{
    
// This is not our item
    
if (itemid != g_ItemID)
        return 
ZP_ITEM_AVAILABLE;
    
    
// Infection bomb only available during infection modes
    
new current_mode zp_gamemodes_get_current()
    if (
current_mode != g_GameModeInfectionID && current_mode != g_GameModeMultiID)
        return 
ZP_ITEM_DONT_SHOW;
    
    
// Infection bomb only available to zombies
    
if (!zp_core_is_zombie(id))
        return 
ZP_ITEM_DONT_SHOW;
    
    
// Display remaining item count for this round
    
static text[32]
    
formatex(textcharsmax(text), "[%d/%d]"g_InfectionBombCounterget_pcvar_num(cvar_infection_bomb_round_limit))
    
zp_items_menu_text_add(text)
    
    
// Reached infection bomb limit for this round
    
if (g_InfectionBombCounter >= get_pcvar_num(cvar_infection_bomb_round_limit))
        return 
ZP_ITEM_NOT_AVAILABLE;
    
    
// Player already owns infection bomb
    
if (user_has_weapon(idCSW_HEGRENADE))
        return 
ZP_ITEM_NOT_AVAILABLE;
    
    return 
ZP_ITEM_AVAILABLE;
}

public 
zp_fw_items_select_post(iditemidignorecost)
{
    
// This is not our item
    
if (itemid != g_ItemID)
        return;
    
    
// Give infection bomb
    
give_item(id"weapon_hegrenade")
    
g_InfectionBombCounter++
}

public 
zp_fw_core_cure(idattacker)
{
    
// Remove custom grenade model
    
cs_reset_player_view_model(idCSW_HEGRENADE)
}

public 
zp_fw_core_infect_post(idattacker)
{
    
// Set custom grenade model
    
cs_set_player_view_model(idCSW_HEGRENADEg_model_grenade_infect)
}

// Forward Set Model
public fw_SetModel(entity, const model[])
{
    
// We don't care
    
if (strlen(model) < 8)
        return;
    
    
// Narrow down our matches a bit
    
if (model[7] != 'w' || model[8] != '_')
        return;
    
    
// Get damage time of grenade
    
static Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    
// Grenade not yet thrown
    
if (dmgtime == 0.0)
        return;
    
    
// Grenade's owner isn't zombie?
    
if (!zp_core_is_zombie(pev(entitypev_owner)))
        return;
    
    
// HE Grenade
    
if (model[9] == 'h' && model[10] == 'e')
    {
        
// Give it a glow
        
fm_set_rendering(entitykRenderFxGlowShell02000kRenderNormal16);
        
        
// And a colored trail
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BEAMFOLLOW// TE id
        
write_short(entity// entity
        
write_short(g_trailSpr// sprite
        
write_byte(10// life
        
write_byte(10// width
        
write_byte(0// r
        
write_byte(200// g
        
write_byte(0// b
        
write_byte(200// brightness
        
message_end()
        
        
// Set grenade type on the thrown grenade entity
        
set_pev(entityPEV_NADE_TYPENADE_TYPE_INFECTION)
    }
}

// Ham Grenade Think Forward
public fw_ThinkGrenade(entity)
{
    
// Invalid entity
    
if (!pev_valid(entity)) return HAM_IGNORED;
    
    
// Get damage time of grenade
    
static Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    
// Check if it's time to go off
    
if (dmgtime get_gametime())
        return 
HAM_IGNORED;
    
    
// Check if it's one of our custom nades
    
switch (pev(entityPEV_NADE_TYPE))
    {
        case 
NADE_TYPE_INFECTION// Infection Bomb
        
{
            
infection_explode(entity)
            return 
HAM_SUPERCEDE;
        }
    }
    
    return 
HAM_IGNORED;
}

// Infection Bomb Explosion
infection_explode(ent)
{
    
// Round ended
    
if (zp_gamemodes_get_current() == ZP_NO_GAME_MODE)
    {
        
// Get rid of the grenade
        
engfunc(EngFunc_RemoveEntityent)
        return;
    }
    
    
// Get origin
    
static Float:origin[3]
    
pev(entpev_originorigin)
    
    
// Make the explosion
    
create_blast(origin)
    
    
// Infection nade explode sound
    
static sound[SOUND_MAX_LENGTH]
    
ArrayGetString(g_sound_grenade_infect_exploderandom_num(0ArraySize(g_sound_grenade_infect_explode) - 1), soundcharsmax(sound))
    
emit_sound(entCHAN_WEAPONsound1.0ATTN_NORM0PITCH_NORM)
    
    
// Get attacker
    
new attacker pev(entpev_owner)
    
    
// Infection bomb owner disconnected or not zombie anymore?
    
if (!is_user_connected(attacker) || !zp_core_is_zombie(attacker))
    {
        
// Get rid of the grenade
        
engfunc(EngFunc_RemoveEntityent)
        return;
    }
    
    
// Collisions
    
new victim = -1
    
    
while ((victim engfunc(EngFunc_FindEntityInSpherevictimoriginNADE_EXPLOSION_RADIUS)) != 0)
    {
        
// Only effect alive humans
        
if (!is_user_alive(victim) || zp_core_is_zombie(victim))
            continue;
        
        
// Last human is killed
        
if (zp_core_get_human_count() == 1)
        {
            
ExecuteHamB(Ham_Killedvictimattacker0)
            continue;
        }
        
        
// Turn into zombie
        
zp_core_infect(victimattacker)
        
        
// Victim's sound
        
ArrayGetString(g_sound_grenade_infect_playerrandom_num(0ArraySize(g_sound_grenade_infect_player) - 1), soundcharsmax(sound))
        
emit_sound(victimCHAN_VOICEsound1.0ATTN_NORM0PITCH_NORM)
    }
    
    
// Get rid of the grenade
    
engfunc(EngFunc_RemoveEntityent)
}

// Infection Bomb: Green Blast
create_blast(const Float:origin[3])
{
    
// Smallest ring
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordorigin[0]) // x
    
engfunc(EngFunc_WriteCoordorigin[1]) // y
    
engfunc(EngFunc_WriteCoordorigin[2]) // z
    
engfunc(EngFunc_WriteCoordorigin[0]) // x axis
    
engfunc(EngFunc_WriteCoordorigin[1]) // y axis
    
engfunc(EngFunc_WriteCoordorigin[2]+385.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(0// red
    
write_byte(200// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
    
// Medium ring
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordorigin[0]) // x
    
engfunc(EngFunc_WriteCoordorigin[1]) // y
    
engfunc(EngFunc_WriteCoordorigin[2]) // z
    
engfunc(EngFunc_WriteCoordorigin[0]) // x axis
    
engfunc(EngFunc_WriteCoordorigin[1]) // y axis
    
engfunc(EngFunc_WriteCoordorigin[2]+470.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(0// red
    
write_byte(200// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
    
// Largest ring
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordorigin[0]) // x
    
engfunc(EngFunc_WriteCoordorigin[1]) // y
    
engfunc(EngFunc_WriteCoordorigin[2]) // z
    
engfunc(EngFunc_WriteCoordorigin[0]) // x axis
    
engfunc(EngFunc_WriteCoordorigin[1]) // y axis
    
engfunc(EngFunc_WriteCoordorigin[2]+555.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(0// red
    
write_byte(200// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
}

// Set entity's rendering type (from fakemeta_util)
stock fm_set_rendering(entityfx kRenderFxNone255255255render kRenderNormalamount 16)
{
    static 
Float:color[3]
    
color[0] = float(r)
    
color[1] = float(g)
    
color[2] = float(b)
    
    
set_pev(entitypev_renderfxfx)
    
set_pev(entitypev_rendercolorcolor)
    
set_pev(entitypev_rendermoderender)
    
set_pev(entitypev_renderamtfloat(amount))

PHP Code:
/*================================================================================
    
    --------------------------
    -*- [ZP] Leap/Longjump -*-
    --------------------------
    
    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 <zp50_gamemodes>
#define LIBRARY_NEMESIS "zp50_class_nemesis"
#include <zp50_class_nemesis>
#define LIBRARY_ASSASSIN "zp50_class_assassin"
#include <zp50_class_assassin>
#define LIBRARY_SURVIVOR "zp50_class_survivor"
#include <zp50_class_survivor>
#define LIBRARY_SNIPER "zp50_class_sniper"
#include <zp50_class_sniper>

#define MAXPLAYERS 32

new g_GameModeInfectionID
new Float:g_LeapLastTime[MAXPLAYERS+1]

new 
cvar_leap_zombiecvar_leap_zombie_forcecvar_leap_zombie_heightcvar_leap_zombie_cooldown
new cvar_leap_nemesiscvar_leap_nemesis_forcecvar_leap_nemesis_heightcvar_leap_nemesis_cooldown
new cvar_leap_assassincvar_leap_assassin_forcecvar_leap_assassin_heightcvar_leap_assassin_cooldown
new cvar_leap_survivorcvar_leap_survivor_forcecvar_leap_survivor_heightcvar_leap_survivor_cooldown
new cvar_leap_snipercvar_leap_sniper_forcecvar_leap_sniper_heightcvar_leap_sniper_cooldown

public plugin_init()
{
    
register_plugin("[ZP] Leap/Longjump"ZP_VERSION_STRING"ZP Dev Team")
    
    
cvar_leap_zombie register_cvar("zp_leap_zombie""3"// 1-all // 2-first only // 3-last only
    
cvar_leap_zombie_force register_cvar("zp_leap_zombie_force""500")
    
cvar_leap_zombie_height register_cvar("zp_leap_zombie_height""300")
    
cvar_leap_zombie_cooldown register_cvar("zp_leap_zombie_cooldown""10.0")
    
    
// Nemesis Class loaded?
    
if (LibraryExists(LIBRARY_NEMESISLibType_Library))
    {
        
cvar_leap_nemesis register_cvar("zp_leap_nemesis""1")
        
cvar_leap_nemesis_force register_cvar("zp_leap_nemesis_force""500")
        
cvar_leap_nemesis_height register_cvar("zp_leap_nemesis_height""300")
        
cvar_leap_nemesis_cooldown register_cvar("zp_leap_nemesis_cooldown""5.0")
    }

    
// Assassin Class loaded?
    
if (LibraryExists(LIBRARY_ASSASSINLibType_Library))
    {
        
cvar_leap_assassin register_cvar("zp_leap_assassin""1")
        
cvar_leap_assassin_force register_cvar("zp_leap_assassin_force""500")
        
cvar_leap_assassin_height register_cvar("zp_leap_assassin_height""300")
        
cvar_leap_assassin_cooldown register_cvar("zp_leap_assassin_cooldown""5.0")
    }
    
    
// Survivor Class loaded?
    
if (LibraryExists(LIBRARY_SURVIVORLibType_Library))
    {
        
cvar_leap_survivor register_cvar("zp_leap_survivor""0")
        
cvar_leap_survivor_force register_cvar("zp_leap_survivor_force""500")
        
cvar_leap_survivor_height register_cvar("zp_leap_survivor_height""300")
        
cvar_leap_survivor_cooldown register_cvar("zp_leap_survivor_cooldown""5.0")
    }

    
// Sniper Class loaded?
    
if (LibraryExists(LIBRARY_SNIPERLibType_Library))
    {
        
cvar_leap_sniper register_cvar("zp_leap_sniper""0")
        
cvar_leap_sniper_force register_cvar("zp_leap_sniper_force""500")
        
cvar_leap_sniper_height register_cvar("zp_leap_sniper_height""300")
        
cvar_leap_sniper_cooldown register_cvar("zp_leap_sniper_cooldown""5.0")
    }
    
    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink")
}

public 
plugin_natives()
{
    
set_module_filter("module_filter")
    
set_native_filter("native_filter")
}
public 
module_filter(const module[])
{
    if (
equal(moduleLIBRARY_NEMESIS) || equal(moduleLIBRARY_ASSASSIN) || equal(moduleLIBRARY_SURVIVOR) || equal(moduleLIBRARY_SNIPER))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}
public 
native_filter(const name[], indextrap)
{
    if (!
trap)
        return 
PLUGIN_HANDLED;
        
    return 
PLUGIN_CONTINUE;
}

public 
plugin_cfg()
{
    
g_GameModeInfectionID zp_gamemodes_get_id("Infection Mode")
}

// Forward Player PreThink
public fw_PlayerPreThink(id)
{
    
// Not alive
    
if (!is_user_alive(id))
        return;
    
    
// Don't allow leap if player is frozen (e.g. freezetime)
    
if (get_user_maxspeed(id) == 1.0)
        return;
    
    static 
Float:cooldownforceFloat:height
    
    
// Nemesis Class loaded?
    
if (LibraryExists(LIBRARY_NEMESISLibType_Library) && zp_class_nemesis_get(id))
    {
        
// Check if nemesis should leap
        
if (!get_pcvar_num(cvar_leap_nemesis)) return;
        
cooldown get_pcvar_float(cvar_leap_nemesis_cooldown)
        
force get_pcvar_num(cvar_leap_nemesis_force)
        
height get_pcvar_float(cvar_leap_nemesis_height)
    }
    
// Assassin Class loaded?
    
else if (LibraryExists(LIBRARY_ASSASSINLibType_Library) && zp_class_assassin_get(id))
    {
        
// Check if assassin should leap
        
if (!get_pcvar_num(cvar_leap_assassin)) return;
        
cooldown get_pcvar_float(cvar_leap_assassin_cooldown)
        
force get_pcvar_num(cvar_leap_assassin_force)
        
height get_pcvar_float(cvar_leap_assassin_height)
    }
    
// Survivor Class loaded?
    
else if (LibraryExists(LIBRARY_SURVIVORLibType_Library) && zp_class_survivor_get(id))
    {
        
// Check if survivor should leap
        
if (!get_pcvar_num(cvar_leap_survivor)) return;
        
cooldown get_pcvar_float(cvar_leap_survivor_cooldown)
        
force get_pcvar_num(cvar_leap_survivor_force)
        
height get_pcvar_float(cvar_leap_survivor_height)
    }
    
// Sniper Class loaded?
    
else if (LibraryExists(LIBRARY_SNIPERLibType_Library) && zp_class_sniper_get(id))
    {
        
// Check if sniper should leap
        
if (!get_pcvar_num(cvar_leap_sniper)) return;
        
cooldown get_pcvar_float(cvar_leap_sniper_cooldown)
        
force get_pcvar_num(cvar_leap_sniper_force)
        
height get_pcvar_float(cvar_leap_sniper_height)
    }
    else
    {
        
// Not a zombie
        
if (!zp_core_is_zombie(id))
            return;
        
        
// Check if zombie should leap
        
switch (get_pcvar_num(cvar_leap_zombie))
        {
            
// Disabled
            
case 0: return;
            
// First zombie (only on infection rounds)
            
case 2: if (!zp_core_is_first_zombie(id) || (zp_gamemodes_get_current() != g_GameModeInfectionID)) return;
            
// Last zombie
            
case 3: if (!zp_core_is_last_zombie(id)) return;
        }
        
cooldown get_pcvar_float(cvar_leap_zombie_cooldown)
        
force get_pcvar_num(cvar_leap_zombie_force)
        
height get_pcvar_float(cvar_leap_zombie_height)
    }
    
    static 
Float:current_time
    current_time 
get_gametime()
    
    
// Cooldown not over yet
    
if (current_time g_LeapLastTime[id] < cooldown)
        return;
    
    
// Not doing a longjump (don't perform check for bots, they leap automatically)
    
if (!is_user_bot(id) && !(pev(idpev_button) & (IN_JUMP IN_DUCK) == (IN_JUMP IN_DUCK)))
        return;
    
    
// Not on ground or not enough speed
    
if (!(pev(idpev_flags) & FL_ONGROUND) || fm_get_speed(id) < 80)
        return;
    
    static 
Float:velocity[3]
    
    
// Make velocity vector
    
velocity_by_aim(idforcevelocity)
    
    
// Set custom height
    
velocity[2] = height
    
    
// Apply the new velocity
    
set_pev(idpev_velocityvelocity)
    
    
// Update last leap time
    
g_LeapLastTime[id] = current_time
}

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

PHP Code:
/*================================================================================
    
    -----------------------
    -*- [ZP] Flashlight -*-
    -----------------------
    
    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 <fakemeta>
#include <hamsandwich>
#include <xs>
#include <cs_ham_bots_api>
#include <zp50_core>

#define TASK_FLASHLIGHT 100
#define TASK_CHARGE 200
#define ID_FLASHLIGHT (taskid - TASK_FLASHLIGHT)
#define ID_CHARGE (taskid - TASK_CHARGE)

// CS Player PData Offsets (win32)
const PDATA_SAFE 2
const OFFSET_FLASHLIGHT_BATTERIES 244

const IMPULSE_FLASHLIGHT 100

new const g_sound_flashlight[] = "items/flashlight1.wav"

#define MAXPLAYERS 32

#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_MsgFlashlightg_MsgFlashBat

new g_FlashlightActive
new g_FlashlightCharge[MAXPLAYERS+1]
new 
Float:g_FlashlightLastTime[MAXPLAYERS+1]

new 
cvar_flashlight_starting_charge
new cvar_flashlight_customcvar_flashlight_radius
new cvar_flashlight_distancecvar_flashlight_show_all
new cvar_flashlight_drain_ratecvar_flashlight_charge_rate
new cvar_flashlight_color_Rcvar_flashlight_color_Gcvar_flashlight_color_B

public plugin_init()
{
    
register_plugin("[ZP] Flashlight"ZP_VERSION_STRING"ZP Dev Team")
    
    
register_forward(FM_CmdStart"fw_CmdStart")
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHamBots(Ham_Killed"fw_PlayerKilled")
    
    
g_MsgFlashlight get_user_msgid("Flashlight")
    
g_MsgFlashBat get_user_msgid("FlashBat")
    
register_message(g_MsgFlashBat"message_flashbat")
    
    
cvar_flashlight_starting_charge register_cvar("zp_flashlight_starting_charge""100")
    
cvar_flashlight_custom register_cvar("zp_flashlight_custom""0")
    
cvar_flashlight_radius register_cvar("zp_flashlight_radius""10")
    
cvar_flashlight_distance register_cvar("zp_flashlight_distance""1000")
    
cvar_flashlight_show_all register_cvar("zp_flashlight_show_all""1")
    
cvar_flashlight_drain_rate register_cvar("zp_flashlight_drain_rate""1")
    
cvar_flashlight_charge_rate register_cvar("zp_flashlight_charge_rate""5")
    
cvar_flashlight_color_R register_cvar("zp_flashlight_color_R""100")
    
cvar_flashlight_color_G register_cvar("zp_flashlight_color_G""100")
    
cvar_flashlight_color_B register_cvar("zp_flashlight_color_B""100")
}


public 
plugin_natives()
{
    
register_library("zp50_flashlight")
    
register_native("zp_flashlight_get_charge""native_flashlight_get_charge")
    
register_native("zp_flashlight_set_charge""native_flashlight_set_charge")
}

public 
native_flashlight_get_charge(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_connected(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZP] Invalid Player (%d)"id)
        return -
1;
    }
    
    
// Custom flashlight not enabled
    
if (!get_pcvar_num(cvar_flashlight_custom))
        return -
1;
    
    return 
g_FlashlightCharge[id];
}

public 
native_flashlight_set_charge(plugin_idnum_params)
{
    new 
id get_param(1)
    new 
charge get_param(2)
    
    if (!
is_user_connected(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZP] Invalid Player (%d)"id)
        return 
false;
    }
    
    
// Custom flashlight not enabled
    
if (!get_pcvar_num(cvar_flashlight_custom))
        return 
false;
    
    
g_FlashlightCharge[id] = clamp(charge0100)
    
    
// Set the flashlight charge task to update batteries
    
remove_task(id+TASK_CHARGE)
    
set_task(1.0"flashlight_charge_task"id+TASK_CHARGE__"b")
    
    return 
true;
}

public 
plugin_precache()
{
    
precache_sound(g_sound_flashlight)
}

public 
plugin_cfg()
{
    
// Enables flashlight
    
server_cmd("mp_flashlight 1")
}

// Forward CmdStart
public fw_CmdStart(idhandle)
{
    
// Not alive
    
if (!is_user_alive(id))
        return;
    
    
// Check if it's a flashlight impulse
    
if (get_uc(handleUC_Impulse) != IMPULSE_FLASHLIGHT)
        return;
    
    
// Flashlight is being turned off
    
if (pev(idpev_effects) & EF_DIMLIGHT)
        return;
    
    if (
zp_core_is_zombie(id))
    {
        
// Block it!
        
set_uc(handleUC_Impulse0)
    }
    else if (
get_pcvar_num(cvar_flashlight_custom))
    {
        
// Block it!
        
set_uc(handleUC_Impulse0)
        
        
// Should human's custom flashlight be turned on?
        
if (g_FlashlightCharge[id] > && get_gametime() - g_FlashlightLastTime[id] > 1.2)
        {
            
// Prevent calling flashlight too quickly (bugfix)
            
g_FlashlightLastTime[id] = get_gametime()
            
            
// Toggle custom flashlight
            
if (flag_get(g_FlashlightActiveid))
            {
                
// Remove flashlight task
                
remove_task(id+TASK_FLASHLIGHT)
                
                
flag_unset(g_FlashlightActiveid)
            }
            else
            {
                
// Set the custom flashlight task
                
set_task(0.1"custom_flashlight_task"id+TASK_FLASHLIGHT__"b")
                
                
flag_set(g_FlashlightActiveid)
            }
            
            
// Set the flashlight charge task
            
remove_task(id+TASK_CHARGE)
            
set_task(1.0"flashlight_charge_task"id+TASK_CHARGE__"b")
            
            
// Play flashlight toggle sound
            
emit_sound(idCHAN_ITEMg_sound_flashlight1.0ATTN_NORM0PITCH_NORM)
            
            
// Update flashlight status on HUD
            
message_begin(MSG_ONEg_MsgFlashlight_id)
            
write_byte(flag_get_boolean(g_FlashlightActiveid)) // toggle
            
write_byte(g_FlashlightCharge[id]) // batteries
            
message_end()
        }
    }
}

// Ham Player Killed Forward
public fw_PlayerKilled(victimattackershouldgib)
{
    
// Reset flashlight flags
    
flag_unset(g_FlashlightActivevictim)
    
remove_task(victim+TASK_FLASHLIGHT)
    
remove_task(victim+TASK_CHARGE)
}

public 
client_disconnect(id)
{
    
// Reset flashlight flags
    
flag_unset(g_FlashlightActiveid)
    
remove_task(id+TASK_FLASHLIGHT)
    
remove_task(id+TASK_CHARGE)
}

// Flashlight batteries messages
public message_flashbat(msg_idmsg_destmsg_entity)
{
    
// Block if custom flashlight is enabled instead
    
if (get_pcvar_num(cvar_flashlight_custom))
        return 
PLUGIN_HANDLED;
    
    
// Block if zombie
    
if (is_user_connected(msg_entity) && zp_core_is_zombie(msg_entity))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

public 
zp_fw_core_infect_post(idattacker)
{
    
// Turn off zombies flashlight
    
turn_off_flashlight(id)
}

public 
zp_fw_core_cure_post(idattacker)
{
    
// Turn off humans flashlight (prevents double flashlight bug/exploit after respawn)
    
turn_off_flashlight(id)
}

// Turn Off Flashlight and Restore Batteries
turn_off_flashlight(id)
{
    
// Restore batteries to starting charge
    
if (get_pcvar_num(cvar_flashlight_custom))
        
g_FlashlightCharge[id] = get_pcvar_num(cvar_flashlight_starting_charge)
    else
        
fm_cs_set_flash_batteries(idget_pcvar_num(cvar_flashlight_starting_charge))
    
    
// Check if flashlight is on
    
if (pev(idpev_effects) & EF_DIMLIGHT)
    {
        
// Turn it off
        
set_pev(idpev_impulseIMPULSE_FLASHLIGHT)
    }
    else
    {
        
// Clear any stored flashlight impulse (bugfix)
        
set_pev(idpev_impulse0)
        
        
// Update flashlight HUD
        
message_begin(MSG_ONEg_MsgFlashlight_id)
        
write_byte(0// toggle
        
write_byte(get_pcvar_num(cvar_flashlight_starting_charge)) // batteries
        
message_end()
    }
    
    if (
get_pcvar_num(cvar_flashlight_custom))
    {
        
// Turn it off
        
flag_unset(g_FlashlightActiveid)
        
        
// Remove previous tasks
        
remove_task(id+TASK_CHARGE)
        
remove_task(id+TASK_FLASHLIGHT)
    }
}

// Custom Flashlight Task
public custom_flashlight_task(taskid)
{
    
// Get player and aiming origins
    
static Float:origin[3], Float:destorigin[3]
    
pev(ID_FLASHLIGHTpev_originorigin)
    
fm_get_aim_origin(ID_FLASHLIGHTdestorigin)
    
    
// Max distance check
    
if (get_distance_f(origindestorigin) > get_pcvar_float(cvar_flashlight_distance))
        return;
    
    
// Send to all players?
    
if (get_pcvar_num(cvar_flashlight_show_all))
        
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYdestorigin0)
    else
        
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_ID_FLASHLIGHT)
    
    
// Flashlight
    
write_byte(TE_DLIGHT// TE id
    
engfunc(EngFunc_WriteCoorddestorigin[0]) // x
    
engfunc(EngFunc_WriteCoorddestorigin[1]) // y
    
engfunc(EngFunc_WriteCoorddestorigin[2]) // z
    
write_byte(get_pcvar_num(cvar_flashlight_radius)) // radius
    
write_byte(get_pcvar_num(cvar_flashlight_color_R)) // r
    
write_byte(get_pcvar_num(cvar_flashlight_color_G)) // g
    
write_byte(get_pcvar_num(cvar_flashlight_color_B)) // b
    
write_byte(3// life
    
write_byte(0// decay rate
    
message_end()
}

// Flashlight Charge Task
public flashlight_charge_task(taskid)
{
    
// Drain or charge?
    
if (flag_get(g_FlashlightActiveID_CHARGE))
        
g_FlashlightCharge[ID_CHARGE] = max(g_FlashlightCharge[ID_CHARGE] - get_pcvar_num(cvar_flashlight_drain_rate), 0)
    else
        
g_FlashlightCharge[ID_CHARGE] = min(g_FlashlightCharge[ID_CHARGE] + get_pcvar_num(cvar_flashlight_charge_rate), 100)
    
    
// Batteries fully charged
    
if (g_FlashlightCharge[ID_CHARGE] == 100)
    {
        
// Update flashlight batteries on HUD
        
message_begin(MSG_ONEg_MsgFlashBat_ID_CHARGE)
        
write_byte(100// batteries
        
message_end()
        
        
// Task not needed anymore
        
remove_task(taskid)
        return;
    }
    
    
// Batteries depleted
    
if (g_FlashlightCharge[ID_CHARGE] == 0)
    {
        
// Turn it off
        
flag_unset(g_FlashlightActiveID_CHARGE)
        
        
// Remove flashlight task for this player
        
remove_task(ID_CHARGE+TASK_FLASHLIGHT)
        
        
// Play flashlight toggle sound
        
emit_sound(ID_CHARGECHAN_ITEMg_sound_flashlight1.0ATTN_NORM0PITCH_NORM)
        
        
// Update flashlight status on HUD
        
message_begin(MSG_ONEg_MsgFlashlight_ID_CHARGE)
        
write_byte(0// toggle
        
write_byte(0// batteries
        
message_end()
        
        return;
    }
    
    
// Update flashlight batteries on HUD
    
message_begin(MSG_ONE_UNRELIABLEg_MsgFlashBat_ID_CHARGE)
    
write_byte(g_FlashlightCharge[ID_CHARGE]) // batteries
    
message_end()
}

// Set Flashlight Batteries
stock fm_cs_set_flash_batteries(idvalue)
{
    
// Prevent server crash if entity's private data not initalized
    
if (pev_valid(id) != PDATA_SAFE)
        return;
    
    
set_pdata_int(idOFFSET_FLASHLIGHT_BATTERIESvalue)
}

// Get entity's aim origins (from fakemeta_util)
stock fm_get_aim_origin(idFloat:origin[3])
{
    static 
Float:origin1F[3], Float:origin2F[3]
    
pev(idpev_originorigin1F)
    
pev(idpev_view_ofsorigin2F)
    
xs_vec_add(origin1Forigin2Forigin1F)

    
pev(idpev_v_angleorigin2F);
    
engfunc(EngFunc_MakeVectorsorigin2F)
    
global_get(glb_v_forwardorigin2F)
    
xs_vec_mul_scalar(origin2F9999.0origin2F)
    
xs_vec_add(origin1Forigin2Forigin2F)

    
engfunc(EngFunc_TraceLineorigin1Forigin2F0id0)
    
get_tr2(0TR_vecEndPosorigin)

PHP Code:
/*================================================================================
    
    ----------------------------
    -*- [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_fovcvar_zombie_silentcvar_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(mymodcharsmax(mymod))
    if (
equal(mymod"czero")) g_IsModCZ 1
}

public 
plugin_precache()
{
    
// Initialize arrays
    
g_bleeding_decals ArrayCreate(11)
    
    
// 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 0index sizeof bleeding_decalsindex++)
            
ArrayPushCell(g_bleeding_decalsbleeding_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(moduleLIBRARY_NEMESIS) || equal(moduleLIBRARY_ASSASSIN))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}
public 
native_filter(const name[], indextrap)
{
    if (!
trap)
        return 
PLUGIN_HANDLED;
        
    return 
PLUGIN_CONTINUE;
}

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

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

public 
message_setfov(msg_idmsg_destmsg_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(1get_msg_argtype(1), get_pcvar_num(cvar_zombie_fov))
}

public 
zp_fw_core_infect_post(idattacker)
{
    
// Set custom FOV?
    
if (get_pcvar_num(cvar_zombie_fov) != CS_DEFAULT_FOV && get_pcvar_num(cvar_zombie_fov) != 0)
    {
        
message_begin(MSG_ONEg_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_NEMESISLibType_Library) || !zp_class_nemesis_get(id))
    {
        
// Set silent footsteps?
        
if (get_pcvar_num(cvar_zombie_silent))
            
set_user_footsteps(id1)
        
        
// 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_ASSASSINLibType_Library) || !zp_class_assassin_get(id))
    {
        
// Set silent footsteps?
        
if (get_pcvar_num(cvar_zombie_silent))
            
set_user_footsteps(id1)
        
        
// 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(id0)
    }
}

public 
zp_fw_core_cure_post(idattacker)
{
    
// Restore FOV?
    
if (get_pcvar_num(cvar_zombie_fov) != CS_DEFAULT_FOV && get_pcvar_num(cvar_zombie_fov) != 0)
    {
        
message_begin(MSG_ONEg_MsgSetFOV_id)
        
write_byte(CS_DEFAULT_FOV// angle
        
message_end()
    }
    
    
// Restore normal footsteps?
    
if (get_pcvar_num(cvar_zombie_silent))
        
set_user_footsteps(id0)
    
    
// 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_BLOODpev_flags) & FL_ONGROUND) || fm_get_speed(ID_BLOOD) < 80)
        return;
    
    
// Get user origin
    
static Float:originF[3]
    
pev(ID_BLOODpev_originoriginF)
    
    
// If ducking set a little lower
    
if (pev(ID_BLOODpev_bInDuck))
        
originF[2] -= 18.0
    
else
        
originF[2] -= 36.0
    
    
// Send the decal message
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_WORLDDECAL// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]) // z
    
write_byte(ArrayGetCell(g_bleeding_decalsrandom_num(0ArraySize(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(entitypev_velocityvelocity)
    
    return 
floatround(vector_length(velocity));

Toni1 is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 09-01-2016 , 16:27   Re: Help To Many bugs :/
Reply With Quote #2

Use the latest version(5.0.8a).
__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
Toni1
Member
Join Date: Sep 2016
Location: Kosova
Old 09-02-2016 , 02:57   Re: Help To Many bugs :/
Reply With Quote #3

Which Bro Link??

And Any Way To Fixed This bugs? Needit really
Toni1 is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 09-02-2016 , 07:12   Re: Help To Many bugs :/
Reply With Quote #4

https://forums.alliedmods.net/showthread.php?t=72505
__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
Toni1
Member
Join Date: Sep 2016
Location: Kosova
Old 09-02-2016 , 11:20   Re: Help To Many bugs :/
Reply With Quote #5

But There ITs much ZIP Which Neeed Install Or Which WIll Work For My zP 5.0.8 ?

Can You Post Here .Sma With no bugs bro ???
Attached Thumbnails
Click image for larger version

Name:	Screenshot_1.png
Views:	115
Size:	23.0 KB
ID:	157191  
Toni1 is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 09-02-2016 , 11:32   Re: Help To Many bugs :/
Reply With Quote #6

https://forums.alliedmods.net/attach...9&d=1422503317
__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
Toni1
Member
Join Date: Sep 2016
Location: Kosova
Old 09-02-2016 , 12:23   Re: Help To Many bugs :/
Reply With Quote #7

Nice Thnx Are Sure THis Dont Buged?
Toni1 is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 09-02-2016 , 13:46   Re: Help To Many bugs :/
Reply With Quote #8

I'm sure it's better than your current one.
__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
Toni1
Member
Join Date: Sep 2016
Location: Kosova
Old 09-02-2016 , 14:51   Re: Help To Many bugs :/
Reply With Quote #9

Okay Thnx ! ;)
Toni1 is offline
Depresie
Veteran Member
Join Date: Nov 2013
Old 09-03-2016 , 07:06   Re: Help To Many bugs :/
Reply With Quote #10

1. Please add all your bugs in this post, so we can fix them all easier
2. Delete your current addon completely
3. Go here download zp_plugin_50_patched and the resources
4. Install it, and see if the problems are still present
5. After we make sure there are no bugs we will install there the assassin and sniper mode
__________________
Depresie 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 15:37.


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