Error 020 invalid symbol name

error 020: invalid symbol name "" Suggestions / Requests

PHP Code:



   /* - - - - - - - - - - -

        AMX Mod X script.

          | Author  : Arkshine

          | Plugin  : WPN Squeak Grenade

          | Version : v1.0.6 - without WM.

        (!) Support : http://forums.alliedmods.net/showthread.php?t=93659

        (!) Version without WeaponMod required and for Zombie Plague.

        
        This program is free software; you can redistribute it and/or modify it

        under the terms of the GNU General Public License as published by the

        Free Software Foundation; either version 2 of the License, or (at

        your option) any later version.

        This program is distributed in the hope that it will be useful, but

        WITHOUT ANY WARRANTY; without even the implied warranty of

        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

        General Public License for more details.

        You should have received a copy of the GNU General Public License

        along with this program; if not, write to the Free Software Foundation,

        Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

        ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

        Description :

        - - - - - - -

            Basically, it's almost the same weapon that you can see in Half-life 1.

            Snarks are small, red, and bulbous, with a large (in relation to body porportion) 

            single green eye and a large pincer-like mandible. Snarks are normally calm creatures 

            that show little signs of intelligence, but if they see any living creature other

            than another Snark, they immediately begin to attack it. They attack aggressively, 

            persistently, and erratically, leaping and biting at their target.

            A full description can be found here : http://half-life.wikia.com/wiki/Snark .

        Requirement :

        - - - - - - -

            * CS 1.6 / CZ.

            * AMX Mod X 1.8.x or higher.

        Changelog :

        - - - - - -

            v1.0.6 : [ 11 jul 2009 ]

                (+) Initial release.

                
        Credits :

        - - - - -

            * HLSDK

            * DevconeS

            * VEN

            * Sproily ( Alternative models )

    - - - - - - - - - - - */

    
    #include <amxmodx>

    #include <fakemeta>

    #include <cstrike>

    #include <hamsandwich>

    #include <engine>

    #include <fun>

    #include <zombieplague>

    
    #define Plugin   "[ZP] Extra: Squeak Grenade"

    #define Version  "1.0.6-wwm"

    #define Author   "Arkshine"

    
    
    // --| Zombie Plaque: Extra item configuration.

    #define ZP_EXTRA_ITEM_NAME  "Snark INFECTOR"

    #define ZP_EXTRA_ITEM_COST  14

    // --| Comment if you want to use the default model from valve.

    #define ALTERNATIVE_MODEL

    // --| Snark trail.

    #define TRAIL_LIFE        40    // Life

    #define TRAIL_WIDTH       4     // Width

    #define TRAIL_RED         10    // Red

    #define TRAIL_GREEN       224   // Red

    #define TRAIL_BLUE        10    // Green

    #define TRAIL_BRIGTHNESS  200   // Blue

    
     /* - - -

     |  WEAPON MODELS  |

                 - - - */

        #if !defined ALTERNATIVE_MODEL

new const gModel_P[] = "models/p_squeak.mdl";

            new const 
gModel_V[] = "models/v_squeak.mdl";

        
#else

            
new const gModel_P[] = "models/p_alt_squeak.mdl";

            new const 
gModel_V[] = "models/v_alt_squeak_gflip.mdl";

        
#endif

    /* - - -

     |  SNARK SOUNDS  |

                - - - */

new const gSnarkHunt1Sound    [] = "squeek/sqk_hunt1.wav";

            new const 
gSnarkHunt2Sound    [] = "squeek/sqk_hunt2.wav";

            new const 
gSnarkHunt3Sound    [] = "squeek/sqk_hunt3.wav";

            new const 
gSnarkDieSound      [] = "squeek/sqk_die1.wav";

            new const 
gSnarkAttackSound   [] = "squeek/sqk_deploy1.wav";

            new const 
gSnarkBlastSound    [] = "weapons/sqk_blast2.wav";

            new const 
gSnarkBodySplatSound[] = "common/bodysplat.wav";
/* - - -

     |  SNARK MODEL  |

               - - - */

        
new

        
#if !defined ALTERNATIVE_MODEL

            
gSnarkModel[] = "models/w_squeak.mdl";

        
#else

            
gSnarkModel[] = "models/w_alt_squeak.mdl";

        
#endif

    /* - - -

     |    SEQUENCE   |

               - - - */

enum

        
{

            
wsqueak_idle1,

            
wsqueak_fidget,

            
wsqueak_jump,

            
wsqueak_run

        
};
enum

        
{

            
squeak_idle1,

            
squeak_fidgetfit,

            
squeak_fidgetnip,

            
squeak_down,

            
squeak_up,

            
squeak_throw

        
};
/* - -

     |  CONSTANTS  |

               - - */

        
const BLOOD_COLOR_RED        247;

        const 
BLOOD_COLOR_YELLOW     195;

               
        const 

MAX_CLIENTS            32;

        const 
MAX_KNIFE_MODEL_LENGTH 128;

        const 
NONE                   = -1;

        const 
NULL_ENT               0;
enum _:Coord_e

        
{

            
Float:x,

            
Float:y,

            
Float:z

        
};
enum _:Angle_e

        
{

            
Float:Pitch,

            
Float:Yaw,

            
Float:Roll

        
};
enum

        
{

            
HuntThink 1,

            
SuperBounceTouch,

            
RemoveSnark

        
};

        new const 

Float:gHullMin    Coord_e ] = { -16.0, -16.0, -36.0 };

        new const 
Float:gDuckHullMinCoord_e ] = { -16.0, -16.0, -18.0 };

        new const 

gWeaponCommand [] = "weapon_hegrenade";

        new const 
gWeaponIndex      CSW_HEGRENADE;

        new const 

gGenericEntity [] = "info_target";

        new const 
gSnarkClassName[] = "wpn_snark";
/* - - - -

     |  PLAYER/WEAPON OFFSETS  |

                       - - - - */

        
const m_flNextAttack        83    // Player.

        
const m_pActiveWeapon       373;  // Player.

        
const m_pPlayer             41;   // Weapon.

        
const m_flNextPrimaryAttack 46;   // Weapon.

    /* - - -

     |  CUSTOM FIELD  |

                - - - */

        #define pev_NextHunt            pev_fuser1

        #define pev_NextBounceSoundTime pev_fuser2

        #define pev_NextHit             pev_fuser3

        #define pev_NextAttack          pev_fuser4

        #define pev_DetonateDelay       pev_ltime

        #define pev_RealOwner           pev_iuser1

        #define pev_Remove              pev_iuser2

        #define pev_EnemyTarget         pev_vuser1

        #define pev_PosPrev             pev_vuser2

    /* - - -

     |  CVAR POINTER  |

                - - - */

new pCvarAmmo;

        new 
pCvarRefireRate;

        new 
pCvarHealth;

        new 
pCvarVelocity;

        new 
pCvarDamagePop;

        new 
pCvarDamageRadius;

        new 
pCvarGravity;

        new 
pCvarFriction;

        new 
pCvarDetonateDelay;

        new 
pCvarFieldOfView;

        new 
pCvarShowTrail;
/* - - - -

     |  SPRITES/MODELS INDEX  |

                      - - - - */

        
new gBloodSpray;

        new 
gBloodDrop;

        new 
gSmokeTrail;
/* - - - -

     |  OTHERS STUFFS  |

                 - - - */

        
new bool:gHasSnark    MAX_CLIENTS 1 char ];

        new 
bool:gWeaponActiveMAX_CLIENTS 1 char ];

        new 
bool:gJustThrown  MAX_CLIENTS 1 char ];

        new 

Float:gNextShot      MAX_CLIENTS ];

        new 
Float:gTimeWeaponIdleMAX_CLIENTS ];

        new 

gPlayerAmmoMAX_CLIENTS 1 char ];

        new const 

gSnarkHealthReference 10000;

        new 
gSnarkClassNameReference;

        new 
gMaxEntities;

        new 
gMaxClients;

        new 
gMsgidAmmoX;

        new 
gSnarInfector;

        new 
bool:armor[33],bool:is_alive[33],bool:is_connected[33],bool:is_bot[33],g_MaxPlayers;

    
/* - -

     |  MACROS  |

            - - */

        #define VectorSubtract(%1,%2,%3)  ( %3[ x ] = %1[ x ] - %2[ x ], %3[ y ] = %1[ y ] - %2[ y ], %3[ z ] = %1[ z ] - %2[ z ] )

        #define VectorAdd(%1,%2,%3)       ( %3[ x ] = %1[ x ] + %2[ x ], %3[ y ] = %1[ y ] + %2[ y ], %3[ z ] = %1[ z ] + %2[ z ] )

        #define VectorCopy(%1,%2)         ( %2[ x ] = %1[ x ],  %2[ y ] = %1[ y ], %2[ z ] = %1[ z ] )

        #define VectorScale(%1,%2,%3)     ( %3[ x ] = %2 * %1[ x ], %3[ y ] = %2 * %1[ y ], %3[ z ] = %2 * %1[ z ] )

        #define VectorMA(%1,%2,%3,%4)     ( %4[ x ] = %1[ x ] + %2 * %3[ x ], %4[ y ] = %1[ y ] + %2 * %3[ y ], %4[ z ] = %1[ z ] + %2 * %3[ z ] )

        #define VectorMS(%1,%2,%3,%4)     ( %4[ x ] = %1[ x ] - %2 * %3[ x ], %4[ y ] = %1[ y ] - %2 * %3[ y ], %4[ z ] = %1[ z ] - %2 * %3[ z ] )

        #define VectorLength(%1)          ( floatsqroot ( %1[ x ] * %1[ x ] + %1[ y ] * %1[ y ] + %1[ z ] * %1[ z ] ) )

        #define VectorEqual(%1,%2)        ( %1[ x ] == %2[ x ] && %1[ y ] == %2[ y ] && %1[ z ] == %2[ z ] )

        #define DotProduct(%1,%2)         ( %1[ x ] * %2[ x ]+ %1[ y ] * %2[ y ] + %1[ z ] * %2[ z ] )

        #define message_begin_f(%1,%2,%3) ( engfunc ( EngFunc_MessageBegin, %1, %2, %3 ) )

        #define write_coord_f(%1)         ( engfunc ( EngFunc_WriteCoord, %1 ) )

        //connect valid?

        #define is_user_valid_connected(%1) (1 <= %1 <= g_MaxPlayers && is_connected[%1])

public plugin_precache ()

    {

        
// --| Weapon models.

        
precache_modelgModel_P );

        
precache_modelgModel_V );
// --| Snark model.

        
precache_modelgSnarkModel );
// --| Snark sounds.

        
precache_soundgSnarkBlastSound );

        
precache_soundgSnarkBodySplatSound );

        
precache_soundgSnarkDieSound );

        
precache_soundgSnarkHunt1Sound );

        
precache_soundgSnarkHunt2Sound );

        
precache_soundgSnarkHunt3Sound );

        
precache_soundgSnarkAttackSound );
gBloodSpray precache_model"sprites/bloodspray.spr" );   // initial blood

        
gBloodDrop  precache_model"sprites/blood.spr" );        // splattered blood

    
}

    
    public 

plugin_init ()

    {

        
register_pluginPluginVersionAuthor );

        
register_cvar"zp_snark_version"VersionFCVAR_SERVER FCVAR_SPONLY );
gSnarInfector zp_register_extra_itemZP_EXTRA_ITEM_NAMEZP_EXTRA_ITEM_COSTZP_TEAM_ZOMBIE );

        
g_MaxPlayers get_maxplayers()
pCvarAmmo          register_cvar"wpn_sg_ammo"           "5"   );

        
pCvarRefireRate    register_cvar"wpn_sg_refire_rate"    "0.3" );

        
pCvarHealth        register_cvar"wpn_sg_health"         "10"  );

        
pCvarVelocity      register_cvar"wpn_sg_velocity"       "5" );

        
pCvarDamagePop     register_cvar"wpn_sg_damage_pop"     "10"   );

        
pCvarDamageRadius  register_cvar"wpn_sg_damage_radius"  "15"  );

        
pCvarGravity       register_cvar"wpn_sg_gravity"        "0.5" );

        
pCvarFriction      register_cvar"wpn_sg_friction"       "0.5" );

        
pCvarDetonateDelay register_cvar"wpn_sg_detonate_delay" "15"  );

        
pCvarFieldOfView   register_cvar"wpn_sg_fov"            "0"   );

        
pCvarShowTrail     register_cvar"wpn_sg_show_trail"     "1"   );
RegisterHamHam_Item_Deploy gWeaponCommand"CSqueak_Deploy");

        
RegisterHamHam_Item_HolstergWeaponCommand"CSqueak_Holster");

        
RegisterHamHam_TakeDamagegGenericEntity"CSqueak_TakeDamage");

        
RegisterHam(Ham_Killed"player""fw_PlayerKilled")

        
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1)

        
register_forward(FM_ClientDisconnect"fw_ClientDisconnect")

        
register_forwardFM_CmdStart"CSqueak_HookButtons" );

        
register_forwardFM_PlayerPreThink"CSqueak_WeaponIdle" );
register_thinkgSnarkClassName"CSqueak_HuntThink" );

        
register_touchgSnarkClassName"*""CSqueak_SuperBounceTouch" );
// register_clcmd( "say test", "CSqueak_GiveWeapon" );
gMaxEntities global_getglb_maxEntities );

        
gMaxClients  global_getglb_maxClients );
gSnarkClassNameReference engfuncEngFunc_AllocStringgSnarkClassName );

        
gMsgidAmmoX get_user_msgid"AmmoX" );

        if ( 

get_pcvar_numpCvarShowTrail ) )

        {

            
gSmokeTrail engfuncEngFunc_PrecacheModel"sprites/smoke.spr" );

        }

    }
// Client joins the game

    
public client_putinserver(id)

    {

        
// Player joined

        
is_connected[id] = true

        
if (!is_user_bot(id)){

            
is_bot[id] = false

        
}else{

            
is_bot[id] = true

    
}

    }
// Client leaving

    
public fw_ClientDisconnect(id)

    {

        
is_connected[id] = false

        is_alive
[id] = false

    
}

    public 
fw_PlayerSpawn_Post(id)

    {

        
// Not alive or didn't join a team yet

        
if (!is_user_alive(id) || !cs_get_user_team(id))

            return;

        
// Player spawned

        
is_alive[id] = true

    
}

    public 
fw_PlayerKilled(victimattackershouldgib)

    {

        
//player die

        
is_alive[victim] = false

    
}

    public 

zp_extra_item_selected PlayerItemId )

    {

        if ( 
ItemId == gSnarInfector )

        {

            
CSqueak_GiveWeapon Player );

        }

    }

    
    
    public 

zp_round_ended WinTeam )

    {

        new 
Snark = -1;

        
        while ( ( 

Snark find_ent_by_classSnarkgSnarkClassName ) ) != NULL_ENT )

        {

            
CSqueak_Killed Snark0true );

        }

        
        for ( new 

Player 1Player <= gMaxClientsPlayer++ )

        {

            
CheckAndRemoveWeapon Player );

        }

    }

    
    
    public 

zp_round_started GameModPlayer )

    {

        if(
is_bot[Player] || !is_alive[Player] || !cs_get_user_team(Player) ) return PLUGIN_CONTINUE

        
if ( !zp_get_user_zombiePlayer ) )

        {

            
CheckAndRemoveWeapon Player );

        }

        return 
PLUGIN_CONTINUE

    
}

    
    
    
    public 

zp_user_humanized_prePlayerSurvivor )

    {

        
CheckAndRemoveWeapon Player );

    }
stock CheckAndRemoveWeapon ( const Player )

    {

        if ( 
user_has_weaponPlayergWeaponIndex ) )

        {

            
RemoveWeapon Playerget_user_weaponPlayer ) == gWeaponIndex 
get_pdata_cbasePlayerm_pActiveWeapon ) : 

                
find_ent_by_owner ( -1gWeaponCommandPlayer ) );

        }

        return 
PLUGIN_CONTINUE

    
}

    
    public 

client_connect Player )

    {

        
gHasSnark    Player } = false;

        
gWeaponActivePlayer } = false;

        
gJustThrown  Player } = false;

        
gPlayerAmmo  Player } = get_pcvar_numpCvarAmmo );

    }

    public 

CSqueak_GiveWeapon( const Player )

    {

        
gHasSnarkPlayer } = true;

        
gPlayerAmmoPlayer } = get_pcvar_numpCvarAmmo );
give_itemPlayergWeaponCommand );

        
engclient_cmdPlayergWeaponCommand );

    }

    public 

CSqueak_PrimaryAttack ( const Player )

    {

        static 
Float:VAngle     Angle_e ];

        static 
Float:Origin     Coord_e ];

        static 
Float:TraceOriginCoord_e ];

        static 
Float:Forward    Coord_e ];

        static 
Float:Start      Coord_e ];

        static 
Float:End        Coord_e ];

        static 
Float:EndPos     Coord_e ];

        static 
Float:Velocity   Coord_e ];

        static 
Float:Fraction;

        if ( 

gPlayerAmmoPlayer } )

        {

            if ( 
pevPlayerpev_waterlevel ) >= )

            {

                
emit_soundPlayerCHAN_WEAPONgSnarkDieSoundVOL_NORMATTN_NORM0PITCH_NORM );

                
gNextShotPlayer ] = get_gametime() + get_pcvar_floatpCvarRefireRate );

                return 
PLUGIN_HANDLED;

            }
pevPlayerpev_originOrigin );

            
pevPlayerpev_v_angleVAngle );

            
pevPlayerpev_velocityVelocity );
engfuncEngFunc_MakeVectorsVAngle );
VectorCopyOriginTraceOrigin );

            if ( 

pevPlayerpev_flags ) & FL_DUCKING )

            {

                
TraceOrigin] = TraceOrigin] - ( gHullMin] - gDuckHullMin] );

                
TraceOrigin] = TraceOrigin] - ( gHullMin] - gDuckHullMin] );

                
TraceOrigin] = TraceOrigin] - ( gHullMin] - gDuckHullMin] );

            }
global_getglb_v_forwardForward );
VectorMA TraceOrigin20.0ForwardStart );

            
VectorMA TraceOrigin64.0ForwardEnd );
engfuncEngFunc_TraceLineStartEndDONT_IGNORE_MONSTERSNULL_ENT);
get_tr20TR_FractionFraction );

            
get_tr20TR_vecEndPosEndPos );

            if ( !

get_tr20TR_AllSolid ) && !get_tr20TR_StartSolid ) && Fraction 0.25 )

            {

                
// --| Play the throw animation.

                
UTIL_PlayWeaponAnimation Playersqueak_throw );
// --| player "shoot" animation

                //
VectorMA Velocityget_pcvar_floatpCvarVelocity ), ForwardVelocity );

                if ( 

CSqueak_Create PlayerEndPosVAngleVelocity ) )

                {

                    new 
Float:CurrentTime get_gametime();

                    switch ( 

random_num0) )

                    {

                        case 
0emit_soundPlayerCHAN_WEAPONgSnarkHunt1SoundVOL_NORMATTN_NORM0PITCH_NORM );

                        case 
1emit_soundPlayerCHAN_WEAPONgSnarkHunt2SoundVOL_NORMATTN_NORM0PITCH_NORM );

                        case 
2emit_soundPlayerCHAN_WEAPONgSnarkHunt3SoundVOL_NORMATTN_NORM0PITCH_NORM );

                    }
gPlayerAmmoPlayer }--;

                    
gJustThrownPlayer } = true;
UpdateHud Player );
gNextShotPlayer ] = CurrentTime get_pcvar_floatpCvarRefireRate );

                    
gTimeWeaponIdlePlayer ] = CurrentTime 1.0;

                    return 

PLUGIN_CONTINUE;

                }

            }

        }

        return 

PLUGIN_HANDLED;

    }

    public 

CSqueak_Deploy ( const Weapon )

    {

        
// --| Get the knife's owner index.

        
new Player get_pdata_cbaseWeaponm_pPlayer);

        if ( 

Player && gHasSnarkPlayer } )

        {

            
// --| Change knife to snark weapon.

            
ChangeWeaponToSnark Player );
// --| Play the deploy animation.

            
UTIL_PlayWeaponAnimation Playersqueak_up );

            
emit_sound WeaponCHAN_VOICE random_float 0.01.0 ) <= 0.5 gSnarkHunt2Sound gSnarkHunt3SoundVOL_NORMATTN_NORM0PITCH_NORM );
// --| Block the primary attack.

            
set_pdata_floatWeaponm_flNextPrimaryAttack9999.0);

            
set_pdata_floatPlayerm_flNextAttack9999.0 );
// --| Update Ammo on HUD.

            
UpdateHud Player );
// --| We are holding the weapon.

            
gWeaponActivePlayer } = true;

        }

    }

    public 

CSqueak_Holster ( const Weapon )

    {

        
// --| Get the knife's owner index.

        
new Player get_pdata_cbaseWeaponm_pPlayer);

        if ( 

Player && gHasSnarkPlayer } && gWeaponActivePlayer } )

        {

            
// --| We are not holding the weapon anymore.

            
gWeaponActivePlayer } = false;

            
set_pdata_floatPlayerm_flNextAttackget_gametime() + 0.5 );

            if ( !

gPlayerAmmoPlayer } && user_has_weaponPlayergWeaponIndex ) )

            {

                
RemoveWeapon Playerget_pdata_cbasePlayerm_pActiveWeapon ) );

            }

            else

            {

                
// --| Play the holster animation.

                
UTIL_PlayWeaponAnimation Playersqueak_down );

                
emit_soundPlayerCHAN_WEAPON"common/null.wav"VOL_NORMATTN_NORM0PITCH_NORM );

            }

        }

    }

    public 

CSqueak_Killed ( const Snark, const Killer, const bool:ShouldGib )

    {

        new 
Float:DirectionCoord_e ];

        new 
Float:Origin   Coord_e ];
pevSnarkpev_originOrigin );
set_pevSnarkpev_model);

        
set_pevSnarkpev_RemoveRemoveSnark );

        
set_pevSnarkpev_DetonateDelayget_gametime() + 0.1 );
set_pevSnarkpev_takedamageDAMAGE_NO );
emit_soundSnarkCHAN_ITEMgSnarkBlastSoundVOL_NORMATTN_NORM 20PITCH_NORM );

        
emit_soundSnarkCHAN_VOICEgSnarkBodySplatSound0.75ATTN_NORM0PITCH_NORM );
UTIL_RandomBloodVectorDirection );
FX_BloodDrips OriginBLOOD_COLOR_YELLOW, .Amount 60 );

        
FX_StreakSplash OriginDirection, .Color 5, .Count 16, .Speed 50, .VelocityRange 200 );
UTIL_RadiusDamage OriginSnarkpevSnarkpev_RealOwner ), get_pcvar_floatpCvarDamagePop ), get_pcvar_floatpCvarDamageRadius ), DMG_BLAST );

    }
/* public CZombie_Killed ( const Zombie, const Human, const bool:ShouldGid )

    {

        if ( zp_get_user_zombie( Zombie ) && gHasSnark{ Zombie } )

        {

            
        }

    } */

public CSqueak_TakeDamage ( const Snark, const Inflictor, const Attacker, const Float:Damage, const DamageBits )

    {

        if ( 
is_valid_entSnark ) && pevSnarkpev_groupinfo ) == gSnarkClassNameReference )

        {

            if ( 
pevSnarkpev_health ) - gSnarkHealthReference <= )

            {

                
CSqueak_Killed SnarkAttacker, .ShouldGib true );

            }

        }

    }

    
    public 

CSqueak_HookButtons ( const Player, const UC_Handle, const Seed )

    {

        static 
Float:CurrentTime;

        static 
Buttons;

        if ( 

gHasSnarkPlayer } && gWeaponActivePlayer } && ( Buttons get_ucUC_HandleUC_Buttons ) ) & IN_ATTACK )

        {

            
CurrentTime get_gametime();

            if ( 

gNextShotPlayer ] > CurrentTime )

            {

                return 
FMRES_HANDLED;

            }

            
            if ( 

CSqueak_PrimaryAttack Player ) == PLUGIN_HANDLED )

            {

                return 
FMRES_HANDLED;

            }
set_ucUC_HandleUC_ButtonsButtons & ~IN_ATTACK );

            return 
FMRES_HANDLED;

        }

        return 

FMRES_IGNORED;

    }

const 

g_armor_amount 50

const g_armor_limit 999
public CSqueak_HuntThink ( const Snark )

    {

        if ( !
is_valid_entSnark ) )

        {

            return 
HAM_IGNORED;

        }

        static 
Float:Origin  Coord_e ];

        static 
Float:VelocityCoord_e ];

        static 
Float:Angles  Coord_e ];

        static 
Float:Flat    Coord_e ];

        static 
Float:CurrentTime;

        static 
Float:DieDelay;

        static 
Float:NextHunt;

        static 
Float:SPitch;

        static 
Enemy;
pevSnarkpev_velocityVelocity );

        
pevSnarkpev_originOrigin );

        
        if ( !

UTIL_IsInWorld OriginVelocity ) )

        {

            
set_pevSnarkpev_flagspevSnarkpev_flags ) | FL_KILLME );

            return 
HAM_IGNORED;

        }
CurrentTime get_gametime();

        
set_pevSnarkpev_nextthinkCurrentTime 0.1 );
pevSnarkpev_NextHuntNextHunt );

        
pevSnarkpev_DetonateDelayDieDelay );

        
pevSnarkpev_anglesAngles );

        if ( 

CurrentTime >= DieDelay )

        {

            if ( 
pevSnarkpev_Remove ) )

            {

                
set_pevSnarkpev_flagspevSnarkpev_flags ) | FL_KILLME );

                return 
HAM_IGNORED;

            }
set_pevSnarkpev_health, -1.0 );

            
CSqueak_Killed Snark0true );

            return 
HAM_IGNORED;

        }

        if ( 

pevSnarkpev_waterlevel ) != )

        {

            if ( 
pevSnarkpev_movetype ) == MOVETYPE_BOUNCE )

            {

                
set_pevSnarkpev_movetypeMOVETYPE_FLY );

            }
VectorScale Velocity0.9Velocity );

            
Velocity] += 8.0;
set_pevSnarkpev_velocityVelocity );

        }

        else if ( 
pevSnarkpev_movetype ) == MOVETYPE_FLY )

        {

            
set_pevSnarkpev_movetypeMOVETYPE_BOUNCE );

        }

        if ( 

NextHunt CurrentTime )

        {

            return 
HAM_IGNORED;

        }
set_pevSnarkpev_NextHuntCurrentTime 2.0 );
VectorCopy VelocityFlat );

        
Flat] = 0.0;

        
VectorNormalize FlatFlat );
engfuncEngFunc_MakeVectorsAngles );

        if ( ( 

Enemy pevSnarkpev_enemy ) ) == NULL_ENT || !is_aliveEnemy ] || zp_get_user_zombieEnemy ) )

        {

            
Enemy UTIL_BestVisibleEnemy Snark512.0 );

        }

        if ( 

0.3 <= DieDelay CurrentTime <= 0.5 )

        {

            
set_pevSnarkpev_scale2.0 );

            
emit_soundSnarkCHAN_VOICEgSnarkDieSoundVOL_NORMATTN_NORM0PITCH_NORM random_num00x3F ) );

        }
SPitch 155.0 60.0 * ( ( DieDelay CurrentTime ) / get_pcvar_floatpCvarDetonateDelay ) );

        if ( 

SPitch 80.0 )  { SPitch 80.0; }

        if ( 

Enemy != NULL_ENT && !zp_get_user_zombieEnemy ) )

        {

            static 
Float:TargetCoord_e ];

            static 
Float:Vel;

            static 
Float:Adj;
pevSnarkpev_EnemyTargetTarget );

            if ( 

UTIL_FVisibleSnarkEnemy ) )

            {

                static 
Float:EyePositionCoord_e ];

                
UTIL_EyePosition EnemyEyePosition );
VectorSubtract EyePositionOriginTarget );

                
VectorNormalize TargetTarget );
set_pevSnarkpev_EnemyTargetTarget );

            }
Vel VectorLength Velocity );

            
Adj 50.0 / ( Vel 10.0 );

            if ( 

Adj 1.2 )  { Adj 1.2; }
Velocity] = Velocity] * Adj Target] * 300.0;

            
Velocity] = Velocity] * Adj Target] * 300.0;

            
Velocity] = Velocity] * Adj Target] * 300.0;
set_pevSnarkpev_velocityVelocity );

        }

        if ( 

pevSnarkpev_flags ) & FL_ONGROUND )

        {

            
set_pevSnarkpev_avelocityFloat:{ 0.00.00.0 } );

        }

        else

        {

            static 
Float:AVelocityCoord_e ];

            
pevSnarkpev_avelocityAVelocity );

            if ( 

AVelocity] == 0.0 && AVelocity] == 0.0 && AVelocity] == 0.0 )

            {

                
AVelocity] = random_float( -100.0100.0 );

                
AVelocity] = random_float( -100.0100.0 );
set_pevSnarkpev_avelocityAVelocity );

            }

        }

        static 

Float:PosPrevCoord_e ];

        
pevSnarkpev_PosPrevPosPrev );
VectorSubtract OriginPosPrevPosPrev );

        if ( 

VectorLength PosPrev ) < 1.0 )

        {

            
Velocity] = random_float( -100.0100.0 );

            
Velocity] = random_float( -100.0100.0 );
set_pevSnarkpev_velocityVelocity );

        }
set_pevSnarkpev_PosPrevOrigin );
vector_to_angleVelocityAngles );
Angles] = 0.0;

        
Angles] = 0.0;
set_pevSnarkpev_anglesAngles );

        return 

HAM_IGNORED;

    }

    public 

CSqueak_SuperBounceTouch ( const Snark, const Other )

    {

        if ( !
is_valid_entSnark ) )

        {

            return;

        }

        static 
Float:Angles Angle_e ];

        static 
Float:NextHit;

        static 
Float:DieDelay;

        static 
Float:NextAttack;

        static 
Float:NextBounceSoundTime;

        static 
Float:SPitch;

        static 
Float:CurrentTime;

        static 
Owner;
Owner pevSnarkpev_owner );

        if ( 

Owner && Other == Owner )

        {

            return;

        }
SPitch PITCH_NORM 1.0;

        
CurrentTime get_gametime();
set_pevSnarkpev_ownerNULL_ENT );
pevSnarkpev_anglesAngles );

        
pevSnarkpev_NextHitNextHit );

        
pevSnarkpev_DetonateDelayDieDelay );

        
pevSnarkpev_NextAttackNextAttack );

        
pevSnarkpev_NextBounceSoundTimeNextBounceSoundTime );
Angles] = 0.0;

        
Angles] = 0.0;
set_pevSnarkpev_anglesAngles );

        if ( 

NextHit CurrentTime )

        {

            return;

        }
SPitch 155.0 60.0 * ( ( DieDelay CurrentTime ) / get_pcvar_floatpCvarDetonateDelay ) );

        if ( 

<= Other <= gMaxClients && pevOtherpev_takedamage ) && NextAttack CurrentTime )

        {

            static 
Hit;

            
Hit global_getglb_trace_ent );

            if ( 

Hit == Other && pevHitpev_modelindex ) != pevSnarkpev_modelindex ) && <= Other <= gMaxClients )

            {

                
Owner pevSnarkpev_RealOwner );

                if(
Other!=Owner && is_alive[Other] && is_user_valid_connected(Owner) && !zp_get_user_zombieOther ) ){    

                    if(
pev(Otherpev_armorvalue)>float(g_armor_amount)) armor[Other] = true

                    
else armor[Other] = false

                    
if ( zp_get_user_last_humanOther ) || zp_get_user_survivorOther ) || armor[Other])

                    {

                        static 
Float:Forward    Coord_e ];

                        static 
Float:EndPos     Coord_e ];

                        static 
Float:OriginSnarkCoord_e ];

                        static 
Float:OriginOtherCoord_e ];

                        static 
Trace;

                        static 
Float:Damage;
Trace create_tr2();
pevSnarkpev_dmgDamage );

                        
pevSnarkpev_originOriginSnark );

                        
pevOtherpev_originOriginOther );
engfuncEngFunc_TraceLineOriginSnarkOriginOtherDONT_IGNORE_MONSTERSSnarkTrace );
get_tr2TraceTR_vecPlaneNormalForward );

                        
get_tr2TraceTR_vecEndPosEndPos );
ExecuteHamHam_TraceBleedOtherDamageForwardTraceDMG_SLASH );

                        
free_tr2Trace );
FX_BloodDrips EndPosBLOOD_COLOR_RED, .Amount floatroundDamage ) ); 

                        if(
armor[Other])

                            
set_pev(Otherpev_armorvaluefloat(min(pev(Otherpev_armorvalue)-g_armor_amountg_armor_limit)));

                        else

                            
ExecuteHamHam_TakeDamageOtherSnarkOwnerDamageDMG_SLASH );

                        
set_pevSnarkpev_dmgget_pcvar_floatpCvarDamagePop ) );

                    }

                    else

                    {

                        
zp_infect_userOtherOwner, .silent 0, .rewards );

                        
zp_set_user_ammo_packsOwnerzp_get_user_ammo_packsOwner ) + );

                        
set_user_fragsOwnerget_user_fragsOwner ) + );

                        
set_pevSnarkpev_enemyNULL_ENT );

                    }

                }

                
emit_soundSnarkCHAN_WEAPONgSnarkAttackSoundVOL_NORMATTN_NORM0floatroundSPitch ) );

                
set_pevSnarkpev_NextAttackCurrentTime 0.5 );

            }

        }
set_pevSnarkpev_NextHitCurrentTime 0.1 );

        
set_pevSnarkpev_NextHuntCurrentTime );

        if ( 

CurrentTime NextBounceSoundTime )

        {

            return;

        }

        if ( !( 

pevSnarkpev_flags ) & FL_ONGROUND ) )

        {

            switch ( 
random10 ) )

            {

                case 
.. emit_soundSnarkCHAN_VOICEgSnarkHunt1SoundVOL_NORMATTN_NORM0floatroundSPitch ) );

                case 
.. emit_soundSnarkCHAN_VOICEgSnarkHunt2SoundVOL_NORMATTN_NORM0floatroundSPitch ) );

                default     : 
emit_soundSnarkCHAN_VOICEgSnarkHunt3SoundVOL_NORMATTN_NORM0floatroundSPitch ) );

            }

        }
set_pevSnarkpev_NextBounceSoundTimeCurrentTime 0.5 );

    }
CSqueak_Create ( const Player, const Float:OriginCoord_e ], const Float:AnglesCoord_e], const Float:VelocityCoord_e ] )

    {

        new 
Snark create_entitygGenericEntity );

        if ( 

is_valid_entSnark ) )

        {

            
set_pevSnarkpev_classnamegSnarkClassName );

            
set_pevSnarkpev_groupinfogSnarkClassNameReference );

            
set_pevSnarkpev_ownerPlayer );

            
set_pevSnarkpev_originOrigin );

            
set_pevSnarkpev_anglesAngles );

            
set_pevSnarkpev_velocityVelocity );
CSqueak_Spawn PlayerSnarkOrigin );

            return 

Snark;

        }

        return 

NULL_ENT;

    }
CSqueak_Spawn ( const Player, const Snark, const Float:OriginCoord_e ] )

    {

        new 
Float:CurrentTime get_gametime();
set_pevSnarkpev_movetypeMOVETYPE_BOUNCE );

        
set_pevSnarkpev_solidSOLID_BBOX );
entity_set_model SnarkgSnarkModel );

        
entity_set_size  SnarkFloat:{ -4.0, -4.00.0 }, Float:{ 4.04.08.0 } );

        
entity_set_originSnarkOrigin );
set_pevSnarkpev_nextthinkCurrentTime 0.1 );
set_pevSnarkpev_NextHuntCurrentTime 1000000.0 ); // NextHunt

        
set_pevSnarkpev_DetonateDelayCurrentTime get_pcvar_floatpCvarDetonateDelay ) ); // DetonateDelay

        
set_pevSnarkpev_NextBounceSoundTimeCurrentTime ); // NextBounceSoundTime

        
set_pevSnarkpev_RealOwnerPlayer ); // RealOwner
set_pevSnarkpev_flagspevSnarkpev_flags ) | FL_MONSTER );

        
set_pevSnarkpev_takedamageDAMAGE_AIM );

        
set_pevSnarkpev_healthget_pcvar_floatpCvarHealth ) + gSnarkHealthReference );

        
set_pevSnarkpev_gravityget_pcvar_floatpCvarGravity ) );

        
set_pevSnarkpev_frictionget_pcvar_floatpCvarFriction ) );

        
set_pevSnarkpev_fovget_pcvar_numpCvarFieldOfView ) );

        
set_pevSnarkpev_dmgget_pcvar_floatpCvarDamagePop ) );
// --| Force snark to run.

        
set_pevSnarkpev_sequencewsqueak_run );

        
set_pevSnarkpev_framerate1.0 );

        
set_pevSnarkpev_animtimeCurrentTime );

        if ( 

get_pcvar_numpCvarShowTrail ) )

        {

            
message_begin MSG_BROADCASTSVC_TEMPENTITY );

            
write_byte TE_BEAMFOLLOW );

            
write_short Snark );

            
write_short gSmokeTrail );

            
write_byte TRAIL_LIFE );   // life

            
write_byte TRAIL_WIDTH );  // width

            
write_byte TRAIL_RED );

            
write_byte TRAIL_GREEN );

            
write_byte TRAIL_BLUE );

            
write_byte TRAIL_BRIGTHNESS );

            
message_end();

        }

    }

    public 

CSqueak_WeaponIdle ( const Player )

    {

        if ( 
gHasSnarkPlayer } && gWeaponActivePlayer } )

        {

            static 
Float:CurrentTime;

            
CurrentTime get_gametime();

            if ( 

gTimeWeaponIdlePlayer ] > CurrentTime )

            {

                return;

            }

            if ( 

gJustThrownPlayer } )

            {

                
gJustThrownPlayer } = false;

                if ( !

gPlayerAmmoPlayer } )

                {

                    
RemoveWeapon Playerget_pdata_cbasePlayerm_pActiveWeapon ) );

                    return;

                }
UTIL_PlayWeaponAnimation Playersqueak_up );

                
gTimeWeaponIdlePlayer ] = CurrentTime random_float 10.015.0 );

                return;

            }

            new 

Animation;

            new 
Float:NewTime;

            switch ( 

random_num010 ) )

            {

                case 
.. :

                {

                    
Animation squeak_idle1;

                    
NewTime   30.0 16.0 * ( 2.0 );

                }

                case 
.. :

                {

                    
Animation squeak_fidgetfit;

                    
NewTime   70.0 16.0;

                }

                default :

                {

                    
Animation squeak_fidgetnip;

                    
NewTime   80.0 16.0;

                }

            }
UTIL_PlayWeaponAnimation PlayerAnimation );

            
gTimeWeaponIdlePlayer ] = CurrentTime NewTime;

        }

    }
ChangeWeaponToSnark ( const Player )

    {

        
set_pevPlayerpev_viewmodel2  gModel_V );

        
set_pevPlayerpev_weaponmodel2gModel_P );

    }
UpdateHud ( const Player )

    {

        
message_beginMSG_ONE_UNRELIABLEgMsgidAmmoX, .player Player );

        
write_byte12 );

        
write_bytegPlayerAmmoPlayer } );

        
message_end();

    }
RemoveWeapon ( const Player, const Weapon )

    {

        
ExecuteHamBHam_Weapon_RetireWeaponWeapon );

        
ExecuteHamBHam_RemovePlayerItemPlayerWeapon );

        
ExecuteHamBHam_Item_KillWeapon );
set_pevPlayerpev_weaponspevPlayerpev_weapons ) & ~( << gWeaponIndex ) );

        
cs_set_user_bpammoPlayergWeaponIndex);
gHasSnarkPlayer } = false;

        
gWeaponActivePlayer } = false;

    }
stock bool:UTIL_IsBSPModel ( const Entity )

    {

        return ( 
peventitypev_solid ) == SOLID_BSP || pevEntitypev_movetype ) == MOVETYPE_STEP );

    }
UTIL_BestVisibleEnemy ( const Snark, const Float:DistanceToSearch /* , const Flags */ )

    {

        static List[ 
MAX_CLIENTS ];

        static 
Float:Distance;

        static 
Float:Nearest;

        static 
ReturnEntity;

        static 
Count;

        static 
Entity;

        static 
i;
Nearest 8192.0;

        
ReturnEntity NULL_ENT;
Count find_sphere_classSnark"player"DistanceToSearch, List, sizeof List );

        for ( 

0Counti++ )

        {

            
Entity = List[ ];

            
            if ( 

zp_get_user_zombieEntity ) )

            {

                continue;

            }

            if ( 

UTIL_FInViewCone SnarkEntity ) && UTIL_FVisibleSnarkEntity ) )

            {

                if ( ( 
Distance entity_rangeSnarkEntity ) ) <= Nearest )

                {

                    
Nearest Distance;

                    
ReturnEntity Entity;

                }

            }

        }
set_pevSnarkpev_enemyReturnEntity );

        return 
ReturnEntity;

    }
UTIL_PlayWeaponAnimation ( const Player, const Sequence )

    {

        
set_pevPlayerpev_weaponanimSequence );
message_beginMSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player );

        
write_byteSequence );

        
write_bytepevPlayerpev_body ) );

        
message_end();

    }
bool:UTIL_IsInWorld ( const Float:OriginCoord_e ], const Float:VelocityCoord_e ] )

    {

        static 
i;

        for ( 

x<= zi++ )

        {

            if ( !( -
4096.0 Origin] < 4096.0 ) && !( -2000.0 Velocity] < 2000.0 ) )

            {

                return 
false;

            }

        }

        return 

true;

    }
UTIL_RandomBloodVector Float:DirectionCoord_e ] )

    {

        
Direction] = random_float( -1.01.0 );

        
Direction] = random_float( -1.01.0 );

        
Direction] = random_float(  0.01.0 );

    }
FX_BloodDrips ( const Float:OriginCoord_e ], const BloodColor, const Amount )

    {

        
message_begin_fMSG_PVSSVC_TEMPENTITYOriginNULL_ENT );

        
write_byteTE_BLOODSPRITE );

        
write_coord_fOrigin] );

        
write_coord_fOrigin] );

        
write_coord_fOrigin] );

        
write_shortgBloodSpray );         // initial sprite model

        
write_shortgBloodDrop );          // droplet sprite models

        
write_byteBloodColor );           // color index into host_basepal

        
write_byteminmax3, ( Amount 255 255 Amount ) / 10 ), 16 ) );  // size

        
message_end();

    }
FX_StreakSplash ( const Float:OriginCoord_e ], const Float:DirectionCoord_e ], const Color, const Count, const Speed, const VelocityRange )

    {

        
message_begin_fMSG_PVSSVC_TEMPENTITYOriginNULL_ENT );

        
write_byteTE_STREAK_SPLASH );

        
write_coord_fOrigin] );

        
write_coord_fOrigin] );

        
write_coord_fOrigin] );

        
write_coord_fDirection] );

        
write_coord_fDirection] );

        
write_coord_fDirection] );

        
write_byteminColor255 ) );

        
write_shortCount );

        
write_shortSpeed );

        
write_shortVelocityRange );// random velocity modifier

        
message_end();

    }
stock FX_TraceBleed( const Victim, const Float:Damage, const Float:DirCoord_e ], const TraceResult:Trace )

    {

        new 
TraceResult:BloodTrace;

        new 
Float:TraceDirCoord_e ]; 

        new 
Float:EndPos  Coord_e ];

        new 
Float:Noise;

        new 
Float:Fraction;

        new 
Count;

        if ( 

Damage 10 )

        {

            
Noise 0.1;

            
Count 1;

        }

        else if ( 
Damage 25 )

        {

            
Noise 0.2;

            
Count 2;

        }

        else

        {

            
Noise 0.3;

            
Count 4;

        }

        for ( new 

Count i++ )

        {

            
VectorScale Dir, -1.0TraceDir );
TraceDir] += random_float( -NoiseNoise );

            
TraceDir] += random_float( -NoiseNoise );

            
TraceDir] += random_float( -NoiseNoise );
get_tr2TraceTR_vecEndPosEndPos );

            
VectorMA EndPos, -172.0TraceDirTraceDir );
engfuncEngFunc_TraceLineEndPosTraceDirIGNORE_MONSTERSVictimBloodTrace );

            
get_tr2BloodTraceTR_flFractionFraction );

            if ( 

Fraction != 1.0 )

            {

                
FX_BloodDecalTraceBloodTraceEndPosBLOOD_COLOR_RED );

            }

        }

    }
stock FX_BloodDecalTrace ( const TraceResult:Trace, const Float:EndPosCoord_e ], const BloodColor )

    {

        new 
Hit;

        new 
BaseIndex;

        new 
DecalIndex;

        new 
Float:Fraction

    
        switch ( 

BloodColor )

        {

            case 
BLOOD_COLOR_YELLOW BaseIndex get_decal_index"{yblood1" );

            case 
BLOOD_COLOR_RED    BaseIndex get_decal_index"{blood1" );

        }
DecalIndex BaseIndex random_num0);
Hit max0get_tr2TraceTR_pHit ) );

        
get_tr2TraceTR_flFractionFraction );

        if ( 

Fraction == 1.0 || ( Hit && !UTIL_IsBSPModel Hit ) ) )

        {

            return;

        }   
message_beginMSG_BROADCASTSVC_TEMPENTITY );

        
write_byteHit TE_DECAL TE_WORLDDECAL );

        
write_coord_fEndPos] );

        
write_coord_fEndPos] );

        
write_coord_fEndPos] );

        
write_byteDecalIndex );

        if ( 
Hit )

        {

            
write_shortHit );

        }

        
message_end();

    }
stock UTIL_RadiusDamage ( const Float:OriginCoord_e ], const Inflictor, const Attacker, const Float:Damage, const Float:Radius, const DamageBits )

    {

        static 
Entity;

        static 
Trace;

        static 
Float:AdjustedDamage;

        static 
bool:InWater;
Entity NULL_ENT;

        
InWater UTIL_LiquidContentsOrigin );

        while ( ( 

Entity find_ent_in_sphereEntityOriginRadius ) ) != NULL_ENT )

        {

            if ( 
Entity == Inflictor )

            {

                continue;

            }

            if(!
is_user_valid_connected(Entity)) return PLUGIN_CONTINUE

            
if(is_bot[Entity] || !is_alive[Entity] || !cs_get_user_team(Entity) ) return PLUGIN_CONTINUE

            
if ( pevEntitypev_takedamage ) && !zp_get_user_zombieEntity ) && !zp_get_user_last_humanEntity ) )

            {

                static 
Float:EntOriginCoord_e ];

                static 
Float:EndPos   Coord_e ];

                static 
Float:Fraction;
pevEntitypev_originEntOrigin );
engfuncEngFunc_TraceLineOriginEntOriginIGNORE_MONSTERSInflictorTrace );
get_tr2TraceTR_flFractionFraction );

                
get_tr2TraceTR_vecEndPosEndPos );

                if ( 

Fraction == 1.0 || get_tr2TraceTR_pHit ) == Entity )

                {

                    static 
Float:DeltaCoord_e ];

                    static 
Float:Len;

                    if ( 

get_tr2TraceTR_StartSolid ) )

                    {

                        
EndPos Origin;

                        
Fraction 0.0;

                    }
AdjustedDamage Damage;

                    
VectorSubtract EndPosOriginDelta );

                    if ( ( 

Len VectorLength Delta ) ) != 0.0 )

                    {

                        
VectorScale DeltaLenDelta );

                    }

                    if ( 

Len 2.0 )

                    {

                        
Len -= 2.0;

                    }

                    if ( ( 

AdjustedDamage *= ( 1.0 Len Radius ) ) <= )

                    {

                        continue;

                    }

                    if ( 

InWater || pevEntitypev_waterlevel ) > )

                    {

                        
AdjustedDamage *= 0.5;

                    }

                    if ( 

Fraction != 1.0 )

                    {

                        
ExecuteHamHam_TraceAttackEntityInflictorAdjustedDamageDeltaTraceDamageBits );

                        
ExecuteHamHam_TakeDamageEntityInflictorAttackerAdjustedDamageDamageBits );

                    }

                    else

                    {

                        
ExecuteHamHam_TakeDamageEntityInflictorAttackerAdjustedDamageDamageBits );

                    }

                }

            }

        }

        return 
PLUGIN_CONTINUE

    
}
stock UTIL_EntitiesInBox ( List[], const ListMax, const Float:MinsCoord_e ], const Float:MaxsCoord_e ], const Flags )

    {

        
/*

        static Float:Origin [ Coord_e ];

        static Float:Delta  [ Coord_e ];

        static Float:Mins   [ Coord_e ];

        static Float:Maxs   [ Coord_e ];

        pev( Snark, pev_origin, Origin );

        Delta[ x ] = Delta[ y ] = Delta[ z ] = DistanceToSearch;

        VectorSubtract ( Origin, Delta, Mins );

        VectorAdd ( Origin, Delta, Maxs );

        Count = UTIL_EntitiesInBox ( List, sizeof List, Mins, Maxs, Flags );

        */

static Float:AbsMinsCoord_e ];

        static 
Float:AbsMaxsCoord_e ];

        static 
Count;

        static 
Entity;
Count 0;

        for ( 

Entity 1Entity <= gMaxEntitiesEntity++ )  if( is_valid_entEntity ) )

        {

            if ( !( 
pevEntitypev_flags ) & Flags ) )

            {

                continue;

            }
pevEntitypev_absminAbsMins );

            
pevEntitypev_absmaxAbsMaxs );

            if ( 

Mins] > AbsMaxs] || Mins] > AbsMaxs] || Mins] > AbsMaxs] ||

                 
Maxs] < AbsMins] || Maxs] < AbsMins] || Maxs] < AbsMins] )

            {

                continue;

            }

            List[ 

Count ] = Entity;

            if ( 

Count++ >= ListMax )

            {

                return 
Count;

            }

        }

        return 

Count;

    }
bool:UTIL_FVisible ( const Entity, const Other )

    {

        static 
Float:LookerOriginCoord_e ];

        static 
Float:TargetOriginCoord_e ];

        static 
Float:Fraction;

        static 
LookerWLevel;

        static 
TargetWLevel;

        if ( 

pevOtherpev_flags ) & FL_NOTARGET )

        {

            return 
false;

        }
LookerWLevel pev Entitypev_waterlevel );

        
TargetWLevel pev Otherpev_waterlevel );

        if ( ( 

LookerWLevel != && TargetWLevel == ) || ( LookerWLevel == && TargetWLevel == 0  ) )

        {

            return 
false;

        }
UTIL_EyePosition EntityLookerOrigin );

        
UTIL_EyePosition OtherTargetOrigin );
engfuncEngFunc_TraceLineLookerOriginTargetOriginIGNORE_MONSTERS IGNORE_GLASSEntity);

        
get_tr20TR_flFractionFraction );

        return 

Fraction == 1.0 true false;

    }
bool:UTIL_FInViewCone ( const Entity, const Other )

    {

        static 
Float:Angles Coord_e ];

        static 
Float:HOriginCoord_e ];

        static 
Float:Origin Coord_e ];
pevEntitypev_anglesAngles );

        
engfuncEngFunc_MakeVectorsAngles );

        
global_getglb_v_forwardAngles );
Angles] = 0.0;
pevEntitypev_originHOrigin );

        
pevOtherpev_originOrigin );
VectorSubtract OriginHOriginOrigin );

        
Origin] = 0.0;
VectorNormalize OriginOrigin );

        if ( 

DotProduct OriginAngles ) > pevEntitypev_fov ) )

        {

            return 
true;

        }

        return 

false;

    }
UTIL_EyePosition ( const EntityFloat:OriginCoord_e ] )

    {

        static 
Float:ViewOfsCoord_e ];
pevEntitypev_originOrigin );

        
pevEntitypev_view_ofsViewOfs );
VectorAdd OriginViewOfsOrigin );

    }
stock bool:UTIL_LiquidContents( const Float:SourceCoord_e ] )

    {

        new 
Contents point_contentsSource );

        return ( 
Contents == CONTENTS_WATER || Contents == CONTENTS_SLIME || Contents == CONTENTS_LAVA );

    }
VectorNormalize ( const Float:SourceCoord_e ], Float:OutputCoord_e ] )

    {

        static 
Float:InvLen;
InvLen 1.0 VectorLength Source );
Output] = Source] * InvLen;

        
Output] = Source] * InvLen;

        
Output] = Source] * InvLen;

    } 




HTML Code:

//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// zp_extra_squeakgrenade.sma
//
// cstrikeaddonsamxmodxscriptingzp_extra_squeakgrenade.sma(149)
: error 020: invalid symbol name ""
// cstrikeaddonsamxmodxscriptingzp_extra_squeakgrenade.sma(150)
: error 020: invalid symbol name ""
// cstrikeaddonsamxmodxscriptingzp_extra_squeakgrenade.sma(150)
: warning 201: redefinition of constant/macro (symbol "")
//
// 2 Errors.
// Could not locate output file cstrikeaddonsamxmodxscriptingcom
piledzp_extra_squeakgrenade.amx (compile failed).
//
// Compilation Time: 0.78 sec
// ----------------------------------------

Press enter to exit ...

In version v1.8.2 there is no compile problem
But in v1.9
I get this error


Last edited by amirwolf; 01-30-2021 at 14:41.


#1

Пользователь офлайн
 

Отправлено 10 февраля 2019 — 14:20

  • С кем ты?

Скачал инклуд mxINI, подключил его к моду, при компилировании получаю следующую ошибку:

pawnoincludemxini.inc(145) : error 020: invalid symbol name ""

в этой строке:

cellbytes = cellbits / charbits;

0



#2

Отправлено 10 февраля 2019 — 16:59

  • Новичок

1. Проверь, после a_samp подключил ли ты его
2. Скачай другую версию
3. Лучше использовать MySQL. По нему достаточно мануалов в интернете и форуме сампа.

Но я тебя не заставляю

0



#3

Отправлено 05 марта 2019 — 18:21

  • С кем ты?

Просмотр сообщенияStanislav_Vice (10 февраля 2019 — 16:59) писал:

1. Проверь, после a_samp подключил ли ты его
2. Скачай другую версию
3. Лучше использовать MySQL. По нему достаточно мануалов в интернете и форуме сампа.

Но я тебя не заставляю

Спасибо за супер пустые советы, которые никак не помогают в решении проблемы, их как раз и не хватало.
Я и сейчас использую mysql, мне mxini для других целей нужен, с другими версиями то же самое происходит

0



#4

Отправлено 07 марта 2019 — 21:32

  • С кем ты?

0



#5

Отправлено 10 марта 2019 — 16:45

  • С кем ты?

bump.

Забыл упомянуть, что использую компилятор от Zeex.

0



#6

Отправлено 10 марта 2019 — 17:25

  • Пользователь

Посмотри в моде, может у тебя есть что-то вроде этого:

#define cellbytes

Если не найдешь, попробуй во всем инклуде заменить название cellbytes, на например cellbytes2

1



#7

Отправлено 10 марта 2019 — 20:39

  • С кем ты?

Просмотр сообщенияBarty Knox (10 марта 2019 — 17:25) писал:

Посмотри в моде, может у тебя есть что-то вроде этого:

#define cellbytes

Если не найдешь, попробуй во всем инклуде заменить название cellbytes, на например cellbytes2

Спасибо, помогла замена названия.

0


  • ← Предыдущая тема
  • Проблемы с компилированием
  • Следующая тема →

  • Вы не можете создать новую тему
  • Тема закрыта


1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

error 020: invalid symbol name

Модераторы: Subb98, liFe iS GoOD

  • Список форумов AMX Mod X Скриптинг

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

error 020: invalid symbol name

Здравствуйте, сегодня решил переписать плагин со спавном коробок с оружием. Туда включил HE и дигл. При компиляции возникла ошибка:

Код: Выделить всё
vish.sma(28) : error 020: invalid symbol name ""

Долго ломал голову, что с ней сделать. Короче прошу помощи!

Код: Выделить всё
#include <amxmodx> 
#include <amxmisc> 
#include <cstrike> 
#include <fakemeta> 
#include <engine> 
#include <fun> 
 
#define ADMIN_PRESENT_SPAWN ADMIN_RCON
#define ADMIN_PRESENT_REMOVE ADMIN_RCON
#define ADMIN_PRESENT_STOP ADMIN_RCON
#define ADMIN_PRESENT_START ADMIN_RCON
 
#define PRESENT_LIMIT 40
 
enum Color 

    NORMAL 1
    GREEN
    TEAM_COLOR
    GREY
    RED
    BLUE

 
new file[78],total_presentsFloat:present_data[PRESENT_LIMIT 1][3], 
present_glow,present_light,present_light_radius,present_rot
spawn_time,min_presents,max_presents
 
public plugin_precache() { 
    precache_model("models/vishnevskiy/presents.mdl"

 
public plugin_init() { 
    register_plugin("VishSpawn""1.1""Vishnevskiy"
    register_cvar("vsp_spawner_version","1.1",FCVAR_SERVER FCVAR_SPONLY
     
    register_logevent
("round_end",2,"1=Round_End"
    register_logevent("round_start",2,"1=Round_Start"
     
    present_glow 
register_cvar("vsp_present_glow","1"
    present_light register_cvar("vsp_present_light","1"
    present_light_radius register_cvar("vsp_present_light_radius","8"
    present_rot register_cvar("vsp_present_rotate","1"
     
    spawn_time 
register_cvar("vsp_spawn_presents_time","30.0"
    min_presents register_cvar("vsp_min_spawn_presents","5"
    max_presents register_cvar("vsp_max_spawn_presents","5"
     
    register_concmd
("vsp_spawn","admin_present_spawn",ADMIN_PRESENT_SPAWN
    register_concmd("vsp_remove","admin_present_remove",ADMIN_PRESENT_REMOVE
    register_concmd("vsp_stop","admin_present_stop",ADMIN_PRESENT_STOP
    register_concmd("vsp_start","admin_present_start",ADMIN_PRESENT_START
     
    register_touch
("info_present","player","present_touch"
    register_think("info_present","present_think"
     
    
new mapname[32
    get_mapname(mapname,31
    format(file,77,"addons/amxmodx/configs/presents/%s.ini",mapname
     
    load_presents
() 

 
public admin_present_spawn(id,level,cid

    if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED if(total_presents == PRESENT_LIMIT
    
        console_print(id,"Превышен лимит боксов!",PRESENT_LIMIT
        return PLUGIN_HANDLED 
    

     
    
new Float:origin[3
    entity_get_vector(id,EV_VEC_origin,origin
     
    origin
[2] -= 30.0 

         save_present

(id,origin
     
    
return PLUGIN_HANDLED 

 
public admin_present_remove(id,level,cid

    if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED 

         remove_all_presents

() 
    console_print(id,"Все боксы удалены на этот раунд!"
     
    
return PLUGIN_HANDLED 

 
public admin_present_stop(id,level,cid

    if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED 

         remove_all_presents

() 
    total_presents 
    console_print
(id,"Все боксы удалены на этой карте!"
     
    
return PLUGIN_HANDLED 

 
public admin_present_start(id,level,cid

    if(!cmd_access(id,level,cid,1) || total_presents 0) return PLUGIN_HANDLED 

         remove_all_presents

() 
    load_presents() 
    console_print(id,"Все боксы востановлены на этой карте!"
     
    
return PLUGIN_HANDLED 

 
public round_end() 

    if(!total_presents) return 
    remove_all_presents() 

 
public round_start() 

    if(!total_presents) return 
    remove_task(1337
    set_task(get_pcvar_float(spawn_time),"spawn_random_presents",1337

 
public spawn_random_presents() 

    new num random_num(get_pcvar_num(min_presents),get_pcvar_num(max_presents)) 
    if(num != 0) for(new ii=0;ii<num;ii++) spawn_present(present_data[random(total_presents)]) 

 
public give_random_present(ent,id

    new num random_num(1,19
    switch(num
    
        case 1
        
            cs_set_weapon_ammo(give_item(id"weapon_deagle"), 1)
            cs_set_user_bpammoidCSW_DEAGLE);
        
        case 2
        
            give_item(id,"weapon_hegrenade" 
            
}
    
     
    remove_entity
(ent

 
public present_think(ent

    if(get_pcvar_num(present_light)) 
    
        static Float:origin[3
        entity_get_vector(ent,EV_VEC_origin,origin
         
        engfunc
(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0
        write_byte(TE_DLIGHT
        engfunc(EngFunc_WriteCoordorigin[0]) 
        engfunc(EngFunc_WriteCoordorigin[1]) 
        engfunc(EngFunc_WriteCoordorigin[2]) 
        write_byte(get_pcvar_num(present_light_radius)) 
        write_byte(entity_get_int(ent,EV_INT_iuser1)) 
        write_byte(entity_get_int(ent,EV_INT_iuser2)) 
        write_byte(entity_get_int(ent,EV_INT_iuser3)) 
        write_byte(2
        write_byte(0
        message_end() 
    
     
    
if(get_pcvar_num(present_rot)) 
    
        static Float:angles[3
        entity_get_vector(ent,EV_VEC_angles,angles
         
        angles
[1]-- 
         
        entity_set_vector
(ent,EV_VEC_angles,angles
    
     
    entity_set_float
(ent,EV_FL_nextthink,halflife_time() + 0.01

 
public remove_all_presents() remove_entity_name("info_present"
 public load_presents() 

    total_presents new buffer[128], x[12],y[12],z[12
    if(file_exists(file)) 
    
        new save fopen(file,"rt"
         
        
if(!save) return 
         
        
while(!feof(save)) 
        
            fgets(save,buffer,127
             
            
if(buffer[0] == ';' || !buffer[0]) continue 
             
            parse
(bufferx,11y,11z,11
             
            present_data
[total_presents][0] = str_to_float(x
            present_data[total_presents][1] = str_to_float(y
            present_data[total_presents][2] = str_to_float(z
             
            total_presents
++ 
        
         
        fclose
(save
        

 
public spawn_present(Float:origin[3]) 

    new ent create_entity("info_target"
    if(ent
    
        entity_set_string(ent,EV_SZ_classname,"info_present"
        entity_set_model(ent,"models/vishnevskiy/presents.mdl"
        entity_set_int(ent,EV_INT_solid,SOLID_TRIGGER
        entity_set_int(ent,EV_INT_movetype,MOVETYPE_TOSS
        if(get_pcvar_num(present_glow)) 
        
            entity_set_int(ent,EV_INT_iuser1,random(255)) 
            entity_set_int(ent,EV_INT_iuser2,random(255)) 
            entity_set_int(ent,EV_INT_iuser3,random(255)) 
             
            set_rendering
(ent,kRenderFxGlowShell,entity_get_int(ent,EV_INT_iuser1),entity_get_int(ent,EV_INT_iuser2),entity_get_int(ent,EV_INT_iuser3),kRenderNormal,60
        
         
        entity_set_origin
(ent,origin
         
        entity_set_float
(ent,EV_FL_nextthink,halflife_time() + 0.01
    

 
public save_present(id,Float:origin[3]) 

    new save fopen(file,"at"
    if(save
    
        fprintf(save,"%.2f %.2f %.2f^n",origin[0],origin[1],origin[2]) 
        fclose(save
        console_print(id,"Бокс был добавлен по координатам x:y:z(%.2f : %.2f : %.2f).",origin[0],origin[1],origin[2]) 
        load_presents() 
    

Аватара пользователя

vishnevskiy

 
Сообщения: 47
Зарегистрирован: 02 дек 2014, 19:06
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: error 020: invalid symbol name

Сообщение kentyxa » 02 дек 2014, 19:34

Удали последнюю запятую на 26-ой строчке

На форуме больше не обитаю.

04.01.2015

Аватара пользователя

kentyxa

 
Сообщения: 777
Зарегистрирован: 30 июл 2013, 16:47
Благодарил (а): 99 раз.
Поблагодарили: 170 раз.


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2

error 001 expected token: «%s», but found «%s» ожидался символ: «%s», но был найден «%s» error 002 only a single statement (or expression) can follow each «case» только одно заявление (или выражение) могут следовать за «case» error 003 declaration of a local variable must appear in a compound block объявленная локальная переменная должна использоваться в этом же блоке error 004 function «%s» is not implemented функция %s не реализована error 005 function may not have arguments функция не имеет аргументов error 006 must be assigned to an array должен быть присвоен массив error 007 operator cannot be redefined оператор не может быть установлен еще раз error 008 must be a constant expression; assumed zero должно быть постоянным выражением; равным нулю error 009 invalid array size (negative or zero) неверный размер массива (отрицательный или 0) error 010 invalid function or declaration неизвестная функция или декларация error 011 invalid outside functions неверно вне функции error 012 invalid function call, not a valid address неверный вызов функции, неверный адрес error 013 no entry point (no public functions) нет точки входа (не public функция) error 014 invalid statement; not in switch неверный оператор; не в switch error 015 default case must be the last case in switch statement default должен быть последним условием в switch error 016 multiple defaults in «switch» несколько «default» в switch error 017 undefined symbol «%s» неизвестный символ «%s» error 018 initialization data exceeds declared size данные массива превышают его размер error 019 not a label: «%s» не метка «%s» error 020 invalid symbol name «%s» неверное имя символа «%s» error 021 symbol already defined: «%s» символ уже объявлен: «%s» error 022 must be lvalue (non-constant) должно быть левосторонним (нет постоянной) error 023 array assignment must be simple assignment назначение массива должно быть простым error 024 break or «continue» is out of context break или «continue» вне контекста error 025 function heading differs from prototype функция заголовка отличается от прототипа error 026 no matching «#if…» не найдено «#if…» error 027 invalid character constant недопустимый символ в постоянной error 028 invalid subscript (not an array or too many subscripts): «%s» неверный индекс (это не массив или слишком много индексов): «%s» error 029 invalid expression, assumed zero неверное выражение, нет результата error 030 compound statement not closed at the end of file составной оператор не закрыт в конце файла error 031 unknown directive неизвестная директива error 032 array index out of bounds (variable «%s») индекс массива превышен error 033 array must be indexed (variable «%s») массив должен быть проиндексирован error 034 argument does not have a default value (argument %d) аргумент не имеет начального значения (аргумент %d) error 035 argument type mismatch (argument %d) несоответствие типа аргумента (аргумент %d) error 036 empty statement пустой оператор error 037 invalid string (possibly non-terminated string) неправильная строка error 038 extra characters on line лишние символы в строке error 039 constant symbol has no size символьная константа не имеет размера error 040 duplicate «case» label (value %d) несколько раз объявлен «case» с одним тем же параметром error 041 invalid ellipsis, array size is not known размер массива неизвестен error 042 invalid combination of class specifiers недопустимое сочетание класса error 043 character constant exceeds range for packed string символьная константа превышает размер строки error 044 positional parameters must precede all named parameters позиционные параметры должны предшествовать всем именованным параметрам error 045 too many function arguments слишком много аргументов у функции error 046 unknown array size (variable «%s») неизвестный размер массива error 047 array sizes do not match, or destination array is too small размеры массива конфликтуют, либо целевой массив слишком маленький error 048 array dimensions do not match размеры массива не совпадают error 049 invalid line continuation неправильное продолжение строки error 050 invalid range неверный диапазон error 051 invalid subscript, use «[ ]» operators on major dimensions неправильный индекс, используйте «[]» error 052 multi-dimensional arrays must be fully initialized много-размерные массивы должны быть полностью определены error 053 exceeding maximum number of dimensions превышение максимального числа измерений error 054 unmatched closing brace не найдена закрывающаяся скобка error 055 start of function body without function header начало функции без заголовка error 056 arrays, local variables and function arguments cannot be public (variable «%s») массивы, локальные переменные и аргументы функции не могут быть общедоступными (переменная «% s») error 057 unfinished expression before compiler directive который недействителен. error 058 duplicate argument; same argument is passed twice дублирование аргумента; аргумент передается несколько раз error 059 function argument may not have a default value (variable «%s») аргумент не может иметь значение по-умолчанию error 060 multiple «#else» directives between «#if … #endif» несколько «#else» между «#if и #endif» error 061 #elseif directive follows an «#else» directive #else перед «#elseif» error 062 number of operands does not fit the operator Количество операторов не соотвествует оператору error 063 function result tag of operator «%s» must be «%s» Результат функции %s должен быть %s error 064 cannot change predefined operators невозможно изменить уже определенные операторы error 065 function argument may only have a single tag (argument %d) в этой функции может быть только один аргумент error 066 function argument may not be a reference argument or an array (argument «%s») аргумент функции не может быть ссылкой или массивом error 067 variable cannot be both a reference and an array (variable «%s») Переменная не может быть как массив или ссылка error 068 invalid rational number precision in #pragma неверное число в #pragma error 069 rational number format already defined формат рационального числа уже определен error 070 rational number support was not enabled рациональное число не поддерживается error 071 user-defined operator must be declared before use (function «%s») объявленный оператор должен быть перед использованием error 072 sizeof operator is invalid on «function» symbols оператор «sizeof» не может быть использован для символов функции error 073 function argument must be an array (argument «%s») аргумент %s должен быть массивом error 074 #define pattern must start with an alphabetic character #define должен начинаться с буквы error 075 input line too long (after substitutions) введенная строка слишком длинная error 076 syntax error in the expression, or invalid function call неправильный синтаксис или неправильный вызов функции error 077 malformed UTF-8 encoding, or corrupted file: %s плохая кодировка UTF-8 или плохой файл: %s error 078 «»}»>function uses both «return» and «return <value>» «»}»>функция использует «return» и «return <значение>» error 079 inconsistent return types (array & non-array) несовместимость типов возвращенных результатов error 080 unknown symbol, or not a constant symbol (symbol «%s») неизвестный или непостоянный символ: %s error 081 cannot take a tag as a default value for an indexed array parameter (symbol «%s») Нельзя взять значение в массив %s error 082 user-defined operators and native functions may not have states созданные функции или операторы не имеют состояния error 083 a function may only belong to a single automaton (symbol «%s») функция может принадлежать только к одной автоматизации error 084 state conflict: one of the states is already assigned to another implementation (symbol «%s») для функции %s уже определенна данная state error 085 no states are defined for function «%s» нет состояний, определенных для функции «%s» error 086 unknown automaton «%s» неизвестная автоматизация «%s» error 087 unknown state «%s» for automaton «%s» неизвестное состояние «%s» в автоматизации «%s» error 088 number of arguments does not match definitionn количество аргументов не совпадает с объявленными в функции

Из названия все ясно. ИД’ы всех ошибок, фатальных ошибок, а также предупреждений в PAWNO. 

error 001: expected token: «%s», but found «%s» — пропущен символ «%s», но найден «%s»;

error 002: only a single statement (or expression) can follow each «case» — Только один оператор и и выражение может следовать после «case»;

error 003: declaration of a local variable must appear in a compound block — Локальные переменные должны быть в блоке;

error 004: function «%s» is not implemented — функция «%s» не определена;

error 005: function may not have arguments — Функция может не иметь аргументов;

error 006: must be assigned to an array — Это должно быть в массиве;

error 007: operator cannot be redefined — Оператор не может использоваться;

error 008: must be a constant expression; assumed zero — Это должно быть константой равной нулю;

error 009: invalid array size (negative or zero) — Неправильный размер массива. Отрицательное значение или ноль;

error 010: invalid function or declaration — Неправильная функция;

error 011: invalid outside functions — Неправильный вывод функции;

error 012: invalid function call, not a valid address — Неправильный вызов функции;

error 013: no entry point (no public functions) — Не точка входа;

error 014: invalid statement; not in switch — Неверная команда;

error 015: «default» case must be the last case in switch statement — Оператор «default» должен быть последним;

error 016: multiple defaults in «switch» — Несколько операторов «default» в «switch»;

error 017: undefined symbol «%s» — неизвестный символ (неопределённая переменная) «%s»;

error 018: initialization data exceeds declared size — несовпадение данных в массиве с указанными рамками (увеличить размер массива);

error 019: not a label: %s» — %s — не строка;

error 020: invalid symbol name «%s» — ошибочное название символа (начинается с цифры, например);

error 021: symbol already defined: %s» — символ уже определён (дважды встречается new одного и того-же символа);

error 022: must be lvalue (non-constant) — Должна быть левой частью;

error 023: array assignment must be simple assignment — начения массива должны быть простыми;

error 024: «break» or «continue» is out of context — Операторы «break» или «continue» вне границ блока;

error 025: function heading differs from prototype — Функция заголовка отличается от прототипа;

error 026: no matching «#if…» — «#if…» — не найдено;

error 027: invalid character constant — Неправильные символы константы;

error 028: invalid subscript (not an array or too many subscripts): %s» — неверное выражение, нет результата %s является недействительным массивом;

error 029: invalid expression, assumed zero — неверное выражение, нет результата;

error 030: compound statement not closed at the end of file — составной оператор не закрыт в конце файла, поставить return 1;} в конец мода;

error 031: unknown directive — неверная директива (подключение плагина в дефайнах, неверное установка пути инклуда и тому подобное);

error 032: array index out of bounds (variable «%s») — Индекс массива превышен;

error 033: array must be indexed (variable «%s») — Массив неизвестен;

error 034: argument does not have a default value (argument %d) — Аргумент не имеет начального значения;

error 035: argument type mismatch (argument %d) — Несоответствие типов аргумента;

error 036: empty statement — Пустой оператор;

error 037: invalid string (possibly non-terminated string) — незавершённая строка (обычно бывает, если забывам ставить закрывающие ковычки);

error 038: extra characters on line — Лишние символы в строке;

error 039: constant symbol has no size — Символьная константа не имеет размера;

error 040: duplicate «case» label (value %d) — несколько раз объявлен «case» с одним и тем же параметром;

error 041: invalid ellipsis, array size is not known — Размер массива неизвестно;

error 042: invalid combination of class specifiers — Недопустимое сочетание класса;

error 043: character constant exceeds range for packed string — Символьная константа превышает размер строки;

error 044: positional parameters must precede all named parameters — ;

error 045: too many function arguments — Слишком много аргументов для функции;

error 046: unknown array size (variable «%s») — Неизвестный размер массива %s;

error 047: array sizes do not match, or destination array is too small — размеры массивов конфликтуют, либо целевой массив слишком маленький (нужно увеличить число в квадратных скобках);

error 048: array dimensions do not match — Размеры массива не совпадают;

error 049: invalid line continuation — Неправильное продолжении линии;

error 050: invalid range — Неправильный диапазон;

error 051: invalid subscript, use «[ ]» operators on major dimensions — Неправильный индекс. Используйте «[ ]»;

error 052: multi-dimensional arrays must be fully initialized — Много размерные массивы должны быть

полностью установлены;

error 053: exceeding maximum number of dimensions — Превышение максимального числа измерений;

error 054: unmatched closing brace — Непревзойденная закрывающаяся скобка;

error 055: start of function body without function header — описание функции без заголовка (пропущен public(…));

error 056: arrays, local variables and function arguments cannot be public (variable «%s») — ;

error 057: unfinished expression before compiler directive — Незавершенное выражение для компилятора;

error 058: duplicate argument; same argument is passed twice — Дублирование аргумента. Аргумент передается несколько раз;

error 059: function argument may not have a default value (variable «%s») — Аргумент не может иметь значение по-умолчанию;

error 060: multiple «#else» directives between «#if … #endif» — Несколько «#else» между «#if … #endif»;

error 061: «#elseif» directive follows an «#else» directive — «#elseif» перед «#else»;

error 062: number of operands does not fit the operator — Количество операторов не соответствует оператору;

error 063: function result tag of operator «%s» must be «%s» — Результат функции %s должен быть %s;

error 064: cannot change predefined operators — Невозможно изменить уже определенные операторы;

error 065: function argument may only have a single tag (argument %d) — В этой функции может быть только один аргумент %d;

error 066: function argument may not be a reference argument or an array (argument «%s») — Аргумент функции не может быть ссылкой или массивом;

error 067: variable cannot be both a reference and an array (variable «%s») — Переменная %s не может быть как массив или ссылка;

error 068: invalid rational number precision in #pragma — Неправильное число в #pragma;

error 069: rational number format already defined — Формат рационального числа уже определен;

error 070: rational number support was not enabled — Рациональное число не поддерживается;

error 071: user-defined operator must be declared before use (function «%s») — Объявленный оператор должен быть перед использованием;

error 072: «sizeof» operator is invalid on «function» symbols — Оператор «sizeof» не может быть использован для символов;

error 073: function argument must be an array (argument «%s») — Аргумент %s должен быть массивом;

error 074: #define %s must start with an alphabetic character — макрос %s должен начинаться с букв;

error 075: input line too long (after substitutions) — слишком длинная строка после интеграции параметров (возможно, много лишних пробелов, или результативные данные слишком велики для строки (по длине));

error 076: syntax error in the expression, or invalid function call — Неправильный синтаксис или неправильный вызов функции;

error 077: malformed UTF-8 encoding, or corrupted file: %s — Плохая кодировка UTF-8 или плохой файл %s;

error 078: function uses both «return» and «return <value>» — Функция использует два «return»;

error 079: inconsistent return types (array & non-array) — несовместимость типов возвращённых результатов (массив и немассив) (сопоставить данные в функции и изменить типы переменных);

error 080: unknown symbol, or not a constant symbol (symbol «%s») — Неизвестный или непостоянный символ %s;

error 081: cannot take a tag as a default value for an indexed array parameter (symbol «%s») — Нельзя взять значение в массив %s;

error 082: user-defined operators and native functions may not have states — нативы и пользовательские операторы не могут иметь переключателей;

error 083: a function may only belong to a single automaton (symbol «%s») — Функция может принадлежать только к одной автоматизации;

error 084: state conflict: one of the states is already assigned to another implementation (symbol «%s») — для функции %s уже определенна данная state;

error 085: no states are defined for function «%s» — не определенна ни одна state для функции %s;

error 086: unknown automaton «%s» — Неизвестная автоматизация %s;

error 087: unknown state «%s» for automaton «%s» — не определен state %s, для переключения %s;

error 088: number of arguments does not match definition — количество аргументов не совпадает с объявленными в функции;  

fatal error 100: cannot read from file: «%s» — невозможно прочитать/найти файл %s в стандартной директории;

fatal error 107: too many error messages on one line — слишком много ошибок на одной строке (обычно из-за одного неправильного параметра);

warning 200: symbol «%s» is truncated to 31 characters — название переменной %s обрезается до 31 символа (укоротите название переменной %s);

warning 201: redefinition of constant/macro (symbol «%s») — двойное определение одинаковой константы (смотреть #define);

warning 202: number of arguments does not match definition — несовпадение количества аргументов;

warning 203: symbol is never used: «%» — символ «%» нигде не используется;

warning 204: symbol is assigned a value that is never used: «%s» — символ создан, ему присваивается значение, но далее он не используется.

warning 208: function with tag result used before definition, forcing reparse — функция с типовым результатом используется перед объявлением

warning 209: function «%s» should return a value — функция %s должна возвращать какое-либо значение (return 1; к примеру);

warning 211: possibly unintended assignment — в условии использовано не сравнение, а присвоение;

warning 213: tag mismatch — несовпадение тэгов;

warning 215: expression has no effect — выражение не имеет эффекта;

warning 216: nested comment — вложенный комментарий (вынесите его за функцию);

warning 217: loose indentation — невыровненная строка (return должен быть строго под телом функции по левому краю, либо можно добавить в начало мода строку #pragma tabsize 0, но это не рекомендуется, так как иногда может не понимать и не прочитывать скобки «{» и «}»);

warning 219: local variable «%s» shadows a variable at a preceding level — переменная дважды объявлена;

warning 224: indeterminate array size in «sizeof» expression (symbol «%s») — должен быть определён размер массива %s (если определён статиком, заменить дефайном);

warning 225: unreachable code — невалидный код;

warning 235: public function lacks forward declaration (symbol «%s») — необходим форвард функции %s (перед функцией пишем forward %s; 

Пояснение: «%s — имя переменной/макроса/аргумента функции».

Авторы: OKStyle, webserfer, Kaza40k, [Nos]B[R]aiN[L], Ym[0]n, _volk_, ДениСыч, Roman1us. 

При копировании на другие ресурсы, обязательно указывайте авторов, не зря ведь люди старались:)

error 001: expected token: "%s", but found "%s" - ожидался символ: "%s", но был найден "%s";
error 002: only a single statement (or expression) can follow each "case" - только одно заявление (или выражение) могут следовать за "case";
error 003: declaration of a local variable must appear in a compound block - объявленная локальная переменная должна использоваться в этом же блоке;
error 004: function "%s" is not implemented - функция %s не реализована;
error 005: function may not have arguments - функция не имеет аргументов;
error 006: must be assigned to an array - должен быть присвоен массив;
error 007: operator cannot be redefined - оператор не может быть установлен еще раз;
error 008: must be a constant expression; assumed zero - должно быть постоянным выражением; равным нулю;
error 009: invalid array size (negative or zero) - неверный размер массива (отрицательный или 0);
error 010: invalid function or declaration - неизвестная функция или декларация;
error 011: invalid outside functions - неверно вне функции;
error 012: invalid function call, not a valid address - неверный вызов функции, неверный адрес;
error 013: no entry point (no public functions) - нет точки входа (не public функция);
error 014: invalid statement; not in switch - неверный оператор; не в switch;
error 015: "default" case must be the last case in switch statement - "default" должен быть последним условием в switch;
error 016: multiple defaults in "switch" - несколько "default" в switch;
error 017: undefined symbol "%s" - неизвестный символ "%s";
error 018: initialization data exceeds declared size - данные массива превышают его размер;
error 019: not a label: %s" - не метка "%s";
error 020: invalid symbol name "%s" - неверное имя символа "%s";
error 021: symbol already defined: %s" - символ уже объявлен: "%s";
error 022: must be lvalue (non-constant) - должно быть левосторонним (нет постоянной);
error 023: array assignment must be simple assignment - назначение массива должно быть простым;
error 024: "break" or "continue" is out of context - "break" или "continue" вне контекста;
error 025: function heading differs from prototype - функция заголовка отличается от прототипа;
error 026: no matching "#if..." - не найдено "#if...";
error 027: invalid character constant - недопустимый символ в постоянной;
error 028: invalid subscript (not an array or too many subscripts): "%s" - неверный индекс (это не массив или слишком много индексов): "%s";
error 029: invalid expression, assumed zero - неверное выражение, нет результата;
error 030: compound statement not closed at the end of file - составной оператор не закрыт в конце файла;
error 031: unknown directive - неизвестная директива;
error 032: array index out of bounds (variable "%s") - индекс массива превышен;
error 033: array must be indexed (variable "%s") - массив должен быть проиндексирован;
error 034: argument does not have a default value (argument %d) - аргумент не имеет начального значения (аргумент %d);
error 035: argument type mismatch (argument %d) - несоответствие типа аргумента (аргумент %d);
error 036: empty statement - пустой оператор;
error 037: invalid string (possibly non-terminated string) - неправильная строка;
error 038: extra characters on line - лишние символы в строке;
error 039: constant symbol has no size - символьная константа не имеет размера;
error 040: duplicate "case" label (value %d) - несколько раз объявлен "case" с одним тем же параметром;
error 041: invalid ellipsis, array size is not known - размер массива неизвестен;
error 042: invalid combination of class specifiers - недопустимое сочетание класса;
error 043: character constant exceeds range for packed string - символьная константа превышает размер строки;
error 044: positional parameters must precede all named parameters - позиционные параметры должны предшествовать всем именованным параметрам;
error 045: too many function arguments - слишком много аргументов у функции;
error 046: unknown array size (variable "%s") - неизвестный размер массива;
error 047: array sizes do not match, or destination array is too small - размеры массива конфликтуют, либо целевой массив слишком маленький;
error 048: array dimensions do not match - размеры массива не совпадают;
error 049: invalid line continuation - неправильное продолжение строки;
error 050: invalid range - неверный диапазон;
error 051: invalid subscript, use "[ ]" operators on major dimensions - неправильный индекс, используйте "[]";
error 052: multi-dimensional arrays must be fully initialized - много-размерные массивы должны быть полностью определены;
error 053: exceeding maximum number of dimensions - превышение максимального числа измерений;
error 054: unmatched closing brace - не найдена закрывающаяся скобка;
error 055: start of function body without function header - начало функции без заголовка;
error 056: arrays, local variables and function arguments cannot be public (variable "%s") - массивы, локальные переменные и аргументы функции не могут быть общедоступными;
error 057: unfinished expression before compiler directive - незавершенное выражение для компилятора;
error 058: duplicate argument; same argument is passed twice - дублирование аргумента; Аргумент передается несколько раз;
error 059: function argument may not have a default value (variable "%s") - аргумент не может иметь значение по-умолчанию;
error 060: multiple "#else" directives between "#if ... #endif" - Несколько "#else" между "#if ... #endif" - несколько "#else" между "#if и #endif";
error 061: "#elseif" directive follows an "#else" directive - "#else" перед "#elseif";
error 062: number of operands does not fit the operator - количество операндов не соответствует оператору;
error 063: function result tag of operator "%s" must be "%s" - Результат функции %s должен быть %s;
error 064: cannot change predefined operators - невозможно изменить уже определенные операторы;
error 065: function argument may only have a single tag (argument %d) - в этой функции может быть только один аргумент;
error 066: function argument may not be a reference argument or an array (argument "%s") - аргумент функции не может быть ссылкой или массивом;
error 067: variable cannot be both a reference and an array (variable "%s") - Переменная не может быть как массив или ссылка;
error 068: invalid rational number precision in #pragma - неверное число в #pragma;
error 069: rational number format already defined - формат рационального числа уже определен;
error 070: rational number support was not enabled - рациональное число не поддерживается;
error 071: user-defined operator must be declared before use (function "%s") - объявленный оператор должен быть перед использованием;
error 072: "sizeof" operator is invalid on "function" symbols - оператор "sizeof" не может быть использован для символов функции;
error 073: function argument must be an array (argument "%s") - аргумент %s должен быть массивом;
error 074: #define %s must start with an alphabetic character - #define должен начинаться с буквы;
error 075: input line too long (after substitutions - введенная строка слишком длинная;
error 076: syntax *error in the expression, or invalid function call - неправильный синтаксис или неправильный вызов функции;
error 077: malformed UTF-8 encoding, or corrupted file: %s - плохая кодировка UTF-8 или плохой файл: %s;
error 078: function uses both "return" and "return <value>" - функция использует "return" и "return <значение>";
error 079: inconsistent return types (array & non-array) - несовместимость типов возвращенных результатов;
error 080: unknown symbol, or not a constant symbol (symbol "%s") - неизвестный или непостоянный символ: %s;
error 081: cannot take a tag as a default value for an indexed array parameter (symbol "%s") - не может принимать тег в качестве значения по умолчанию для параметра индексированного массива;
error 082: user-defined operators and native functions may not have states - созданные функции или операторы не имеют состояния;
error 083: a function may only belong to a single automaton (symbol "%s") - функция может принадлежать только к одной автоматизации;
error 084: state conflict: one of the states is already assigned to another implementation (symbol "%s") - конфликт состояния: одно из состояний уже назначено на другую реализацию;
error 085: no states are defined for function "%s" - нет состояний, определенных для функции "%s";
error 086: unknown automaton "%s" - неизвестная автоматизация "%s";
error 087: unknown state "%s" for automaton "%s" - неизвестное состояние "%s" в автоматизации "%s";
error 088: number of arguments does not match definition - количество аргументов не совпадает с объявленными в функции;

Posts: 418
Threads: 56
Joined: Aug 2009

Reputation:

0

25.05.2012, 09:30

(

Последний раз редактировалось AMEENAMEEN; 25.05.2012 в 12:10.

)

This is Fixed

Код:

C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(620) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(621) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(622) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(623) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(624) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(625) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(626) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(627) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(628) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(629) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(630) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(631) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(632) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(633) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(634) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(635) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(636) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(637) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(638) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(639) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(640) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(641) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(642) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(643) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(644) : error 020: invalid symbol name ""
C:UsersgamesDesktopNew folder (46)cc rpgamemodesCiscoRP1.pwn(645) : error 020: invalid symbol name ""

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


26 Errors.

Lines 621 — 645 , i dont see anything wrong with them , any ideas why

pawn Код:

new 7457o;
new 7456o;
new 7889o;
new 7882o;
new 7448o;
new 7557o;
new 16181o;
new 16157o;
new 7458o;
new 16186o;
new 16180o;
new 16179o;
new 16185o;
new 7470o;
new 16188o;
new 7471o;
new 16190o;
new 16103o;
new 16187o;
new 16189o;
new 16257o;
new 16174o;
new 16255o;
new 16173o;
new 16178o;
new 16184o;

Posts: 10,066
Threads: 38
Joined: Sep 2007

Reputation:

0

Variable names may not start with a number. They must start with a letter or an underscore. And this looks like something that’s been decompiled ..

Posts: 3,488
Threads: 16
Joined: Jun 2007

Reputation:

0

Posts: 418
Threads: 56
Joined: Aug 2009

Reputation:

0

Nope i am just creating new variables and wondering why they dont work , thanks ill start them with a letter

Содержание

  1. Error 020 invalid symbol name
  2. error 020: invalid symbol name
  3. error 020: invalid symbol name
  4. Error 020 invalid symbol name
  5. error 020: invalid symbol name
  6. error 020: invalid symbol name
  7. Форум Pawn.Wiki — Воплоти мечту в реальность!: Error 020 + Error 028 + Error 001 + Warning 215 — Форум Pawn.Wiki — Воплоти мечту в реальность!

Error 020 invalid symbol name

shel писал(а): Yopta, za bazar otvechau, skazal v sosedneu teme tupo vukladuvayte odobru a teper zadnuu podrybul? Tak delo ne poydet, bablo na stol yoba

error 020: invalid symbol name

  • Список форумовAMX Mod XСкриптинг

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

error 020: invalid symbol name

vishnevskiy » 02 дек 2014, 19:26

Здравствуйте, сегодня решил переписать плагин со спавном коробок с оружием. Туда включил HE и дигл. При компиляции возникла ошибка:

Код: Выделить всё vish.sma(28) : error 020: invalid symbol name «»
Долго ломал голову, что с ней сделать. Короче прошу помощи!

if( total_presents == PRESENT_LIMIT )
<
console_print ( id , «Превышен лимит боксов!» , PRESENT_LIMIT )
return PLUGIN_HANDLED
>

new Float : origin [ 3 ]
entity_get_vector ( id , EV_VEC_origin , origin )

origin [ 2 ] -= 30.0

save_present ( id , origin )

return PLUGIN_HANDLED
>

public admin_present_remove ( id , level , cid )
<
if(! cmd_access ( id , level , cid , 1 )) return PLUGIN_HANDLED

remove_all_presents ()
console_print ( id , «Все боксы удалены на этот раунд!» )

return PLUGIN_HANDLED
>

public admin_present_stop ( id , level , cid )
<
if(! cmd_access ( id , level , cid , 1 )) return PLUGIN_HANDLED

remove_all_presents ()
total_presents = 0
console_print ( id , «Все боксы удалены на этой карте!» )

return PLUGIN_HANDLED
>

public admin_present_start ( id , level , cid )
<
if(! cmd_access ( id , level , cid , 1 ) || total_presents > 0 ) return PLUGIN_HANDLED

remove_all_presents ()
load_presents ()
console_print ( id , «Все боксы востановлены на этой карте!» )

return PLUGIN_HANDLED
>

public round_end ()
<
if(! total_presents ) return
remove_all_presents ()
>

public round_start ()
<
if(! total_presents ) return
remove_task ( 1337 )
set_task ( get_pcvar_float ( spawn_time ), «spawn_random_presents» , 1337 )
>

public spawn_random_presents ()
<
new num = random_num ( get_pcvar_num ( min_presents ), get_pcvar_num ( max_presents ))
if( num != 0 ) for(new ii = 0 ; ii num ; ii ++) spawn_present ( present_data [ random ( total_presents )])
>

public give_random_present ( ent , id )
<
new num = random_num ( 1 , 19 )
switch( num )
<
case 1 :
<
cs_set_weapon_ammo ( give_item ( id , «weapon_deagle» ), 1 )
cs_set_user_bpammo ( id , CSW_DEAGLE , 0 );
>
case 2 :
<
give_item ( id , «weapon_hegrenade» )
>
>

remove_entity ( ent )
>

public present_think ( ent )
<
if( get_pcvar_num ( present_light ))
<
static Float : origin [ 3 ]
entity_get_vector ( ent , EV_VEC_origin , origin )

engfunc ( EngFunc_MessageBegin , MSG_PVS , SVC_TEMPENTITY , origin , 0 )
write_byte ( TE_DLIGHT )
engfunc ( EngFunc_WriteCoord , origin [ 0 ])
engfunc ( EngFunc_WriteCoord , origin [ 1 ])
engfunc ( EngFunc_WriteCoord , origin [ 2 ])
write_byte ( get_pcvar_num ( present_light_radius ))
write_byte ( entity_get_int ( ent , EV_INT_iuser1 ))
write_byte ( entity_get_int ( ent , EV_INT_iuser2 ))
write_byte ( entity_get_int ( ent , EV_INT_iuser3 ))
write_byte ( 2 )
write_byte ( 0 )
message_end ()
>

if( get_pcvar_num ( present_rot ))
<
static Float : angles [ 3 ]
entity_get_vector ( ent , EV_VEC_angles , angles )

angles [ 1 ]—

entity_set_vector ( ent , EV_VEC_angles , angles )
>

entity_set_float ( ent , EV_FL_nextthink , halflife_time () + 0.01 )
>

public remove_all_presents () remove_entity_name ( «info_present» )

public load_presents ()
<
total_presents = 0

Источник

Error 020 invalid symbol name

evgeniy777 писал(а): Здравствуйте,вы можете написать плагин для ксс что бы можно было игроку не хорошему который играет и говорит не хорошие вещи про родных сломать хоят бы кс ?

error 020: invalid symbol name

  • Список форумовAMX Mod XСкриптинг

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

error 020: invalid symbol name

vishnevskiy » 02 дек 2014, 19:26

Здравствуйте, сегодня решил переписать плагин со спавном коробок с оружием. Туда включил HE и дигл. При компиляции возникла ошибка:

Код: Выделить всё vish.sma(28) : error 020: invalid symbol name «»
Долго ломал голову, что с ней сделать. Короче прошу помощи!

if( total_presents == PRESENT_LIMIT )
<
console_print ( id , «Превышен лимит боксов!» , PRESENT_LIMIT )
return PLUGIN_HANDLED
>

new Float : origin [ 3 ]
entity_get_vector ( id , EV_VEC_origin , origin )

origin [ 2 ] -= 30.0

save_present ( id , origin )

return PLUGIN_HANDLED
>

public admin_present_remove ( id , level , cid )
<
if(! cmd_access ( id , level , cid , 1 )) return PLUGIN_HANDLED

remove_all_presents ()
console_print ( id , «Все боксы удалены на этот раунд!» )

return PLUGIN_HANDLED
>

public admin_present_stop ( id , level , cid )
<
if(! cmd_access ( id , level , cid , 1 )) return PLUGIN_HANDLED

remove_all_presents ()
total_presents = 0
console_print ( id , «Все боксы удалены на этой карте!» )

return PLUGIN_HANDLED
>

public admin_present_start ( id , level , cid )
<
if(! cmd_access ( id , level , cid , 1 ) || total_presents > 0 ) return PLUGIN_HANDLED

remove_all_presents ()
load_presents ()
console_print ( id , «Все боксы востановлены на этой карте!» )

return PLUGIN_HANDLED
>

public round_end ()
<
if(! total_presents ) return
remove_all_presents ()
>

public round_start ()
<
if(! total_presents ) return
remove_task ( 1337 )
set_task ( get_pcvar_float ( spawn_time ), «spawn_random_presents» , 1337 )
>

public spawn_random_presents ()
<
new num = random_num ( get_pcvar_num ( min_presents ), get_pcvar_num ( max_presents ))
if( num != 0 ) for(new ii = 0 ; ii num ; ii ++) spawn_present ( present_data [ random ( total_presents )])
>

public give_random_present ( ent , id )
<
new num = random_num ( 1 , 19 )
switch( num )
<
case 1 :
<
cs_set_weapon_ammo ( give_item ( id , «weapon_deagle» ), 1 )
cs_set_user_bpammo ( id , CSW_DEAGLE , 0 );
>
case 2 :
<
give_item ( id , «weapon_hegrenade» )
>
>

remove_entity ( ent )
>

public present_think ( ent )
<
if( get_pcvar_num ( present_light ))
<
static Float : origin [ 3 ]
entity_get_vector ( ent , EV_VEC_origin , origin )

engfunc ( EngFunc_MessageBegin , MSG_PVS , SVC_TEMPENTITY , origin , 0 )
write_byte ( TE_DLIGHT )
engfunc ( EngFunc_WriteCoord , origin [ 0 ])
engfunc ( EngFunc_WriteCoord , origin [ 1 ])
engfunc ( EngFunc_WriteCoord , origin [ 2 ])
write_byte ( get_pcvar_num ( present_light_radius ))
write_byte ( entity_get_int ( ent , EV_INT_iuser1 ))
write_byte ( entity_get_int ( ent , EV_INT_iuser2 ))
write_byte ( entity_get_int ( ent , EV_INT_iuser3 ))
write_byte ( 2 )
write_byte ( 0 )
message_end ()
>

if( get_pcvar_num ( present_rot ))
<
static Float : angles [ 3 ]
entity_get_vector ( ent , EV_VEC_angles , angles )

angles [ 1 ]—

entity_set_vector ( ent , EV_VEC_angles , angles )
>

entity_set_float ( ent , EV_FL_nextthink , halflife_time () + 0.01 )
>

public remove_all_presents () remove_entity_name ( «info_present» )

public load_presents ()
<
total_presents = 0

Источник

Форум Pawn.Wiki — Воплоти мечту в реальность!: Error 020 + Error 028 + Error 001 + Warning 215 — Форум Pawn.Wiki — Воплоти мечту в реальность!

  • Pawn скриптинг
  • Первая помощь
  • Проблемы с компилированием
  • Правила форума
  • Просмотр новых публикаций

  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 06 апреля 20

Ошибка (4820) : error 020: invalid symbol name «»
Строка 4820:
Ошибки (8076):
(8076) : error 028: invalid subscript (not an array or too many subscripts): «speed_global_td»
(8076) : warning 215: expression has no effect
(8076) : error 001: expected token: «;», but found «]»
(8076) : error 029: invalid expression, assumed zero
(8076) : fatal error 107:
Строка 8076:

  • Группа: Активные пользователи
  • Сообщений: 827
  • Регистрация: 25 июля 16

  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 06 апреля 20

Это где ошибка 20

  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 06 апреля 20

Это где ошибка 20

  • Группа: Активные пользователи
  • Сообщений: 827
  • Регистрация: 25 июля 16

Сообщение отредактировал 20th century: 07 апреля 2020 — 22:46

  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 06 апреля 20

Появились такие ошибки

  • Группа: Активные пользователи
  • Сообщений: 827
  • Регистрация: 25 июля 16

  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 06 апреля 20

  • Группа: Активные пользователи
  • Сообщений: 827
  • Регистрация: 25 июля 16

Что бы каждый раз не писать сюда по мелочи, объясню. Ты создал глобальный текстдрав, но везде пытаешься работать с ним как с текстдравом для игрока.
По данному участку кода понял, что так и нужно, поэтому верни все обратно и создай текстдрав правильно.

Пример привёл с первым текстдравом, тебе нужно исправить все 25, если они тоже созданы как глобальные.

Сообщение отредактировал 20th century: 07 апреля 2020 — 23:16

Источник

  • Команда форума
  • #1

[SourcePawn] Урок 2Установка и компиляция плагинов

<- К содержанию

  • Установка плагинов:

    Типы файлов:

    • .smx— Сам плагин после компилирования (нужен для работы).
      Расположение: addons/sourcemod/plugins/
    • .sp — Файл с исходным кодом (исходник нужен для компиляции, не нужен для работы).
      Расположение: addons/sourcemod/scripting/
    • .phrases.txt — Файл перевода (нужен для работы).
      Расположение: addons/sourcemod/translations/
    • .inc — Файл, в котором хранятся функции плагина (нужен для компиляции, не нужен для работы).
      Расположение: addons/sourcemod/scripting/include/
    • .cfg — Файл конфигурации плагина (нужен для работы).
      Расположение зависит от плагина. Часто генерируется по пути cfg/sourcemod/
    • .txt — Может быть использован как конфиг или как языковой файл (нужен для работы).
      Расположение зависит от плагина.
    • .ini — Конфигурационный файл (нужен для работы).
      Расположение зависит от плагина.

    Для установки плагина нужно разложить все файлы плагина по папкам указанным выше.

    Чтобы проверить работу плагина:

    Запускаем сервер, заходим в его консоль и пишем sm plugins list . В консоли появиться список работающих плагинов:

    upload_2016-9-5_17-40-35.png

    Проверяем есть ли в списке установленный Вами плагин, если он там есть, значит Вы сделали все правильно.

    • Команды SourceMod для работы с плагинами:
      sm plugins команда
      Команды:

      • info — Information about a plugin/Показывает информацию о плагине
      • list — Show loaded plugins/Выводит список установленных плагинов
      • load — Load a plugin/Загружает указанный плагин
      • load_lock — Prevents any more plugins from being loaded/Блокирует загрузку плагинов
      • load_unlock — Re-enables plugin loading/Снимает блокировку загрузки плагинов
      • refresh — Reloads/refreshes all plugins in the plugins folder/Обновляет/перезагружает загруженные плагины
      • reload — Reloads a plugin/Перезагружает указанный плагин
      • unload — Unload a plugin/Выгружает указанный плагин
      • unload_all — Unloads all plugins/Выгружает все плагины
  • Компиляция плагинов:

    Для редактирования исходников плагинов рекомендую использовать редактор Notepad++ (кликабельно)

    • Если у вас код не в файле .sp, а например, с форума то:
      • Создайте новый файл с расширением .sp
      • Откройте его с помощь notepad++ (см. выше)
      • Установите для него кодировку UTF-8 без BOM

        upload_2016-9-5_20-1-13.png

      • Скопируйте в него нужный код
      • Сохраните изменения
      • Произведите компиляцию (см. ниже)
    • Компиляция на Windows

      Скачайте SourceMod и распакуйте файлы из архива (в частности папку addons/sourcemod/scripting/ со всем её содержимым) в любое место, например, на рабочий стол. Будем называть её «папкой компилятора«. Из всего её содержимого необходимы только 2 файла: compile.exe, spcomp.exe и папка include.
      Затем положите в папку компилятора исходники вашего плагина (файлы с расширением *.sp и если есть файлы *.inc в папку include/).
      Отредактируйте исходник как вам нужно и затем

      перетащите главный файл .sp на сompile.exe — вы увидите черное окно с отчетом о компиляции.
      Если все в порядке и ошибок нет закройте это окно и можете забирать *.smx файл из папки compiled/.

      upload_2016-9-5_17-47-18.png

      Если у вас возникли ошибки при компиляции — необходимо их исправить.

    • Компиляция на Linux

      Чтобы скомпилировать плагин в unix системах:

      1. Откройте терминал (консоль)
      2. Перейдите в директорию /addons/sourcemod/scripting/ с помощью команды cd
      3. Скопируйте файл содержащий исходный код плагина (имеет расширение *.sp) в эту директорию командой cp
      4. Для компиляции некоторых плагинов нужны *.inc файлы которые нужно копировать в папку addons/sourcemod/scripting/include и затем компилировать плагин
      5. Выполните команду:
        ./compile.sh имя_плагина.sp

        Плагин должен скомпилироваться.

    Внимание! Нет разницы на какой OC компилировать плагины. Если ваш сервер работает на Linux, то плагины скомпилированные на Windows там так же будут работать.

    Если при компиляции возникли ошибки вам сюда -> Ошибки и предупреждения при компиляции

    Часть информации взята здесь.

Последнее редактирование: 21 Июл 2017

  • Команда форума
  • #2

Возможные ошибки при компиляции

Для начала разберём разницу между ошибкой (error) и предупреждением (warning).

  • Предупреждение — то, что может выдать Вам компилятор в случае «некритичной ошибки» (По мнению компилятора) допущенной в исходном коде плагина. Такая ошибка не будет влиять на работу плагина (Под сомнением), но лучше писать так, чтобы компилятор не ругался.
  • Ошибка — ситуация, в которой компилятор «откажет» Вам в компилировании плагина, т.е. он не будет компилировать Ваш плагин, пока Вы не устраните ошибку в исходном коде.

Обычно, когда компилятор предупреждает или выдаёт ошибку, он указывает строку в которой допущена ошибка (или в которой компилятор «

сомневается

«)

Коды ошибок

  • error 001: expected token: «%s», but found «%s» — ожидался символ: «%s», но был найден «%s»;
  • error 002: only a single statement (or expression) can follow each «case» — только одно заявление (или выражение) могут следовать за «case»;
  • error 003: declaration of a local variable must appear in a compound block — объявленная локальная переменная должна использоваться в этом же блоке;
  • error 004: function «%s» is not implemented — функция %s не реализована;
  • error 005: function may not have arguments — функция не имеет аргументов;
  • error 006: must be assigned to an array — должен быть присвоен массив;
  • error 007: operator cannot be redefined — оператор не может быть установлен еще раз;
  • error 008: must be a constant expression; assumed zero — должно быть постоянным выражением; равным нулю;
  • error 009: invalid array size (negative or zero) — неверный размер массива (отрицательный или 0);
  • error 010: invalid function or declaration — неизвестная функция или декларация;
  • error 011: invalid outside functions — неверно вне функции;
  • error 012: invalid function call, not a valid address — неверный вызов функции, неверный адрес;
  • error 013: no entry point (no public functions) — нет точки входа (не public функция);
  • error 014: invalid statement; not in switch — неверный оператор; не в switch;
  • error 015: «default» case must be the last case in switch statement — «default» должен быть последним условием в switch;
  • error 016: multiple defaults in «switch» — несколько «default» в switch;
  • error 017: undefined symbol «%s» — неизвестный символ «%s»;
  • error 018: initialization data exceeds declared size — данные массива превышают его размер;
  • error 019: not a label: %s» — не метка «%s»;
  • error 020: invalid symbol name «%s» — неверное имя символа «%s»;
  • error 021: symbol already defined: %s» — символ уже объявлен: «%s»;
  • error 022: must be lvalue (non-constant) — должно быть левосторонним (нет постоянной);
  • error 023: array assignment must be simple assignment — назначение массива должно быть простым;
  • error 024: «break» or «continue» is out of context — «break» или «continue» вне контекста;
  • error 025: function heading differs from prototype — функция заголовка отличается от прототипа;
  • error 026: no matching «#if…» — не найдено «#if…»;
  • error 027: invalid character constant — недопустимый символ в постоянной;
  • error 028: invalid subscript (not an array or too many subscripts): «%s» — неверный индекс (это не массив или слишком много индексов): «%s»;
  • error 029: invalid expression, assumed zero — неверное выражение, нет результата;
  • error 030: compound statement not closed at the end of file — составной оператор не закрыт в конце файла;
  • error 031: unknown directive — неизвестная директива;
  • error 032: array index out of bounds (variable «%s») — индекс массива превышен;
  • error 033: array must be indexed (variable «%s») — массив должен быть проиндексирован;
  • error 034: argument does not have a default value (argument %d) — аргумент не имеет начального значения (аргумент %d);
  • error 035: argument type mismatch (argument %d) — несоответствие типа аргумента (аргумент %d);
  • error 036: empty statement — пустой оператор;
  • error 037: invalid string (possibly non-terminated string) — неправильная строка;
  • error 038: extra characters on line — лишние символы в строке;
  • error 039: constant symbol has no size — символьная константа не имеет размера;
  • error 040: duplicate «case» label (value %d) — несколько раз объявлен «case» с одним тем же параметром;
  • error 041: invalid ellipsis, array size is not known — размер массива неизвестен;
  • error 042: invalid combination of class specifiers — недопустимое сочетание класса;
  • error 043: character constant exceeds range for packed string — символьная константа превышает размер строки;
  • error 044: positional parameters must precede all named parameters — позиционные параметры должны предшествовать всем именованные параметры;
  • error 045: too many function arguments — слишком много аргументов у функции;
  • error 046: unknown array size (variable «%s») — неизвестный размер массива;
  • error 047: array sizes do not match, or destination array is too small — размеры массива конфликтуют, либо целевой массив слишком маленький;
  • error 048: array dimensions do not match — размеры массива не совпадают;
  • error 049: invalid line continuation — неправильное продолжение строки;
  • error 050: invalid range — неверный диапазон;
  • error 051: invalid subscript, use «[ ]» operators on major dimensions — неправильный индекс, используйте «[]»;
  • error 052: multi-dimensional arrays must be fully initialized — много-размерные массивы должны быть полностью определены;
  • error 053: exceeding maximum number of dimensions — превышение максимального числа измерений;
  • error 054: unmatched closing brace — не найдена закрывающаяся скобка;
  • error 055: start of function body without function header — начало функции без заголовка;
  • error 056: arrays, local variables and function arguments cannot be public (variable «%s») — ?????;
  • error 057: unfinished expression before compiler directive — незавершенное выражение для компилятора;
  • error 058: duplicate argument; same argument is passed twice — дублирование аргумента; Аргумент передается несколько раз;
  • error 059: function argument may not have a default value (variable «%s») — аргумент не может иметь значение по-умолчанию;
  • error 060: multiple «#else» directives between «#if … #endif» — Несколько «#else» между «#if … #endif» — несколько «#else» между «#if и #endif»;
  • error 061: «#elseif» directive follows an «#else» directive — «#else» перед «#elseif»;
  • error 062: number of operands does not fit the operator — число операндов не соответствует оператору;
  • error 063: function result tag of operator «%s» must be «%s» — Результат функции %s должен быть %s;
  • error 064: cannot change predefined operators — невозможно изменить уже определенные операторы;
  • error 065: function argument may only have a single tag (argument %d) — в этой функции может быть только один аргумент;
  • error 066: function argument may not be a reference argument or an array (argument «%s») — аргумент функции не может быть ссылкой или массивом;
  • error 067: variable cannot be both a reference and an array (variable «%s») — Переменная не может быть как массив или ссылка;
  • error 068: invalid rational number precision in #pragma — неверное число в #pragma;
  • error 069: rational number format already defined — формат рационального числа уже определен;
  • error 070: rational number support was not enabled — рациональное число не поддерживается;
  • error 071: user-defined operator must be declared before use (function «%s») — объявленный оператор должен быть перед использованием;
  • error 072: «sizeof» operator is invalid on «function» symbols — оператор «sizeof» не может быть использован для символов функции;
  • error 073: function argument must be an array (argument «%s») — аргумент %s должен быть массивом;
  • error 074: #define %s must start with an alphabetic character — #define должен начинаться с буквы;
  • error 075: input line too long (after substitutions — введенная строка слишком длинная;
  • error 076: syntax *error in the expression, or invalid function call — неправильный синтаксис или неправильный вызов функции;
  • error 077: malformed UTF-8 encoding, or corrupted file: %s — плохая кодировка UTF-8 или плохой файл: %s;
  • error 078: function uses both «return» and «return <value>» — функция использует «return» и «return <значение>»;
  • error 079: inconsistent return types (array & non-array) — несовместимость типов возвращенных результатов;
  • error 080: unknown symbol, or not a constant symbol (symbol «%s») — неизвестный или непостоянный символ: %s;
  • error 081: cannot take a tag as a default value for an indexed array parameter (symbol «%s») — не могу принять тег в качестве значения по умолчанию для индексированного параметра-массива (символ «% S»);
  • error 082: user-defined operators and native functions may not have states — созданные функции или операторы не имеют состояния;
  • error 083: a function may only belong to a single automaton (symbol «%s») — функция может принадлежать только к одной автоматизации;
  • error 084: state conflict: one of the states is already assigned to another implementation (symbol «%s») — Кофликт state(функция созданий структур):одна из state уже создана в другом месте(символ %s);
  • error 085: no states are defined for function «%s» — нет состояний, определенных для функции «%s»;
  • error 086: unknown automaton «%s» — неизвестная автоматизация «%s»;
  • error 087: unknown state «%s» for automaton «%s» — неизвестное состояние «%s» в автоматизации «%s»;
  • error 088: number of arguments does not match definition — количество аргументов не совпадает с объявленными в функции;

Коды «Фатальных ошибок»

  • fatal error 100: cannot read from file: «%s» — невозможно прочитать из файла «%s»;
  • fatal error 107: too many error messages on one line — слишком много сообщений об ошибке в одной строке;

Коды предупреждений

  • warning 200: symbol «%s» is truncated to 31 characters — название переменной «%s» обрезано до 31 символа;
  • warning 201: redefinition of constant/macro (symbol «%s») — повторно установлена постоянная/макро (переменная «%s»);
  • warning 202: number of arguments does not match definition — несовпадение количества аргументов;
  • warning 203: symbol is never used: «%s» — переменная никогда не использовалась: «%s»;
  • warning 204: symbol is assigned a value that is never used: «%s» — переменной установлено значение которое никогда не использовалось: «%s»;
  • warning 209: function «%s» should return a value — функция «%s» ничего не возвращает;
  • warning 211: possibly unintended assignment — в условии использовано не сравнение, а присвоение;
  • warning 213: tag mismatch — несоответствие аргументов;
  • warning 215: expression has no effect — выражение не имеет смысла;
  • warning 216: nested comment — вложенный комментарий (вынесите его за функцию);
  • warning 217: loose indentation — не выровненная строка;
  • warning 219: local variable «%s» shadows a variable at a preceding level — локальная переменная «%s» встречается на предыдущем уровне;
  • warning 224: indeterminate array size in «sizeof» expression (symbol «%s») — неопределенный размер массива в «sizeof» выражении (переменная «%s»);
  • warning 225: unreachable code — невыполнимый код;
  • warning 234: symbol «%s» is marked as deprecated: Do not use this function — Функция не рекомендуется к использованию;;
  • warning 235: public function lacks forward declaration (symbol «%s») — у public функции отсутствует forward (символ «%s»);

Последнее редактирование: 6 Сен 2016

  • #3

Обычно, когда компилятор предупреждает или выдаёт ошибку, он указывает строку в которой допущена ошибка (или в которой компилятор «сомневается»)

Я бы пример добавил:
Например если ошибка на 37 строке:
/home/home/GIT/addons/sourcemod/scripting/my_plugin.sp(37) : error 017: undefined symbol «EventHookM»

+ ещё стоит написать что если даже при компиляции не возникло ошибок и предупреждений, то нужно проверить /addons/sourcemod/logs/errors<сегодняшнее число>.log после того как плагин немного поработает.

  • #4

Возможные ошибки при компиляции

Для начала разберём разницу между ошибкой (error) и предупреждением (warning).

  • Предупреждение — то, что может выдать Вам компилятор в случае «некритичной ошибки» (По мнению компилятора) допущенной в исходном коде плагина. Такая ошибка не будет влиять на работу плагина (Под сомнением), но лучше писать так, чтобы компилятор не ругался.
    Ошибка — ситуация, в которой компилятор «откажет» Вам в компилировании плагина, т.е. он не будет компилировать Ваш плагин, пока Вы не устраните ошибку в исходном коде.

Обычно, когда компилятор предупреждает или выдаёт ошибку, он указывает строку в которой допущена ошибка (или в которой компилятор «

сомневается

«)

Коды ошибок

  • error 001: expected token: «%s», but found «%s» — ожидался символ: «%s», но был найден «%s»;
    error 002: only a single statement (or expression) can follow each «case» — только одно заявление (или выражение) могут следовать за «case»;
    error 003: declaration of a local variable must appear in a compound block — объявленная локальная переменная должна использоваться в этом же блоке;
    error 004: function «%s» is not implemented — функция %s не реализована;
    error 005: function may not have arguments — функция не имеет аргументов;
    error 006: must be assigned to an array — должен быть присвоен массив;
    error 007: operator cannot be redefined — оператор не может быть установлен еще раз;
    error 008: must be a constant expression; assumed zero — должно быть постоянным выражением; равным нулю;
    error 009: invalid array size (negative or zero) — неверный размер массива (отрицательный или 0);
    error 010: invalid function or declaration — неизвестная функция или декларация;
    error 011: invalid outside functions — неверно вне функции;
    error 012: invalid function call, not a valid address — неверный вызов функции, неверный адрес;
    error 013: no entry point (no public functions) — нет точки входа (не public функция);
    error 014: invalid statement; not in switch — неверный оператор; не в switch;
    error 015: «default» case must be the last case in switch statement — «default» должен быть последним условием в switch;
    error 016: multiple defaults in «switch» — несколько «default» в switch;
    error 017: undefined symbol «%s» — неизвестный символ «%s»;
    error 018: initialization data exceeds declared size — данные массива превышают его размер;
    error 019: not a label: %s» — не метка «%s»;
    error 020: invalid symbol name «%s» — неверное имя символа «%s»;
    error 021: symbol already defined: %s» — символ уже объявлен: «%s»;
    error 022: must be lvalue (non-constant) — должно быть левосторонним (нет постоянной);
    error 023: array assignment must be simple assignment — назначение массива должно быть простым;
    error 024: «break» or «continue» is out of context — «break» или «continue» вне контекста;
    error 025: function heading differs from prototype — функция заголовка отличается от прототипа;
    error 026: no matching «#if…» — не найдено «#if…»;
    error 027: invalid character constant — недопустимый символ в постоянной;
    error 028: invalid subscript (not an array or too many subscripts): «%s» — неверный индекс (это не массив или слишком много индексов): «%s»;
    error 029: invalid expression, assumed zero — неверное выражение, нет результата;
    error 030: compound statement not closed at the end of file — составной оператор не закрыт в конце файла;
    error 031: unknown directive — неизвестная директива;
    error 032: array index out of bounds (variable «%s») — индекс массива превышен;
    error 033: array must be indexed (variable «%s») — массив должен быть проиндексирован;
    error 034: argument does not have a default value (argument %d) — аргумент не имеет начального значения (аргумент %d);
    error 035: argument type mismatch (argument %d) — несоответствие типа аргумента (аргумент %d);
    error 036: empty statement — пустой оператор;
    error 037: invalid string (possibly non-terminated string) — неправильная строка;
    error 038: extra characters on line — лишние символы в строке;
    error 039: constant symbol has no size — символьная константа не имеет размера;
    error 040: duplicate «case» label (value %d) — несколько раз объявлен «case» с одним тем же параметром;
    error 041: invalid ellipsis, array size is not known — размер массива неизвестен;
    error 042: invalid combination of class specifiers — недопустимое сочетание класса;
    error 043: character constant exceeds range for packed string — символьная константа превышает размер строки;
    error 044: positional parameters must precede all named parameters — позиционные параметры должны предшествовать всем именованные параметры;
    error 045: too many function arguments — слишком много аргументов у функции;
    error 046: unknown array size (variable «%s») — неизвестный размер массива;
    error 047: array sizes do not match, or destination array is too small — размеры массива конфликтуют, либо целевой массив слишком маленький;
    error 048: array dimensions do not match — размеры массива не совпадают;
    error 049: invalid line continuation — неправильное продолжение строки;
    error 050: invalid range — неверный диапазон;
    error 051: invalid subscript, use «[ ]» operators on major dimensions — неправильный индекс, используйте «[]»;
    error 052: multi-dimensional arrays must be fully initialized — много-размерные массивы должны быть полностью определены;
    error 053: exceeding maximum number of dimensions — превышение максимального числа измерений;
    error 054: unmatched closing brace — не найдена закрывающаяся скобка;
    error 055: start of function body without function header — начало функции без заголовка;
    error 056: arrays, local variables and function arguments cannot be public (variable «%s») — ?????;
    error 057: unfinished expression before compiler directive — незавершенное выражение для компилятора;
    error 058: duplicate argument; same argument is passed twice — дублирование аргумента; Аргумент передается несколько раз;
    error 059: function argument may not have a default value (variable «%s») — аргумент не может иметь значение по-умолчанию;
    error 060: multiple «#else» directives between «#if … #endif» — Несколько «#else» между «#if … #endif» — несколько «#else» между «#if и #endif»;
    error 061: «#elseif» directive follows an «#else» directive — «#else» перед «#elseif»;
    error 062: number of operands does not fit the operator — число операндов не соответствует оператору;
    error 063: function result tag of operator «%s» must be «%s» — Результат функции %s должен быть %s;
    error 064: cannot change predefined operators — невозможно изменить уже определенные операторы;
    error 065: function argument may only have a single tag (argument %d) — в этой функции может быть только один аргумент;
    error 066: function argument may not be a reference argument or an array (argument «%s») — аргумент функции не может быть ссылкой или массивом;
    error 067: variable cannot be both a reference and an array (variable «%s») — Переменная не может быть как массив или ссылка;
    error 068: invalid rational number precision in #pragma — неверное число в #pragma;
    error 069: rational number format already defined — формат рационального числа уже определен;
    error 070: rational number support was not enabled — рациональное число не поддерживается;
    error 071: user-defined operator must be declared before use (function «%s») — объявленный оператор должен быть перед использованием;
    error 072: «sizeof» operator is invalid on «function» symbols — оператор «sizeof» не может быть использован для символов функции;
    error 073: function argument must be an array (argument «%s») — аргумент %s должен быть массивом;
    error 074: #define %s must start with an alphabetic character — #define должен начинаться с буквы;
    error 075: input line too long (after substitutions — введенная строка слишком длинная;
    error 076: syntax *error in the expression, or invalid function call — неправильный синтаксис или неправильный вызов функции;
    error 077: malformed UTF-8 encoding, or corrupted file: %s — плохая кодировка UTF-8 или плохой файл: %s;
    error 078: function uses both «return» and «return <value>» — функция использует «return» и «return <значение>»;
    error 079: inconsistent return types (array & non-array) — несовместимость типов возвращенных результатов;
    error 080: unknown symbol, or not a constant symbol (symbol «%s») — неизвестный или непостоянный символ: %s;
    error 081: cannot take a tag as a default value for an indexed array parameter (symbol «%s») — не могу принять тег в качестве значения по умолчанию для индексированного параметра-массива (символ «% S»);
    error 082: user-defined operators and native functions may not have states — созданные функции или операторы не имеют состояния;
    error 083: a function may only belong to a single automaton (symbol «%s») — функция может принадлежать только к одной автоматизации;
    error 084: state conflict: one of the states is already assigned to another implementation (symbol «%s») — Кофликт state(функция созданий структур):одна из state уже создана в другом месте(символ %s);
    error 085: no states are defined for function «%s» — нет состояний, определенных для функции «%s»;
    error 086: unknown automaton «%s» — неизвестная автоматизация «%s»;
    error 087: unknown state «%s» for automaton «%s» — неизвестное состояние «%s» в автоматизации «%s»;
    error 088: number of arguments does not match definition — количество аргументов не совпадает с объявленными в функции;

Коды «Фатальных ошибок»

  • fatal error 100: cannot read from file: «%s» — невозможно прочитать из файла «%s»;
    fatal error 107: too many error messages on one line — слишком много сообщений об ошибке в одной строке;

Коды предупреждений

  • warning 200: symbol «%s» is truncated to 31 characters — название переменной «%s» обрезано до 31 символа;
    warning 201: redefinition of constant/macro (symbol «%s») — повторно установлена постоянная/макро (переменная «%s»);
    warning 202: number of arguments does not match definition — несовпадение количества аргументов;
    warning 203: symbol is never used: «%s» — переменная никогда не использовалась: «%s»;
    warning 204: symbol is assigned a value that is never used: «%s» — переменной установлено значение которое никогда не использовалось: «%s»;
    warning 209: function «%s» should return a value — функция «%s» ничего не возвращает;
    warning 211: possibly unintended assignment — в условии использовано не сравнение, а присвоение;
    warning 213: tag mismatch — несоответствие аргументов;
    warning 215: expression has no effect — выражение не имеет смысла;
    warning 216: nested comment — вложенный комментарий (вынесите его за функцию);
    warning 217: loose indentation — не выровненная строка;
    warning 219: local variable «%s» shadows a variable at a preceding level — локальная переменная «%s» встречается на предыдущем уровне;
    warning 224: indeterminate array size in «sizeof» expression (symbol «%s») — неопределенный размер массива в «sizeof» выражении (переменная «%s»);
    warning 225: unreachable code — невыполнимый код;
    warning 234: symbol «%s» is marked as deprecated: Do not use this function — Функция не рекомендуется к использованию;;
    warning 235: public function lacks forward declaration (symbol «%s») — у public функции отсутствует forward (символ «%s»);

Мой пост :D

  • Команда форума
  • #5

Я нашел в базе своего старого форума, решил что будет полезно

  • #6

Я нашел в базе своего старого форума, решил что будет полезно

Я знаю, поэтому и улыбнуло)

  • Команда форума
  • #7

@Антон Облаков, spcomp.exe так же обязан лежать в папке с компилятором.

  • #9

Ещё было бы прекрасней, по пару примеров исправления ошибок и предупреждений =).
Оффтоп

  • Команда форума
  • #10

@alexmy, разве перевода не достаточно? Как по мне — вполне.

  • Команда форума
  • #11

Ещё было бы прекрасней, по пару примеров исправления ошибок и предупреждений =).

Что именно интересует? Могу написать.

  • #12

пару примеров исправления ошибок и предупреждений

Можно создать основную тему по исправлению

error/warning

, по мере наполнения базы вопросов/ответов, рядом с ‘Кодом №’ — сделать отсылки на примерное решение.

В самой теме перед реквестом, обязательное прочтение (‘Кодом №’) на уже готовые более-менее решения.

  • #13

Смысл такой, есть вообщем старые плагины и синтаксис там соответственно древний :D. А при компиляции под новым синтаксисом, соответственно ошибок куча. Меня интересует сама «корректировка» под новый синтаксис. Вот плагин [L4D(2)] MultiSlots — AlliedModders куча ошибок, меня интересует сами части исправления. В интернете нечего подобного нету попадает хлам всякий и не более.

  • Команда форума
  • #14

@alexmy, оно даже под 1.7 не компилится.
upload_2017-3-3_18-56-10.png

  • #15

@alexmy, оно даже под 1.7 не компилится.
Посмотреть вложение 21768

И такого хлама все больше и больше будет с обновлением SM :D. Вот хотелось бы хотя бы простые примеры с исправление. не обязательно с этим плагином.

  • Команда форума
  • #16

@alexmy, тут проблема вовсе не в СМ.
Ошибка 017 (она же «Undefined symbol») сигнализирует о том, что есть вызов функции или применение переменной, которая не существует.

  • #17

@alexmy, тут проблема вовсе не в СМ.
Ошибка 017 (она же «Undefined symbol») сигнализирует о том, что есть вызов функции или применение переменной, которая не существует.

Ну вот я пробовал компилятором 1.5.3 почему то не выдает не одной ошибки и не предупреждение. Вот ошибка с плагина по ссылке

error 017: undefined symbol "SpawnFakeClientAndTeleport"

Вот это часть:
Оффтоп
тут её не должно быть… по сути или я что то не понимаю или компилятор в другой части когда находит это ошибку и бьет по всем SpawnFakeClientAndTeleport

  • #18

старые плагины и синтаксис там соответственно древний :D. А при компиляции под новым синтаксисом, соответственно ошибок куча. Меня интересует сама «корректировка» под новый синтаксис.

Ошибки ввида ‘error 147: new-style declarations are required’ при ‘#pragma newdecls required’ лучше преобрести отдельную тему ‘new-style SourcePawn Transitional Syntax’ , например если @R1KO согласится, то за основу содержания ‘Темы Сообщения’ — перевода на новый синтаксис, можно взять Ядро плагина — [VIP] Core (либо другой, где присутствует множество функций) — [Shop] Core, Ядро плагина — [Shop] Core (Fork).

Что имеем:
#a. некоторый разбор перевода new-style.
#b. перевод большого выбранного ядра.
#c. возможное нахождение трудно замечаемых ошибок/недочетов.
#d. отсутствующие примеры функций будут позже в комментариях.

Если с выходом нового sm — старый синтаксис будет обратно

не совместим

, то к этому времени у большенства будет имется некий опыт, для перевода

не

обновляемых

нужных

плагинов, на актуальный sm.

Чем больше придерживаются к актуальному, прежде всего стабильному sm — тем ошибки идентичные, которые легче найти/отписать решение, либо иначе самому написать в BugReport т.к. ситуация позволяет.

P.S.:
для (v34) старее sm_1.7- есть обновляемая тема [CS:S v34] SourceMod 1.6.x/1.7.x/1.8.x.

Если создавать эти темы, то лучше именно обладателю ядра @R1KO, @FrozDark, …, т.к. может быть будет не приятно, если будут иные «ковырять» код.
И если согласятся, то думаю другие тоже подключаться.

Или просто написать гайд по переводу Ru:Introduction to SourcePawn 1.7, SourcePawn Transitional Syntax и простеньких «побольше» примеров.

Последнее редактирование: 3 Мар 2017

  • Команда форума
  • #19

@DarklSide, у меня уже есть отдельная версия, которую я буду переводить. можно на её примере

  • #20

@R1KO, тогда могу присоединится, т.к. большенство действий является «однотипное» для большого кол-ва кода.
При этом

пометить

места, которые могут войти в содержание темы.

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Error 018 pawn
  • Error 018 initialization data exceeds declared size pawno
  • Error 0176 system security the system has been tampered with
  • Error 001 expected token identifier but found new
  • Error 001 expected token identifier but found integer value

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии