#1
Отправлено 28 мая 2013 — 15:42
-
- Прохожий
-
C:Users????????????1DownloadsSNK RPGSNKgamemodesSNKland.pwn(6147) : error 017: undefined symbol «SNKland»
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
1 Error.
Как исправить?
Мод писал не с 0:D
0
#2
Отправлено 28 мая 2013 — 16:09
-
- ДЭЭМ, БООЙ
-
ко всем new в верх добавь
new SNKland;
Сообщение отредактировал VistigoN: 28 мая 2013 — 16:09
1
#3
Отправлено 28 мая 2013 — 16:30
-
- Прохожий
-
Появилось это:
C:Users????????????1DownloadsSNKlandSNKlandgamemodesSNKland.pwn(6148) : error 035: argument type mismatch (argument 1)
C:Users????????????1DownloadsSNKlandSNKlandgamemodesSNKland.pwn(29486) : warning 203: symbol is never used: «SNKland»
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
1 Error.
29486 Вобще строчки нет такой О_о
Сообщение отредактировал weZZy: 28 мая 2013 — 16:37
0
#4
Отправлено 28 мая 2013 — 17:47
-
- Профессионал
-
Кинь строку 6148
warning 203: symbol is never used: «SNKland» — говорит о том что перменная которую ты объявил нигде не используется.
1
#5
Отправлено 28 мая 2013 — 18:08
-
- Прохожий
-
iRusel (28 мая 2013 — 17:47) писал:
Кинь строку 6148
warning 203: symbol is never used: «SNKland» — говорит о том что перменная которую ты объявил нигде не используется.
SetGameModeText(SNKland);
0
#6
Отправлено 28 мая 2013 — 19:35
-
- Профессионал
-
Я не понимаю ты в переменную загоняешь название а потом используешь или название мода SNKland?
Если название мода такое то удаляй new SNKland; а строчку
SetGameModeText(SNKland);
замени на
SetGameModeText("SNKland");
1
#7
Отправлено 28 мая 2013 — 20:04
-
- Прохожий
-
iRusel (28 мая 2013 — 19:35) писал:
Я не понимаю ты в переменную загоняешь название а потом используешь или название мода SNKland?
Если название мода такое то удаляй new SNKland; а строчку
SetGameModeText(SNKland);
замени на
SetGameModeText("SNKland");
Спасибо большое!)
0
- ← Предыдущая тема
- Проблемы с компилированием
- Следующая тема →
- Вы не можете создать новую тему
-
Тема закрыта
1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей
17 минут назад, Nekit_Krut18 сказал:
@x_SkYAs_x Покажите код этих строк, на которых ошибки. Используйте для этого, спойлер и тег ‘ Код ‘.
8452: SetVehicleData(GetPlayerVehicleID(playerid),V_BAGAGE_AMOUNT_GUN,0); 10475: if GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500 > 3000 *then SendClientMessage(playerid,-1,"Матовоз переполнен!"); 10478: SetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN,GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500); 10479: format(l_string,26,"Матовоз загружен: 0/%d",GetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN)); 10594: if GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500 > 3000 *then SendClientMessage(playerid,-1,"Матовоз переполнен!"); 10597: SetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN,GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500); 10598: format(l_string,26,"Матовоз загружен: 0/%d",GetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN));
new V_BAGAGE_AMOUNT_GUN
Я все правильно сделал с этим?
Ну и в конце » ; » забыл дописать тут
Отредактировано 15 января, 2021 пользователем x_SkYAs_x
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case dRegister:
{
if(!response)
{
ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Отказ от регистрации.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
return Kick(playerid);
}
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Вы не можете продолжить регистрацию не введя пароль!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
else if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль слишком короткий!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
else if(strlen(inputtext) > 30) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
for(new i = strlen(inputtext)-1; i != -1; i--)
{
switch(inputtext[i])
{
case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
default: return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль содержит запрещённые символы!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
}
}
pInfo[playerid][pPassword][0] = EOS;
strins(pInfo[playerid][pPassword], inputtext, 0);
CreateNewAccount(playerid, pInfo[playerid][pPassword]);
return 1;
}
case dLogin:
{
if(!response)
{
ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Отказ от авторизации.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
return Kick(playerid);
}
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы не можете продолжить авторизацию не введя пароль!nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
for(new i = strlen(inputtext)-1; i != -1; i--)
{
switch(inputtext[i])
{
case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
default: return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Введённый пароль содержит запрещённые символы!nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
}
}
if(!strcmp(pInfo[playerid][pPassword], inputtext))
{
new query_string[49+MAX_PLAYER_NAME];
format(query_string, sizeof(query_string), "SELECT * FROM `accounts` WHERE `player_name` = '%s'", pInfo[playerid][pName]);
mysql_tquery(mysql_connect_ID, query_string, "UploadPlayerAccount","i", playerid);
}
else
{
switch(GetPVarInt(playerid, "WrongPassword"))
{
case 0: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 3 попытки.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
case 1: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 2 попытки.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
case 2: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 1 попытка.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
case 3: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталась последняя попытка, после чего Вас кикнет.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
default:
{
ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Превышен лимит попыток на ввод пароля.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
return Kick(playerid);
}
}
SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")+1);
}
return 1;
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
//==================== [ Форварды ] ============================================
forward FindPlayerInTable(playerid);
public FindPlayerInTable(playerid)
{
new rows;
cache_get_row_count(rows);
if(!rows)
{
ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "Введите пароль для регистрации нового аккаунта:", "Регистрация", "Выход");
}
else
{
ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "Введите пароль от аккаунта для того, чтоб продолжить игру:", "Вход", "Выход");
cache_get_value_name(0, "password", pInfo[playerid][pPassword], 31);
}
return 1;
}
forward UploadPlayerAccount(playerid);
public UploadPlayerAccount(playerid)
{
cache_get_value_name_int(0, "id", pInfo[playerid][pID]);
SendClientMessage(playerid, 0xFFFFFF00, "Вы успешно авторизировались!");
SetPlayerAuthorized(playerid, PLAYER_ONLINE);
SpawnPlayer(playerid);
return 1;
}
Данная тема предназначена для исправления ошибок в моде,тоесть для помощи вам.
Тема делится на 2 пункта
I.Ошибки
II.Варнинги
I.Ошибки
1)Неизвестный символ.(error 017)
У многих при вырезке вылазиет следущая ошибка
PHP:
бла-бла-бланазвание мода.pwn(строчка) : error 017: undefined symbol "аргумент."
Давайте посмотрим как же это исправить.Берем мод из которого вы вырезали что-либо,и в поиске вводим
Скорее всего ошибка будет исправлена!
2)Неизвестный символ(Тип 2)(error 017)
Часто случается и такая ошибка
PHP:
бла-бла-бланазвание мода.pwn(строчка) : error 017: undefined symbol "p(или другая буква)Аргумент."
Разница в том,что это нужно добавлять в другое место.Например у вас допустим
PHP:
бла-бла-бланазвание мода.pwn(строчка) : error 017: undefined symbol "pAdmin"
делаем следущее: находим enum pInfo(возможно и hInfo и т.д. зависит от первой буквы неизвестного символа)
и вставляем туда «pAdmin,»(желательно где-то в середину добавлять чтобы потом не разбираться с запятыми).Готово! Ошибка исправлена!
3)Не подключенные include’ы(fatal error 001)
Также многие пытаются вырезать регистрацию(и т.п.) но у них что-то не получается,а файлы new аргумент не находятся и они начинают психовать,и забрасывать все куда подальше.из этого тоже есть выход.Просто подключим в мод include тоесть например
лучше всего засунуть это к другим include’ам.
4)Пропущенный символ(error 001)
Данная ошибка просто напросто нелепа и решение ее как два пальца.Рассмотрим пример:
PHP:
error 001: expected token: "}", but found ";"
Тоесть здесь вы закрыли public(например) но забыли поставить ; к последней его строчке и решение таково
PHP:
public Бла-бла-бла()
{
Какой-нибудь бред; // Тоесть я добавил ";"
}
5)Повторение переменной(error 021)
Это обычно выглядит вот так
PHP:
error 021: symbol already defined: bla-bla-bla
Для начало об ошибке.Когда-то уже вы добавляли такую переменную(в моем случае это new bla-bla-bla),и вот это действие повторилось.Ну что же давайте убивать эту ошибку.Вводим в поисковике(CTRL+F)следущее
PHP:
new bla-bla-bla(опять же у вас вместо бла-бла-бла то что в ошибке);
, удаляем.Внимание удаляем только одну строчку если удалите две такие скорее всего у вас вылезит error 017.
II.Варнинги
1)Не зарегистрированный public
Часто случается что появляется вот такой warning:
PHP:
бла-бла-бланазвание мода.pwn(строчка) : warning 235: public function lacks forward declaration (symbol "название паблика")
Для исправления делаем следуещее:Находим public из-за которого возник warning и копируем полностью его название и аргументы
Пример:
PHP:
public PayDay(возможно здесь будут какие-либо аргументы)
После того как вы скопировали название public’a вставляем в поиске forward, и там делаем новую строчку,вставляем туда название public’a,слово public изменяем на forward и в конце вставляем «;» тоесть вот вам пример:
2)Ошибка в пробелах
PHP:
бла-бла-бланазвание мода.pwn(строчка) : warning 217: loose indentation
Здесь есть 2 вида исправления
1)Затрудненный:подбирать все пробелами
2)Для ленивых: просто напросто добавить после инклудов следущее
Тема постоянно обновляется,и вы можете помочь ей разместив свой метод.Помните любую ошибку лучше исправить сразу кнопками Ctrl+Z
Как исправить Error
Автор: neka
Значение Error можно посмотреть здесь.
error 040: duplicate «case» label (value 28)
Это означает что case стаким значением повторяется. Решение этой проблемы простое — нам нужно цифру 28 изменит на другую (в той строчке на которую жалуется )
error 032: array index out of bounds (variable «JoinPed»)
Это означает что индекс массива превышен (но не всегда, смотрим дальше) Пример:
131 — массив поигравшись с ним я понял что дело не в нем, а в чём же спросите вы? Пример данной ошибки:
Код: Выделить всё
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[123][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[98][0]; }
как видим — JoinPed[123] сначало с таким значением, а потом JoinPed[98]. Решение простое: JoinPed[123] число в данных скобках должно быть одинаковым. Пример:
Код: Выделить всё
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[123][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[123][0]; }
error 037: invalid string (possibly non-terminated string)
Это означает что строка неправильная, а точнее где то допущена ошибка:
Код: Выделить всё
else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам.модера; }
как видим нам после слова «модера» не хватает «. Правим:
Код: Выделить всё
else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам.модера"; }
error 001: expected token: «,», but found «;»
Это значит что мы пропустили знак или скобку (в данном примере скобку) Пример:
Код: Выделить всё
public SaveProdykts()
{
new idx;
new File: file2;
while (idx < sizeof(ProdyktsInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%dn",
ProdyktsInfo[idx][prSous],
ProdyktsInfo[idx][prPizza],
ProdyktsInfo[idx][prMilk],
ProdyktsInfo[idx][prJuice],
ProdyktsInfo[idx][prSpirt],
ProdyktsInfo[idx][prChicken],
ProdyktsInfo[idx][prKolbasa],
ProdyktsInfo[idx][prFish],
ProdyktsInfo[idx][prIceCream],
ProdyktsInfo[idx][prChips],
ProdyktsInfo[idx][prZamProd];
if(idx == 0)
{
file2 = fopen("[prodykts]/prodykts.cfg", io_write);
}
else
{
file2 = fopen("[prodykts]/prodykts.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}
смотрим на:
и вим что мы ппропустили )
Правим:
И в итоге:
Код: Выделить всё
public SaveProdykts()
{
new idx;
new File: file2;
while (idx < sizeof(ProdyktsInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%dn",
ProdyktsInfo[idx][prSous],
ProdyktsInfo[idx][prPizza],
ProdyktsInfo[idx][prMilk],
ProdyktsInfo[idx][prJuice],
ProdyktsInfo[idx][prSpirt],
ProdyktsInfo[idx][prChicken],
ProdyktsInfo[idx][prKolbasa],
ProdyktsInfo[idx][prFish],
ProdyktsInfo[idx][prIceCream],
ProdyktsInfo[idx][prChips],
ProdyktsInfo[idx][prZamProd]);< ----------- И вот наша скобка
if(idx == 0)
{
file2 = fopen("[prodykts]/prodykts.cfg", io_write);
}
else
{
file2 = fopen("[prodykts]/prodykts.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}
error 002: only a single statement (or expression) can follow each «case»
Это означает что у вас после «case» идет if(dialogid == ). Пример:
Код: Выделить всё
case 7507:
{
if(response) ClothesSex[playerid] = 1;
else ClothesSex[playerid] = 2;
ShowPlayerDialog(playerid,7504,2,"??????? ??????","{A0B0D0}?????????? ?????? {7CC000}300$n{A0B0D0}??????? ?????? {7CC000}300$n{A0B0D0}???????????? ?????? {7CC000}300$n{A0B0D0}?????","???????","?????");
return 1;
}
if(dialogid == 7504) <------------------- вот наша и ошибка
{
if(response)
{
SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1);
SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
ClothesRun[playerid] = 0;
return 1;
}
Решение простое: if(dialogid == 7504) это нам нужно заменить на case как и последующий диалог !
Код: Выделить всё
case 7504: <------------------- вот так это выглядит
{
if(response)
{
SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1);
SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
ClothesRun[playerid] = 0;
return 1;
}
error 004: function «%s» is not implemented
Это означает что мы пропустили скобку. Мой совет:
- проверить весь код в ручную
- на форуме был урок как найти не по ставленую скобку
- Можно воспользоватся notepad++ там показы линии открытых скобок и тогда можно найти эту скобку
error 017: undefined symbol %s
Это означает что мы не поставили переменную new. Пример:
Решение — ко всем new добавим: