Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Самые распространенные ошибки и ответы на них

Статус
В этой теме нельзя размещать новые ответы.

Seregamil

Мастер
Всем привет, мне и многим надоело отвечать каждый день на один и тот же вопрос типо:
Как исправить варнинг 217
Как переместить респавн и т.д.
Эта тема содержит все те вопросы, которые чаще всего задают
Начнем с простого
Самая распространенная у всех ошибка это
PHP:
warning 217: loose indentation
Эта ошибка решается двумя способами:
Если вам лень заниматься табуляцией то в начало мода поставьте
PHP:
#pragma tabsize 0
Ну или табулируйте код сами, т.е. либо ставьте код лесенкой либо ставьте все под одним
Строчка под строчкой, return под return’ом
Следующая ошибка
PHP:
undefined symbol "тут ваш символ"
Это означает, что у вас отсутствует переменная new
Т.е. в начало мода вставляете
PHP:
new ваш символ
Далее
PHP:
 symbol is never used: "символ"
Это означает, что у вас наоборот лишняя переменная, т.е. ее нужно удалить из мода
Но бывает проблемка, иногда выскакивает
PHP:
 symbol is never used: "ret_memcry"
Вы эту переменную найдете только в инклудах)
А в начало мода просто вставьте
PHP:
#pragma unused ret_memcry
Самая распространенная ошибка у всех это
PHP:
 fatal error 100: cannot read from file: "инклуд"
Эта ошибка говорит о том, что у вас отсутствует инклуд в директории pawno/include
Инклуд скачиваете с интернета и кидаете туда

Самый нудный у всех вопрос: как перенести респу и т.д.
в этой теме человек все внятно расписал
открыть

/*******************************************************************************************************************/
По поводу оптимизации многие задают вопросы, взято у пользователя infernus

Например в данном примере мы узнаем имя игрока
PHP:
new str[144];
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,MAX_PLAYER_NAM,E);
format(str,144,"меня зовут %s",pname);
SendClientMessage(playerid,-1,str);
во втором участке кода, все что выше повторяется...опять узнаем имя, опять ставим массивы... ит.п.
ну дак вот...чтоб постоянно вышеуказанный код не повторять, можно написать функцию узнавалки имени...

PHP:
stock pname(playerid)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
return pname;
}
и использовать уже функцию так:

PHP:
new str[144];
format(str,144,"Меня зовут %s",pname(playerid));
SendClientMessage(playerid,-1,str);
Как вы видете код стал меньше, не нужно теперь создавать заного переменные и т.д.


Второй пример

допустим нам надо узнать очки игрока:
Создаем условие

PHP:
if(GetPlayerScore(playerid) > 5|| GetPlayerScore(playerid) < 20)
{
//выполнить код
}
if(GetPlayerScore(playerid) > 20|| GetPlayerScore(playerid) < 50)
{
//выполнить код
}
if(GetPlayerScore(playerid) > 50|| GetPlayerScore(playerid) < 100)
{
//выполнить код
}
Тут мы задаем как бы "диапазон" очков, т.е. от 50 до 100

можно все это сделать намного проще ....

PHP:
switch(GetPlayerScore(playerid))
{
case 5..20://выполнить код
case 21..50://выполнить код
case 51..100://выполнить код
}
Чтобы каждый раз не создавать новые условия и так далее проще юзать switch
в swtich задается диапазон "от и до"


*******************************************Update
PHP:
warning 209: function "паблик в котором выбило ошибку" should return a value
Рассмотрим примитивный пример
PHP:
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
        }
         if(PlayerInfo[playerid][pMember] == 25 || PlayerInfo[playerid][pLeader] == 25)
        {
            ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,1,1,1);
            clearanim[playerid] = 7;
            format(string, sizeof(string), "- %s {336666}(%s)", text, sendername);
            SetPlayerChatBubble(playerid, text, 0xFFFFFFFF, 20.0, 10000);
            ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
        }
        return 0;
    }
}
в данном случае нас интересует
PHP:
return 0;
просто изменяем концовочку паблика на
PHP:
}
    }
           return 0;
}
В будущем тема будет пополняться…

By Seregamil
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу