Как сделать квест pawno
Привет, сейчас я покажу систему квестов(неполная)
Автор: Я
По вашему может быть быдло-кодом)
Нам будет нужен инклуд dc_cmd ну или аналог.
Начнем!
К инклудам:
Теперь добавляем саму команду /quest
Ко всем командам добавляем.
Далее нам надо создать сам диалог переходим в public OnDialogReponse и вставляем туда:
Следующим шагом мы сделаем чтобы при нажатии кнопки принять принимался квест а при нажатии закрыть открывалось меню с квестами
Ну и теперь получение награды так как, я пользуюсь MySQL у меня получение будет через запрос. Нажимаем сочетание клавиш CTRL+F и ищем что то похожее на «вы получили паспорт» и вставляем ниже проверку:
CMD:quest(playerid)
<
if(!gPlayerLogged[playerid]) return SCM(playerid, COLOR_GREY, «Вы не авторизованы»); // Проверка на авторизацию игрока у каждого своя.
SPD(playerid, 1525, DIALOG_STYLE_LIST, «Квесты», «Получить паспорт\n», «Принять», «Закрыть»); // 1525 id диалога меняем на ваш НЕЗАНЯТЫЙ
return 1;
>
Далее нам надо создать сам диалог переходим в public OnDialogReponse и вставляем туда:
case 1525:
<
if(!response) return 1;
switch(listitem)
<
case 0:
<
SPD(playerid, 1526, DIALOG_STYLE_MSGBOX, «Получить паспорт», «Получение паспорта проходит в мэрии <00FF00>Лос-Сантоса\n\n
>
>
>
Следующим шагом мы сделаем чтобы при нажатии кнопки принять принимался квест а при нажатии закрыть открывалось меню с квестами
case 1526:
<
if(response)
<
if(GetPVarInt(playerid, «quest», 1))
<
SCM(playerid, COLOR_RED, «Вы уже выполняете квест!»);
return 1;
>
SCM(playerid, COLOR_GREEN, «Вы взялись за выполнение квеста!»);
SetPVarInt(playerid, «quest», 1);
>
else
<
return cmd_quest(playerid);
>
>
Ну и теперь получение награды так как, я пользуюсь MySQL у меня получение будет через запрос. Нажимаем сочетание клавиш CTRL+F и ищем что то похожее на «вы получили паспорт» и вставляем ниже проверку:
if(GetPVarInt(playerid, «quest», 1))
<
new string[128];
SetPVarInt(playerid, «quest», 0);
SCM(playerid, COLOR_GREEN, «Вы успешно выполнили квест! И получили свою награду!»);
pInfo[playerid][pCredits] += 50; // Получаем кредиты
format(string, sizeof(string), «UPDATE «T_ACCOUNTS» SET credits = %d WHERE pInfo[playerid][pTotalCredits], pInfo[playerid][pID]);
mysql_tquery(dbHandle, string, «», «»);
Не понимаю куда это вставлять, нет такого у меня нигде.
SamPawno
Введение в Pawn
Описание: Основы скриптинга
Модератор: SJplayer
Урок 1. Начало.
Урок 2. Паблики.
Урок 3. Функции.
Урок 4. Переменные.
Урок 5. Проверки.
Урок 6. Создание новых пабликов.
Урок 7. Таймер.
Урок 8. Циклы.
Урок 9. #define.
Урок 10. enum.
Дополнение 1. Работа с dcmd.
Дополнение 2. Работа с strtok.
Если вы делаете мод, то сначала стоит записать данные строки:
Паблики (public), иногда их называют калбеки (callbacks).
Callback, переводится как «функция, вызываемая автоматически».
Это процедуы, которые определяют, что будет
выполняться при данном действии, будь то игрока написал что то в чате,
или запустился мод. Каждый калбек имеет определённое название и определённые параметры.
Пример паблика:
Данный паблик паблик отвечает за то, что будет, когда игрок сдохнет.
В конце каждого паблика должен стоять return.
Если паблик находится в моде, то вводим return 1;
Если паблик находится в скрипте, то вводим return 0;
Если установить return 1; в скрипте, то выйдет такая ситуация:
паблик в скрипте работать не будет!
Данная функция даёт игроку playerid деньги money.
Может быть функция с одним параметром, например:
Данная функция определяет число денег у игрока playerid. Cама по себе бесполезна,
используется для других фукнций.
Строго говоря это адреса памяти, имеющие определённое значение.
Говоря проще, это некое слово, имеющие числовое значение
Существуют несколько видов переменных:
1. серверные переменные,
2. переменные игроков,
3. текстовые переменные.
1. Серверные переменные.
Так будем называть общие переменные.
Создана перменная server_players со значением 0.
Переменной server_players присвоено значение 5.
Функция прибавление к значению опред. числа:
Функция отнятия из значения опред. числа:
К переменной можно присвоить значение функции.
server_players = GetPlayerMoney ( playerid ); //переменной server_players присвоено значение денег игрока playerid
Также к переменной можно присвоить ИД, например, транспорта.
DestroyVehicle ( vehicle ); //Транспорт уничтожается.
2. Переменные игроков.
Переменная, которая приклепляется к каждому игроку на сервере.
new player [ MAX_PLAYERS ]= 0 ;
Создана переменная player со значением 0.
На данном этапе каждый игрок имеет значение 0.
player [ playerid ]= 5 ;
Переменной player одного игрока playerid присваивается значение 5.
Также с данной переменной совершаются все действия серверной переменной.
new kills [ MAX_PLAYERS ]= 0 ; //Создана переменная kills. Для всех игроков установлено значение 0.
new deaths [ MAX_PLAYERS ]= 0 ; //Создана переменная deaths. Для всех игроков установлено значение 0
3. Текстовые переменные.
new string [ 256 ]; //cоздана переменная string
Такая переменная в основном используется для создания форматированного текста.
Переменной string присвоено текстовое значение, указанное в кавычках.
Есть ещё переменная, используемая для имени:
new name [ MAX_PLAYER_NAME ];
Cоздана переменная name.
if( некая_функция )
<
// код, который должен выполняться, при выполнение некая_функция
>
В качестве проверки может использоваться:
1. сравнению переменных, либо значений функций,
2. выполняеться ли некая функция.
1. Сравнение переменных.
if( GetPlayerMoney ( playerid ) >= money )
<
выполнение_кода ;
>
В данной проверка произведено сравнение:
ЕСЛИ деньги_игрока >= (больше или равно) money
ТО выполнение_кода
Есть разных виды сравнений:
2. Выполнение определённой фукнции.
Проверяет, выполняеться ли данная функция.
if( IsPlayerConnected ( playerid ))
< >
Выполняется проверка, подключён ли игрок к серверу.
Конечно, есть функия, использующаяся при невыполнениии проверки.
Называется else. Используется так.
Новый паблик создаётся так:
Создаётся он для того, чтобы вызвать некоторые функции одновременно.
Например, функция установки денег.
Данная функция используется довольно редко. Позволяет на одно слово «поставить» другое.
#define COLOR_ZEL 0x00FF00AA
Слово COLOR_ZEL теперь понимается компилятором как определённый код цвета.
Здесь у адреса PVar создаются подразделы PHealth, PArmour.
new PlayerVar [ MAX_PLAYERS ][ PVar ];
Теперь игрок может на одну переменную игрока ставить несколько адресов.
Под PVar подразумевается PHealth, либо PArmour.
Разумеется, enum можно юзать и в общей (серверной) переменной.
Вообще сама функция dcmd создаётся при помощи define. Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == ‘\0’) && (dcmd_%1(playerid, «»))) || (((%3)[(%2) + 1] == ‘ ‘) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
Перед созданием самой команды надо обозначить её в OnPlayerCommandText(playerid,cmdtext[])
Сама команда создаётся так:
Создаём саму команду:
//Далее код переменной в команде. splayer можно заменить любой другой подходящей переменной
Урок Создание динамической системы домов на основе плагина [MySQL R41]
Алексей Мещеряков
Эксперт
Плагин MySQL от pBlueG:
Про то, как пользоваться Базой данной и как к ней подключиться, я долго время не буду заострять. Если желаете прочитать подробную информацию, можно найти урок от DeimoS по «Созданию системы регистрации на основе плагина MySQL [R39/R40]», там все подробно расписано. Но все же, некоторые нюансы хотелось бы уточнить.
Как мы с вами уже знаем, а кто не знает, для работы с Базой данных(БД), нам необходимо использовать программу. Я использую Denwer.
P.S. Честно, скажу от себя, другие никогда не использовал и понятия не имею как с ними работать.
О данной программе вы можете ознакомиться на официальном сайте. |
Необходимо скачать данное приложение (У кого есть, тому конечно же не нужно.)
После того, как все действия по установке данной программы выполнены, необходимо запустить «Start Denwer.exe | Run.exe».
Открываем любой для вас удобный браузер и вводите localhost.
Появляется окно:
Если у вас уже есть База Данных, то вам не нужно ничего создавать, если же у вас ее нет, то создадим сейчас.
Нажимаете на вкладку «Базы данных»
Хранит в себе ID нашего дома.
Хранит в себе Имя владельца дома.
Хранит в себе информацию о том, занят ли дом или нет.
Хранят в себе информацию о координатах входа в дом.
Имя: enter_pos_x
Тип: FLOAT
Имя: enter_pos_y
Тип: FLOAT
Хранят в себе информацию о координатах выхода из дома.
Хранит в себе информацию о цене дома.
Хранит в себе информацию об уровне дома.
Хранит в себе информацию о ID интерьера.
Хранят в себе информацию о координатах домашнего автомобиля.
Хранит в себе ID домашнего автомобиля.
Подключение к Базе данных.
В enum e_HOUSE_INTERIORS_INFO внесена вся информация о нашем интерьере, для удобного дальнейшего использования.
На этом, пока что необходимые нам команды мы создали.
[HR][/HR]
Как раз в эти данные мы записали и получили позицию игрока.
Дальше были созданы переменные, которые отвечают за координаты и ID интерьера:
С помощью данных переменных, мы можем записать значение нашего интерьера(Координаты и ID) в ячейки, отвечающие за это в нашей таблице.
Данные в нашу таблицу успешно записаны. Мы завершили создание дома.
В конце мода создадим две функции. Добавим следующий код:
Дальше циклом проверяем наши дома, которые созданы в базе данных.
Описывать каждый столбец я не буду, т.к. при создании самой таблицы было подробное описание. Опишу только сами функции, которые мы используем:
| Получаем значение числа с плавающей точкой.
Если говорить русским языком, то «Если мы находимся у входа в дом, то попадаем в интерьер по координатам из нашей таблицы/массива»
Тоже самое у нас и с другой проверкой:
Домашний транспорт
ВНИМАНИЕ! В данном пункте необходим массив с записью ID дома(pHouse).
Ну вот вроде и все. Должен ничего не забыть, а возможно и забыл, честно уже голова поехала) Так что если будут ошибки, напишите.
[PAWNO] Помощь в «Pawno» программирование.
[PAWNO] Помощь в «Pawno» программирование. запись закреплена
• Программирование ПО на языках: C / C++ / Java / Python / Delphi / C# / Pascal;
• Программирование под Arduino IDE, Borland, QtCreator;
• Разработка сайтов на PHP (laravel, wordpress), поддержка хостинга (помощь с настройкой);
• Вёрстка сайтов на технологиях: HTML, CSS, JavaScript;
• Создание и разработка веб-дизайна, помощь по SEO аналитике;
• Работа с базами данных: MySQL, acces;
• Работа со всеми пакетами Office (Word, Excel, Access и т.д.);
• Сборка компьютера на заказ;
• Курсовые, рефераты и дипломные работы на любую тему;
• Оформление групп ВКонтакте;
• Создание презентаций для организаций;
• Создание графического контента;
• Обработка медиа-контента (Photoshop, ShotCut, Adobe Premiere);
• Создание и продвижение сайтов (использование Яндекс.Директ, Google AdWords);
• Онлайн помощь на экзаменах / тестах.
Для оформления заказа и по всем вопросам обращайтесь в лс на этот профиль: vk.com/m1shaowned (Сацук Михаил).
Наша группа Вконтакте: vk.com/fast_zakaz
Отзывы наших клиентов: vk.com/topic-156779709_36265934
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
Благодарим за внимание.
[PAWNO] Помощь в «Pawno» программирование. запись закреплена
[PAWNO] Помощь в «Pawno» программирование. запись закреплена
Удачи в новом году!
[PAWNO] Помощь в «Pawno» программирование. запись закреплена
Ув. Подписчики нашей группы а именно PAWNO Помощь в «Pawno» программирование.
Желаю вам сообщить об новостях.
Не так давно мы сидели и думали что бы сделать, как поднять актив.
И мы решили собирать мод на MxINI с разных модов.
Разве что будет переделано оформление самого мода.
За основу желаем взять Domenicano RP 0.3
Сделаем голосование если наберется 10 + голосов то начинаю прямо с завтра.
Всем хорошего настроение, удачного программирования.
[PAWNO] Помощь в «Pawno» программирование. запись закреплена
В наш состав может вступить каждый.
В скороее время будет создана иема на подачу заявки.
С Ув. Администрация группы.
[PAWNO] Помощь в «Pawno» программирование. запись закреплена
Всем доброго времени суток! Сегодня я Вам представляю мод Funny Role Play (Основа Scorpion RP) мод отлично подойдёт как для основы, так и для вырезки отдельных систем. Пару минусов заключаются в том, что он на стандартном командном процессоре и требует хорошей оптимизации.
База данных, плагины, всё есть в архиве.
— Версия 2.1
1. Убран лишний мапинг.
2.Удалена команда /reload т.к. с ней был глобальный баг со складами и территориями банд.
3.Сделан Full доступ для системных администраторов. (Привязка к нику) Сами поглядите.
4.Был баг,при котором убивая человека вам не давали звёзды. Исправлено.
5. Поднастроил спидометр. Сделал нормальную скорость. Теперь Туризмо едет 107 км/h,а не 300)) А так же не много поровнял текстрайв.Сделал более похожим на ARP.
6. Изменил мапинг больниц на старый адвансовский.
7.Добавил скины в КПЗ как на ARP,+ добавил 2 скина для женского пола.
8.Исправлены склады банд и мафий. После рестарта не сохранялись материалы. Теперь всё сохраняется.
9.Исправлены оружейные у мафий. Теперь всё работает.
10.Добавлена ординаторская в больницы.
11.Сделан салон сотовой связи. (Команда /sellsim пока не готова)
12.Добавлена команда /hpall.
13.Убрана админ авторизация ( /dost [[password] теперь вводить не нужно )
14. Сделал команду /setint (более 140 локаций)
15. Переделал команду /weap (Копия ARP)
16. Во все 3 города добавлены аммунации.
17. Исправлена панель предполагаемых читеров. (Раньше обычным игрокам при авторизации показывало 1 цифру)
18. Добавил команду /givegun,но пока не настроил под /weap. В следующей версии переделаю
19.Добавил несколько бизнесов такие как: Автосалон ЛС,Мото-вело рынок ЛС,все частные казино,Риэлторское агенство,управление статистики. (копия ARP)
20.Перенёс администрацию президента в ЛС (ARP)
21.Сделана команда /close для банд и мафий (ARP)
22.Команда /sp сделана как на ARP на сегодняшний день (Практически копия)
23. Сделал команду /admins как на ARP. Показывает кто за кем следит,кто АФК,и не показывает данные гл.админов.
24. Сделана команда /setfuel копия ARP.
25. Добавлена система мероприятий /settp and /tp.
26. Исправил баг,при котором при продаже бизнеса в гос.баланс предприятия не обнулялся.
27. /c 060 переделана,но не доведена до копии ARP.
28. Система назначения администратора как на ARP. Команда /adm
29. Сделаны 64 анимации в команде /anim (не копия ARP)
30. Для гл.админов (5 лвл) добавлены команды /lego & /dellast для создания объектов (Почти как на ARP)
31.Добавлены команды /loadfs & /unloadfs для загрузки,выгрузки filterskriptов как на ARP.
32.Добавлены команды /tv & /tvoff (Готовность 50 %)
33. Сделана /templeader копия ARP. (Все ID как на Advance)
34. Заменены звуки как на ARP.
35. Переделал команду /drugs. Сделан эффект,почти как на ARP.
36. Все команды сделал лесенкой.
37. Для 5 лвл админки добавлена команда /tempzone для перекраски территорий мафий и банд. (Почти ARP)
38.Добавлен концертный зал. Сделан как бизнес.
39. Для концертного зала сделаны команды: /tmenu,/tickets,/giveskip,/dropticket. (система паблик)
Мод на Mysql R39-4.
Команды: OnPlayerCommandText.
Автор мода: Taichi_Asakura.
Авторы доработки: Danny_Marcelo.
Автор маппинга: Jekson_Malevich
114. В некоторых местах подкорректировал цвета. (под ARP).
115. Исправил баг с хп. (теперь не убавляется быстро)
116. Добавил все аммунации как на АРП.
117. Ну вот всё, что вспомнил, написал. Дальше увидите сами.
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Header size: 9020 bytes
Code size: 3810784 bytes
Data size: 4385140 bytes
Stack/heap size: 16384 bytes; estimated max. usage=6583 cells (26332 bytes)
Total requirements: 8221328 bytes