-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
От Elvis
Настоящим информируем о начале набора сотрудников в нашу студию "AlinSA Studios". В рамках текущего проекта "VanguardRP", основанного на мотивах CRMP, мы ищем профессионалов и энтузиастов для выполнения следующих должностей:
1. Технические специалисты
Требования:
| Базовые знания в области информационных технологий
| Понимание структур кода и принципов работы компиляторов
| Готовность к обучению и развитию профессиональных навыков
| Иметь базовое представлении ЯП "Pawn" или "Kotlin" и "Java".
Обязанности:
| Поддержка технической инфраструктуры проекта
| Участие в разработке и оптимизации программных решений
| Взаимодействие с командой разработки для внедрения новых функций
2. Пиар-ассистенты
Требования:
| Опыт работы в сфере SMM, маркетинга или PR
| Навыки взаимодействия с аудиторией и ведения социальных сетей
Обязанности:
| Продвижение проекта в социальных сетях
3. Дизайнеры
Требования:
| Наличие портфолио с примерами выполненных работ (не обязательно, желательно)
| Владение графическими редакторами ! (Photoshop и Figma)
| Креативность, внимательность к деталям и способность работать в сжатые сроки
Обязанности:
| создание графического контента для соцсетей, сайта и внутриигровых материалов
| Разработка дизайна интерфейсов, баннеров, логотипов и иллюстраций
| Участие в визуальном оформлении проекта
4. Геймдизайнеры
Обязанности:
| Разработка игровых механик, правил взаимодействия и систем баланса
| Проработка сюжета, персонажей и сценариев для создания эмоциональной связи с игроками
| Проектирование уровней, задач и сценариев для обеспечения разнообразия игрового процесса
| Взаимодействие с командой разработчиков, художников и звукорежиссёров для достижения согласованности элементов игры
| Участие в тестировании прототипов, выявление проблем и балансировка игрового процесса
5. Рупоры
Цель роли: Обеспечить эффективное взаимодействие с целевой аудиторией, формировать положительный имидж проекта, своевременно информировать участников о новостях, обновлениях и
мероприятиях, а также модерировать сообщества для поддержания комфортной и безопасной среды.
-————————-
Условия работы:
Обучение и постоянная поддержка со стороны команды
Гибкий график работы / удалённый формат (обсуждается индивидуально)
Если вы заинтересованы в присоединении к нашей команде или хотите получить дополнительную информацию, обращайтесь по следующему контакту:
Telegram: @AntonLegost
Благодарим за внимание! Надеемся на плодотворное сотрудничество.
p.s Новички приветствуются. Для пополнение портфолио и наработки опыта.
С уважением,
Команда "AlinSA Studios"
-
От Kutuzov
Автор данного канала снимает уроки по программированию на Pawn, также скоро будет на 20 подписчиков снимать мод с нуля в samp.
Приглашаем всех на канал, а также особенно новичков. Даже если вы уже знаете pawn, подпишитесь пожалуйста на его канал и поддержите его.
Автор канала не требует денег!!! Он обучает всех бесплатно!!!
Ссылка на канал: https://www.youtube.com/@prog_samp_easy
Также у него есть свой тг канал, но начнет вести его, как только будет не менее 10 подписчиков.
Ссылка на тг канал: https://t.me/pawndevelop
Всем удачи
-
От 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)
Я надеюсь что кому-то помог, а если что непонятно, то спрашивайте, всегда помогу.
-
От NoVate
Доброго времени суток
Многие новички задавались вопросом: "Как создать свой RP сервер?", "С чего начать разработку?", "Это сложно и я не справлюсь".
После таких вопросов многие уходили с этой темы и оставляли её на последней полке. Некоторые брались и сталкивались с большими проблемами. И только часть из этих людей доходили до какого-то результата.
Моя цель: сделать создание сервера в SA:MP проще. Чтобы каждый из тех, кто интересовался созданием сервера мог спокойно взять готовую, а что самое главное - базовую сборку и под неё уже создавать различные свои задумки. SA:MP на данный момент не особо актуален, а тем более самый обычный клиент, НО, как мне кажется, если сделать что-то невероятное, то аудитория заметит это и ей будет достаточно интересно "пощупать" данное новшество.
Для тех, кто начнёт писать: "Ты видел свой код?", "Ты сделал не правильно в 777-ой строке" и так далее. Сразу отвечу, цитируя:
Кому стало интересно и кто хотел бы ознакомиться со сборком - прошу в мой Github (не реклама).
Буду делать коммиты по мере свободного времени и написании кода.
Если есть какие-то идеи, то пишите в мой Discord сервера (не реклама), который можно будет найти на той же странице.
Спасибо всем за прочтение и хорошего настроения
-
От 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; }
-