Как исправить варнинги в самп

  • #1

Ищу вашей помощи, что-то вызывает у меня частые варнинги в чате, самп не крашит по этому намерения что либо менять в сборке не имею, но хочу скрывать эти ебучие варнинги есть ли какой скрипт для этого?
Если нет возможно ктонеть может его написать?
С меня как обычно нихуя и благодарность от всей души.

chrome_xLJ1Bj1NWK.png

  • #3

www.blast.hk

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


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 раз случался.
Описание бага: Когда вы заходите в игру — в ней мышь у Вас работает, а в паузе нет(т.е. если вы заходите [открыть карту], при помощи мыши у вас это не получится) и наоборот.

Уверен вам пригодится :P

[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; 

Решение:
Просто сменить название или укоротить !
8)

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. Как же его исправить? Этот варнинг говорит о том что вы не соблюдаете табуляцию в моде примерно вот так выглядит ваш код: 
 

Спойлер

5a09a60f82f54_.png.47e23001438b9ac82c150cef74adf987.png

Как мы видим тут не соблюдена табуляцию. значит нам надо это исправить мы можем выделить весь текс нажать shift + tab и наш текс уедет назад:
 

Спойлер

5a09a688c3286_.png.b6f72169cbc197eb562769d1bd31557a.png

После этого выделить текст и нажать Tab, и вот что у нас получится:

Спойлер

5a09a6e38a389_.png.8d4cd9030dfe1a887c2af85efac04345.png

Мы выравняли полностью строку. Теперь у нас не будет этого варнинга. И всегда старайтесь соблюдать табуляцую!
Давайте рассмотрим такую ошибку как 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} данное мероприятие?", "Да", "Назад");
					}
				}
			}
		}

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

Не пропустите также:

  • Как найти аниматроников в майнкрафте
  • Steam initialization failed как исправить
  • Как составить профессиограмму медицинской сестры
  • Как найти на рабочем столе телефона приложение
  • Как найти слова по немецки

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

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