Error 033 array must be indexed variable unknown

Всем qq Кароче я хочу сделать систему авторизации админов вот, создал команду /alogin Открываеться диалог DIALOG_STYLE_PASSWORD вот, ну и кароче в па...


#1

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

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

  • Прохожий

Всем qq Кароче я хочу сделать систему авторизации админов вот, создал команду /alogin Открываеться диалог DIALOG_STYLE_PASSWORD вот, ну и кароче в паблике OnDialogResponse Мне надо узнать правильный ли пароль или нет вот кусочек кода на котором возникает ошибка(

		case 3:
		{
			if(response)
			{
				if(strlen(inputtext) == ADMPASS1)
				{
					SendClientMessage(playerid, -1, "[A] Вы авторизировались как {FF0000}Основатель");
					Adm = 1;
				}
			}
			else
			{
				SendClientMessage(playerid, 808080, "*/q(uit) Чтобы выйти.");
				Kick(playerid);
			}

Константа есть #define ADMPASS1 «6556»

При компиле такое (

c:UsersJarrDesktopShnurki RPgamemodesnew.pwn(286) : error 033: array must be indexed (variable «-unknown-«)

Пожалуйста помогите

Сообщение отредактировал xiamaqaw: 27 июля 2021 — 21:21

0


#2

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

  • Местный

А кавычки зачем в дефайне на интовом значении?

0


#3

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

  • Прохожий

Просмотр сообщенияsubstantive. (27 июля 2021 — 21:38) писал:

А кавычки зачем в дефайне на интовом значении?

я новичек … помоги бро хз про что ты щас сказал

0


#4

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

  • Местный

Замени

  if(strlen(inputtext) == ADMPASS1)

на

 if(strval(inputtext) == ADMPASS1)

1


#5

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

  • Прохожий

Просмотр сообщенияsubstantive. (27 июля 2021 — 21:47) писал:

Замени

  if(strlen(inputtext) == ADMPASS1)

на

 if(strval(inputtext) == ADMPASS1)
case 3:
		{
			if(response)
			{
				if(strval(inputtext) == ADMPASS1)
				{
					SendClientMessage(playerid, -1, "[A] Вы авторизировались как {FF0000}Основатель");
					Adm = 1;
				}
			}
			else
			{
				SendClientMessage(playerid, 808080, "*/q(uit) Чтобы выйти.");
				Kick(playerid);
			}

Хер

c:UsersJarrDesktopShnurki RPgamemodesnew.pwn(286) : error 033: array must be indexed (variable «-unknown-«)

0


#6

Отправлено 27 июля 2021 — 22:03

  • Местный
 #define ADMPASS1 6556

кавычки убери

1


#7

Отправлено 27 июля 2021 — 22:11

  • Прохожий

Просмотр сообщенияsubstantive. (27 июля 2021 — 22:03) писал:

 #define ADMPASS1 6556

кавычки убери

Бро спасибо тебе + не даёться(

Просмотр сообщенияsubstantive. (27 июля 2021 — 22:03) писал:

 #define ADMPASS1 6556

кавычки убери

А не не так быстро(

краш

—————————

SA-MP Server: 0.3.7-R2

Exception At Address: 0x00402276 Module: (samp-server.exe)

Registers:

EAX: 0x0000EE1C EBX: 0x0000024C ECX: 0xFFFFFFFF EDX: 0x00000001

ESI: 0x02B81230 EDI: 0x029CA6F8 EBP: 0x02B79128 ESP: 0x0019F884

EFLAGS: 0x00010212

Stack:

+0000: 0x0019F8E0 0x029CA6F8 0x00000027 0x00000000

+0010: 0x0000024C 0xFFFFFFFF 0x0000EE1C 0x000076FC

+0020: 0x00003724 0x000002B4 0x00003724 0x02B78DF8

+0030: 0x02B81230 0x00000000 0x02B78470 0x00008438

+0040: 0x57803374 0x029CA6F8 0x0019FD38 0x00000027

+0050: 0x00000000 0x00000000 0x029CA6F8 0x0019FD48

+0060: 0x004746BE 0x029CA6F8 0x0019FD38 0x00000000

+0070: 0x41435353 0x4F5F464E 0x6D61476E 0x646F4D65

+0080: 0x696E4965 0x00470074 0x029CA6F8 0x029CA6F8

+0090: 0x02B78DF8 0x00000000 0x00000000 0x00000000

+00A0: 0x00000000 0x00000000 0x00000000 0x00000000

+00B0: 0x00000000 0x00000000 0x00000000 0x00000000

+00C0: 0x00000000 0x00000000 0x00000000 0x00000000

+00D0: 0x00000000 0x00000000 0x000003FF 0x57803B0D

+00E0: 0x57803B0D 0x57803B0D 0x0019FDA0 0x57853418

+00F0: 0x57803B0D 0x0019FDAC 0x57803B0D 0x578534F0

+0100: 0x005FBFF0 0x5785344C 0x005FBFF0 0x00000000

+0110: 0x01010000 0x00000000 0x005C00C0 0x77A6AD20

+0120: 0x000003FF 0xFFFFFFFE 0x00190000 0x77A36E00

+0130: 0x00000DFC 0x005C8F80 0x000003FF 0x00000143

—————————

Loaded Modules:

samp-server.exe A: 0x00400000 — 0x00519000 (C:UsersJarrDesktopShnurki RPsamp-server.exe)

ntdll.dll A: 0x779F0000 — 0x77B93000 (C:WindowsSYSTEM32ntdll.dll)

KERNEL32.DLL A: 0x77640000 — 0x77730000 (C:WindowsSystem32KERNEL32.DLL)

KERNELBASE.dll A: 0x76D60000 — 0x76F74000 (C:WindowsSystem32KERNELBASE.dll)

apphelp.dll A: 0x757C0000 — 0x7585F000 (C:WindowsSYSTEM32apphelp.dll)

SHELL32.dll A: 0x75FC0000 — 0x76573000 (C:WindowsSystem32SHELL32.dll)

msvcp_win.dll A: 0x75C10000 — 0x75C8B000 (C:WindowsSystem32msvcp_win.dll)

ucrtbase.dll A: 0x778C0000 — 0x779E0000 (C:WindowsSystem32ucrtbase.dll)

USER32.dll A: 0x774A0000 — 0x77636000 (C:WindowsSystem32USER32.dll)

win32u.dll A: 0x76640000 — 0x76658000 (C:WindowsSystem32win32u.dll)

GDI32.dll A: 0x76CE0000 — 0x76D03000 (C:WindowsSystem32GDI32.dll)

gdi32full.dll A: 0x771C0000 — 0x7729C000 (C:WindowsSystem32gdi32full.dll)

WINMM.dll A: 0x740C0000 — 0x740E8000 (C:WindowsSYSTEM32WINMM.dll)

WSOCK32.dll A: 0x638A0000 — 0x638A8000 (C:WindowsSYSTEM32WSOCK32.dll)

msvcrt.dll A: 0x77000000 — 0x770BF000 (C:WindowsSystem32msvcrt.dll)

ws2_32.DLL A: 0x76F90000 — 0x76FF3000 (C:WindowsSystem32ws2_32.DLL)

RPCRT4.dll A: 0x75C90000 — 0x75D4F000 (C:WindowsSystem32RPCRT4.dll)

IMM32.DLL A: 0x777C0000 — 0x777E5000 (C:WindowsSystem32IMM32.DLL)

sscanf.DLL A: 0x10000000 — 0x1000D000 (C:UsersJarrDesktopShnurki RPpluginssscanf.DLL)

MSVCR100.dll A: 0x57870000 — 0x5792F000 (C:WindowsSYSTEM32MSVCR100.dll)

streamer.DLL A: 0x57800000 — 0x57867000 (C:UsersJarrDesktopShnurki RPpluginsstreamer.DLL)

MSVCP140.dll A: 0x73EC0000 — 0x73F2F000 (C:WindowsSYSTEM32MSVCP140.dll)

VCRUNTIME140.dll A: 0x749F0000 — 0x74A03000 (C:WindowsSYSTEM32VCRUNTIME140.dll)

dc_cmd.DLL A: 0x02360000 — 0x02367000 (C:UsersJarrDesktopShnurki RPpluginsdc_cmd.DLL)

MSVCP110.dll A: 0x57770000 — 0x577F5000 (C:WindowsSYSTEM32MSVCP110.dll)

MSVCR110.dll A: 0x57690000 — 0x57762000 (C:WindowsSYSTEM32MSVCR110.dll)

mswsock.dll A: 0x73DF0000 — 0x73E42000 (C:Windowssystem32mswsock.dll)

napinsp.dll A: 0x72C70000 — 0x72C81000 (C:Windowssystem32napinsp.dll)

sechost.dll A: 0x76670000 — 0x766E5000 (C:WindowsSystem32sechost.dll)

pnrpnsp.dll A: 0x72C50000 — 0x72C66000 (C:Windowssystem32pnrpnsp.dll)

wshbth.dll A: 0x740F0000 — 0x74100000 (C:Windowssystem32wshbth.dll)

NLAapi.dll A: 0x72C30000 — 0x72C46000 (C:Windowssystem32NLAapi.dll)

IPHLPAPI.DLL A: 0x74980000 — 0x749B2000 (C:WindowsSYSTEM32IPHLPAPI.DLL)

DNSAPI.dll A: 0x72C90000 — 0x72D21000 (C:WindowsSYSTEM32DNSAPI.dll)

NSI.dll A: 0x777B0000 — 0x777B7000 (C:WindowsSystem32NSI.dll)

winrnr.dll A: 0x73DD0000 — 0x73DDE000 (C:WindowsSystem32winrnr.dll)

bcrypt.dll A: 0x76CC0000 — 0x76CD9000 (C:WindowsSystem32bcrypt.dll)

rasadhlp.dll A: 0x73D40000 — 0x73D48000 (C:WindowsSystem32rasadhlp.dll)

хотя не крашит без этой функции

хотя не крашит без этой функции

0


#8

Отправлено 27 июля 2021 — 22:15

  • Местный

Просмотр сообщенияxiamaqaw (27 июля 2021 — 22:11) писал:

Нажмите сюда, чтобы прочитать это сообщение. [

Показать

]

crashdetect ставь и показывай логи сервера.

0


#9

Отправлено 27 июля 2021 — 22:19

  • Прохожий

Просмотр сообщенияsubstantive. (27 июля 2021 — 22:15) писал:

crashdetect ставь и показывай логи сервера.

Поставил, а где от него логи сохраняються

0


#10

Отправлено 27 июля 2021 — 22:23

  • Местный

Просмотр сообщенияxiamaqaw (27 июля 2021 — 22:19) писал:

Поставил, а где от него логи сохраняються

теперь запусти сервер еще раз и скинь лог, который в корневой папке сервера появится

0

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 количество аргументов не совпадает с объявленными в функции

Posts: 43
Threads: 8
Joined: Aug 2011

Reputation:

0

I’m getting the following error message on each if(tgate line:

error 033: array must be indexed (variable «-unknown-«)

The command and what I’m trying to do is pretty self explanatory. This is the first time I haven’t been able to debug something by myself so any help is greatly appreciated. I’ve tried using format() too with no luck.

Код:

CMD:agate(playerid, params[]) {

	new tgate;

	if(PlayerIsL3A(playerid) == 1) {
	
	    if(sscanf(params, "s[1]", tgate)) return SendClientMessage(playerid, -1, "USAGE: /agate [gate]");
	    
			if(tgate == "a") {
			
			    if(GateO[0] == false) {
			    
			        MoveObject(Gate[0], 120.81, 1942.33, 21.63, 2.00);
			        GateO[0] = true;
			        
				} else if (GateO[0] == true) {

				    MoveObject(Gate[0], 134.67, 1942.33, 21.63, 2.00);
				    GateO[0] = false;
				    
	            }
	            
			} else if (tgate == "b") {
			
			    if(GateO[1] == false) {

			        MoveObject(Gate[1], 96.93, 1925.09, 18.22, 2.00);
			        GateO[1] = true;

				} else if (GateO[1] == true) {

				    MoveObject(Gate[1], 96.93, 1922.42, 18.22, 2.00);
				    GateO[1] = false;

	            }
	            
			} else if (tgate == "c") {
			
			    if(GateO[2] == false) {

			        MoveObject(Gate[2], 286.00, 1834.60, 19.99, 2.00);
			        GateO[2] = true;

				} else if (GateO[2] == true) {

				    MoveObject(Gate[2], 286.00, 1821.38, 19.99, 2.00);
				    GateO[2] = false;

	            }

			} else {
			
			    SendClientMessage(playerid, COLOR_YELLOW, "[ ! ] The gate ID you provided was invalid.");
			    
			}
			
	}
	
	return 1;
	
}

Posts: 231
Threads: 1
Joined: Jan 2008

Reputation:

0

You can’t compare strings in PAWN with ==. Use strcmp(), it returns 0 if both strings are the same:

pawn Код:

//Returns 0, success:
strcmp("something", "something");

Also, tgate isn’t a fixed-length array, so it won’t be treated as a string:

pawn Код:

//Treated as a integer/char:
new tgate;

//Treated as an integer/char array,  we can store strings in there:
new tgate[32];

pawn Код:

CMD:agate(playerid, params[]) {

    new tgate[32];

    if(PlayerIsL3A(playerid) == 1) {

            if(sscanf(params, "s[32]", tgate)) return SendClientMessage(playerid, -1, "USAGE: /agate [gate]");

                    if( !strcmp(tgate, "a") ) {

                            if(GateO[0] == false) {

                                    MoveObject(Gate[0], 120.81, 1942.33, 21.63, 2.00);
                    GateO[0] = true;

                                    } else if (GateO[0] == true) {

                    MoveObject(Gate[0], 134.67, 1942.33, 21.63, 2.00);
                    GateO[0] = false;

                                    }

                            } else if ( !strcmp(tgate, "b") ) {

                            if(GateO[1] == false) {

                    MoveObject(Gate[1], 96.93, 1925.09, 18.22, 2.00);
                    GateO[1] = true;

                } else if (GateO[1] == true) {

                    MoveObject(Gate[1], 96.93, 1922.42, 18.22, 2.00);
                    GateO[1] = false;

                }

                            } else if ( !strcmp(tgate, "c") ) {

                            if(GateO[2] == false) {

                    MoveObject(Gate[2], 286.00, 1834.60, 19.99, 2.00);
                    GateO[2] = true;

                } else if (GateO[2] == true) {

                    MoveObject(Gate[2], 286.00, 1821.38, 19.99, 2.00);
                    GateO[2] = false;

                }

            } else {

                            SendClientMessage(playerid, COLOR_YELLOW, "[ ! ] The gate ID you provided was invalid.");

                            }

                }

        return 1;

    }

Should work, untested.

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

Reputation:

0

if you only intend to use a single letter to name the gates, you could use sscanf’s c (character) specifier.

pawn Код:

new tgate; // not an array

if(sscanf(params, "c", tgate)) ...

switch(tgate)
{
    case 'a', 'A': {} // Note: single quotes!
    case 'b', 'B': {}
    case 'c', 'C': {}
}

Posts: 43
Threads: 8
Joined: Aug 2011

Reputation:

0

Ah, okay. Thanks guys! Appreciate the help… I’ve haven’t run into string comparison in pawn yet and I’m used to PHP.

Thanks again!

Author

Message

Veteran Member

atomen's Avatar

Join Date: Oct 2006

Location: Stockholm, Sweden

Old

06-12-2008

, 11:58

 

Error 033 : Array must be indexed

Reply With Quote

#1


Hi !

I’m creating a point system and it works pretty well.
Though right now I’m having a compile problem.

Quote:

Error 033: array must be indexed (variable «-unknown-«)

Quote:

033 array must be indexed (variable name)
An array as a whole cannot be used in a expression; you must indicate
an element of the array between square brackets.

Here’s my script :

PHP Code:



new check check_exist(index); //This is where my error is occurring
if(check




Here’s the function :

PHP Code:




check_exist
(indexpoints 0)
{
    if(
is_ps_on())
    {
        new 
readdata[128];
        new 
steamid[2][MAX_PLAYERS 1];
        new 
points[8], txtlen;

        new 

fsize file_size(filename1);
        for(new 
line 0line <= fsizeline++)
        {
            if(
line == 1)
                
line++;read_file(filenamelinereaddata127txtlen);

            if(!

points)
                
parse(readdatasteamid[PARSED], MAX_PLAYERS);

            else if(

points)
                
parse(readdatasteamid[PARSED], MAX_PLAYERSpoints7);get_user_authid(indexsteamid[ACTIVE], MAX_PLAYERS);

            if(

equal(steamid[ACTIVE], steamid[PARSED]))
            {
                if(!
points)
                    return 
line;

                else if(

points)
                {
                    
str_to_num(points);
                    return 
points;
                }
            }
        }
    }

    return 

0;





__________________

atomen is offline

Send a message via MSN to atomen

AMX Mod X Plugin Approver

Arkshine's Avatar

Old

06-12-2008

, 12:24

 

Re: Error 033 : Array must be indexed

Reply With Quote

#2


You return an array : return points;

And new check is an integer… That’s normal you get this error.

__________________

Arkshine is offline

Veteran Member

atomen's Avatar

Join Date: Oct 2006

Location: Stockholm, Sweden

atomen is offline

Send a message via MSN to atomen

AMX Mod X Plugin Approver

Arkshine's Avatar

Old

06-12-2008

, 13:15

 

Re: Error 033 : Array must be indexed

Reply With Quote

#4


I’ve misread. -_-‘

Actually, this is wrong :

Quote:

str_to_num(points);
return points;

Do : return str_to_num(points);

__________________

Arkshine is offline

Veteran Member

ConnorMcLeod's Avatar

Join Date: Jul 2006

Location: France (95)

Old

06-12-2008

, 13:30

 

Re: Error 033 : Array must be indexed

Reply With Quote

#5


Do not pass ‘points’ in the function AND declare it in this function :

Code:

check_exist(index, points = 0)

{     if(is_ps_on())     {         new readdata[128];         new steamid[2][MAX_PLAYERS + 1];

new points[8], txtlen;

__________________

ConnorMcLeod is offline

AMX Mod X Plugin Approver

Arkshine's Avatar

Old

06-12-2008

, 13:34

 

Re: Error 033 : Array must be indexed

Reply With Quote

#6


mis-read 2 times lol. I’m tired. -_-‘

__________________

Arkshine is offline

Автор: 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)
{
    // код
}
 

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

Содержание

  1. Форум Pawn.Wiki — Воплоти мечту в реальность!: error 033: array must be indexed — Форум Pawn.Wiki — Воплоти мечту в реальность!
  2. Форум Pawn.Wiki — Воплоти мечту в реальность!: error 033: array must be indexed (variable «-unkno — Форум Pawn.Wiki — Воплоти мечту в реальность!
  3. Pawno error 033 array must be indexed
  4. Маппинг для сервера
  5. Моды для сервера
  6. Программы для скриптера
  7. WorPlav
  8. Статистика форума
  9. Pawno error 033 array must be indexed
  10. Поделиться сообщением
  11. 1 ответ на этот вопрос
  12. Последние посетители 0 пользователей онлайн
  13. Похожий контент

Форум Pawn.Wiki — Воплоти мечту в реальность!: error 033: array must be indexed — Форум Pawn.Wiki — Воплоти мечту в реальность!

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

  • Группа: Активные пользователи
  • Сообщений: 56
  • Регистрация: 20 февраля 15

C:UsersДавидDesktopFire Role PlaygamemodesFire-rp.pwn(1519) : error 033: array must be indexed (variable «inputtext»)
C:UsersДавидDesktopFire Role PlaygamemodesFire-rp.pwn(1551) : error 033: array must be indexed (variable «inputtext»)
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

Строка 1519 и 1551:

1519: if(inputtext == maill)
1551: if(inputtext == code[playerid])

В общем, делаю систему почты. Так вот. Вылезает Error в диалоге.
1519: Если(то что мы ввели == почта которая у нас), то пошла функция
1551: Если то что мы ввели == переменная code[playerid](Код подтверждения чтобы сменить пароль если забыл)

Подскажите, в чём проблема. Компилятор жалуется только на inputtext.

Источник

Форум Pawn.Wiki — Воплоти мечту в реальность!: error 033: array must be indexed (variable «-unkno — Форум Pawn.Wiki — Воплоти мечту в реальность!

  • Pawn скриптинг
  • Первая помощь
  • Проблемы с компилированием
  • Правила форума
  • Просмотр новых публикаций
  • (2 Страниц)
  • 1
  • 2
  • >
  • Вы не можете создать новую тему
  • Тема закрыта

  • Группа: Пользователи
  • Сообщений: 11
  • Регистрация: 27 июля 21

Всем qq Кароче я хочу сделать систему авторизации админов вот, создал команду /alogin Открываеться диалог DIALOG_STYLE_PASSWORD вот, ну и кароче в паблике OnDialogResponse Мне надо узнать правильный ли пароль или нет вот кусочек кода на котором возникает ошибка(

Константа есть #define ADMPASS1 «6556»

При компиле такое (

c:UsersJarrDesktopShnurki RPgamemodesnew.pwn(286) : error 033: array must be indexed (variable «-unknown-«)

Сообщение отредактировал xiamaqaw: 27 июля 2021 — 21:21

  • Группа: Vip
  • Сообщений: 208
  • Регистрация: 07 ноября 20

  • Группа: Пользователи
  • Сообщений: 11
  • Регистрация: 27 июля 21

substantive. (27 июля 2021 — 21:38) писал:

  • Группа: Vip
  • Сообщений: 208
  • Регистрация: 07 ноября 20

  • Группа: Пользователи
  • Сообщений: 11
  • Регистрация: 27 июля 21

substantive. (27 июля 2021 — 21:47) писал:

c:UsersJarrDesktopShnurki RPgamemodesnew.pwn(286) : error 033: array must be indexed (variable «-unknown-«)

  • Группа: Vip
  • Сообщений: 208
  • Регистрация: 07 ноября 20

  • Группа: Пользователи
  • Сообщений: 11
  • Регистрация: 27 июля 21

substantive. (27 июля 2021 — 22:03) писал:

Бро спасибо тебе + не даёться(

substantive. (27 июля 2021 — 22:03) писал:

А не не так быстро(

SA-MP Server: 0.3.7-R2

Exception At Address: 0x00402276 Module: (samp-server.exe)

EAX: 0x0000EE1C EBX: 0x0000024C ECX: 0xFFFFFFFF EDX: 0x00000001

ESI: 0x02B81230 EDI: 0x029CA6F8 EBP: 0x02B79128 ESP: 0x0019F884

+0000: 0x0019F8E0 0x029CA6F8 0x00000027 0x00000000

+0010: 0x0000024C 0xFFFFFFFF 0x0000EE1C 0x000076FC

+0020: 0x00003724 0x000002B4 0x00003724 0x02B78DF8

+0030: 0x02B81230 0x00000000 0x02B78470 0x00008438

+0040: 0x57803374 0x029CA6F8 0x0019FD38 0x00000027

+0050: 0x00000000 0x00000000 0x029CA6F8 0x0019FD48

+0060: 0x004746BE 0x029CA6F8 0x0019FD38 0x00000000

+0070: 0x41435353 0x4F5F464E 0x6D61476E 0x646F4D65

+0080: 0x696E4965 0x00470074 0x029CA6F8 0x029CA6F8

+0090: 0x02B78DF8 0x00000000 0x00000000 0x00000000

+00A0: 0x00000000 0x00000000 0x00000000 0x00000000

+00B0: 0x00000000 0x00000000 0x00000000 0x00000000

+00C0: 0x00000000 0x00000000 0x00000000 0x00000000

+00D0: 0x00000000 0x00000000 0x000003FF 0x57803B0D

+00E0: 0x57803B0D 0x57803B0D 0x0019FDA0 0x57853418

+00F0: 0x57803B0D 0x0019FDAC 0x57803B0D 0x578534F0

+0100: 0x005FBFF0 0x5785344C 0x005FBFF0 0x00000000

+0110: 0x01010000 0x00000000 0x005C00C0 0x77A6AD20

+0120: 0x000003FF 0xFFFFFFFE 0x00190000 0x77A36E00

+0130: 0x00000DFC 0x005C8F80 0x000003FF 0x00000143

samp-server.exe A: 0x00400000 — 0x00519000 (C:UsersJarrDesktopShnurki RPsamp-server.exe)

ntdll.dll A: 0x779F0000 — 0x77B93000 (C:WindowsSYSTEM32ntdll.dll)

KERNEL32.DLL A: 0x77640000 — 0x77730000 (C:WindowsSystem32KERNEL32.DLL)

KERNELBASE.dll A: 0x76D60000 — 0x76F74000 (C:WindowsSystem32KERNELBASE.dll)

apphelp.dll A: 0x757C0000 — 0x7585F000 (C:WindowsSYSTEM32apphelp.dll)

SHELL32.dll A: 0x75FC0000 — 0x76573000 (C:WindowsSystem32SHELL32.dll)

msvcp_win.dll A: 0x75C10000 — 0x75C8B000 (C:WindowsSystem32msvcp_win.dll)

ucrtbase.dll A: 0x778C0000 — 0x779E0000 (C:WindowsSystem32ucrtbase.dll)

USER32.dll A: 0x774A0000 — 0x77636000 (C:WindowsSystem32USER32.dll)

win32u.dll A: 0x76640000 — 0x76658000 (C:WindowsSystem32win32u.dll)

GDI32.dll A: 0x76CE0000 — 0x76D03000 (C:WindowsSystem32GDI32.dll)

gdi32full.dll A: 0x771C0000 — 0x7729C000 (C:WindowsSystem32gdi32full.dll)

WINMM.dll A: 0x740C0000 — 0x740E8000 (C:WindowsSYSTEM32WINMM.dll)

WSOCK32.dll A: 0x638A0000 — 0x638A8000 (C:WindowsSYSTEM32WSOCK32.dll)

msvcrt.dll A: 0x77000000 — 0x770BF000 (C:WindowsSystem32msvcrt.dll)

ws2_32.DLL A: 0x76F90000 — 0x76FF3000 (C:WindowsSystem32ws2_32.DLL)

RPCRT4.dll A: 0x75C90000 — 0x75D4F000 (C:WindowsSystem32RPCRT4.dll)

IMM32.DLL A: 0x777C0000 — 0x777E5000 (C:WindowsSystem32IMM32.DLL)

sscanf.DLL A: 0x10000000 — 0x1000D000 (C:UsersJarrDesktopShnurki RPpluginssscanf.DLL)

MSVCR100.dll A: 0x57870000 — 0x5792F000 (C:WindowsSYSTEM32MSVCR100.dll)

streamer.DLL A: 0x57800000 — 0x57867000 (C:UsersJarrDesktopShnurki RPpluginsstreamer.DLL)

MSVCP140.dll A: 0x73EC0000 — 0x73F2F000 (C:WindowsSYSTEM32MSVCP140.dll)

VCRUNTIME140.dll A: 0x749F0000 — 0x74A03000 (C:WindowsSYSTEM32VCRUNTIME140.dll)

dc_cmd.DLL A: 0x02360000 — 0x02367000 (C:UsersJarrDesktopShnurki RPpluginsdc_cmd.DLL)

MSVCP110.dll A: 0x57770000 — 0x577F5000 (C:WindowsSYSTEM32MSVCP110.dll)

MSVCR110.dll A: 0x57690000 — 0x57762000 (C:WindowsSYSTEM32MSVCR110.dll)

Источник

Pawno error 033 array must be indexed

Быстрый переход в группу «Пользователи», без надобности написания постов и ожидания.

Покупка дает возможность:

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками — то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Программы для скриптера

Подборка удобных программ для скриптера

WorPlav

Изучающий

error 033: array must be indexed (variable «-unknown-«)

Строка в которой выдёт ошибку:

Статистика форума

Created by Giness

Уважаемый Гость.
Пожалуйста — воздержитесь от любых комментариев на форуме относительно ситуации в мире.
В личных сообщениях, в темах и где бы то не было.
Помните — это закончится в любом случае, а слова, сказанные (или написанные) Вами — не забудутся никогда.
МЫ ЗА МИР.
(Любые сообщения относительно ситуации в мире(не важно с каким смыслом) буду удаляться. А пользователи — блокироваться безвозвратно. )

Источник

Pawno error 033 array must be indexed

    Пользователь Сообщений: 8
    Регистрация: 21.04.2018
    КПД: 0%
  • IP: 82.146.53.77:708
  • Занятия: Скриптер
    Маппер

Уважаемые читатели этой темы,если вы опытен в исправлении Warning and Error то не проходите мимо,помогите новичку («Нубу»).
Я хотел взять с этого форума команду Перфиксов от @DEST,сделал вроде все как надо но вылезли вот этот Error:

error 033: array must be indexed (variable «prefix»)

public OnPlayerConnect(playerid)
<
Players[RealOnline++]=playerid;
for(new pInfo:i; i Спойлер

Поделиться сообщением

Ссылка на сообщение
Поделиться на другие сайты

1 ответ на этот вопрос

Последние посетители 0 пользователей онлайн

Ни одного зарегистрированного пользователя не просматривает данную страницу

Похожий контент

Кто знает как пофиксить?

C:UsersUserDesktopsliv4ikgamemodesNVEGM.pwn(13206) : warning 202: number of arguments does not match definition
C:UsersUserDesktopsliv4ikgamemodesNVEGM.pwn(13206) : warning 202: number of arguments does not match definition
C:UsersUserDesktopsliv4ikgamemodesNVEGM.pwn(33802) : warning 215: expression has no effect
C:UsersUserDesktopsliv4ikgamemodesNVEGM.pwn(38135) : warning 204: symbol is assigned a value that is never used: «region_index»
C:UsersUserDesktopsliv4ikgamemodesNVEGM.pwn(38550) : warning 203: symbol is never used: «IsCopCar»
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Header size: 19980 bytes
Code size: 2184936 bytes
Data size: 30086780 bytes
Stack/heap size: 72000 bytes; estimated max. usage=1780 cells (7120 bytes)
Total requirements:32363696 bytes
5 Warnings.

Работает на IPS Community Suite 4
2017 — н.в. PAWNO-RUS.RU
При копировании материалов с сайта ссылка на наш форум обязательна!

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

Однако без регистрации Вы также сможете пользоваться форумом.

Источник

  • Команда форума
  • #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 033 array must be indexed variable playerinfo
  • Error 033 array must be indexed variable pawn
  • Error 033 array must be indexed variable inputtext
  • Error 033 array must be indexed variable giveplayerid
  • Error 033 array must be indexed pawno

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

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