Значение Warning можно посмотреть .
warning 219 wrote:warning 219: local variable "%s" shadows a variable at a preceding level
Это значит что переменная дважды объявлена. Пример:
Code: Select all
new fast;
new fast;
Что делать?
1. мы можем одну из них удалить;
2. можем изменить;
Но не стоит забывать что при изменении переменной нам нужно заменить все что её касается. Пример правильного изменения:
Code: Select all
new fast1;
fast1 = CreatePickup(1239, 2, 1380.3220,-1771.3235,13.5469);
warning 217 wrote:warning 217: loose indentation
Это значит что код не табулирован (не построен лесенкой) Пример:
Code: Select all
stock LSNews(color,const string[])
{
for(new i = 0; i < MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
if(!lNews[i]){
SendClientMessage(i, color, string);}}}
Пример правильного табулирования:
Code: Select all
stock LSNews(color,const string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!lNews[i])
{
SendClientMessage(i, color, string);
}
}
}
}
Можем выровнять все вручную или поставить:
Code: Select all
#pragma tabsize 0
или при помощи все исправить. pragma tabsize - просто маскирует эти warning и не более.
warning 235 wrote:warning 235: public function lacks forward declaration %s
Это означает что у функции нет forward Например Вы создали паблик:
Code: Select all
public lois()
И увас появляется этот варинг что же делать? Просто добавляем forward:
Code: Select all
forward lois();
Если вы не хотите каждый раз писать forward то можно сделать так:
Code: Select all
#define public:%1(%2) forward %1(%2);
public %1(%2)
И тогда новые паблики мы делаем так:
Code: Select all
public:lois()
warning 216 wrote:warning 216: nested comment ;
Вот так это выглядит:
Code: Select all
/*case 58: //Fire&lvl
исправление:
Code: Select all
case 58: //Fire&lvl
warning 213 wrote:warning 213: tag mismatch
Это означает не совпадения аргументов вот допустим самый простой случай:
Code: Select all
#define CreateObject CreateDynamicObject
#define MoveObject MoveDynamicObject
решение:
Code: Select all
#define CreateObject, CreateDynamicObject
#define MoveObject, MoveDynamicObject
warning 201 wrote:warning 201: redefinition of constant/macro
Двойное определение одинаковой константы define:
Code: Select all
#define OnPlayerEnterRaceCheckpoint
#define OnPlayerEnterRaceCheckpoint
исправление - одну удалить:
Code: Select all
#define OnPlayerEnterRaceCheckpoint
warning 200 wrote:warning 200: symbol "%s" is truncated to 31 characters
Это обозначает что мы при создании переменной ввели больше 31 символа. Пример:
Code: Select all
new sssssssssssssssssssssssssssssss;
Решение - сменить название или укоротить.
warning 202 wrote:warning 202: number of arguments does not match definition
Это значит что у нас не совпадают аргументы. Возьмем самый простой пример:
Code: Select all
Create3DTextLabel(" Текст .",0xFFA500FF,.0120,456.2717,35.1719,20.0);
Наша ошибка:
Code: Select all
-2041.0120,456.2717,35.1719,20.0
-2041.0120,456.2717,35.1719--------- это на ша координата (она нас не интересует)
20.0--------вот наша ошибка (20----это расстояние с которого наш текст будет виден)
а вот 0 это у нас testLOS- линия видимости
Нам 0 нужно заменить на 1
Code: Select all
Create3DTextLabel(" Текст .",0xFFA500FF,1111.1111,111.1111,11.1111,20.1);
warning 203 wrote:warning 203: symbol is never used: %s
Это означает что данный символ нигде не используется. Пример - создадим переменную:
Code: Select all
new respon;
И тут у нас возникает вопрос?:
Code: Select all
(2378) warning 203: symbol is never used: "respon"
Что же делать? Ответ прост - найти эту переменную и удалить.
warning 204 wrote:warning 204: symbol is assigned a value that is never used %s
Это значит что создали переменную и массив, а он негде не используется:
Code: Select all
new babai[15];
Решение - просто удалить.
warning 209 wrote:warning 209: function "%s" should return a value
Это значит что наша функция не возвращается (простыми словами нет return 1; или return 0;). Пример:
Code: Select all
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys == 1024)
{
OnPlayerCommandText(playerid,"/Blablabal");
return 1; <========Вот наш return ДО
}
}
Решение:
Code: Select all
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys == 1024)
{
OnPlayerCommandText(playerid,"/Blablabal");
}
return 1; <========Вот наш return ПОСЛЕ
}