Raised This Month: $ Target: $400
 0% 

[HELP] Error Complete 3


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
B7PK
Member
Join Date: Apr 2016
Location: palestine
Old 05-06-2016 , 17:31   [HELP] Error Complete 3
Reply With Quote #1

Hello guys. i have Error complete in this :/

Code:-
PHP Code:
/*================================================================================
    
    ----------------------------
    -*- [ZP] Class: Survivor -*-
    ----------------------------
    
    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 <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_maxspeed_api>
#include <cs_player_models_api>
#include <cs_weap_models_api>
#include <cs_ham_bots_api>
#include <zp50_core>
#include <zp50_grenade_frost>

#define DIVIDING_FACTOR 3

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

// Default models
new const models_survivor_player[][] = { "leet""sas" }

new Array:
g_models_survivor_player

#define PLAYERMODEL_MAX_LENGTH 32
#define MODEL_MAX_LENGTH 64

new g_models_survivor_weapon[MODEL_MAX_LENGTH] = "models/v_ak47.mdl"

#define TASK_AURA 100
#define ID_AURA (taskid - TASK_AURA)

#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))

// CS Player CBase Offsets (win32)
const PDATA_SAFE 2
const OFFSET_ACTIVE_ITEM 373

// Weapon bitsums
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
const 
GRENADES_WEAPONS_BIT_SUM = (1<<CSW_HEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_SMOKEGRENADE)

// Ammo Type Names for weapons
new const AMMOTYPE[][] = { """357sig""""762nato""""buckshot""""45acp""556nato""""9mm""57mm""45acp",
            
"556nato""556nato""556nato""45acp""9mm""338magnum""9mm""556natobox""buckshot",
            
"556nato""9mm""762nato""""50ae""556nato""762nato""""57mm" }

// Max BP ammo for weapons
new const MAXBPAMMO[] = { -152, -1901321100901120100100909090100120,
            
301202003290120902359090, -1100 }

#define PRIMARY_ONLY 1
#define SECONDARY_ONLY 2
#define GRENADES_ONLY 4

new g_MaxPlayers
new g_IsSurvivor

new cvar_survivor_healthcvar_survivor_base_healthcvar_survivor_speedcvar_survivor_gravity
new cvar_survivor_glow
new cvar_survivor_auracvar_survivor_aura_color_Rcvar_survivor_aura_color_Gcvar_survivor_aura_color_B
new cvar_survivor_weaponcvar_survivor_weapon_block
new bullets33 ] , iDam[33]

public 
plugin_init()
{
    
register_plugin("[ZP] Class: Survivor"ZP_VERSION_STRING"ZP Team")
    
    
register_clcmd("drop""clcmd_drop")
    
RegisterHam(Ham_Touch"weaponbox""fw_TouchWeapon")
    
RegisterHam(Ham_Touch"armoury_entity""fw_TouchWeapon")
    
RegisterHam(Ham_Touch"weapon_shield""fw_TouchWeapon")
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHamBots(Ham_Killed"fw_PlayerKilled")
    
register_forward(FM_ClientDisconnect"fw_ClientDisconnect_Post"1)
    
    
g_MaxPlayers get_maxplayers()
    
    
cvar_survivor_health register_cvar("zp_survivor_health""0")
    
cvar_survivor_base_health register_cvar("zp_survivor_base_health""100")
    
cvar_survivor_speed register_cvar("zp_survivor_speed""0.95")
    
cvar_survivor_gravity register_cvar("zp_survivor_gravity""1.25")
    
cvar_survivor_glow register_cvar("zp_survivor_glow""0")
    
cvar_survivor_aura register_cvar("zp_survivor_aura""0")
    
cvar_survivor_aura_color_R register_cvar("zp_survivor_aura_color_R""0")
    
cvar_survivor_aura_color_G register_cvar("zp_survivor_aura_color_G""0")
    
cvar_survivor_aura_color_B register_cvar("zp_survivor_aura_color_B""0")
    
cvar_survivor_weapon register_cvar("zp_survivor_weapon""ak47")
    
cvar_survivor_weapon_block register_cvar("zp_survivor_weapon_block""1")
}

public 
plugin_precache()
{
    
// Initialize arrays
    
g_models_survivor_player ArrayCreate(PLAYERMODEL_MAX_LENGTH1)
    
    
// Load from external file
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Player Models""SURVIVOR"g_models_survivor_player)
    
    
// If we couldn't load from file, use and save default ones
    
new index
    
if (ArraySize(g_models_survivor_player) == 0)
    {
        for (
index 0index sizeof models_survivor_playerindex++)
            
ArrayPushString(g_models_survivor_playermodels_survivor_player[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Player Models""SURVIVOR"g_models_survivor_player)
    }
    
    
// Load from external file, save if not found
    
if (!amx_load_setting_string(ZP_SETTINGS_FILE"Weapon Models""V_WEAPON SURVIVOR"g_models_survivor_weaponcharsmax(g_models_survivor_weapon)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Weapon Models""V_WEAPON SURVIVOR"g_models_survivor_weapon)
    
    
    
// Precache models
    
new player_model[PLAYERMODEL_MAX_LENGTH], model_path[128]
    for (
index 0index ArraySize(g_models_survivor_player); index++)
    {
        
ArrayGetString(g_models_survivor_playerindexplayer_modelcharsmax(player_model))
        
formatex(model_pathcharsmax(model_path), "models/player/%s/%s.mdl"player_modelplayer_model)
        
precache_model(model_path)
        
// Support modelT.mdl files
        
formatex(model_pathcharsmax(model_path), "models/player/%s/%sT.mdl"player_modelplayer_model)
        if (
file_exists(model_path)) precache_model(model_path)
    }
    
    
precache_model(g_models_survivor_weapon)
}

public 
plugin_natives()
{
    
register_library("zp50_class_survivor")
    
register_native("zp_class_survivor_get""native_class_survivor_get")
    
register_native("zp_class_survivor_set""native_class_survivor_set")
    
register_native("zp_class_survivor_get_count""native_class_survivor_get_count")
}

public 
client_disconnect(id)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
    }
}

public 
fw_ClientDisconnect_Post(id)
{
    
// Reset flags AFTER disconnect (to allow checking if the player was survivor before disconnecting)
    
flag_unset(g_IsSurvivorid)
}

public 
clcmd_drop(id)
{
    
// Should survivor stick to his weapon?
    
if (flag_get(g_IsSurvivorid) && get_pcvar_num(cvar_survivor_weapon_block))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

// Ham Weapon Touch Forward
public fw_TouchWeapon(weaponid)
{
    
// Should survivor stick to his weapon?
    
if (get_pcvar_num(cvar_survivor_weapon_block) && is_user_alive(id) && flag_get(g_IsSurvivorid))
        return 
HAM_SUPERCEDE;
    
    return 
HAM_IGNORED;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victimattackershouldgib)
{
    if (
flag_get(g_IsSurvivorvictim))
    {
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(victim+TASK_AURA)
    }
}
    
public 
fw_TakeDamage(victiminflictorattackerFloat:damage

    if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4A1[attacker] )
    {  
            
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) ) 
 
        
iDam[attacker] += damage get_pcvar_floatcvar_dmgmultiplier )

        if(
iDam[attacker] >= 2000)
        {
           
zp_grenade_frost_set(victim,true)
           
iDam[attacker] = 0
        
}
        
set_task(2.0"remove"victim)   
    } 


public 
zp_fw_core_cure_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}

public 
zp_fw_core_infect_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}

public 
zp_fw_core_spawn_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}
       
public 
remove(id)
{
       if(
is_user_connected(id) && is_user_alive(id))
       {

       
zp_grenade_frost_set(idfalse)
       }

}
}

public 
zp_fw_core_spawn_post(id)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove survivor weapon model
        
new weapon_name[32]
        
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
        new 
weapon_id get_weaponid(weapon_name)
        
cs_reset_player_view_model(idweapon_id)
        
        
// Remove survivor flag
        
flag_unset(g_IsSurvivorid)
    }
}

public 
zp_fw_core_infect(idattacker)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove survivor weapon model
        
new weapon_name[32]
        
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
        new 
weapon_id get_weaponid(weapon_name)
        
cs_reset_player_view_model(idweapon_id)
        
        
// Remove survivor flag
        
flag_unset(g_IsSurvivorid)
    }
}

public 
zp_fw_core_cure_post(idattacker)
{
    
// Apply Survivor attributes?
    
if (!flag_get(g_IsSurvivorid))
        return;
    
    
// Health
    
if (get_pcvar_num(cvar_survivor_health) == 0)
        
set_user_health(idget_pcvar_num(cvar_survivor_base_health) * GetAliveCount())
    else
        
set_user_health(idget_pcvar_num(cvar_survivor_health))
    
    
// Gravity
    
set_user_gravity(idget_pcvar_float(cvar_survivor_gravity))
    
    
// Speed (if value between 0 and 10, consider it a multiplier)
    
cs_set_player_maxspeed_auto(idget_pcvar_float(cvar_survivor_speed))
    
    
// Apply survivor player model
    
new player_model[PLAYERMODEL_MAX_LENGTH]
    
ArrayGetString(g_models_survivor_playerrandom_num(0ArraySize(g_models_survivor_player) - 1), player_modelcharsmax(player_model))
    
cs_set_player_model(idplayer_model)
    
    
// Apply survivor weapon model
    
new weapon_name[32]
    
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
    new 
weapon_id get_weaponid(weapon_name)
    
cs_set_player_view_model(idweapon_idg_models_survivor_weapon)
    
    
// Survivor glow
    
if (get_pcvar_num(cvar_survivor_glow))
        
set_user_rendering(idkRenderFxGlowShell00255kRenderNormal25)
    
    
// Survivor aura task
    
if (get_pcvar_num(cvar_survivor_aura))
        
set_task(0.1"survivor_aura"id+TASK_AURA__"b")
    
    
// Strip current weapons and give survivor weapon
    
strip_weapons(idPRIMARY_ONLY)
    
strip_weapons(idSECONDARY_ONLY)
    
strip_weapons(idGRENADES_ONLY)
    
give_item(idweapon_name)
    
ExecuteHamB(Ham_GiveAmmoidMAXBPAMMO[weapon_id], AMMOTYPE[weapon_id], MAXBPAMMO[weapon_id])
}

public 
native_class_survivor_get(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;
    }
    
    return 
flag_get_boolean(g_IsSurvivorid);
}

public 
native_class_survivor_set(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_alive(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZoZ] Invalid Player (%d)"id)
        return 
false;
    }
    
    if (
flag_get(g_IsSurvivorid))
    {
        
log_error(AMX_ERR_NATIVE"[ZoZ] Player already a survivor (%d)"id)
        return 
false;
    }
    
    
flag_set(g_IsSurvivorid)
    
zp_core_force_cure(id)
    return 
true;
}

public 
native_class_survivor_get_count(plugin_idnum_params)
{
    return 
GetSurvivorCount();
}

// Survivor aura task
public survivor_aura(taskid)
{
    
// Get player's origin
    
static origin[3]
    
get_user_origin(ID_AURAorigin)
    
    
// Colored Aura
    
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
    
write_byte(TE_DLIGHT// TE id
    
write_coord(origin[0]) // x
    
write_coord(origin[1]) // y
    
write_coord(origin[2]) // z
    
write_byte(50// radius
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_R)) // r
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_G)) // g
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_B)) // b
    
write_byte(2// life
    
write_byte(0// decay rate
    
message_end()
}

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

// Get Survivor Count -returns alive survivors number-
GetSurvivorCount()
{
    new 
iSurvivorsid
    
    
for (id 1id <= g_MaxPlayersid++)
    {
        if (
is_user_alive(id) && flag_get(g_IsSurvivorid))
            
iSurvivors++
    }
    
    return 
iSurvivors;
}

// Strip primary/secondary/grenades
stock strip_weapons(idstripwhat)
{
    
// Get user weapons
    
new weapons[32], num_weaponsindexweaponid
    get_user_weapons
(idweaponsnum_weapons)
    
    
// Loop through them and drop primaries or secondaries
    
for (index 0index num_weaponsindex++)
    {
        
// Prevent re-indexing the array
        
weaponid weapons[index]
        
        if ((
stripwhat == PRIMARY_ONLY && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
        || (
stripwhat == SECONDARY_ONLY && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM))
        || (
stripwhat == GRENADES_ONLY && ((1<<weaponid) & GRENADES_WEAPONS_BIT_SUM)))
        {
            
// Get weapon name
            
new wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
            
// Strip weapon and remove bpammo
            
ham_strip_weapon(idwname)
            
cs_set_user_bpammo(idweaponid0)
        }
    }
}

stock ham_strip_weapon(index, const weapon[])
{
    
// Get weapon id
    
new weaponid get_weaponid(weapon)
    if (!
weaponid)
        return 
false;
    
    
// Get weapon entity
    
new weapon_ent fm_find_ent_by_owner(-1weaponindex)
    if (!
weapon_ent)
        return 
false;
    
    
// If it's the current weapon, retire first
    
new current_weapon_ent fm_cs_get_current_weapon_ent(index)
    new 
current_weapon pev_valid(current_weapon_ent) ? cs_get_weapon_id(current_weapon_ent) : -1
    
if (current_weapon == weaponid)
        
ExecuteHamB(Ham_Weapon_RetireWeaponweapon_ent)
    
    
// Remove weapon from player
    
if (!ExecuteHamB(Ham_RemovePlayerItemindexweapon_ent))
        return 
false;
    
    
// Kill weapon entity and fix pev_weapons bitsum
    
ExecuteHamB(Ham_Item_Killweapon_ent)
    
set_pev(indexpev_weaponspev(indexpev_weapons) & ~(1<<weaponid))
    return 
true;
}

// Find entity by its owner (from fakemeta_util)
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
    while ((
entity engfunc(EngFunc_FindEntityByStringentity"classname"classname)) && pev(entitypev_owner) != owner) { /* keep looping */ }
    return 
entity;
}

// Get User Current Weapon Entity
stock fm_cs_get_current_weapon_ent(id)
{
    
// Prevent server crash if entity's private data not initalized
    
if (pev_valid(id) != PDATA_SAFE)
        return -
1;
    
    return 
get_pdata_cbase(idOFFSET_ACTIVE_ITEM);

massage Error:-
Code:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "is_valid_player" on line 205
Warning: Expression has no effect on line 205
Error: Expected token: ";", but found "]" on line 205
Error: Invalid expression, assumed zero on line 205
Error: Too many error messages on one line on line 205

Compilation aborted.
4 Errors.
Could not locate output file C:\Users\abood\Desktop\zp_class_survivor.amx (compile failed).
__________________
B7PK is offline
siriusmd99
Veteran Member
Join Date: Oct 2013
Location: Republic of Moldova
Old 05-06-2016 , 17:42   Re: [HELP] Error Complete 3
Reply With Quote #2

add this at the top of your plugin (where you see defines):

PHP Code:
#define is_valid_player(%1) (1 <= %1 <= 32) 
siriusmd99 is offline
B7PK
Member
Join Date: Apr 2016
Location: palestine
Old 05-06-2016 , 18:18   Re: [HELP] Error Complete 3
Reply With Quote #3

i add it...not work Error :/

Code:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "g_HasM4A1" on line 207
Warning: Expression has no effect on line 207
Error: Expected token: ";", but found "]" on line 207
Error: Invalid expression, assumed zero on line 207
Error: Too many error messages on one line on line 207

Compilation aborted.
4 Errors.
Could not locate output file C:\Users\abood\Desktop\zp_class_survivor.amx (compile failed).
__________________
B7PK is offline
SpannerSpammer
Member
Join Date: Mar 2006
Old 05-06-2016 , 18:54   Re: [HELP] Error Complete 3
Reply With Quote #4

Code:
#define is_valid_player(%1) (1 <= %1 <= 32)
This is NOT a validity check, this is just an out of bounds check for a player index.

This is a real validity check you should use:
Code:
stock bool:is_valid_player( id )
{
    return ( pev_valid(id) && (id >= 1) && (id <= g_MaxPlayers) && is_user_connected(id) && !is_user_hltv(id) );
}
Line 207 of your code:
Code:
if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4A1[attacker] )
g_HasM4A1 is an undefined variable in your code , which I don't think you need since get_user_weapon()
already checks if the player has this weapon. Remove it from your code:
Code:
if ( is_valid_player( attacker ) && (get_user_weapon(attacker) == CSW_M4A1) )
__________________
[NeoTF|DEV]SpannerSpammer-[AoE]-
NeoTF Development Team.
http://steamcommunity.com/groups/neotf
SpannerSpammer is offline
B7PK
Member
Join Date: Apr 2016
Location: palestine
Old 05-07-2016 , 12:13   Re: [HELP] Error Complete 3
Reply With Quote #5

where use this ?
Code:
stock bool:is_valid_player( id )
{
    return ( pev_valid(id) && (id >= 1) && (id <= g_MaxPlayers) && is_user_connected(id) && !is_user_hltv(id) );
}

Full code
PHP Code:
/*================================================================================
    
    ----------------------------
    -*- [ZoZ] Class: Survivor -*-
    ----------------------------
    
    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 <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_maxspeed_api>
#include <cs_player_models_api>
#include <cs_weap_models_api>
#include <cs_ham_bots_api>
#include <zp50_core>
#include <zp50_grenade_frost>

#define DIVIDING_FACTOR 3

#define is_valid_player(%1) (1 <= %1 <= 32)

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

// Default models
new const models_survivor_player[][] = { "leet""sas" }

new Array:
g_models_survivor_player

#define PLAYERMODEL_MAX_LENGTH 32
#define MODEL_MAX_LENGTH 64

new g_models_survivor_weapon[MODEL_MAX_LENGTH] = "models/v_ak47.mdl"

#define TASK_AURA 100
#define ID_AURA (taskid - TASK_AURA)

#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))

// CS Player CBase Offsets (win32)
const PDATA_SAFE 2
const OFFSET_ACTIVE_ITEM 373

// Weapon bitsums
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_M4A1)
const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
const 
GRENADES_WEAPONS_BIT_SUM = (1<<CSW_HEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_SMOKEGRENADE)

// Ammo Type Names for weapons
new const AMMOTYPE[][] = { """357sig""""762nato""""buckshot""""45acp""556nato""""9mm""57mm""45acp",
            
"556nato""556nato""556nato""45acp""9mm""338magnum""9mm""556natobox""buckshot",
            
"556nato""9mm""762nato""""50ae""556nato""762nato""""57mm" }

// Max BP ammo for weapons
new const MAXBPAMMO[] = { -152, -1901321100901120100100909090100120,
            
301202003290120902359090, -1100 }

#define PRIMARY_ONLY 1
#define SECONDARY_ONLY 2
#define GRENADES_ONLY 4

new g_MaxPlayers
new g_IsSurvivor

new cvar_survivor_healthcvar_survivor_base_healthcvar_survivor_speedcvar_survivor_gravity
new cvar_survivor_glow
new cvar_survivor_auracvar_survivor_aura_color_Rcvar_survivor_aura_color_Gcvar_survivor_aura_color_B
new cvar_survivor_weaponcvar_survivor_weapon_block
new bullets33 ] , iDam[33]

public 
plugin_init()
{
    
register_plugin("[ZoZ] Class: Survivor"ZP_VERSION_STRING"ZoZ Team")
    
    
register_clcmd("drop""clcmd_drop")
    
RegisterHam(Ham_Touch"weaponbox""fw_TouchWeapon")
    
RegisterHam(Ham_Touch"armoury_entity""fw_TouchWeapon")
    
RegisterHam(Ham_Touch"weapon_shield""fw_TouchWeapon")
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHamBots(Ham_Killed"fw_PlayerKilled")
    
register_forward(FM_ClientDisconnect"fw_ClientDisconnect_Post"1)
    
    
g_MaxPlayers get_maxplayers()
    
    
cvar_survivor_health register_cvar("zp_survivor_health""0")
    
cvar_survivor_base_health register_cvar("zp_survivor_base_health""100")
    
cvar_survivor_speed register_cvar("zp_survivor_speed""0.95")
    
cvar_survivor_gravity register_cvar("zp_survivor_gravity""1.25")
    
cvar_survivor_glow register_cvar("zp_survivor_glow""0")
    
cvar_survivor_aura register_cvar("zp_survivor_aura""0")
    
cvar_survivor_aura_color_R register_cvar("zp_survivor_aura_color_R""0")
    
cvar_survivor_aura_color_G register_cvar("zp_survivor_aura_color_G""0")
    
cvar_survivor_aura_color_B register_cvar("zp_survivor_aura_color_B""0")
    
cvar_survivor_weapon register_cvar("zp_survivor_weapon""m4a1")
    
cvar_survivor_weapon_block register_cvar("zp_survivor_weapon_block""1")
}

public 
plugin_precache()
{
    
// Initialize arrays
    
g_models_survivor_player ArrayCreate(PLAYERMODEL_MAX_LENGTH1)
    
    
// Load from external file
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Player Models""SURVIVOR"g_models_survivor_player)
    
    
// If we couldn't load from file, use and save default ones
    
new index
    
if (ArraySize(g_models_survivor_player) == 0)
    {
        for (
index 0index sizeof models_survivor_playerindex++)
            
ArrayPushString(g_models_survivor_playermodels_survivor_player[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Player Models""SURVIVOR"g_models_survivor_player)
    }
    
    
// Load from external file, save if not found
    
if (!amx_load_setting_string(ZP_SETTINGS_FILE"Weapon Models""V_WEAPON SURVIVOR"g_models_survivor_weaponcharsmax(g_models_survivor_weapon)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Weapon Models""V_WEAPON SURVIVOR"g_models_survivor_weapon)
    
    
    
// Precache models
    
new player_model[PLAYERMODEL_MAX_LENGTH], model_path[128]
    for (
index 0index ArraySize(g_models_survivor_player); index++)
    {
        
ArrayGetString(g_models_survivor_playerindexplayer_modelcharsmax(player_model))
        
formatex(model_pathcharsmax(model_path), "models/player/%s/%s.mdl"player_modelplayer_model)
        
precache_model(model_path)
        
// Support modelT.mdl files
        
formatex(model_pathcharsmax(model_path), "models/player/%s/%sT.mdl"player_modelplayer_model)
        if (
file_exists(model_path)) precache_model(model_path)
    }
    
    
precache_model(g_models_survivor_weapon)
}

public 
plugin_natives()
{
    
register_library("zp50_class_survivor")
    
register_native("zp_class_survivor_get""native_class_survivor_get")
    
register_native("zp_class_survivor_set""native_class_survivor_set")
    
register_native("zp_class_survivor_get_count""native_class_survivor_get_count")
}

public 
client_disconnect(id)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
    }
}

public 
fw_ClientDisconnect_Post(id)
{
    
// Reset flags AFTER disconnect (to allow checking if the player was survivor before disconnecting)
    
flag_unset(g_IsSurvivorid)
}

public 
clcmd_drop(id)
{
    
// Should survivor stick to his weapon?
    
if (flag_get(g_IsSurvivorid) && get_pcvar_num(cvar_survivor_weapon_block))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

// Ham Weapon Touch Forward
public fw_TouchWeapon(weaponid)
{
    
// Should survivor stick to his weapon?
    
if (get_pcvar_num(cvar_survivor_weapon_block) && is_user_alive(id) && flag_get(g_IsSurvivorid))
        return 
HAM_SUPERCEDE;
    
    return 
HAM_IGNORED;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victimattackershouldgib)
{
    if (
flag_get(g_IsSurvivorvictim))
    {
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(victim+TASK_AURA)
    }
}
    
public 
fw_TakeDamage(victiminflictorattackerFloat:damage

if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_M4A1) )
    {  
            
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) ) 
}
        
iDam[attacker] += damage get_pcvar_floatcvar_dmgmultiplier )

        if(
iDam[attacker] >= 2000)
        {
           
zp_grenade_frost_set(victim,true)
           
iDam[attacker] = 0
        
}
        
set_task(2.0"remove"victim)   
    } 


public 
zp_fw_core_cure_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}

public 
zp_fw_core_infect_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}

public 
zp_fw_core_spawn_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}
       
public 
remove(id)
{
       if(
is_user_connected(id) && is_user_alive(id))
       {

       
zp_grenade_frost_set(idfalse)
       }

}
}

public 
zp_fw_core_spawn_post(id)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove survivor weapon model
        
new weapon_name[32]
        
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
        new 
weapon_id get_weaponid(weapon_name)
        
cs_reset_player_view_model(idweapon_id)
        
        
// Remove survivor flag
        
flag_unset(g_IsSurvivorid)
    }
}

public 
zp_fw_core_infect(idattacker)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove survivor weapon model
        
new weapon_name[32]
        
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
        new 
weapon_id get_weaponid(weapon_name)
        
cs_reset_player_view_model(idweapon_id)
        
        
// Remove survivor flag
        
flag_unset(g_IsSurvivorid)
    }
}

public 
zp_fw_core_cure_post(idattacker)
{
    
// Apply Survivor attributes?
    
if (!flag_get(g_IsSurvivorid))
        return;
    
    
// Health
    
if (get_pcvar_num(cvar_survivor_health) == 0)
        
set_user_health(idget_pcvar_num(cvar_survivor_base_health) * GetAliveCount())
    else
        
set_user_health(idget_pcvar_num(cvar_survivor_health))
    
    
// Gravity
    
set_user_gravity(idget_pcvar_float(cvar_survivor_gravity))
    
    
// Speed (if value between 0 and 10, consider it a multiplier)
    
cs_set_player_maxspeed_auto(idget_pcvar_float(cvar_survivor_speed))
    
    
// Apply survivor player model
    
new player_model[PLAYERMODEL_MAX_LENGTH]
    
ArrayGetString(g_models_survivor_playerrandom_num(0ArraySize(g_models_survivor_player) - 1), player_modelcharsmax(player_model))
    
cs_set_player_model(idplayer_model)
    
    
// Apply survivor weapon model
    
new weapon_name[32]
    
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
    new 
weapon_id get_weaponid(weapon_name)
    
cs_set_player_view_model(idweapon_idg_models_survivor_weapon)
    
    
// Survivor glow
    
if (get_pcvar_num(cvar_survivor_glow))
        
set_user_rendering(idkRenderFxGlowShell00255kRenderNormal25)
    
    
// Survivor aura task
    
if (get_pcvar_num(cvar_survivor_aura))
        
set_task(0.1"survivor_aura"id+TASK_AURA__"b")
    
    
// Strip current weapons and give survivor weapon
    
strip_weapons(idPRIMARY_ONLY)
    
strip_weapons(idSECONDARY_ONLY)
    
strip_weapons(idGRENADES_ONLY)
    
give_item(idweapon_name)
    
ExecuteHamB(Ham_GiveAmmoidMAXBPAMMO[weapon_id], AMMOTYPE[weapon_id], MAXBPAMMO[weapon_id])
}

public 
native_class_survivor_get(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_connected(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZoZ] Invalid Player (%d)"id)
        return -
1;
    }
    
    return 
flag_get_boolean(g_IsSurvivorid);
}

public 
native_class_survivor_set(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_alive(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZoZ] Invalid Player (%d)"id)
        return 
false;
    }
    
    if (
flag_get(g_IsSurvivorid))
    {
        
log_error(AMX_ERR_NATIVE"[ZoZ] Player already a survivor (%d)"id)
        return 
false;
    }
    
    
flag_set(g_IsSurvivorid)
    
zp_core_force_cure(id)
    return 
true;
}

public 
native_class_survivor_get_count(plugin_idnum_params)
{
    return 
GetSurvivorCount();
}

// Survivor aura task
public survivor_aura(taskid)
{
    
// Get player's origin
    
static origin[3]
    
get_user_origin(ID_AURAorigin)
    
    
// Colored Aura
    
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
    
write_byte(TE_DLIGHT// TE id
    
write_coord(origin[0]) // x
    
write_coord(origin[1]) // y
    
write_coord(origin[2]) // z
    
write_byte(50// radius
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_R)) // r
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_G)) // g
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_B)) // b
    
write_byte(2// life
    
write_byte(0// decay rate
    
message_end()
}

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

// Get Survivor Count -returns alive survivors number-
GetSurvivorCount()
{
    new 
iSurvivorsid
    
    
for (id 1id <= g_MaxPlayersid++)
    {
        if (
is_user_alive(id) && flag_get(g_IsSurvivorid))
            
iSurvivors++
    }
    
    return 
iSurvivors;
}

// Strip primary/secondary/grenades
stock strip_weapons(idstripwhat)
{
    
// Get user weapons
    
new weapons[32], num_weaponsindexweaponid
    get_user_weapons
(idweaponsnum_weapons)
    
    
// Loop through them and drop primaries or secondaries
    
for (index 0index num_weaponsindex++)
    {
        
// Prevent re-indexing the array
        
weaponid weapons[index]
        
        if ((
stripwhat == PRIMARY_ONLY && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
        || (
stripwhat == SECONDARY_ONLY && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM))
        || (
stripwhat == GRENADES_ONLY && ((1<<weaponid) & GRENADES_WEAPONS_BIT_SUM)))
        {
            
// Get weapon name
            
new wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
            
// Strip weapon and remove bpammo
            
ham_strip_weapon(idwname)
            
cs_set_user_bpammo(idweaponid0)
        }
    }
}

stock ham_strip_weapon(index, const weapon[])
{
    
// Get weapon id
    
new weaponid get_weaponid(weapon)
    if (!
weaponid)
        return 
false;
    
    
// Get weapon entity
    
new weapon_ent fm_find_ent_by_owner(-1weaponindex)
    if (!
weapon_ent)
        return 
false;
    
    
// If it's the current weapon, retire first
    
new current_weapon_ent fm_cs_get_current_weapon_ent(index)
    new 
current_weapon pev_valid(current_weapon_ent) ? cs_get_weapon_id(current_weapon_ent) : -1
    
if (current_weapon == weaponid)
        
ExecuteHamB(Ham_Weapon_RetireWeaponweapon_ent)
    
    
// Remove weapon from player
    
if (!ExecuteHamB(Ham_RemovePlayerItemindexweapon_ent))
        return 
false;
    
    
// Kill weapon entity and fix pev_weapons bitsum
    
ExecuteHamB(Ham_Item_Killweapon_ent)
    
set_pev(indexpev_weaponspev(indexpev_weapons) & ~(1<<weaponid))
    return 
true;
}

// Find entity by its owner (from fakemeta_util)
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
    while ((
entity engfunc(EngFunc_FindEntityByStringentity"classname"classname)) && pev(entitypev_owner) != owner) { /* keep looping */ }
    return 
entity;
}

// Get User Current Weapon Entity
stock fm_cs_get_current_weapon_ent(id)
{
    
// Prevent server crash if entity's private data not initalized
    
if (pev_valid(id) != PDATA_SAFE)
        return -
1;
    
    return 
get_pdata_cbase(idOFFSET_ACTIVE_ITEM);

__________________

Last edited by B7PK; 05-07-2016 at 12:14.
B7PK is offline
siriusmd99
Veteran Member
Join Date: Oct 2013
Location: Republic of Moldova
Old 05-07-2016 , 13:40   Re: [HELP] Error Complete 3
Reply With Quote #6

just add it at the end of your code and then compile.
siriusmd99 is offline
B7PK
Member
Join Date: Apr 2016
Location: palestine
Old 05-07-2016 , 14:46   Re: [HELP] Error Complete 3
Reply With Quote #7

now i have 9 Error -,-

Code:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Invalid expression, assumed zero on line 207
Warning: Loose indentation on line 208
Error: Undefined symbol "cvar_dmgmultiplier" on line 209
Warning: Loose indentation on line 211
Error: Undefined symbol "cvar_dmgmultiplier" on line 211
Error: Unmatched closing brace on line 220
Error: Unmatched closing brace on line 255
Error: Symbol already defined: "zp_fw_core_spawn_post" on line 258
Error: Expected token: "-identifier-", but found "(" on line 302
Error: Invalid function or declaration on line 304
Error: Symbol already defined: "zp_fw_core_cure_post" on line 307
Warning: Symbol is never used: "bullets" on line 511

9 Errors.
Could not locate output file C:\Users\abood\Desktop\zp_class_survivor.amx (compile failed).
__________________
B7PK is offline
B7PK
Member
Join Date: Apr 2016
Location: palestine
Old 05-07-2016 , 14:46   Re: [HELP] Error Complete 3
Reply With Quote #8

Full code:-

PHP Code:
/*================================================================================
    
    ----------------------------
    -*- [ZoZ] Class: Survivor -*-
    ----------------------------
    
    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 <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_maxspeed_api>
#include <cs_player_models_api>
#include <cs_weap_models_api>
#include <cs_ham_bots_api>
#include <zp50_core>
#include <zp50_grenade_frost>

#define DIVIDING_FACTOR 3

#define is_valid_player(%1) (1 <= %1 <= 32)

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

// Default models
new const models_survivor_player[][] = { "leet""sas" }

new Array:
g_models_survivor_player

#define PLAYERMODEL_MAX_LENGTH 32
#define MODEL_MAX_LENGTH 64

new g_models_survivor_weapon[MODEL_MAX_LENGTH] = "models/v_ak47.mdl"

#define TASK_AURA 100
#define ID_AURA (taskid - TASK_AURA)

#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))

// CS Player CBase Offsets (win32)
const PDATA_SAFE 2
const OFFSET_ACTIVE_ITEM 373

// Weapon bitsums
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_M4A1)
const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
const 
GRENADES_WEAPONS_BIT_SUM = (1<<CSW_HEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_SMOKEGRENADE)

// Ammo Type Names for weapons
new const AMMOTYPE[][] = { """357sig""""762nato""""buckshot""""45acp""556nato""""9mm""57mm""45acp",
            
"556nato""556nato""556nato""45acp""9mm""338magnum""9mm""556natobox""buckshot",
            
"556nato""9mm""762nato""""50ae""556nato""762nato""""57mm" }

// Max BP ammo for weapons
new const MAXBPAMMO[] = { -152, -1901321100901120100100909090100120,
            
301202003290120902359090, -1100 }

#define PRIMARY_ONLY 1
#define SECONDARY_ONLY 2
#define GRENADES_ONLY 4

new g_MaxPlayers
new g_IsSurvivor

new cvar_survivor_healthcvar_survivor_base_healthcvar_survivor_speedcvar_survivor_gravity
new cvar_survivor_glow
new cvar_survivor_auracvar_survivor_aura_color_Rcvar_survivor_aura_color_Gcvar_survivor_aura_color_B
new cvar_survivor_weaponcvar_survivor_weapon_block
new bullets33 ] , iDam[33]

public 
plugin_init()
{
    
register_plugin("[ZoZ] Class: Survivor"ZP_VERSION_STRING"ZoZ Team")
    
    
register_clcmd("drop""clcmd_drop")
    
RegisterHam(Ham_Touch"weaponbox""fw_TouchWeapon")
    
RegisterHam(Ham_Touch"armoury_entity""fw_TouchWeapon")
    
RegisterHam(Ham_Touch"weapon_shield""fw_TouchWeapon")
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHamBots(Ham_Killed"fw_PlayerKilled")
    
register_forward(FM_ClientDisconnect"fw_ClientDisconnect_Post"1)
    
    
g_MaxPlayers get_maxplayers()
    
    
cvar_survivor_health register_cvar("zp_survivor_health""0")
    
cvar_survivor_base_health register_cvar("zp_survivor_base_health""100")
    
cvar_survivor_speed register_cvar("zp_survivor_speed""0.95")
    
cvar_survivor_gravity register_cvar("zp_survivor_gravity""1.25")
    
cvar_survivor_glow register_cvar("zp_survivor_glow""0")
    
cvar_survivor_aura register_cvar("zp_survivor_aura""0")
    
cvar_survivor_aura_color_R register_cvar("zp_survivor_aura_color_R""0")
    
cvar_survivor_aura_color_G register_cvar("zp_survivor_aura_color_G""0")
    
cvar_survivor_aura_color_B register_cvar("zp_survivor_aura_color_B""0")
    
cvar_survivor_weapon register_cvar("zp_survivor_weapon""m4a1")
    
cvar_survivor_weapon_block register_cvar("zp_survivor_weapon_block""1")
}

public 
plugin_precache()
{
    
// Initialize arrays
    
g_models_survivor_player ArrayCreate(PLAYERMODEL_MAX_LENGTH1)
    
    
// Load from external file
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Player Models""SURVIVOR"g_models_survivor_player)
    
    
// If we couldn't load from file, use and save default ones
    
new index
    
if (ArraySize(g_models_survivor_player) == 0)
    {
        for (
index 0index sizeof models_survivor_playerindex++)
            
ArrayPushString(g_models_survivor_playermodels_survivor_player[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Player Models""SURVIVOR"g_models_survivor_player)
    }
    
    
// Load from external file, save if not found
    
if (!amx_load_setting_string(ZP_SETTINGS_FILE"Weapon Models""V_WEAPON SURVIVOR"g_models_survivor_weaponcharsmax(g_models_survivor_weapon)))
        
amx_save_setting_string(ZP_SETTINGS_FILE"Weapon Models""V_WEAPON SURVIVOR"g_models_survivor_weapon)
    
    
    
// Precache models
    
new player_model[PLAYERMODEL_MAX_LENGTH], model_path[128]
    for (
index 0index ArraySize(g_models_survivor_player); index++)
    {
        
ArrayGetString(g_models_survivor_playerindexplayer_modelcharsmax(player_model))
        
formatex(model_pathcharsmax(model_path), "models/player/%s/%s.mdl"player_modelplayer_model)
        
precache_model(model_path)
        
// Support modelT.mdl files
        
formatex(model_pathcharsmax(model_path), "models/player/%s/%sT.mdl"player_modelplayer_model)
        if (
file_exists(model_path)) precache_model(model_path)
    }
    
    
precache_model(g_models_survivor_weapon)
}

public 
plugin_natives()
{
    
register_library("zp50_class_survivor")
    
register_native("zp_class_survivor_get""native_class_survivor_get")
    
register_native("zp_class_survivor_set""native_class_survivor_set")
    
register_native("zp_class_survivor_get_count""native_class_survivor_get_count")
}

public 
client_disconnect(id)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
    }
}

public 
fw_ClientDisconnect_Post(id)
{
    
// Reset flags AFTER disconnect (to allow checking if the player was survivor before disconnecting)
    
flag_unset(g_IsSurvivorid)
}

public 
clcmd_drop(id)
{
    
// Should survivor stick to his weapon?
    
if (flag_get(g_IsSurvivorid) && get_pcvar_num(cvar_survivor_weapon_block))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

// Ham Weapon Touch Forward
public fw_TouchWeapon(weaponid)
{
    
// Should survivor stick to his weapon?
    
if (get_pcvar_num(cvar_survivor_weapon_block) && is_user_alive(id) && flag_get(g_IsSurvivorid))
        return 
HAM_SUPERCEDE;
    
    return 
HAM_IGNORED;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victimattackershouldgib)
{
    if (
flag_get(g_IsSurvivorvictim))
    {
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(victim+TASK_AURA)
    }
}
    
public 
fw_TakeDamage(victiminflictorattackerFloat:damage

if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_M4A1) )
    {  
            
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) ) 
}
        
iDam[attacker] += damage get_pcvar_floatcvar_dmgmultiplier )

        if(
iDam[attacker] >= 2000)
        {
           
zp_grenade_frost_set(victim,true)
           
iDam[attacker] = 0
        
}
        
set_task(2.0"remove"victim)   
    } 


public 
zp_fw_core_cure_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}

public 
zp_fw_core_infect_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}

public 
zp_fw_core_spawn_post(id)
{
       if(
is_user_alive(id))
       {
           
iDam[id] = 0    
       
}
}
       
public 
remove(id)
{
       if(
is_user_connected(id) && is_user_alive(id))
       {

       
zp_grenade_frost_set(idfalse)
       }

}
}

public 
zp_fw_core_spawn_post(id)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove survivor weapon model
        
new weapon_name[32]
        
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
        new 
weapon_id get_weaponid(weapon_name)
        
cs_reset_player_view_model(idweapon_id)
        
        
// Remove survivor flag
        
flag_unset(g_IsSurvivorid)
    }
}

public 
zp_fw_core_infect(idattacker)
{
    if (
flag_get(g_IsSurvivorid))
    {
        
// Remove survivor glow
        
if (get_pcvar_num(cvar_survivor_glow))
            
set_user_rendering(id)
        
        
// Remove survivor aura
        
if (get_pcvar_num(cvar_survivor_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove survivor weapon model
        
new weapon_name[32]
        
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
        new 
weapon_id get_weaponid(weapon_name)
        
cs_reset_player_view_model(idweapon_id)
        
        
// Remove survivor flag
        
flag_unset(g_IsSurvivorid)
    }
}
stock bool:is_valid_playerid )
{
    return ( 
pev_valid(id) && (id >= 1) && (id <= g_MaxPlayers) && is_user_connected(id) && !is_user_hltv(id) );
}
public 
zp_fw_core_cure_post(idattacker)
{
    
// Apply Survivor attributes?
    
if (!flag_get(g_IsSurvivorid))
        return;
    
    
// Health
    
if (get_pcvar_num(cvar_survivor_health) == 0)
        
set_user_health(idget_pcvar_num(cvar_survivor_base_health) * GetAliveCount())
    else
        
set_user_health(idget_pcvar_num(cvar_survivor_health))
    
    
// Gravity
    
set_user_gravity(idget_pcvar_float(cvar_survivor_gravity))
    
    
// Speed (if value between 0 and 10, consider it a multiplier)
    
cs_set_player_maxspeed_auto(idget_pcvar_float(cvar_survivor_speed))
    
    
// Apply survivor player model
    
new player_model[PLAYERMODEL_MAX_LENGTH]
    
ArrayGetString(g_models_survivor_playerrandom_num(0ArraySize(g_models_survivor_player) - 1), player_modelcharsmax(player_model))
    
cs_set_player_model(idplayer_model)
    
    
// Apply survivor weapon model
    
new weapon_name[32]
    
get_pcvar_string(cvar_survivor_weaponweapon_namecharsmax(weapon_name))
    new 
weapon_id get_weaponid(weapon_name)
    
cs_set_player_view_model(idweapon_idg_models_survivor_weapon)
    
    
// Survivor glow
    
if (get_pcvar_num(cvar_survivor_glow))
        
set_user_rendering(idkRenderFxGlowShell00255kRenderNormal25)
    
    
// Survivor aura task
    
if (get_pcvar_num(cvar_survivor_aura))
        
set_task(0.1"survivor_aura"id+TASK_AURA__"b")
    
    
// Strip current weapons and give survivor weapon
    
strip_weapons(idPRIMARY_ONLY)
    
strip_weapons(idSECONDARY_ONLY)
    
strip_weapons(idGRENADES_ONLY)
    
give_item(idweapon_name)
    
ExecuteHamB(Ham_GiveAmmoidMAXBPAMMO[weapon_id], AMMOTYPE[weapon_id], MAXBPAMMO[weapon_id])
}

public 
native_class_survivor_get(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_connected(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZoZ] Invalid Player (%d)"id)
        return -
1;
    }
    
    return 
flag_get_boolean(g_IsSurvivorid);
}

public 
native_class_survivor_set(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_alive(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZoZ] Invalid Player (%d)"id)
        return 
false;
    }
    
    if (
flag_get(g_IsSurvivorid))
    {
        
log_error(AMX_ERR_NATIVE"[ZoZ] Player already a survivor (%d)"id)
        return 
false;
    }
    
    
flag_set(g_IsSurvivorid)
    
zp_core_force_cure(id)
    return 
true;
}

public 
native_class_survivor_get_count(plugin_idnum_params)
{
    return 
GetSurvivorCount();
}

// Survivor aura task
public survivor_aura(taskid)
{
    
// Get player's origin
    
static origin[3]
    
get_user_origin(ID_AURAorigin)
    
    
// Colored Aura
    
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
    
write_byte(TE_DLIGHT// TE id
    
write_coord(origin[0]) // x
    
write_coord(origin[1]) // y
    
write_coord(origin[2]) // z
    
write_byte(50// radius
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_R)) // r
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_G)) // g
    
write_byte(get_pcvar_num(cvar_survivor_aura_color_B)) // b
    
write_byte(2// life
    
write_byte(0// decay rate
    
message_end()
}

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

// Get Survivor Count -returns alive survivors number-
GetSurvivorCount()
{
    new 
iSurvivorsid
    
    
for (id 1id <= g_MaxPlayersid++)
    {
        if (
is_user_alive(id) && flag_get(g_IsSurvivorid))
            
iSurvivors++
    }
    
    return 
iSurvivors;
}

// Strip primary/secondary/grenades
stock strip_weapons(idstripwhat)
{
    
// Get user weapons
    
new weapons[32], num_weaponsindexweaponid
    get_user_weapons
(idweaponsnum_weapons)
    
    
// Loop through them and drop primaries or secondaries
    
for (index 0index num_weaponsindex++)
    {
        
// Prevent re-indexing the array
        
weaponid weapons[index]
        
        if ((
stripwhat == PRIMARY_ONLY && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
        || (
stripwhat == SECONDARY_ONLY && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM))
        || (
stripwhat == GRENADES_ONLY && ((1<<weaponid) & GRENADES_WEAPONS_BIT_SUM)))
        {
            
// Get weapon name
            
new wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
            
// Strip weapon and remove bpammo
            
ham_strip_weapon(idwname)
            
cs_set_user_bpammo(idweaponid0)
        }
    }
}

stock ham_strip_weapon(index, const weapon[])
{
    
// Get weapon id
    
new weaponid get_weaponid(weapon)
    if (!
weaponid)
        return 
false;
    
    
// Get weapon entity
    
new weapon_ent fm_find_ent_by_owner(-1weaponindex)
    if (!
weapon_ent)
        return 
false;
    
    
// If it's the current weapon, retire first
    
new current_weapon_ent fm_cs_get_current_weapon_ent(index)
    new 
current_weapon pev_valid(current_weapon_ent) ? cs_get_weapon_id(current_weapon_ent) : -1
    
if (current_weapon == weaponid)
        
ExecuteHamB(Ham_Weapon_RetireWeaponweapon_ent)
    
    
// Remove weapon from player
    
if (!ExecuteHamB(Ham_RemovePlayerItemindexweapon_ent))
        return 
false;
    
    
// Kill weapon entity and fix pev_weapons bitsum
    
ExecuteHamB(Ham_Item_Killweapon_ent)
    
set_pev(indexpev_weaponspev(indexpev_weapons) & ~(1<<weaponid))
    return 
true;
}

// Find entity by its owner (from fakemeta_util)
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
    while ((
entity engfunc(EngFunc_FindEntityByStringentity"classname"classname)) && pev(entitypev_owner) != owner) { /* keep looping */ }
    return 
entity;
}

// Get User Current Weapon Entity
stock fm_cs_get_current_weapon_ent(id)
{
    
// Prevent server crash if entity's private data not initalized
    
if (pev_valid(id) != PDATA_SAFE)
        return -
1;
    
    return 
get_pdata_cbase(idOFFSET_ACTIVE_ITEM);

__________________
B7PK is offline
Black Rose
Veteran Member
Join Date: Feb 2011
Location: Stockholm, Sweden
Old 05-08-2016 , 15:00   Re: [HELP] Error Complete 3
Reply With Quote #9

I don't think it will work but now it compiles.
Did you try to merge 2 plugins? Don't do that. If they work, don't try fixing them.

Spoiler
__________________

Last edited by Black Rose; 05-08-2016 at 15:01.
Black Rose is offline
B7PK
Member
Join Date: Apr 2016
Location: palestine
Old 05-08-2016 , 16:12   Re: [HELP] Error Complete 3
Reply With Quote #10

i want only this :/
__________________
B7PK 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 00:27.


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