В этой теме вы сможете получить ответы, на многие ваши вопросы по PAWN.
Новичкам:
Внятно объясняйте Вашу проблему, если Вы получили ошибку, обязательно выкладывайте строки, на которые "ругается" компилятор.
Задавайте вопросы исключительно по коду, а не по системам, которые имеются у Вас в моде.
Помощь идет только по желанию пользователя, если человек помог Вам только частично, не нужно начинать поливать его грязью.
Возможно тип Вашей проблемы уже обсуждался на форуме, воспользуйтесь поиском.
В этой теме пользователи лишь оказывают помощь в написании кода, а не пишут его за Вас.
Если Вы хотите отблагодарить пользователя, жмите на кнопку . (Только для продвинутых, и выше)
Если Вы уже задавали вопрос и не получили на него ответа, то лучше написать в ЛС одному из участников группы , чем засорять тему.
Если Вы сами решили свою проблему, то напишите, как Вы ее решили.
Если Вас просят выложить код функций, то используйте для этого сервис pastebin.com
Скриптерам:
Не оскорблять новичков.
Не засорять тему сообщениями, подобные этому: "Закрой PAWNO и иди делай уроки".
Не посылать в поиск. Пользователь итак уже пришёл сюда из поиска. Если решение проблемы уже было опубликовано, то указать в какой теме
Как можно понятней объяснять решение той, или иной проблемы, по возможности приводить примеры.
Инструкции:
[cut noguest=Краткая инструкция для вшивания FS в мод] 1) Все из callback OnFilterScriptInit вставляем в конец callback OnGameModeInit перед словом return. 2) Все из callback OnFilterScriptExit вставляем в конец callback OnGameModeExit перед словом return. 3) Все объявления переменных (new ...) и констант (const ...; #define ... ...) в начало мода. 4) Все прототипы (forward ...(...) ) ко всем прототипам. 5) Все описания нестандартных функций (public ...(...); stock ...(...); ...(...){...} ), которых нет в моде, вставляем в конец мода.
P.S. Данный мануал не гарантирует, что после копирования все будет работать, так как еще потребуется подгонять одни системы под другие. P.P.S Если в одном из callback`ов Вы не обнаружили кода, то переходите к следующему пункту инструкции. [/cut]
[cut noguest=Защита от ботов] В OnPlayerConnect [pwn]if(GetPlayersSameIp(playerid) > 3) Kick(playerid);[/pwn] В конец мода [pwn]stock GetPlayersSameIp(playerid) {//by Weddew //Возвращает количество подключенных игроков с таким же IP как у playerid new count = 0, p_ip[16], i_ip[16]; GetPlayerIp(playerid, p_ip, sizeof(p_ip)); for(new i = 0; i < MAX_PLAYERS; i++) { GetPlayerIp(playerid, i_ip, sizeof(i_ip)); if(i != playerid) { if(!strcmp(p_ip, i_ip, false)) count++; } } return count; }[/pwn] [/cut]
[cut noguest=Проверка на Role Play ник] В конец мода: [pwn] stock IsARPNickname(playerid) { //by Weddew new p_n[MAX_PLAYER_NAME], dcount = 0; GetPlayerName(playerid, p_n, sizeof(p_n)) for(i = 0; i < strlen(p_n); i++) { if(p_n[i] == '_') dcount++; } if(dcount != 1 || p_n[0] == '_' || p_n[strlen(p_n)-1] == '_') return false; return true; }[/pwn]
Я же могу по факту взять бесплатный хостинг сайта на 1гб(Php+mysql) и засунуть туда mysql,и запускать мод? Мне чисто для запуска мода в режиме изменений,тестов) Знаю что онлайн такой хостинг не потянет,как сделать? не шарю в mysql вообще.
Всем привет Возник такой вопрос. При подключению к серверу срабатывает public OnPlayerRequestClass. Нужно сделать, чтобы не вылезали эти стрелочки для выбора класса, но при этом, чтобы игрок все равно не спавнился. То есть при загрузке появляется просто вид на город (например) без стрелочек, и диалоговое окно, а при логине игрок спавнится.
Всем привет.Скажите пожалуйста,мне нужно чтобы на респауне игроков 1 лвл(бомжей) стояли скутеры.Что нужно делать?
Используя функцию CreateVehicle создать их, на нужных координатах респы.
ЦитатаHakeRbesT ()
Возник такой вопрос. При подключению к серверу срабатывает public OnPlayerRequestClass. Нужно сделать, чтобы не вылезали эти стрелочки для выбора класса, но при этом, чтобы игрок все равно не спавнился. То есть при загрузке появляется просто вид на город (например) без стрелочек, и диалоговое окно, а при логине игрок спавнится.
Если по простому, то в паблике коннекта использовать функцию TogglePlayerSpectating(playerid, true); загнав игрока в режим спектатора, далее после авторизации использовать TogglePlayerSpectating(playerid, false); (если надо добавить выбор скина ForceClassSelection(playerid);)
Запускаешь сервер, едешь куда тебе нужно, садишься на скутер и ставишь его так как тебе нужно. Далее, сидя на скутере, пишешь команду /save. Команда /save сохраняет позиции в текстовый документ, под названием savedpositions.txt в директории с GTA.
Если по простому, то в паблике коннекта использовать функцию TogglePlayerSpectating(playerid, true); загнав игрока в режим спектатора, далее после авторизации использовать TogglePlayerSpectating(playerid, false); (если надо добавить выбор скина ForceClassSelection(playerid);)
Работает, вот только камера смотрит все время в одно место, SetPlayerCameraPos не помогает. Вот код
Код
public OnPlayerConnect(playerid){ new query[70], playerName[24]; GetPlayerName(playerid, playerName, 24); format(query, 70, "SELECT * FROM `players` WHERE `name` = '%s'", playerName); mysql_function_query(handle, query, true, "LoadAccount", "i", playerid); TogglePlayerSpectating(playerid, true); SetPlayerCameraPos(playerid, 1500.0, 1500.0, 500.0); SetPlayerCameraLookAt(playerid, 1500.0, 1500.0, 0); return 1; }
Если по простому, то в паблике коннекта использовать функцию TogglePlayerSpectating(playerid, true); загнав игрока в режим спектатора, далее после авторизации использовать TogglePlayerSpectating(playerid, false); (если надо добавить выбор скина ForceClassSelection(playerid);)
Работает, вот только камера смотрит все время в одно место, SetPlayerCameraPos не помогает. Вот код
Код
public OnPlayerConnect(playerid){ new query[70], playerName[24]; GetPlayerName(playerid, playerName, 24); format(query, 70, "SELECT * FROM `players` WHERE `name` = '%s'", playerName); mysql_function_query(handle, query, true, "LoadAccount", "i", playerid); TogglePlayerSpectating(playerid, true); SetPlayerCameraPos(playerid, 1500.0, 1500.0, 500.0); SetPlayerCameraLookAt(playerid, 1500.0, 1500.0, 0); return 1; }
Если по простому, то в паблике коннекта использовать функцию TogglePlayerSpectating(playerid, true); загнав игрока в режим спектатора, далее после авторизации использовать TogglePlayerSpectating(playerid, false); (если надо добавить выбор скина ForceClassSelection(playerid);)
Работает, вот только камера смотрит все время в одно место, SetPlayerCameraPos не помогает. Вот код
Код
public OnPlayerConnect(playerid){ new query[70], playerName[24]; GetPlayerName(playerid, playerName, 24); format(query, 70, "SELECT * FROM `players` WHERE `name` = '%s'", playerName); mysql_function_query(handle, query, true, "LoadAccount", "i", playerid); TogglePlayerSpectating(playerid, true); SetPlayerCameraPos(playerid, 1500.0, 1500.0, 500.0); SetPlayerCameraLookAt(playerid, 1500.0, 1500.0, 0); return 1; }
Посоветуйте и подскажите как можно сделать чтобы можно было отправлять E-mail сообщения с сервера, для восстановления пароля например. Использовал плагин от Roman1us, он оказался не очень хорошим он не работает с E-mail адресами где есть числа, заранее спасибо.
Ребят.Название мода сменилось на Blank Script.В исходнике мода изменяю,однако толку 0.Да и там было другое название,мое,не Blank Script(в моде).Как изменить?