-
#1
Ищу вашей помощи, что-то вызывает у меня частые варнинги в чате, самп не крашит по этому намерения что либо менять в сборке не имею, но хочу скрывать эти ебучие варнинги есть ли какой скрипт для этого?
Если нет возможно ктонеть может его написать?
С меня как обычно нихуя и благодарность от всей души.
-
#3
CLEO — ASI — [ 0.3.7 | 0.3.DL ] ANTICRASHER
SA:MP ANTICRASHER Добавлено обновление для SA:MP 0.3.DL R1 Если выбрали CLEO-скрипт: — Файл *.cs кидать в папку CLEO, активация автоматическая. — Советую использовать CLEO версии 4.1. Если выбрали ASI-плагин: — Файл *.asi кидать в папку с игрой, активация автоматическая.
www.blast.hk
И так распишу как избавиться от надписи Warning(game):Exception:
Причины этому могу быть такие:
1. Не совместимые с SA:MP дополнения.
2. Не полная совместимость с Windows.
3. Вирусы на компьютере.
Избавиться можно так:
1. Попробуйте поставить совместимость SA:MP
Как поставить совместимость SA:MP
1. Заходим в папку с установленным SA:MP
2. Жмём на значёк SA-MP правой кнопкой мыши и открываем [Свойства]
3. Выбираем вкладку [Совместимость]
4. Ставим галочку на [Запустить программу в режиме совместимости с…]
5. Выбираем Windows 98/Windows Me
6. Жмём [Применить] потом [Ок]
7. Заходим на сервер
2. Проверьте компьютер на наличие вирусов.
Добавлено (27.08.2013, 20:03)
———————————————
Также поставив совместимость не будет такова бага. У меня 1 раз случался.
Описание бага: Когда вы заходите в игру — в ней мышь у Вас работает, а в паузе нет(т.е. если вы заходите [открыть карту], при помощи мыши у вас это не получится) и наоборот.
Уверен вам пригодится
[Waring]
%s- переменная
Переменная — это хранилище данных, куда мы можем записывать
различные данные для их последующего вызова. Тоесть действия с переменными предельно просты: запись информации,вывод и
использование информации. Если присмотрется ближе, то список можно пополнить еще одним пунктом — объявление переменной.
Каждая переменная имеет свое название, чтобы компилятор мог отличить друг от друга переменные, название мы задаем при
объявлении. Оператор объявления переменной — new
1)
PHP код:
warning 219: local variable "%s" shadows a variable at a preceding level
Это значит что переменная дважды объявлена.
Пример:
PHP код:
new neka; new neka
;
Что же нам делать, а вот что:
1) мы можем одну из них удалить;
2) можем изменить;
Но не стоит забывать что при изменении переменной нам нужно заменить все что её касается
вот пример правильного изменения:
PHP код:
new neka1; neka1 = CreatePickup(1239, 2, 1380.3220,-1771.3235,13.5469);
2)
PHP код:
warning 217: loose indentation
Это значит что код не табулирован(код не построен лесенкой)
Пример:
PHP код:
stock LSNews(color,const string[]) { for(new i = 0; i < MAX_PLAYERS; i++){ if(IsPlayerConnected(i)){ if(!lNews[i]){ SendClientMessage(i, color, string);}}}}
пример правильного табулирования
PHP код:
stock LSNews(color,const string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(!lNews[i]) { SendClientMessage(i, color, string); } } } }
Что же делать? ответ прост
1) мы можем делать все вручную
2) можем поставить
#pragma tabsize 0
3) можем с помощи notepad++ все исправить (на форуме есть урок)
pragma tabsize — Он просто маскирует эти warning и не более
3)
PHP код:
warning 235: public function lacks forward declaration %s
Это означает что у функции нету forward
Пример:
Вы создали паблик
PHP код:
public lol()
И увас появляется этот варинг что же делать?
ответ прост
добавляем forward
PHP код:
forward lol(); public lol()
если вы не хотите каждый раз писать forward то можно сделать так:
PHP код:
#define public:%1(%2) forward %1(%2); public %1(%2)
и тогда новые паблики мы пишем так
PHP код:
public:lol()
4)
PHP код:
warning 216: nested comment ;
Вот так это выглядит
PHP код:
/*case 458: //Fire&lvl исправление PHP код: case 458: //Fire&lvl
5)
PHP код:
warning 213: tag mismatch
Это означает не совпадения аргументов
вот допустим самый простой случай:
PHP код:
#define CreateObject CreateDynamicObject #define MoveObject MoveDynamicObject
решение простое
PHP код:
#define CreateObject, CreateDynamicObject #define MoveObject, MoveDynamicObject
6)
PHP код:
warning 201: redefinition of constant/macro
Это означает что в дефайнах(define)
Пример:
PHP код:
#define OnPlayerEnterRaceCheckpoint #define OnPlayerEnterRaceCheckpoint
Решение одну из двух удалить!
7)
PHP код:
warning 200: symbol "%s" is truncated to 31 characters
Это обозначает что мы при создании переменной ввели больше 31 символа
Пример:
PHP код:
new sssssssssssssssssssssssssssssss;
Решение:
Просто сменить название или укоротить !
PHP код:
warning 202: number of arguments does not match definition
Это значит что у нас не совпадают аргументы
Возьмем самый простой пример:
PHP код:
Create3DTextLabel(" ТУт типо текст .",0xFFA500FF,.0120,456.2717,35.1719,20.0);
Наша ошибка содержится здесь:
PHP код:
-2041.0120,456.2717,35.1719,20.0 -2041.0120,456.2717,35.1719--------- это на ша координата (она нас не интересует) 20.0--------вот наша ошибка (20----это расстояние с которого наш текст будет виден) а вот 0 это у нас testLOS- линия видимости
решение простое:
Нам 0 нужно заменить на 1
PHP код:
Create3DTextLabel(" ТУт типо текст .",0xFFA500FF,1111.1111,111.1111,11.1111,20.1);
9)
PHP код:
warning 203: symbol is never used: %s
Это означает что данный символ нигде не используется
Пример :
Создадим допустим переменную
new respon;
И тут у нас возникает
PHP код:
(1578) warning 203: symbol is never used: "respon"
Что же делать?
Ответ прост:
найти эту переменную и удалить
10)
PHP код:
warning 204: symbol is assigned a value that is never used %s
Это значит что создали переменную и массив а он негде не используется
Пример:
PHP код:
new blabal[15];
Решения: просто удалить
11)
PHP код:
warning 209: function "%s" should return a value
Это значит что наша функция не возвращается(простыми словами нету return 1; или return 0
пример:
PHP код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if (newkeys == 1024) { OnPlayerCommandText(playerid,"/Blablabal"); return 1; <========Вот наш return ДО } }
Решения:
PHP код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if (newkeys == 1024) { OnPlayerCommandText(playerid,"/Blablabal"); } return 1; <========Вот наш return ПОСЛЕ }
[Error]
1)
PHP код:
error 040: duplicate "case" label (value 28)
это означает что case стаким значением повторяется
Решение этой проблемы простое
PHP код:
case 28: case 28:
нам нужно цифру 28 изменит на другую (в той строчке на которую жалуется )
2)
PHP код:
error 032: array index out of bounds (variable "JoinPed")
Это означает что индекс массива превышен (но не всегда смотрим дальше)
Пример:
PHP код:
new JoinPed[131][1] = {
131- массив поигравшись с ним я понял что дело не в нем, а в чём-же спросите вы?
пример данной ошибки:
PHP код:
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[123][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[98][0]; }
как видим
JoinPed[123] с начало с таким значением, а потом JoinPed[98]
Решение простое:
JoinPed[123] число в данных скобках должно быть одинаковым.
пример:
PHP код:
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[123][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[123][0]; }
3)
PHP код:
error 037: invalid string (possibly non-terminated string)
Это означает что строка неправильная а точнее где то допущена ошибка
пример:
PHP код:
else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам.модера; }
как видим нам после слова «модера» не хватает «
пример:
PHP код:
else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам.модера"; }
4)
PHP код:
error 001: expected token: ",", but found ";"
Это значит что мы пропустили знак или скобку (в данном примере скобку)
Пример:
PHP код:
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; }
смотрим на
PHP код:
ProdyktsInfo[idx][prZamProd];
и вим что мы пропустили )
и так оно выглядит
PHP код:
ProdyktsInfo[idx][prZamProd]);
PHP код:
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; }
5)
PHP код:
error 002: only a single statement (or expression) can follow each "case"
Это означает что у вас после «case» идет if(dialogid == )
Пример:
PHP код:
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 как и последующий диалог !
PHP код:
case 7504: <------------------- вот так это выглядит { if(response) { SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); ClothesRun[playerid] = 0; return 1; }
6)
PHP код:
error 004: function "%s" is not implemented
Это означает что мы пропустили скобку.
Мой совет
1)проверить весь код в ручную
2)на форуме был урок как найти не по ставленую скобку
3)Можно воспользоватся notepad++ там показы линии открытых скобок и тогда можно найти эту скобку
7)
PHP код:
error 017: undefined symbol %s
Это означает что мы не поставили переменную (new)
Пример:
PHP код:
error 017: undefined symbol "lol"
Решение:
Ко всем new добавим
PHP код:
new lol;
Всем доброе времени суток пользователям pawno-rus, сегодня я хочу чуть научить начинающих людей исправлять известные ошибки и варнинги и самые простые, но эти ошибки и варнинги очень часть встречаются. Давайте начнем.
warning 219: local variable «string1» shadows a variable at a preceding level
Спойлер
new string1[50];
format(string1, sizeof(string1), «Имя: %s», PlayerInfo[playerid][pName]);
SendClientMessage(playerid,-1, string);
На примере у нас варнинг ругается на эту строку. Как же её исправить ? Чтобы его исправить нам достаточно до писать ко всем string1 (_1) или же без разница можно и (_2 и тд…) вот так это будет выгладить:
Спойлер
new string1_1[50];
format(string1_1, sizeof(string1_1), «Имя: %s», PlayerInfo[playerid][pName]);
SendClientMessage(playerid,-1, string_1);
Но не забывайте это был пример и ошибки бывают в стоках пабликах и тд… И помните всегда самая первая { -< это начало паблика или же стока} — < а самая последние это конец.
теперь давайте рассмотрим warning 217: loose indentation. Как же его исправить? Этот варнинг говорит о том что вы не соблюдаете табуляцию в моде примерно вот так выглядит ваш код:
Спойлер
Как мы видим тут не соблюдена табуляцию. значит нам надо это исправить мы можем выделить весь текс нажать shift + tab и наш текс уедет назад:
Спойлер
После этого выделить текст и нажать Tab, и вот что у нас получится:
Спойлер
Мы выравняли полностью строку. Теперь у нас не будет этого варнинга. И всегда старайтесь соблюдать табуляцую!
Давайте рассмотрим такую ошибку как error 017: undefined symbol «PlayerInfo»
Что же означает этот error? Этот error означает что у вас нету переменной или же паблика или сток PlayerInfo, но в моем случаи это переменной так что если вы будете что-то вырезать из другого мода и встретит такой error то вы уже будет значить что из того мода из которого вы вырезали вам нужна искать или же паблик или сток PlayerInfo или же переменную и вставить в свой мод. Но но всегда это бывает успешно по этому вы можете вести в адресную строку названия паблика или же стока или же переменной и вы точно что-то найдете. Если не успешно пишите на форум.
fatal error 100: cannot read from file: «mxINI» , что означает эта ошибка? Это ошибка говорит вам о том что в папки pawnoinclude нету файла mxINI, где найти этот файл? В адресной строке браузера пишите скачать инклуд названия и вы найдете его таким способом.
Думаю на этом все! Если вы хотите чтобы я по чуть по чуть учил вас исправлять все виды ошибок и варнингов то жмите + тем самым вы скажите мне что вам зашла эта идея. и прошу пользователей форума которые уже знаю как исправлять ошибки скинуть пару ошибок и как их исправлять под этой темой.
Отредактировано 13 ноября, 2017 пользователем Pikachu
case D_ADDMP:
{
if(response)
{
switch(listitem)
{
case 0:
{
if(CreateMP == true) return SendClientMessage(playerid, 0xAFAFAF, "Нельзя проводить несколько мероприятий сразу.");
ShowPlayerDialog(playerid, D_ADDMP+1, DIALOG_STYLE_INPUT, "{66CC00}» Создание мероприятия", "{FF0000}Внимание! {FFFF00}Пример: Гонки, 50 долларовnn{FFFFFF}Введите название и приз:", "Создать", "Назад");
}
case 1:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
if(TeleportMP == true)
{
new name[50];
new strmsg[400];
GetPlayerName(playerid, name, sizeof(name));
format(strmsg, 400, "{1874CD}%s Администратор %s {FF0000}закрыл{1874CD} телепорт на мероприятие %s.", NameServer, name, NameMP);
SendClientMessageToAll(0x9ACD32AA, strmsg);
TeleportMP = false;
}
else
{
new name[50];
new strmsg[400];
GetPlayerName(playerid, name, sizeof(name));
format(strmsg, 400, "{1874CD}%s Администратор %s {00FF00}открыл{1874CD} телепорт на мероприятие %s.", NameServer, name, NameMP);
SendClientMessageToAll(0x9ACD32AA, strmsg);
SendClientMessageToAll(0xFF6347AA, "Телепорт на мероприятие || /gotomp ");
TeleportMP = true;
}
DialogADDMP(playerid);
}
case 2:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
new Float:PlayerPos[3];
GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
foreach(new i:Player)
{
if(PlayerToPoint(50.0, i, PlayerPos[0], PlayerPos[1], PlayerPos[2]))
{
SetPlayerHealth(i, 100);
SetPlayerArmour(i, 0);
SendClientMessage(i, 0xFF6347AA, "Администратор установил всем: HP - 100 | Armour - 0");
}
}
DialogADDMP(playerid);
}
case 3:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
ShowPlayerDialog(playerid, D_ADDMP+2, DIALOG_STYLE_INPUT, "{1874CD}»{FFFFFF} Выдать оружие игрокам", "{FF0000}Внимание! {FFFF00}Пример: 24, 200 | (Итог: Дигл и 200 патронов)nn{FFFFFF}Введите ID оружия и кол-во патрон:", "Выдать", "Назад");
}
case 4:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
new Float:PlayerPos[3];
GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
foreach(new i:Player)
{
if(PlayerToPoint(50.0, i, PlayerPos[0], PlayerPos[1], PlayerPos[2]))
{
ResetPlayerWeapons(i);
SendClientMessage(i, 0xFF6347AA, "Администратор отобрал у всех оружие.");
}
}
DialogADDMP(playerid);
}
case 5:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
ShowPlayerDialog(playerid, D_ADDMP+3, DIALOG_STYLE_INPUT, "{1874CD}»{FFFFFF} Добавить машину", "{FF0000}Внимание! {FFFF00}Пример: 522, 3, 9 | (Итог: NRG красно-серый)nn{FFFFFF}Введите ID машины и цвета:", "Ввод", "Назад");
}
case 6:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
ShowPlayerDialog(playerid, D_ADDMP+6, DIALOG_STYLE_MSGBOX, "{1874CD}»{FFFFFF} Изменить скин", "{FFFF00}A{FFFFFF} - Игроку.n{FFFF00}B{FFFFFF} - Всем (50m).", "A", "B");
}
case 7:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
ShowPlayerDialog(playerid, D_ADDMP+9, DIALOG_STYLE_MSGBOX, "{1874CD}»{FFFFFF} Установить цветn", "{FFFF00}A{FFFFFF} - Игроку.n{FFFF00}B{FFFFFF} - Всем (50m).", "A", "B");
}
case 8:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
ShowPlayerDialog(playerid, D_ADDMP+13, DIALOG_STYLE_MSGBOX, "{1874CD}»{FFFFFF} Заморозить игроковn", "Радиус заморозки - 50m.", "Freeze", "Unfreeze");
}
case 9:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
ShowPlayerDialog(playerid, D_ADDMP+14, DIALOG_STYLE_INPUT, "{1874CD}»{FFFFFF} Дать отсчетn", "Введите цифру от которой пойдет обратный отсчет:", "Начать", "Назад");
}
case 10:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
ShowPlayerDialog(playerid, D_ADDMP+4, DIALOG_STYLE_INPUT, "{1874CD}»{FFFFFF} Огласить победителя", "Введите ID победителя:", "Ввод", "Назад");
}
case 11:
{
if(CreateMP == false) return SendClientMessage(playerid, 0xAFAFAF, DontCreateMP);
ShowPlayerDialog(playerid, D_ADDMP+5, DIALOG_STYLE_MSGBOX, "{1874CD}»{FFFFFF} Удалить мероприятие", "{FFFFFF}Вы действительно хотите {FF0000}удалить{FFFFFF} данное мероприятие?", "Да", "Назад");
}
}
}
}