Error 017 undefined symbol name

C:UsersUserDesktopRRPgamemodesnew.pwn(80) : error 017: undefined symbol "NAME" C:UsersUser...


#1

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

Отправлено 27 июля 2020 — 21:12

  • Прохожий

C:UsersUserDesktopRRPgamemodesnew.pwn(80) : error 017: undefined symbol «NAME»
C:UsersUserDesktopRRPgamemodesnew.pwn(83) : error 017: undefined symbol «NAME»
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

2 Errors.
Помогите как решить проблему?

{
GetPlayerName(playerid, player_info[playerid][NAME], MAX_PLAYER_NAME);
static const fmt_query[] = «SELECT `id` FROM `users` WHERE `name` = ‘%s'»;
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)];
format(query, sizeof(query), fmt_query, player_info[playerid][NAME]);
mysql_tquery(dbHandle, query, «CheckRegistration», «i», playerid);
return 1;
}

forward CheckRegistration(playerid);
public CheckRegistration(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows) ShowLogin(playerid);
else ShowRegistration(playerid);
}

stock ShowLogin(playerid)
{
SCM(playerid, COLOR_WHITE, «Игрок зарегистрирован»);
}

stock ShowRegistration(playerid)
{
SCM(playerid, COLOR_WHITE, «Игрок не зарегистрирован»);
}
(только тут ошибки когда убираю NAME проблема то исчезает)

0


#2

Отправлено 27 июля 2020 — 21:26

  • Прохожий

Решил проблему заранее спасибо!

0

From SA-MP Wiki

Jump to: navigation, search

Undefined symbol is a Pawn compiler error message. The Pawn Language Guide formally defines this error as error 017, and explains that the error means «The symbol (variable, constant or function) is not declared«.

The error will look roughly look like this: error 017: undefined symbol «WelcomePlayer»

Cause

The error occurs when a piece of code references a variable, constant or function that the compiler cannot find. Often, this error is encountered by scripters who recklessly copy and paste code from one script to another, not realizing that the code in question depends on other code in the original script. Another, more common mistake made by even the most experienced scripters, is misspelling symbols.

Example with a function

This is example where a function that does not exists is referenced. A reckless copy-paster is copying a piece for code from the original script (awesomeroleplay.pwn) to his or her own (supercoolrp.pwn). awesomeroleplay.pwn compiles without any warnings or errors.

The reckless copy-paster decides to copy this piece of code from the original script:

awesomeroleplay.pwn

public OnPlayerConnect(playerid)
{
    WelcomePlayer(playerid);
}

The reckless copy-paster replaces supercoolrp.pwn’s OnPlayerConnect callback with the one from awesomeroleplay.pwn and then attemps to compile it. The compiler will, however, throw an error: error 017: undefined symbol «WelcomePlayer». This is because the function WelcomePlayer does not exist the paster’s own script. In other words: the piece of code that the reckless copy-paster pasted, depends on other code in awesomeroleplay.pwn. The paster will need to copy the dependent script as well.

In the original script, the function WelcomePlayer is defined.

awesomeroleplay.pwn

WelcomePlayer(playerid)
{
    SendClientMessage(playerid, "Welcome to Interactive Roleplay!", 0xFF0000AA);
}

The reckless copy-paster will need to copy and paste this function into his own script as well to make the code compile correctly. If this function would also depend on other code, the paster will need to copy and paste that code as well. In fact, the paster would need to repeat this step until all dependencies are resolved.

Tips for resolving this error

  • Use Ctrl + F to find the missing symbol (note that the compiler will tell you what symbol is missing after the words undefined symbol!) in the original script. If the symbol is a variable, you will have to copy all code that is relevant to its «ecosystem», that is to say, all code that modifies the variable. For beginning scripters and reckless copy-pasters, this may be hard, because it requires a deep understanding of the code and code paths.
  • Look into the includes of the original script.
  • Make sure you are adding the right includes.
  • Make sure you are not misspelling the symbol.

Стаж: 9 лет 1 месяц

Сообщений: 15547

Благодарностей: 6971

Полезность: 1206



narkk3, amxx 1.8.2? Если да, пробуй так:
Код:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <orpheu>
#include <nvault>
#include <colorchat>

#pragma semicolon 1

#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))
#define inv_bit(%1,%2) %1 ^= (1 << (%2 & 31))

#define is_client(%0) (0 < (%0) <= max_players)
#define is_connected(%0) get_bit(ingame, %0)
#define is_alive(%0) is_user_alive(%0)
#define is_valid_client(%0) (is_client(%0) && is_connected(%0))
#define is_observer(%0) pev(%0, pev_iuser1)
#define is_vip(%0) (user_flags[%0] & _VIP)
#define is_admin(%0) (user_flags[%0] & _ADMIN)
#define is_spectator(%0) (user_team[%0] == TEAM_SPECTATOR)

#define PC PLUGIN_CONTINUE
#define PH PLUGIN_HANDLED
#define PH_MAIN PLUGIN_HANDLED_MAIN

#define printf_chat client_print_color
#define is_said_slash_mute (said[0] == '/' && said[1] == 'm' && said[2] == 'u' && said[3] == 't' && said[4] == 'e')

const MAX_CLIENTS = 32;
const NAME_LEN = 32;
const MSG_LEN = 191;
const ITEM_LEN = 128;
const ALL = 0;
const LOAD = 1;
const SAVE = 0;
const AUTH_LEN = 34;
const IP_LEN = 16;
const POST = 1;
const PRE = 0;

const m_iMenu = 205;
const MENU_OFF = 0;

const _IMMUNITY = ADMIN_IMMUNITY; // flag a
const _ADMIN = ADMIN_BAN; // flag d
const _MAIN_ADMIN = ADMIN_RCON; // flag l
const _VIP = ADMIN_LEVEL_H; // flag t

const LOAD_FLAGS_TASKID = 344733;

const MAX_GAGTIME_AGO = -1800; //время в секундах после которого запись в gag.vault будет считаться устаревшей
new const Float: GAG_TIME[] = {300.0, 600.0, 1200.0, 1800.0, 2700.0, 3600.0, 10800.0, 43200.0, 86400.0}; //время бана в секундах, через запятую можно добавить еще

enum
{
TEAM_UNASSIGNED = 0,
TEAM_TERRORIST = 1,
TEAM_CT = 2,
TEAM_SPECTATOR = 3
}

enum menu_prop
{
BACKNAME = 0,
NEXTNAME,
EXITNAME
}

stock const MENU_PROP_LIST[menu_prop][] = {
"Назад",
"След.",
"Выход"
};

stock const PLAYER[] = "player";
stock const PL_LEAVED[] = "Игрок покинул сервер";
stock const CHAT_INFO_PREFIX[] = "^3[Информация]^1";

stock user_team [MAX_CLIENTS + 1],
user_flags [MAX_CLIENTS + 1],
user_name [MAX_CLIENTS + 1][NAME_LEN],
user_steamid[MAX_CLIENTS + 1][AUTH_LEN],
user_ip [MAX_CLIENTS + 1][IP_LEN];

stock item_name[128], item_info[2], item_status, said[MSG_LEN],
max_players, players_num, ingame, isAlive, gmsgTeamInfo,fpv_gag,
is_gagged_by_admin, is_gagged_chat, is_voice_team, is_voice_vip,
is_gagged[MAX_CLIENTS + 1], gag_data[MAX_CLIENTS + 1], hso_voice,
Float: ungag_time[MAX_CLIENTS + 1], Float: can_speak_after_death_time[MAX_CLIENTS + 1],
Float: auth_delay_load_flags, pcv_auth_delay_load_flags,
Float: block_voice_delay, pcv_can_speak_after_death_delay,
sv_alltalk, pcv_alltalk,
alive_listen_dead, pcv_alive_listen_dead,
dead_listen_dead, pcv_dead_listen_dead,
player_listen_enemy, pcv_player_listen_enemy,
admin_listen_mode, pcv_admin_listen_mode;

native gag_menu_display(id);

public plugin_natives()
{
register_native("gag_menu_display", "_gag_menu_display");
}

public plugin_init()
{
register_plugin ("Gag Me", "1.0", "Free");
register_srvcmd ("amx_reloadcvars", "load_cvars");

fpv_gag = nvault_open("gag");

if (fpv_gag == INVALID_HANDLE) {
set_fail_state("Error opening file: /cstrike/addons/amxmodx/data/vault/gag.vault");
}

register_clcmd ("+voiceteam", "clcmd_voiceteam_plus");
register_clcmd ("-voiceteam", "clcmd_voiceteam_minus");
register_clcmd ("+voicevip", "clcmd_voicevip_plus");
register_clcmd ("-voicevip", "clcmd_voicevip_minus");

register_clcmd ("say", "hook_say");
register_clcmd ("say_team", "hook_say");
register_clcmd ("amx_gagmenu", "clcmd_gagmenu");

RegisterHam (Ham_Spawn, PLAYER, "player_Spawn_Post", POST);
RegisterHam (Ham_Killed, PLAYER, "player_Killed_Post", POST);

hso_voice = CreateHudSyncObj();

gmsgTeamInfo = get_user_msgid ("TeamInfo");
register_message (gmsgTeamInfo, "msg_TeamInfo");

register_forward (FM_SetClientKeyValue, "fwd_FM_SetClientKeyValue", PRE);
OrpheuRegisterHook(OrpheuGetFunction("Voice_SetClientListening"), "Voice_SetClientListening");

max_players = get_maxplayers();
}

public plugin_cfg()
{
load_cvars();
}

public load_cvars()
{
static is_cvars_registered;

if (!is_cvars_registered) {
pcv_auth_delay_load_flags = register_cvar ("auth_delay_load_flags" , "0.0");
pcv_can_speak_after_death_delay = register_cvar ("can_speak_after_death_delay", "5.0");

pcv_alive_listen_dead = register_cvar ("alive_listen_dead" , "0");
pcv_dead_listen_dead = register_cvar ("dead_listen_dead" , "1");
pcv_player_listen_enemy = register_cvar ("player_listen_enemy" , "1");
pcv_admin_listen_mode = register_cvar ("admin_listen_mode" , "2");

pcv_alltalk = get_cvar_pointer ("sv_alltalk");

is_cvars_registered = 1;
}

server_exec();
auth_delay_load_flags = get_pcvar_float (pcv_auth_delay_load_flags);
block_voice_delay = get_pcvar_float (pcv_can_speak_after_death_delay);

alive_listen_dead = get_pcvar_num (pcv_alive_listen_dead);
dead_listen_dead = get_pcvar_num (pcv_dead_listen_dead);
player_listen_enemy = get_pcvar_num (pcv_player_listen_enemy);
admin_listen_mode = get_pcvar_num (pcv_admin_listen_mode);

sv_alltalk = get_pcvar_num(pcv_alltalk);

if (!sv_alltalk) {
set_pcvar_num(pcv_alltalk, 1);
}
}

public client_putinserver(id)
{
clr_bit(is_gagged_by_admin, id);
clr_bit(is_gagged_chat, id);
clr_bit(isAlive, id);
clr_bit(is_voice_team, id);
clr_bit(is_voice_vip, id);

is_gagged[id] = 0;
can_speak_after_death_time[id] = 0.0;

players_num++;
set_bit(ingame, id);

get_user_name (id, user_name[id], NAME_LEN - 1);
get_user_authid (id, user_steamid[id], AUTH_LEN - 1);
get_user_ip(id, user_ip[id], IP_LEN - 1, 1);

if (auth_delay_load_flags > 0.0) {
set_task(auth_delay_load_flags, "delayed_load_flags", id + LOAD_FLAGS_TASKID);
}
else {
delayed_load_flags(id + LOAD_FLAGS_TASKID);
}
}

public delayed_load_flags(id)
{
id -= LOAD_FLAGS_TASKID;

if (is_valid_client(id)) {
user_flags[id] = get_user_flags(id);

if (is_user_bot(id)) {
user_flags[id] |= _VIP;
}

gag_vault(id, LOAD);
}
}

public client_disconnect(id)
{
if (is_connected(id)) {
if (get_bit(is_gagged_by_admin, id)) {
gag_vault(id, SAVE);
}

players_num--;
}

clr_bit(ingame,id);
}

public hook_say(id)
{
read_args (said, charsmax(said));
remove_quotes (said);

if (said[0] == 0) {
return PH;
}

if (get_bit(is_gagged_chat, id)) {
if (get_gametime() <= ungag_time[id]) {
printf_chat(id, print_team_default, "%s Вам запрещено писать в чат.", CHAT_INFO_PREFIX);
return PH;
}
else {
clr_bit(is_gagged_chat, id);
}
}

if (is_said_slash_mute) {
return mute_menu (id);
}

return PC;
}

public player_Spawn_Post(id)
{
if (is_alive(id)) {
set_bit(isAlive, id);
}
}

public player_Killed_Post(id, attacker, should_gib)
{
clr_bit(isAlive, id);

can_speak_after_death_time[id] = get_gametime() + block_voice_delay;
}

public OrpheuHookReturn: Voice_SetClientListening (listener, talker, can_hear)
{
if (listener != talker && is_valid_client(listener) && is_valid_client(talker)) {
if (!CanPlayerHearPlayer(listener, talker)) {
OrpheuSetParam(3, 0);
}
}
}

bool: CanPlayerHearPlayer(listener, talker)
{
static listener_alive, talker_alive;

if (get_bit(is_gagged_by_admin, talker)) {
if (get_gametime() <= ungag_time[talker]) {
return false;
}
else {
clr_bit(is_gagged_by_admin, talker);
}
}

if (get_bit(is_gagged[listener], talker)) {
return false;
}

if (admin_listen_mode == 1) {
if (is_admin(listener) || is_admin(talker)) {
return true;
}
}
else if (admin_listen_mode == 2) {
if (is_admin(listener) && is_spectator(listener)) {
return true;
}

if (is_admin(talker) && is_spectator(talker)) {
return true;
}
}

if (get_bit(is_voice_vip, talker) && is_vip(listener)) {
return true;
}

listener_alive = get_bit(isAlive, listener);
talker_alive = get_bit(isAlive, talker);

if (user_team[listener] != user_team[talker]) {
if (!player_listen_enemy && dead_listen_dead && !listener_alive && !talker_alive) {
return true;
}

if (user_team[listener] == TEAM_CT && user_team[talker] == TEAM_TERRORIST) {
return (player_listen_enemy && !get_bit(is_voice_team, talker));
}

if (user_team[listener] == TEAM_TERRORIST && user_team[talker] == TEAM_CT) {
return (player_listen_enemy && !get_bit(is_voice_team, talker));
}
}

if (is_observer(listener)) {
return true;
}

if (listener_alive) {
if (!talker_alive) {
return (alive_listen_dead || get_gametime() < can_speak_after_death_time[talker]);
}
}
else {
if (talker_alive) {
return true;
}
}

return listener_alive && talker_alive;
}

public clcmd_voiceteam_plus(id)
{
set_bit(is_voice_team, id);
client_cmd (id, "+voicerecord");

return PH;
}

public clcmd_voiceteam_minus(id)
{
clr_bit(is_voice_team, id);
client_cmd (id, "-voicerecord");

return PH;
}

public clcmd_voicevip_plus(id)
{
if (is_vip(id)) {
set_bit(is_voice_vip, id);
client_cmd (id, "+voicerecord");
}

return PH;
}

public clcmd_voicevip_minus(id)
{
if (is_vip(id)) {
clr_bit(is_voice_vip, id);
client_cmd (id, "-voicerecord");
}

return PH;
}

public msg_TeamInfo ()
{
static id, team_name_tmp[11];

id = get_msg_arg_int(1);
get_msg_arg_string(2, team_name_tmp, charsmax(team_name_tmp));

switch (team_name_tmp[0]) {
case 'T': user_team[id] = TEAM_TERRORIST;
case 'C': user_team[id] = TEAM_CT;
case 'S': user_team[id] = TEAM_SPECTATOR;
case 'U': user_team[id] = TEAM_UNASSIGNED;
}
}

public fwd_FM_SetClientKeyValue(id, infobuffer[256], key[32], value[32])
{
#define is_key_name (key[0] == 'n' && key[1] == 'a' && key[2] == 'm' && key[3] == 'e')

if (is_valid_client(id)) {
if (is_key_name && value[0]) {
copy(user_name[id], NAME_LEN - 1, value);
}
}
}
public clcmd_gagmenu(id)
{
return gag_menu(id);
}

public _gag_menu_display(plugin_id, argc)
{
return gag_menu(get_param(1));
}

gag_menu(id)
{
if (is_valid_client(id) && user_flags[id] & _ADMIN) {
new gag_menu_id = menu_create ("yЗаткнуть игрока","gag_menu_handler");

static gag_menu_callback_id;

if (!gag_menu_callback_id) {
gag_menu_callback_id = menu_makecallback ("gag_menu_callback");
}

menu_setprop (gag_menu_id, MPROP_BACKNAME, MENU_PROP_LIST[BACKNAME]);
menu_setprop (gag_menu_id, MPROP_NEXTNAME, MENU_PROP_LIST[NEXTNAME]);
menu_setprop (gag_menu_id, MPROP_EXITNAME, MENU_PROP_LIST[EXITNAME]);

new user2;
if (!is_alive(id)) {
user2 = pev(id, pev_iuser2);
if (user2 && is_alive(user2)) {
item_info[0] = user2;
menu_additem (gag_menu_id, user_name[user2], item_info, 0, gag_menu_callback_id);
}
}
for (new i = 1; i <= max_players; ++i){
if(is_connected(i) && i != user2){
item_info[0] = i;
menu_additem (gag_menu_id, user_name[i], item_info, 0, gag_menu_callback_id);
}
}

#if AMXX_VERSION_NUM < 183
set_pdata_int (id, m_iMenu, MENU_OFF);
#endif
menu_display (id, gag_menu_id);
}

return PH;
}

public gag_menu_callback (id, menu, item)
{
static access, callback, ITEM_STATUS, index;

ITEM_STATUS = ITEM_ENABLED;

menu_item_getinfo (menu, item, access, item_info, charsmax(item_info), item_name, charsmax(item_name), callback);
index = item_info[0];

if (id == index || !(user_flags[id] & _MAIN_ADMIN) && user_flags[index] & _IMMUNITY) {
formatex (item_name, charsmax(item_name), "%s r*", user_name[index]);
ITEM_STATUS = ITEM_DISABLED;
}
else if (get_bit(is_gagged_by_admin, index)) {
formatex (item_name, charsmax(item_name), "%s r[Молчун]", user_name[index]);
ITEM_STATUS = ITEM_ENABLED;
}
else if (user_flags[index] & _VIP) {
ITEM_STATUS = (user_flags[id] & (_ADMIN | _MAIN_ADMIN)) ? ITEM_ENABLED : ITEM_DISABLED;
}

menu_item_setname (menu, item, item_name);

return ITEM_STATUS;
}

public gag_menu_handler (id, menu, item) //изменить
{
static access, callback, index;

if (item != MENU_EXIT) {
menu_item_getinfo (menu, item, access, item_info, charsmax(item_info), item_name, charsmax(item_name), callback);

index = gag_data[id] = item_info[0];

if (is_valid_client(index)) {
if (get_bit(is_gagged_by_admin, index)) {
ungag_time[index] = 0.0;
clr_bit(is_gagged_by_admin, index);
printf_chat(ALL, print_team_default, "^4*^1 Администратор ^3%s ^1снял молчанку с ^3%s^1.", user_name[id], user_name[index]);
}
else {
gagtime_menu(id);
}
}
else {
printf_chat (id, print_team_default, PL_LEAVED);
}
}

menu_destroy(menu);
return PH;
}

gagtime_menu(id)
{
static gagtime_menu_id;

if (is_valid_client(id)) {
if (!gagtime_menu_id) {
gagtime_menu_id = menu_create ("yВыберите времени молчанки", "gagtime_menu_handler");
menu_setprop (gagtime_menu_id, MPROP_EXITNAME, MENU_PROP_LIST[EXITNAME]);

for (new i; i < sizeof GAG_TIME; ++i) {
formatex(item_name, charsmax(item_name), "%.0f минут", (GAG_TIME[i] / 60.0));
menu_additem (gagtime_menu_id, item_name);
}
}

#if AMXX_VERSION_NUM < 183
set_pdata_int (id, m_iMenu, MENU_OFF);
#endif
menu_display (id, gagtime_menu_id);
}

return PH;
}

public gagtime_menu_handler (id, menu, item)
{
if (item != MENU_EXIT) {
ungag_time[gag_data[id]] = get_gametime() + GAG_TIME[item];
set_bit(is_gagged_by_admin, gag_data[id]);
set_bit(is_gagged_chat, gag_data[id]);
printf_chat(ALL, print_team_default, "^4*^1 Администратор %s заткнул %s на^3 %.0f^1 минут.", user_name[id], user_name[gag_data[id]], (GAG_TIME[item] / 60.0));
}

return PH;
}

gag_vault(id, mode)
{
static Float: ctime, sys_time, ungag_systime, ungag_systime_str[11];

ctime = get_gametime();
sys_time = get_systime();

if (mode == LOAD) {
ungag_systime = nvault_get (fpv_gag, user_steamid[id]);

if (!ungag_systime) {
ungag_systime = nvault_get (fpv_gag, user_ip[id]);
}

if (ungag_systime > sys_time) {
set_bit(is_gagged_by_admin, id);
set_bit(is_gagged_chat, id);
ungag_time[id] = ctime + float(ungag_systime - sys_time);
}
}
else {
ungag_systime = floatround(ungag_time[id] - ctime) + sys_time;

if (ungag_systime > sys_time) {
num_to_str(ungag_systime, ungag_systime_str, charsmax(ungag_systime_str));
nvault_set (fpv_gag, user_steamid[id], ungag_systime_str);
nvault_set (fpv_gag, user_ip[id], ungag_systime_str);
}
}
}

mute_menu (id)
{
if (is_valid_client(id)) {
if (players_num < 2) {
printf_chat (id, print_team_default, "%s На сервере менее 2х игроков", CHAT_INFO_PREFIX);
return PH;
}

new mute_menu_id = menu_create ("yЗаглушить игрока","mute_menu_handler");

static mute_menu_callback_id;

if (!mute_menu_callback_id) {
mute_menu_callback_id = menu_makecallback ("mute_menu_callback");
}

menu_setprop (mute_menu_id, MPROP_BACKNAME, MENU_PROP_LIST[BACKNAME]);
menu_setprop (mute_menu_id, MPROP_NEXTNAME, MENU_PROP_LIST[NEXTNAME]);
menu_setprop (mute_menu_id, MPROP_EXITNAME, MENU_PROP_LIST[EXITNAME]);

new user2;
if (!is_alive(id)) {
user2 = pev(id, pev_iuser2);
if (user2 && is_alive(user2)) {
item_info[0] = user2;
menu_additem (mute_menu_id, user_name[user2], item_info, 0, mute_menu_callback_id);
}
}
for (new i = 1; i <= max_players; ++i){
if(is_connected(i) && i != id && i != user2){
item_info[0] = i;
menu_additem (mute_menu_id, user_name[i], item_info, 0, mute_menu_callback_id);
}
}

#if AMXX_VERSION_NUM < 183
set_pdata_int (id, m_iMenu, MENU_OFF);
#endif
menu_display (id, mute_menu_id);
}

return PH;
}

public mute_menu_callback (id, menu, item)
{
static access, callback;

item_status = ITEM_ENABLED;

if (item == 0) {
if (is_gagged[id] == -1) {
copy (item_name, charsmax(item_name), "Заглушить всех y[rВклy]^n");
}
else {
copy (item_name, charsmax(item_name), "Заглушить всех y[rВыклy]^n");
}
}
else {
menu_item_getinfo (menu, item, access, item_info, charsmax(item_info), item_name, charsmax(item_name), callback);

if (get_bit(is_gagged[id], item_info[0])) {
formatex (item_name, charsmax(item_name), "%s y[r+y]", user_name[item_info[0]]);
item_status = ITEM_ENABLED;
}
}

menu_item_setname (menu, item, item_name);

return item_status;
}

public mute_menu_handler (id, menu, item)
{
static need_announce, Float: ctime, Float: next_announce_time[MAX_CLIENTS + 1];

ctime = get_gametime();

need_announce = (ctime > next_announce_time[id]) ? 1 : 0;

if (item != MENU_EXIT) {
if (item == 0) {
if (is_gagged[id] == -1) {
is_gagged[id] = 0;

need_announce && printf_chat(ALL, print_team_default, "%s Игрок ^3%s^1 написал^3 /mute^1 (^4слышит всех^1)", CHAT_INFO_PREFIX, user_name[id]);
}
else {
is_gagged[id] = -1;
need_announce && printf_chat(ALL, print_team_default, "%s Игрок ^3%s^1 написал^3 /mute^1 (^4не слышит никого^1)", CHAT_INFO_PREFIX, user_name[id]);
}
}
else {
static access, callback;
menu_item_getinfo (menu, item, access, item_info, charsmax(item_info), item_name, charsmax(item_name), callback);

gag_data[id] = item_info[0];

if (is_connected(gag_data[id])) {
if (get_bit(is_gagged[id], gag_data[id])) {
clr_bit(is_gagged[id], gag_data[id]);
need_announce && printf_chat(ALL, print_team_default, "%s^3 Игрок %s^1 написал^3 /mute^1 (^4слышит %s^1)", CHAT_INFO_PREFIX, user_name[id], user_name[gag_data[id]]);
}
else {
set_bit(is_gagged[id], gag_data[id]);
need_announce && printf_chat(ALL, print_team_default, "%s^3 Игрок %s^1 написал^3 /mute^1 (^4не слышит %s^1)", CHAT_INFO_PREFIX, user_name[id], user_name[gag_data[id]]);
}
}
else {
printf_chat (id, print_team_default, PL_LEAVED);
}
}

menu_destroy(menu);
mute_menu (id);
}
else {
menu_destroy(menu);
}

next_announce_time[id] = ctime + 3.0;
return PH;
}

public plugin_end()
{
if (fpv_gag != INVALID_HANDLE) {
nvault_prune(fpv_gag, 0, get_systime(MAX_GAGTIME_AGO));
nvault_close(fpv_gag);
}

set_pcvar_num(pcv_alltalk, sv_alltalk);
}

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. 

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

@Саша55555, функция format записывает нужный Вам текст в переменную.

Например, Вы хотите вывести в чат свой nick-name и level. У функции вывода текста в чат всего 3 аргумента: ID игрока (которому отправляем), цвет, текст. Но аргументы здесь использовать нельзя. Поэтому используем format.

Структура такова: format(куда записываем, какой размер, что записываем, аргументы);

Например, format(string, 128, «Здесь ваш текст %d», a);

Таким образом, мы записали в переменную string текст, максимальная длина которого 128 символов, использовав аргумент a. Можно, чтобы длину подсчитывала система, использовать функцию sizeof. Результат будет следующий:

format(string, sizeof(string), «Здесь ваш текст %d», a);

Далее, переменная string у нас осталась не объявлена. То есть компилятору она неизвестна. Соответственно, нужно ее объявить.

new string[];

В квадратных скобках Вы должны указать количество символов, которое будете записывать в эту переменную. Можно считать вручную, а можно использовать тот же notepad++. У меня длина текста составляет 56 символов (при условии, что переменная a содержит не больше трех знаков (то есть двух- или однозначное число). Но стоит учесть еще запас, грубо говоря, прибавляйте всегда 5 символов и будет Вам радость. 56+5 = 51. В строке выше я указал 65, поскольку делал все на глаз (прикидывал длину).

#1

azik215

    Новичок

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

  • 32 сообщений

Отправлено 12 Сентябрь 2014 — 18:29

Помогите , что за ошибка??

Упс. Компилирование

  • Наверх


#2


The

Отправлено 12 Сентябрь 2014 — 18:56

  • Помогите , что за ошибка??

    Упс. Компилирование

    error 017: undefined symbol «%s» — неизвестный символ «%s»;
    warning 217: loose indentation — не выровненная строка

Сообщение отредактировал The: 12 Сентябрь 2014 — 18:56

  • Наверх


#3


azik215

azik215

    Новичок

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

  • 32 сообщений

Отправлено 20 Сентябрь 2014 — 18:46

  • error 017: undefined symbol «%s» — неизвестный символ «%s»;
    с ним то , что делать с 2 я разобрался

  • Наверх


#4


FasT of boni

Отправлено 20 Сентябрь 2014 — 18:58

warning 217: loose indentation 
Проблема с отступами. Внутри функции отступы должны быть сделаны или с помощью TAB, или с помощью пробелов — нельзя их смешивать, выберите что-то одно. 

  • Наверх


#5


azik215

azik215

    Новичок

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

  • 32 сообщений

Отправлено 20 Сентябрь 2014 — 19:03

warning 217: loose indentation 
Проблема с отступами. Внутри функции отступы должны быть сделаны или с помощью TAB, или с помощью пробелов — нельзя их смешивать, выберите что-то одно

Я с этим разобрался мне нужно 

error 017: undefined symbol «%s» — неизвестный символ «%s»;

Что с ним делать?

Вот 93 строчка

LogMgr_Print(g_moduleCore, LogType_Debug, «PurchaseUpgrade», «Client %d tried to buy interlocked upgrade %s», client, name);

  • Наверх


#6


FasT of boni

Отправлено 20 Сентябрь 2014 — 19:08

Я с этим разобрался мне нужно 

error 017: undefined symbol «%s» — неизвестный символ «%s»;

Что с ним делать?

Вот 93 строчка

LogMgr_Print(g_moduleCore, LogType_Debug, «PurchaseUpgrade», «Client %d tried to buy interlocked upgrade %s», client, name);

error 017: undefined symbol «x» 
Используемый символ не найден. Или забыли переменную объявить, или не подключили модуль. Если это какая-то SourceMod команда, например, CS_RespawnPlayer, то зайдите в API и введите её в поле «Search:». Выше над командой жирным шрифтом будет указано имя модуля, например, «cstrike», и чтобы его подключить, добавьте в самый верх кода #include <cstrike> 

  • Наверх


#7


azik215

azik215

    Новичок

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

  • 32 сообщений

Отправлено 20 Сентябрь 2014 — 19:24

Я с этим разобрался мне нужно 

error 017: undefined symbol «%s» — неизвестный символ «%s»;

Что с ним делать?

Вот 93 строчка

LogMgr_Print(g_moduleCore, LogType_Debug, «PurchaseUpgrade», «Client %d tried to buy interlocked upgrade %s», client, name);

error 017: undefined symbol «x» 
Используемый символ не найден. Или забыли переменную объявить, или не подключили модуль. Если это какая-то SourceMod команда, например, CS_RespawnPlayer, то зайдите в API и введите её в поле «Search:». Выше над командой жирным шрифтом будет указано имя модуля, например, «cstrike», и чтобы его подключить, добавьте в самый верх кода #include <cstrike> 

Можно я в лс файл кину. Ты сделаешь??

  • Наверх


#8


FasT of boni

Отправлено 20 Сентябрь 2014 — 19:25

Можно я в лс файл кину. Ты сделаешь??

попробуй

  • Наверх


#9


azik215

azik215

    Новичок

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

  • 32 сообщений

Отправлено 20 Сентябрь 2014 — 19:28

  • Наверх


#10


FasT of boni

Отправлено 20 Сентябрь 2014 — 20:26

Это инклюд.

Кидай все инклюды и исходник.

  • Наверх


#11


Mattko

Отправлено 21 Сентябрь 2014 — 13:29

Нету переменной «name», объявите о ней в начале кода.
Используя вот-так: new name;
 

warning 217: loose indentation 
Проблема с отступами. Внутри функции отступы должны быть сделаны или с помощью TAB, или с помощью пробелов — нельзя их смешивать, выберите что-то одно. 

Не отступами, а с табуляции… Можно объявить #table, но проще соблюдать табуляцию, чтобы работа плагина была стабильна.

PS: Автору темы, кидай исходник мне в ЛС, или тут. Исправлю.

  • Mr.Credo это нравится
  • Наверх


Автор: minimiller
Перевод и редактирование: DJ_WEST

Список ошибок:

Код: Выделить всё

/*001*/  "expected token: "%s", but found "%s"n",
/*002*/  "only a single statement (or expression) can follow each "case"n",
/*003*/  "declaration of a local variable must appear in a compound blockn",
/*004*/  "function "%s" is not implementedn",
/*005*/  "function may not have argumentsn",
/*006*/  "must be assigned to an arrayn",
/*007*/  "operator cannot be redefinedn",
/*008*/  "must be a constant expression; assumed zeron",
/*009*/  "invalid array size (negative or zero)n",
/*010*/  "invalid function or declarationn",
/*011*/  "invalid outside functionsn",
/*012*/  "invalid function call, not a valid addressn",
/*013*/  "no entry point (no public functions)n",
/*014*/  "invalid statement; not in switchn",
/*015*/  ""default" case must be the last case in switch statementn",
/*016*/  "multiple defaults in "switch"n",
/*017*/  "undefined symbol "%s"n",
/*018*/  "initialization data exceeds declared sizen",
/*019*/  "not a label: "%s"n",
/*020*/  "invalid symbol name "%s"n",
/*021*/  "symbol already defined: "%s"n",
/*022*/  "must be lvalue (non-constant)n",
/*023*/  "array assignment must be simple assignmentn",
/*024*/  ""break" or "continue" is out of contextn",
/*025*/  "function heading differs from prototypen",
/*026*/  "no matching "#if..."n",
/*027*/  "invalid character constantn",
/*028*/  "invalid subscript (not an array or too many subscripts): "%s"n",
/*029*/  "invalid expression, assumed zeron",
/*030*/  "compound statement not closed at the end of filen",
/*031*/  "unknown directiven",
/*032*/  "array index out of bounds (variable "%s")n",
/*033*/  "array must be indexed (variable "%s")n",
/*034*/  "argument does not have a default value (argument %d)n",
/*035*/  "argument type mismatch (argument %d)n",
/*036*/  "empty statementn",
/*037*/  "invalid string (possibly non-terminated string)n",
/*038*/  "extra characters on linen",
/*039*/  "constant symbol has no sizen",
/*040*/  "duplicate "case" label (value %d)n",
/*041*/  "invalid ellipsis, array size is not knownn",
/*042*/  "invalid combination of class specifiersn",
/*043*/  "character constant exceeds range for packed stringn",
/*044*/  "positional parameters must precede all named parametersn",
/*045*/  "too many function argumentsn",
/*046*/  "unknown array size (variable "%s")n",
/*047*/  "array sizes do not match, or destination array is too smalln",
/*048*/  "array dimensions do not matchn",
/*049*/  "invalid line continuationn",
/*050*/  "invalid rangen",
/*051*/  "invalid subscript, use "[ ]" operators on major dimensionsn",
/*052*/  "multi-dimensional arrays must be fully initializedn",
/*053*/  "exceeding maximum number of dimensionsn",
/*054*/  "unmatched closing bracen",
/*055*/  "start of function body without function headern",
/*056*/  "arrays, local variables and function arguments cannot be public (variable "%s")n",
/*057*/  "unfinished expression before compiler directiven",
/*058*/  "duplicate argument; same argument is passed twicen",
/*059*/  "function argument may not have a default value (variable "%s")n",
/*060*/  "multiple "#else" directives between "#if ... #endif"n",
/*061*/  ""#elseif" directive follows an "#else" directiven",
/*062*/  "number of operands does not fit the operatorn",
/*063*/  "function result tag of operator "%s" must be "%s"n",
/*064*/  "cannot change predefined operatorsn",
/*065*/  "function argument may only have a single tag (argument %d)n",
/*066*/  "function argument may not be a reference argument or an array (argument "%s")n",
/*067*/  "variable cannot be both a reference and an array (variable "%s")n",
/*068*/  "invalid rational number precision in #pragman",
/*069*/  "rational number format already definedn",
/*070*/  "rational number support was not enabledn",
/*071*/  "user-defined operator must be declared before use (function "%s")n",
/*072*/  ""sizeof" operator is invalid on "function" symbolsn",
/*073*/  "function argument must be an array (argument "%s")n",
/*074*/  "#define pattern must start with an alphabetic charactern",
/*075*/  "input line too long (after substitutions)n",
/*076*/  "syntax error in the expression, or invalid function calln",
/*077*/  "malformed UTF-8 encoding, or corrupted file: %sn",
/*078*/  "function uses both "return" and "return <value>"n",
/*079*/  "inconsistent return types (array & non-array)n",
/*080*/  "unknown symbol, or not a constant symbol (symbol "%s")n",
/*081*/  "cannot take a tag as a default value for an indexed array parameter (symbol "%s")n",
/*082*/  "user-defined operators and native functions may not have statesn",
/*083*/  "a function may only belong to a single automaton (symbol "%s")n",
/*084*/  "state conflict: one of the states is already assigned to another implementation (symbol "%s")n",
/*085*/  "no states are defined for function "%s"n",
/*086*/  "unknown automaton "%s"n",
/*087*/  "unknown state "%s" for automaton "%s"n",
/*088*/  "number of arguments does not match definitionn"

Разбор ошибок
Рассмотрим пример нахождения и самостоятельного решения ошибок при компиляции.
Допустим у нас есть ошибка:

C:AMXXexample.sma(107) : error 035: argument type mismatch (argument 2)

Теперь давайте попытаемся разобрать эту ошибку по частям:
1) C:AMXXexample.sma — это директория, где находится исходник (.sma) нашего плагина.
2) (107) — это номер строки, в которой есть ошибка. Большинство современных редакторов текста имеют панель с пронумерованными строками (Notepad++, AMXX-Studio и другие).
3) error 035 — это код ошибки (список ошибок указан выше).
4) argument type mismatch — это описание ошибки с кодом, указанным до этого. В данном случае нам говорится, что «аргумент имеет неверный тип».
5) (argument 2) — это более подробное описание ошибки. В данном случае нам указывается, что ошибка во 2 аргументе.

Итого, получаем: в файле example.sma, который находится в директории C:AMXX, в строке под номером 107 есть ошибка с кодом 035, которая означает, что аргумент 2 имеет неверный тип данных.

Решение ошибок
Теперь попытаемся исправить нашу ошибку. Идем в строку под номером 107 и видим следующий код:

Код: Выделить всё

client_print
(0, "Welcome to the server!")
 

Идем на Вы должны зарегистрироваться, чтобы видеть ссылки.

и читаем описание функции:

client_print — Sends a message to a player.

Syntax:
client_print ( index, type, const message[], … )

id is a player index from 1 to 32. If 0, the message will be sent to all players.

The type is one of three types:
print_chat — chat text
print_console — console message
print_notify — console in dev mode
print_center — center say

Смотрим синтаксис команды client_print и видим, что первый аргумент index — это номер игрока (id), который может быть от 1 до 32, если же он 0, то сообщение будет отсылаться всем игрокам на сервере. Второй аргумент type — это тип сообщения, который может быть:

print_chat — текст в чат
print_console — текст в консоль
print_notify — текст в консоль в режиме разработчика
print_center — текст по центру

Третий аргумент message — это и есть текст нашего сообщения. Теперь вернемся, к нашему, коду. Мы видим, что у нас нет второго аргумента (тип сообщения), а сразу идет текст сообщения, исправляем на:

client_print(0, print_center, «Welcome to the server!»)

Теперь компиляция прошла успешно.

Описание ошибок:
error 001: expected token: «X», but found «Y»
Ошибка означает, что не найден X, когда найден Y. Наиболее часто возникает, когда забывают поставить недостающие знаки ; { } ( ).
Пример ошибки:

Код: Выделить всё

public Function
(id)
{
    if (is_user_bot(id)
    return PLUGIN_HANDLED// код
    
    return PLUGIN_CONTINUE
}
 

error 017: undefined symbol «X»
Ошибка означает, что X — неизвестный сивол/команда/переменная/функция. Поэтому такую функцию или переменную нужно объявить перед использованием. Например, функция is_user_hacker не существует.
Пример ошибки:

Код: Выделить всё

public Function
(id)
{
    if (is_user_hacker(id))
    return PLUGIN_HANDLED// код
    
    return PLUGIN_CONTINUE
}
 

error 032: array index out of bounds (variable X)
Ошибка означает, что в мы вышли за предел размера массива X.
Пример ошибки:

Код: Выделить всё

new s_Name
[32]
s_Name[33] = "*"
 

error 033: array must be indexed (variable X)
Ошибка означает, что массив должен быть проиндексирован. Например, мы не указали размер массива при его объявлении.
Пример ошибки:

Код: Выделить всё

new s_String 
= "My string"
 

error 035: argument type mismatch (argument X)
Ошибка означает, что аргумент X имеет неверный тип данных. Например, когда вместо целочисленного аргумента передаем строку.
Пример ошибки:

Код: Выделить всё

public Function1
(id)
{
    Function2(id, "10")
}
public Function2(id, count)
{
    // код
}
 

error 040: duplicate «case» label (value X)
Ошибка означает, что имеется дубль оператора case со значением X.
Пример ошибки:

Код: Выделить всё

public Function
(id)
{
    switch(count)
    {
        case 1: count += 1
    case 2
: count += 2
    case 2
: count += 3
    
}
}
 

error 075: input line too long (after substitutions)
Ошибка означает, что указанная строка слишком длинная. Например, около 500 символов.
Пример ошибки:

Код: Выделить всё

public Function
(id)
{
    server_print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
}
 

error 078: function uses both «return» and «return <value>»
Ошибка означает, что функция использует, как return, так и return <значение>.
Пример ошибки:

Код: Выделить всё

public Function
(id)
{
    if (is_user_alive(id))    
        return

        return PLUGIN_HANDLED

}
 

error 088: number of arguments does not match definition
Ошибка означает, что количество переданных аргументов не соответсвует количеству объявленных аргументов.
Пример ошибки:

Код: Выделить всё

public Function1
(id)
{
    Function2(id)
}
public Function2(id, count)
{
    // код
}
 

Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.

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

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

  • Error 017 undefined symbol isvalidvehicle
  • Error 017 undefined symbol isvalidclient
  • Error 017 undefined symbol idx
  • Error 017 undefined symbol http
  • Error 017 undefined symbol help

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

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