Основы скриптинга


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

Для этого нужна ссылка на файл с 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 не получиться, а сделать два аргумента запросто.


Подробнее о материале Основы скриптинга


Вопрос: как сделать музыку при входе на сервер?
Ответ:

Для этого нужна ссылка на файл с 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 не получиться, а сделать два аргумента запросто.

Внимание!

Мы принимаем заявки на написание ваших скриптов!

Заполнить форму
Обновления new
  • Маппинг базы дальнобойщиков
  • Представляю вам маппинг базы дальнобойщиков в аэропорту! Данный маппинг использует ретекстур (retexture) объектов. Автор данного маппинга нам, увы,
  • TextDraw взаимодействие с игроком (копия ReinForce)
  • Доброго времени суток, дорогие посетители! Демонстрирую вам текстдрав взаимодействия с игроком, который является копией textdraw`s с проекта
  • Текстдрав (textdraw) телефона и текстдрав звонка
  • Представляю вам отличный текстдрав телефона и текстдрав звонка на телефоне. Textdraws выполнены очень качественно автором Andrey Rips. Он оставил нам
  • Текстдрав (textdraw) расклейки объявлений для вашего сервера
  • Представляю вам интересный текстдрав (textdraw, td, textdraws) расклейки объявлений для вашего сервера. Автором данного текстдрава является бюзер с
  • Маппинг крепости для вашего сервера самп (экстерьер)
  • Друзья, всем привет! Представляю вам маппинг крепости посреди пустыни. Крепость включает себя огромный забор, дорогу на заборе (чтобы залезть туда и
Подписывайся на нашу группу ВК