AlliedModders

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

B7PK 05-05-2016 13:07

[HELP] Error Complete
 
hello guys i have 1 Error in complete this plugin please help me i'm noob :)

PHP Code:

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

#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <cs_maxspeed_api>
#include <cs_player_models_api>
#include <cs_weap_models_api>
#include <cs_ham_bots_api>
#include <zp50_core>
#define LIBRARY_GRENADE_FROST "zp50_grenade_frost"
#include <zp50_grenade_frost>
#define LIBRARY_GRENADE_FIRE "zp50_grenade_fire"
#include <zp50_grenade_fire>

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

// Default models
new const models_nemesis_player[][] = { "zombie_source" }
new const 
models_nemesis_claw[][] = { "models/zombie_plague/v_knife_zombie.mdl" }

#define PLAYERMODEL_MAX_LENGTH 32
#define MODEL_MAX_LENGTH 64

// Custom models
new Array:g_models_nemesis_player
new Array:g_models_nemesis_claw

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

// Bool
new bool:g_bCannotBeFrozen[33]

new 
g_MaxPlayers
new g_IsNemesis

new cvar_nemesis_healthcvar_nemesis_base_healthcvar_nemesis_speedcvar_nemesis_gravity
new cvar_nemesis_glow
new cvar_nemesis_auracvar_nemesis_aura_color_Rcvar_nemesis_aura_color_Gcvar_nemesis_aura_color_B
new cvar_nemesis_damagecvar_nemesis_kill_explode
new cvar_nemesis_grenade_frostcvar_nemesis_grenade_fire

public plugin_init()
{
    
register_plugin("[ZP] Class: Nemesis"ZP_VERSION_STRING"ZP Dev Team")
    
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
RegisterHamBots(Ham_TakeDamage"fw_TakeDamage")
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHamBots(Ham_Killed"fw_PlayerKilled")
    
register_forward(FM_ClientDisconnect"fw_ClientDisconnect_Post"1)
    
    
g_MaxPlayers get_maxplayers()
    
    
cvar_nemesis_health register_cvar("zp_nemesis_health""0")
    
cvar_nemesis_base_health register_cvar("zp_nemesis_base_health""2000")
    
cvar_nemesis_speed register_cvar("zp_nemesis_speed""1.05")
    
cvar_nemesis_gravity register_cvar("zp_nemesis_gravity""0.5")
    
cvar_nemesis_glow register_cvar("zp_nemesis_glow""1")
    
cvar_nemesis_aura register_cvar("zp_nemesis_aura""1")
    
cvar_nemesis_aura_color_R register_cvar("zp_nemesis_aura_color_R""150")
    
cvar_nemesis_aura_color_G register_cvar("zp_nemesis_aura_color_G""0")
    
cvar_nemesis_aura_color_B register_cvar("zp_nemesis_aura_color_B""0")
    
cvar_nemesis_damage register_cvar("zp_nemesis_damage""2.0")
    
cvar_nemesis_kill_explode register_cvar("zp_nemesis_kill_explode""1")
    
cvar_nemesis_grenade_frost register_cvar("zp_nemesis_grenade_frost""0")
    
cvar_nemesis_grenade_fire register_cvar("zp_nemesis_grenade_fire""1")
}

public 
plugin_precache()
{
    
// Initialize arrays
    
g_models_nemesis_player ArrayCreate(PLAYERMODEL_MAX_LENGTH1)
    
g_models_nemesis_claw ArrayCreate(MODEL_MAX_LENGTH1)
    
    
// Load from external file
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Player Models""NEMESIS"g_models_nemesis_player)
    
amx_load_setting_string_arr(ZP_SETTINGS_FILE"Weapon Models""V_KNIFE NEMESIS"g_models_nemesis_claw)
    
    
// If we couldn't load from file, use and save default ones
    
new index
    
if (ArraySize(g_models_nemesis_player) == 0)
    {
        for (
index 0index sizeof models_nemesis_playerindex++)
            
ArrayPushString(g_models_nemesis_playermodels_nemesis_player[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Player Models""NEMESIS"g_models_nemesis_player)
    }
    if (
ArraySize(g_models_nemesis_claw) == 0)
    {
        for (
index 0index sizeof models_nemesis_clawindex++)
            
ArrayPushString(g_models_nemesis_clawmodels_nemesis_claw[index])
        
        
// Save to external file
        
amx_save_setting_string_arr(ZP_SETTINGS_FILE"Weapon Models""V_KNIFE NEMESIS"g_models_nemesis_claw)
    }
    
    
// Precache models
    
new player_model[PLAYERMODEL_MAX_LENGTH], model[MODEL_MAX_LENGTH], model_path[128]
    for (
index 0index ArraySize(g_models_nemesis_player); index++)
    {
        
ArrayGetString(g_models_nemesis_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)
    }
    for (
index 0index ArraySize(g_models_nemesis_claw); index++)
    {
        
ArrayGetString(g_models_nemesis_clawindexmodelcharsmax(model))
        
precache_model(model)
    }
}

public 
plugin_natives()
{
    
register_library("zp50_class_nemesis")
    
register_native("zp_class_nemesis_get""native_class_nemesis_get")
    
register_native("zp_class_nemesis_set""native_class_nemesis_set")
    
register_native("zp_class_nemesis_get_count""native_class_nemesis_get_count")
    
    
set_module_filter("module_filter")
    
set_native_filter("native_filter")
}
public 
module_filter(const module[])
{
    if (
equal(moduleLIBRARY_GRENADE_FROST) || equal(moduleLIBRARY_GRENADE_FIRE))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}
public 
native_filter(const name[], indextrap)
{
    if (!
trap)
        return 
PLUGIN_HANDLED;
        
    return 
PLUGIN_CONTINUE;
}

public 
client_disconnect(id)
{
    if (
flag_get(g_IsNemesisid))
    {
        
// Remove nemesis glow
        
if (get_pcvar_num(cvar_nemesis_glow))
            
set_user_rendering(id)
        
        
// Remove nemesis aura
        
if (get_pcvar_num(cvar_nemesis_aura))
            
remove_task(id+TASK_AURA)
    }
}

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

// Ham Take Damage Forward
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    
// Non-player damage or self damage
    
if (victim == attacker || !is_user_alive(attacker))
        return 
HAM_IGNORED;
    
    
// Nemesis attacking human
    
if (flag_get(g_IsNemesisattacker) && !zp_core_is_zombie(victim))
    {
        
// Ignore nemesis damage override if damage comes from a 3rd party entity
        // (to prevent this from affecting a sub-plugin's rockets e.g.)
        
if (inflictor == attacker)
        {
            
// Set nemesis damage
            
SetHamParamFloat(4damage get_pcvar_float(cvar_nemesis_damage))
            return 
HAM_HANDLED;
        }
    }
    
    return 
HAM_IGNORED;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victimattackershouldgib)
{
    if (
flag_get(g_IsNemesisvictim))
    {
        
// Nemesis explodes!
        
if (get_pcvar_num(cvar_nemesis_kill_explode))
            
SetHamParamInteger(32)
        
        
// Remove nemesis aura
        
if (get_pcvar_num(cvar_nemesis_aura))
            
remove_task(victim+TASK_AURA)
    }
}

public 
zp_fw_grenade_frost_pre(id)
{
    
// Prevent frost for Nemesis
    
if (g_bCannotBeFrozen[id] && flag_get(g_IsNemesisid) && !get_pcvar_num(cvar_nemesis_grenade_frost))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}
public 
zp_fw_grenade_frost_pre(id)
{
    
// Prevent frost for Nemesis
    
if (flag_get(g_IsNemesisid) && !get_pcvar_num(cvar_nemesis_grenade_frost))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

public 
zp_fw_grenade_fire_pre(id)
{
    
// Prevent burning for Nemesis
    
if (flag_get(g_IsNemesisid) && !get_pcvar_num(cvar_nemesis_grenade_fire))
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_CONTINUE;
}

public 
zp_fw_core_spawn_post(id)
{
    if (
flag_get(g_IsNemesisid))
    {
        
// Remove nemesis glow
        
if (get_pcvar_num(cvar_nemesis_glow))
            
set_user_rendering(id)
        
        
// Remove nemesis aura
        
if (get_pcvar_num(cvar_nemesis_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove nemesis flag
        
flag_unset(g_IsNemesisid)
    }
}

public 
zp_fw_core_cure(idattacker)
{
    if (
flag_get(g_IsNemesisid))
    {
        
// Remove nemesis glow
        
if (get_pcvar_num(cvar_nemesis_glow))
            
set_user_rendering(id)
        
        
// Remove nemesis aura
        
if (get_pcvar_num(cvar_nemesis_aura))
            
remove_task(id+TASK_AURA)
        
        
// Remove nemesis flag
        
flag_unset(g_IsNemesisid)
    }
}

public 
zp_fw_core_infect_post(idattacker)
{
    
// Apply Nemesis attributes?
    
if (!flag_get(g_IsNemesisid))
        return;
    
    
// Health
    
if (get_pcvar_num(cvar_nemesis_health) == 0)
        
set_user_health(idget_pcvar_num(cvar_nemesis_base_health) * GetAliveCount())
    else
        
set_user_health(idget_pcvar_num(cvar_nemesis_health))
    
    
// Gravity
    
set_user_gravity(idget_pcvar_float(cvar_nemesis_gravity))
    
    
// Speed
    
cs_set_player_maxspeed_auto(idget_pcvar_float(cvar_nemesis_speed))
    
    
// Apply nemesis player model
    
new player_model[PLAYERMODEL_MAX_LENGTH]
    
ArrayGetString(g_models_nemesis_playerrandom_num(0ArraySize(g_models_nemesis_player) - 1), player_modelcharsmax(player_model))
    
cs_set_player_model(idplayer_model)
    
    
// Apply nemesis claw model
    
new model[MODEL_MAX_LENGTH]
    
ArrayGetString(g_models_nemesis_clawrandom_num(0ArraySize(g_models_nemesis_claw) - 1), modelcharsmax(model))
    
cs_set_player_view_model(idCSW_KNIFEmodel)    
    
    
// Nemesis glow
    
if (get_pcvar_num(cvar_nemesis_glow))
        
set_user_rendering(idkRenderFxGlowShell00200kRenderNormal25)
    
    
// Nemesis aura task
    
if (get_pcvar_num(cvar_nemesis_aura))
        
set_task(0.1"nemesis_aura"id+TASK_AURA__"b")
    
// Freeze the nemesis. ;)
    // So, all humans can run away!
    
zp_grenade_frost_set(id)
        
    
// Set task to enable nemesis for not being frozen after X seconds
    
set_task(6.0"DisableFrozenForNemesis"id)
}

public 
DisableFrozenForNemesis(id)
{
    if (
is_user_alive(id) && flag_get(g_IsNemesisid))
    {
        
// Now nemesis cannot be frozen
        
g_bCannotBeFrozen[id] = true
    
}
}

public 
native_class_nemesis_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_IsNemesisid);
}

public 
native_class_nemesis_set(plugin_idnum_params)
{
    new 
id get_param(1)
    
    if (!
is_user_alive(id))
    {
        
log_error(AMX_ERR_NATIVE"[ZP] Invalid Player (%d)"id)
        return 
false;
    }
    
    if (
flag_get(g_IsNemesisid))
    {
        
log_error(AMX_ERR_NATIVE"[ZP] Player already a nemesis (%d)"id)
        return 
false;
    }
    
    
flag_set(g_IsNemesisid)
    
zp_core_force_infect(id)
    return 
true;
}

public 
native_class_nemesis_get_count(plugin_idnum_params)
{
    return 
GetNemesisCount();
}

// Nemesis aura task
public nemesis_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(20// radius
    
write_byte(get_pcvar_num(cvar_nemesis_aura_color_R)) // r
    
write_byte(get_pcvar_num(cvar_nemesis_aura_color_G)) // g
    
write_byte(get_pcvar_num(cvar_nemesis_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 Nemesis Count -returns alive nemesis number-
GetNemesisCount()
{
    new 
iNemesisid
    
    
for (id 1id <= g_MaxPlayersid++)
    {
        if (
is_user_alive(id) && flag_get(g_IsNemesisid))
            
iNemesis++
    }
    
    return 
iNemesis;


massage Error:-

Code:

Error: Symbol already defined: "zp_fw_grenade_frost_pre" on line 227
Warning: Loose indentation on line 315

1 Error.
Could not locate output file C:\Users\abod\Desktop\Untitled.amx (compile failed).


siriusmd99 05-05-2016 13:56

Re: [HELP] Error Complete
 
Because you have double function in your code:

PHP Code:


public zp_fw_grenade_frost_pre(id

    
// Prevent frost for Nemesis 
    
if (g_bCannotBeFrozen[id] && flag_get(g_IsNemesisid) && !get_pcvar_num(cvar_nemesis_grenade_frost)) 
        return 
PLUGIN_HANDLED
     
    return 
PLUGIN_CONTINUE

public 
zp_fw_grenade_frost_pre(id

    
// Prevent frost for Nemesis 
    
if (flag_get(g_IsNemesisid) && !get_pcvar_num(cvar_nemesis_grenade_frost)) 
        return 
PLUGIN_HANDLED
     
    return 
PLUGIN_CONTINUE


Remove one of them and compile plugin, i don't know, so you decide.

B7PK 05-05-2016 15:03

Re: [HELP] Error Complete
 
Thx :)


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

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