AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [HELP] Error Complete 3 (https://forums.alliedmods.net/showthread.php?t=282423)

B7PK 05-06-2016 17:31

[HELP] Error Complete 3
 
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).


siriusmd99 05-06-2016 17:42

Re: [HELP] Error Complete 3
 
add this at the top of your plugin (where you see defines):

PHP Code:

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


B7PK 05-06-2016 18:18

Re: [HELP] Error Complete 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).


SpannerSpammer 05-06-2016 18:54

Re: [HELP] Error Complete 3
 
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) )

B7PK 05-07-2016 12:13

Re: [HELP] Error Complete 3
 
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);



siriusmd99 05-07-2016 13:40

Re: [HELP] Error Complete 3
 
just add it at the end of your code and then compile.

B7PK 05-07-2016 14:46

Re: [HELP] Error Complete 3
 
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 05-07-2016 14:46

Re: [HELP] Error Complete 3
 
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);



Black Rose 05-08-2016 15:00

Re: [HELP] Error Complete 3
 
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

B7PK 05-08-2016 16:12

Re: [HELP] Error Complete 3
 
i want only this :/


All times are GMT -4. The time now is 18:41.

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