Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система Книг

Статус
В этой теме нельзя размещать новые ответы.

Steve_Johnson

Компетентный
Доброго Времени Суток Ув.Пользователи P-I!
Сегодня мне пришла в голову идея создать систему прочтения книг и тем самым прокачивать навыки.
Приступим.

Для начала сделаем команду для покупки книг(она будет у нас действовать по всей карте, в следующий версиях сделаю место)

Ищем свободное место в моде и вставляем туда
Команда на ZCMD

PHP:
CMD:buybook(playerid)
{
if(IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Вы не зашли на сервер!")
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Покупка Книг", "1.Уголовный Кодекс\n 2.Тут можете придумать свою книгу\n 3. И тут", "Купить", "Отмена"); // (можете выбрать свой ид диалога, вместо "1")
}
Простая команда в public OnPlayerCommandText

PHP:
if(strcmp(cmd, "/buybook", true) == 0)
{
if(IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Вы не зашли на сервер!")
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Покупка Книг", "1.Уголовный Кодекс\n 2.Тут можете придумать свою книгу\n 3. И тут", "Купить", "Отмена"); // (можете выбрать свой ид диалога, вместо "1")
}
Затем ищем public OnDialogResponse и прописываем

PHP:
if(dialogid == 1)
	{
	    if(response)
	    {
		    if(listitem == 0 || PlayerInfo[playerid][pMoney] >= 100) return PlayerInfo[playerid][pBook] = 1;GivePlayerMoney(playerid, -100)
		    if(listitem == 1 || PlayerInfo[playerid][pMoney] >= 100) return PlayerInfo[playerid][pBook] = 1;GivePlayerMoney(playerid, -100)
		    if(listitem == 2 || PlayerInfo[playerid][pMoney] >= 100) return PlayerInfo[playerid][pBook] = 1;GivePlayerMoney(playerid, -100)

		}
		else
		{
		    SendClientMessage(playerid,0x88AA88AA,"Вы не стали покупать книгу");
		    return 1;
		}
	}
Теперь сделаем команду прочтения книги

Команда на ZCMD

PHP:
CMD:read(playerid)
{
if(IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Вы не зашли на сервер!")
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "Чтение Книг", "1.Уголовный Кодекс\n 2.Тут можете придумать свою книгу\n 3. И тут", "Прочитать", "Отмена"); // (можете выбрать свой ид диалога, вместо "2")
new sendername[32];
SetPlayerChatBubble(playerid,"Смотрит каталог книг",COLOR_PURPLE,30.0,10000);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s смотрит каталог книг", sendername);
ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
Простая команда в public OnPlayerCommandText

PHP:
if(strcmp(cmd, "/readbook", true) == 0)
{
if(IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Вы не зашли на сервер!")
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "Чтение Книг", "1.Уголовный Кодекс\n 2.Тут можете придумать свою книгу\n 3. И тут", "Прочитать", "Отмена"); // (можете выбрать свой ид диалога, вместо "2")
new sendername[32];
SetPlayerChatBubble(playerid,"Смотрит каталог книг",COLOR_PURPLE,30.0,10000);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s смотрит каталог книг", sendername);
ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
PHP:
if(dialogid == 2)
	{
	    if(response)
	    {
		    if(listitem == 0 || PlayerInfo[playerid][pBook] == 1) return SetTimer("Book", 1000*60*1,);
		    if(listitem == 1 || PlayerInfo[playerid][pBook] == 1) return SetTimer("Book", 1000*60*1,);
		    if(listitem == 2 || PlayerInfo[playerid][pBook] == 1) return SetTimer("Book", 1000*60*1,);

		}
		else
		{
		    SendClientMessage(playerid,0x88AA88AA,"Вы не стали читать книгу");
		    return 1;
		}
	}
Теперь нам нужно сделать переменные навыков.У вас их может быть много, а у меня будет лишь один
Вставляем в public OnPlayerRegister, public OnPlayerLogin, SaveAccounts переменную
PHP:
pUK,
pBook,
Далее создаем

PHP:
forward Book(playerid);
и так же

PHP:
public Book(playerid)
Дальше идем в наш созданный public Book(playerid) и вписываем туда вот такое

PHP:
new string[64];
new book = random(2);
switch(random(2)) // генерируем число от 0 до 2 (включая)
{
case 0:
{
PlayerInfo[playerid][pUK] = 1;
SendClientMessage(playerid,COLOR_GREEN,"Вы прочитали книгу и получили навык знания Уголовного Кодекса");
}
case 1: 
{
SetTimer("Book", 1000*60*1,);
SendClientMessage(playerid,COLOR_GREEN,"Вам нужно еще больше читать, что-бы повысить свой навык знания Уголовного Кодекса");
}
Вот, пользуйтесь.
P.S Писал для своего мода, если будут ошибки выкладывайте сюда!

Как можно использовать?
Прием во фракцию или банду с определенными навыками

Понравилось?Нажми на "Спасибо", не бойся!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу