• GTA San Andreas
  • Основы скриптинга

    27
    март
    Основы скриптинга
    И так-с, драсте... Пошарился на форумах и поискал какие вопросы часто задают люди... Решил немного изменить систему подачи ответа, теперь будет больше слов чем кода (только после написания темы понял, что получилось наоборот).
    Вопрос: как сделать музыку при входе на сервер?
    Ответ:

    Для этого нужна ссылка на файл с mp3 расширением. Как ее можно добыть? Да практически никак. Для этого мы скачиваем музыку которая вам нужна, берем бесплатный тариф на Хостингере (хостинг сайтов), берем там бесплатный домен, ждем около двух дней пока одобрит модерация (не знаю как щас с бесплатными доменами, но раньше было так). Предвидел ваши слова: "ко ко ко ко там нужен номер телефона, ко ко ко ко там снимают 30 рублей"... Ну во первых администраторы Хостингера хоть немного но должны зарабатывать с вас, во вторых это защита от ш....... ботов. Далее качаем FTP клиент, берем данные с главной страницы вашего аккаунта, подключаемся к FTP серверу. После чего создаем там папку "music", ну или как вы хотите, и кидаем туда вашу музыку. После чего используем функцию в Pawn https://vk.cc/6pqdOE для проигрывания аудио файлов игроку и в аргументе url[] прописываем ссылку на ваш сайт в таком формате "домен который вы зарегали/папку которую вы создали/название музыки.mp3", PROFIT. А где ее использовать-то? Открываем список колбеков в SA:MP'e и ищем там колбек который вызывается при входе игрока на сервер https://vk.cc/6pqfrl . Думаю понятно объяснил.

    Продолжаем идти по темам на форумах...

    Вопрос: зачем вообще нужен "return" в конце каждой функции?
    Ответ:

    return возвращает значение. Что это значит? Например вы сами написали функцию которая проверяет есть ли у игрока оружие или нет (да я знаю можно проверить через стандартную функцию, но я может быть античит пишу).

    Код этой функции (насчет читабельности знаю, но ВК пропускает пробелы):

    new WeaponPlayers[MAX_PLAYERS char];
    
    stock IsPlayerUseWeapon(playerid)
    {
    if(WeaponPlayers{playerid}) return 1;
    else return 0;
    }


    Да-да-да-да, можно было просто проверить чему ровна переменная, но поверьте я видел людей которые делают так....

    Что же сделает функция? Она проверит есть ли у игрока оружие и если есть вернет 1. Что это дает? То что вы можете использовать эту функцию в проверке, как ту же переменную, например:

    public OnPlayerUpdate(playerid)
    {
    if(IsPlayerUseWeapon(playerid)) return print("У игрока обнаружилось оружие!");
    
    print("У игрока нету оружия");
    return 1;
    }


    То есть в проверке мы проверили что вернула функция IsPlayerUseWeapon, если она вернула не 0, то в чат напишет, что у игрока есть оружие. Но, я зачем то написал перед "print" return. Зачем это? Так вот, return оно не только возвращает какое то значение, но и останавливает код который пойдет дальше. Кстати, это относится и к теме "НЕ ПРАГРУЖАЮЦА ОБИКТЫ ПАМАГИТЕ!1!1!1". Люди читая слова "вставить в конец OnGameModeInit" воспринимают это как есть и вставляют, а выше находиться return 1; который останавливает код и поэтому объекты не появляются объекты.

    Вопрос: что делает & перед аргументами в функции или как мне сделать что бы функция записывала что то в локальную переменную?
    Ответ:

    Представим что вам нужно создать функцию которая что то узнала и записала в локальную переменную. Как бы это выглядело с return:

    public OnGameModeInit()
    {
    new val = GetVal();
    
    return 1;
    }
    
    stock GetVal() return 10000;
    
    Как бы это выглядело со знаком & перед аргументом:
    
    public OnGameModeInit()
    {
    new val;
    GetVal(val);
    return 1;
    }
    
    stock GetVal(&argument) // знак &
    {
    argument = 10000;
    return 1;
    }


    Зачем это нужно если есть return? Представим что вам нужно вернуть не одно значение, а два. Что вы будете делать? Ведь сделать два return'a не получиться, а сделать два аргумента запросто.
    Источник материала не известен
    • Опубликовал: Rain_Saunder
    • Просмотров: 194
    • Понравилось: 0
    Расскажи всем друзьям про Основы скриптинга:

    Прямая ссылка:
    BB-code ссылка:
    HTML ссылка:
    Оставить комментарий

    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

    © 2017, SAMP-UP.ru. Копирование дизайна или отдельных элементов сайта ЗАПРЕЩЕНО!
    При копировании публикаций сайта обратная кликабельная ссылка ОБЯЗАТЕЛЬНА!
    Яндекс.Метрика
    Александр Мальцев, Rain_Saunder