8 posts in this topic
Create an account or sign in to comment
You need to be a member in order to leave a comment
-
Recently Browsing 0 members
No registered users viewing this page.
-
Similar Content
-
By Sleash
Всем доброго времени суток. Сегодня мне бы хотелось вам рассказать от таких функциях в PAWN-языке, как SetTimer и SetTimerEx.
Сразу сделаю такое примечание: Для SetTimer и SetTimerEx можно использовать ТОЛЬКО public!!!
SetTimer
Итак, для начала приступим к лёгкому и пойдём по нарастающей:
Первое, это SetTimer. Функция включает в себя 3 параметра:
native SetTimer(funcname[], interval, repeating); funcname[] - Это название функции, по сути - название вашего pablic в кавычках.
interval - Интервалы от вызова таймера до срабатывания pablic
Так же если стоит повторение таймера, то будет работать как интервал между таймерами.
Измеряется в миллисекундах. 1000 миллисекунд равно 1 секунде
repating - Тут всё просто: будет ли повторяться ваша функция. Может иметь значения: true - будет выполняться повторение ИЛИ false - вызывается 1 раз.
Давайте разберём пример для наглядности:
forward Info(); public Info() { SendClientMessageToAll(0xFFFFFFFF, "Наш сайт: pawno-rus.ru"); } // И теперь давайте вызовем данный таймер при запуске мода public OngameModeInit() { SetTimer("Info", 1000*60*20, true); return true } Давайте разберёмся по интервалу: 1000*60*20. Так как я писал ранее, что 1000 млСек = 1 сек, то: 1 сек * 60 = 1 минута; 1 минута * 20 = 20 минут.
Таким образом данный таймер будет выводить каждые 20 минут для всех игроков на сервере в чат: "pawno-rus.ru".
SetTimerEx
По сути с SetTimer - всё, теперь перейдём к следующей функции: SetTimerEx:
native SetTimerEx(funcname[], interval, repeating, const format[], {Float,_}:...); Тут добавляются ещё 2 параметра:
const format[] - формат данных для ввода в функцию. (Такие как: s, d, f);
{Float,_}:... - переменные или значение для данных из const fromat[]
Из данных объяснения мало что можно понять незнающему или начинающему скриптеру, поэтому давайте разберём на примере кода, который при входу даёт на авторизацию две минуты игроку:
forward autorez(playerid); public autorez(playerid) { if(/*проверка на то залогинился ли игрок*/) { SendClientMessage(playerid, 0xFFFFFFFF, "Вы были кикнуты по причине: Время на авторизацию истекло."); Kick(playerid); return true; } return true; } //Дальше уже добавлям сам таймер public OnPlayerConnect(playerid) { SetTimerEx("autorez", 1000*60*2, false, "d", playerid); return true; } Если первые три пункта мы уже разбирали. то начнём сразу с 4-го:
4. Тут в кавычках надо вставлять тип данных. Наподобие функции format(output[], len, "%s %d %f", string, int, float), только без знака процента (%)
5. Тут уже указывают сами данные, так же разберём как и предыдущий: format(output[], len, "%s %d %f ", string, int, float)
Я надеюсь что кому-то помог, а если что непонятно, то спрашивайте, всегда помогу.
-
By NoVate
Доброго времени суток
Многие новички задавались вопросом: "Как создать свой RP сервер?", "С чего начать разработку?", "Это сложно и я не справлюсь".
После таких вопросов многие уходили с этой темы и оставляли её на последней полке. Некоторые брались и сталкивались с большими проблемами. И только часть из этих людей доходили до какого-то результата.
Моя цель: сделать создание сервера в SA:MP проще. Чтобы каждый из тех, кто интересовался созданием сервера мог спокойно взять готовую, а что самое главное - базовую сборку и под неё уже создавать различные свои задумки. SA:MP на данный момент не особо актуален, а тем более самый обычный клиент, НО, как мне кажется, если сделать что-то невероятное, то аудитория заметит это и ей будет достаточно интересно "пощупать" данное новшество.
Для тех, кто начнёт писать: "Ты видел свой код?", "Ты сделал не правильно в 777-ой строке" и так далее. Сразу отвечу, цитируя:
Кому стало интересно и кто хотел бы ознакомиться со сборком - прошу в мой Github (не реклама).
Буду делать коммиты по мере свободного времени и написании кода.
Если есть какие-то идеи, то пишите в мой Discord сервера (не реклама), который можно будет найти на той же странице.
Спасибо всем за прочтение и хорошего настроения
-
By xiemoniyaz
C:\Users\111\OneDrive\Ðàáî÷èé ñòîë\rrrr\gamemodes\arizona.pwn(78772) : error 017: undefined symbol "GEO_MAX_COUNTRY_NAME_LENGTH" C:\Users\111\OneDrive\Ðàáî÷èé ñòîë\rrrr\gamemodes\arizona.pwn(78772) : error 009: invalid array size (negative, zero or out of bounds) C:\Users\111\OneDrive\Ðàáî÷èé ñòîë\rrrr\gamemodes\arizona.pwn(78772) : error 036: empty statement C:\Users\111\OneDrive\Ðàáî÷èé ñòîë\rrrr\gamemodes\arizona.pwn(78772) : fatal error 107: too many error messages on one line Compilation aborted. Pawn compiler 3.2.3664 Copyright (c) 1997-2016, ITB CompuPhase 4 Errors.
cmd:get(playerid, params[]) { extract params -> new player; else return SendClientMessage(playerid, -1, !"/get [playerid]"); new string[GEO_MAX_COUNTRY_NAME_LENGTH+GEO_MAX_REGION_NAME_LENGTH+GEO_MAX_CITY_NAME_LENGTH+GEO_MAX_PROVIDER_NAME_LENGTH+GEO_MAX_MOBILE_STATUS_LENGTH+GEO_MAX_PROXY_LENGTH-6+118]; format(string, sizeof(string), "Страна: %s\n\ Регион: %s\n\ Город: %s\n\ Провайдер: %s\n\ Использует ли моб.сеть: %s\n\ Использует ли прокси: %s", GetPlayerIpCountry(player), GetPlayerIpRegion(player), GetPlayerIpCity(player), GetPlayerIpProvider(player), GetPlayerIpMobileStatus(player), GetPlayerIpProxyStatus(player)); ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, !" ", string, !"Закрыть", !""); return true; }
-
-
By Daniil Korochansky
Здравствуйте. Я заметил что нет нормальных полноценных IDE для Pawn, большинство IDE какие-то багованнные, выскакивают разнообразные ошибки, в "Extreme Studio" к примеру. А в Pawno работать не удобно и в нём довольно скудный функционал. Ну вот.
Вот, сейчас я разрабатываю IDE которое называется "Spawn"(Samp pawn), которое потом будет много раз тестироваться, чтобы минимизировать самые разные ошибки если они будут. Когда будет закончена основа IDE, программа будет разрабатывать по предпочтениям пользователей/скриптеров, чтобы они хотели увидеть в программе, а там я уже буду решать реально ли требуется это программе или нет.
Главная цель программы по максимуму упростить разработку серверов SAMP.
Также программа будет как для Windows так и для Linux.
Распространяться будет по лицензии GPL с закрытым исходным кодом.
Я немного опишу что можно будет делать в в программе, что уже реализовано и что хочу сделать:
- Уже закончена работа над графической частью с которой взаимодействует пользователь(Меню, панель инструментов, диалог настроек, редактор и т. д.)
- Реализована подсветка синтаксиса Pawn
- Файлы будут открываться в вкладках редактора
- Реализована "Карта документа (Document map)" в правой стороне редактора с которой можно взаимодействовать(прямо как Sublime Text)(В настройках можно будет скрыть)
- Автоматическое закрытие скобок -> {}() ""
- Подсветка скобок которые взаимосвязаны между собой, на которые указал пользователь курсором.(Настраивается)
- Будет реализованы подсказки вызова(Call Tips) и авто-дополнение кода.
- Реализована настройка подсветки языка и настройка шрифта
- Live templates(Живые шаблоны)
- Поддержка компиляторов от SAMP Team, Zeex и модификацией Zeex(которая на удивление очень быстро компилирует исходники) и конечно же переключение между ними
И многое другое.
Есть сообщество Spawn, там можно найти так называемую статью "Roadmap"(или Карта разработки) которая регулярно обновляется, там так же отмечается что уже закончено.
Сообщество: https://vk.com/spawnsoftware
-