Доступ к готовым решениям

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

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

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

Мануал Выдача лицензий как на samp-rp.

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

BossArturKA

Умник
Всем привет!
Пока на сервера самп-рп велись атаки делать было не чего...
Вот решил скачать мод RLS (Тот что выложил сам Рустам) и чуток переделать систему выдачи лицензий.
Подтверждение диалогом ПОКА только лицензии на авто
Пока сервер работает стабильно пошел играть =)
Будут опять атаки или не чего делать - допишу полностью. (Остальные диалоги подтверждения + списание денег.)

Samp-Rp:



Ваш сервер:



В "OnPlayerClickPlayer"​
PHP:
if(PlayerInfo[playerid][pMember] == 11)
{
    if(PlayerInfo[playerid][pRank] == 1) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
    if(PlayerInfo[playerid][pRank] == 2) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить\n \nВыдать лицензию: Водительские права"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
    if(PlayerInfo[playerid][pRank] == 3) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить\n \nВыдать лицензию: Водительские права\nВыдать лицензию: Рыбаловство\nВыдать лицензию: Морской транспорт"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
    if(PlayerInfo[playerid][pRank] == 4) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить\n \nВыдать лицензию: Водительские права\nВыдать лицензию: Рыбаловство\nВыдать лицензию: Морской транспорт\nВыдать лицензию: Воздушный транспорт\nВыдать лицензию: Оружие"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
    if(PlayerInfo[playerid][pRank] > 4) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить\n \nВыдать лицензию: Водительские права\nВыдать лицензию: Рыбаловство\nВыдать лицензию: Морской транспорт\nВыдать лицензию: Воздушный транспорт\nВыдать лицензию: Оружие\nВыдать лицензию: Бизнес"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
}

Где pMember - переменная фракции.
Где 11 это ID фракции инструторов.
Где pRank - переменная ранга.
Где 1, 2, 3, 4 - ранги.
Где 7777 ID дилога.

Заменяем или создаем "case 7777":​
PHP:
case 7777:
{
	if(response)
	{
		new uni_str100[100];
		new Float:PX,Float:PY,Float:PZ,Float:X,Float:Y,Float:Z,Float:Angle; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle); GetPlayerPos(ChosenPlayer[playerid],PX,PY,PZ);
		new ClickedPlayerName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME]; GetPlayerName(ChosenPlayer[playerid],ClickedPlayerName,24); GetPlayerName(playerid,pName,24);
		if(listitem == 0)
		{
			if(TakingLesson[ChosenPlayer[playerid]] == 1) return SendClientMessage(playerid, COLOR_GRAD1, "Вы уже начинали с этим игроком урок!");
			TakingLesson[ChosenPlayer[playerid]] = 1;
			SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "Инструктор начал с Вами урок по вождению");
			format(uni_str100, sizeof(uni_str100), "Вы начали урок с %s",ClickedPlayerName);
			SendClientMessage(playerid, 0x6495EDFF, uni_str100);
			return 1;
		}
		else if(listitem == 1)
		{
			if(TakingLesson[ChosenPlayer[playerid]] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не начинали урок с этим игроком!");
			TakingLesson[ChosenPlayer[playerid]] = 0;
			SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "Инструктор завершил с Вами урок по вождению");
			format(uni_str100, sizeof(uni_str100), "Вы завершили урок с %s.",ClickedPlayerName);
			SendClientMessage(playerid, 0x6495EDFF, uni_str100);
			return 1;
		}
		else if(listitem == 2)
		{
		    if(PlayerInfo[playerid][pRank] == 1) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
		    if(PlayerInfo[playerid][pRank] == 2) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить\n \nВыдать лицензию: Водительские права"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
		    if(PlayerInfo[playerid][pRank] == 3) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить\n \nВыдать лицензию: Водительские права\nВыдать лицензию: Рыбаловство\nВыдать лицензию: Морской транспорт"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
		    if(PlayerInfo[playerid][pRank] == 4) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить\n \nВыдать лицензию: Водительские права\nВыдать лицензию: Рыбаловство\nВыдать лицензию: Морской транспорт\nВыдать лицензию: Воздушный транспорт\nВыдать лицензию: Оружие"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
		    if(PlayerInfo[playerid][pRank] > 4) { new listitems[] = "{FFFFFF}Урок по вождению: начать\nУрок по вождению: завершить\n \nВыдать лицензию: Водительские права\nВыдать лицензию: Рыбаловство\nВыдать лицензию: Морской транспорт\nВыдать лицензию: Воздушный транспорт\nВыдать лицензию: Оружие\nВыдать лицензию: Бизнес"; ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Выберите действие", listitems, "Готово", "Отмена"); }
		}
			else if(listitem == 3)
			{
				//
				new cena_lica[6];
				if(PlayerInfo[ChosenPlayer[playerid]][pLevel] >= 1 && PlayerInfo[ChosenPlayer[playerid]][pLevel] <= 2) { cena_lica = "500"; }
				else if(PlayerInfo[ChosenPlayer[playerid]][pLevel] >= 3 && PlayerInfo[ChosenPlayer[playerid]][pLevel] <= 5) { cena_lica = "5000"; }
				else if(PlayerInfo[ChosenPlayer[playerid]][pLevel] >= 6 && PlayerInfo[ChosenPlayer[playerid]][pLevel] <= 15) { cena_lica = "10000"; }
				else if(PlayerInfo[ChosenPlayer[playerid]][pLevel] > 15) { cena_lica = "30000"; }
				//
				new message[100];//90 хватит, округлим :3
				new nickname[MAX_PLAYER_NAME];
				GetPlayerName(ChosenPlayer[playerid],nickname,sizeof(nickname));
				format(message, sizeof(message), "Вы предложили %s купить лицензию на вождение, за %s вирт", nickname/*ChosenPlayer[playerid]*/, cena_lica);
				SendClientMessage(playerid, 0x6495EDFF, message);
				//
				new sendername[MAX_PLAYER_NAME];
				GetPlayerName(playerid, sendername, sizeof(sendername));
                format(string,sizeof(string), "Инструктор %s предложил вам купить лицензию на вождение\nЦена: %s вирт",sendername, cena_lica);
                ShowPlayerDialog(ChosenPlayer[playerid],26360,DIALOG_STYLE_MSGBOX,"{FFFFFF}Покупка лицензий",string,"Купить","Отмена");
			}
		else if(listitem == 4)
		{
			if(PlayerInfo[ChosenPlayer[playerid]][pFishLic] == 1) return SendClientMessage(playerid, COLOR_GRAD1, "У данного игрока уже есть эта лицензия!");
			format(uni_str100, sizeof(uni_str100), "Вы выдали лицензию на рыбу %s.",ClickedPlayerName);
			SendClientMessage(playerid, 0x6495EDFF, uni_str100);
			PlayerInfo[ChosenPlayer[playerid]][pFishLic] = 1;
			SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "Инструктор выдал вам лицензию на рыболовлю");
		}
		else if(listitem == 5)
		{
			if(PlayerInfo[ChosenPlayer[playerid]][pBoatLic] == 1) return SendClientMessage(playerid, COLOR_GRAD1, "У данного игрока уже есть эта лицензия!");
			format(uni_str100, sizeof(uni_str100), "Вы выдали лицензию на лодки %s.",ClickedPlayerName);
			SendClientMessage(playerid, 0x6495EDFF, uni_str100);
			PlayerInfo[ChosenPlayer[playerid]][pBoatLic] = 1;
			SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "Инструктор выдал вам лицензию на лодки");
			return 1;
		}
		else if(listitem == 6)
		{
			if(PlayerInfo[ChosenPlayer[playerid]][pFlyLic] == 1) return SendClientMessage(playerid, COLOR_GRAD1, "У данного игрока уже есть эта лицензия!");
			format(uni_str100, sizeof(uni_str100), "Вы выдали права на воздух %s.",ClickedPlayerName);
			SendClientMessage(playerid, 0x6495EDFF, uni_str100);
			PlayerInfo[ChosenPlayer[playerid]][pFlyLic] = 1;
			SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "Инструктор выдал вам права на воздушный транспорт");
			return 1;
		}
		else if(listitem == 7)
		{
			if(PlayerInfo[ChosenPlayer[playerid]][pGunLic] == 1) return	SendClientMessage(playerid, COLOR_GRAD1, "У данного игрока уже есть эта лицензия!");
			format(uni_str100, sizeof(uni_str100), "Вы выдали лицензию на оружие %s.",ClickedPlayerName);
			SendClientMessage(playerid, 0x6495EDFF, uni_str100);
			PlayerInfo[ChosenPlayer[playerid]][pGunLic] = 1;
			SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "Инструктор выдал вам лицензию на оружие");
			return 1;
		}
		else if(listitem == 8)
		{
			if(PlayerInfo[ChosenPlayer[playerid]][pBizLic] == 1) return	SendClientMessage(playerid, COLOR_GRAD1, "У данного игрока уже есть эта лицензия!");
			format(uni_str100, sizeof(uni_str100), "Вы выдали лицензию на бизнес %s.",ClickedPlayerName);
			SendClientMessage(playerid, 0x6495EDFF, uni_str100);
			PlayerInfo[ChosenPlayer[playerid]][pBizLic] = 1;
			SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "Инструктор выдал вам лицензию на бизнес");
			return 1;
		}
	}
	else { return 1; }
}
Создадим еще 1 диалог для подтверждения покупки вод. прав.​
PHP:
    case 26360:
	{
		if(response)
		{
			if(PlayerInfo[ChosenPlayer[playerid]][pLevel] >= 1 && PlayerInfo[ChosenPlayer[playerid]][pLevel] <= 2) { if(PlayerInfo[ChosenPlayer[playerid]][pCash] < 500) return SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "У вас недостаточно денег"); PlayerInfo[ChosenPlayer[playerid]][pCash] -= 500; }
			else if(PlayerInfo[ChosenPlayer[playerid]][pLevel] >= 3 && PlayerInfo[ChosenPlayer[playerid]][pLevel] <= 5) { if(PlayerInfo[ChosenPlayer[playerid]][pCash] < 5000) return SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "У вас недостаточно денег"); PlayerInfo[ChosenPlayer[playerid]][pCash] -= 5000; }
			else if(PlayerInfo[ChosenPlayer[playerid]][pLevel] >= 6 && PlayerInfo[ChosenPlayer[playerid]][pLevel] <= 15) { if(PlayerInfo[ChosenPlayer[playerid]][pCash] < 10000) return SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "У вас недостаточно денег"); PlayerInfo[ChosenPlayer[playerid]][pCash] -= 10000; }
			else if(PlayerInfo[ChosenPlayer[playerid]][pLevel] > 15) { if(PlayerInfo[ChosenPlayer[playerid]][pCash] < 30000) return SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "У вас недостаточно денег"); PlayerInfo[ChosenPlayer[playerid]][pCash] -= 30000; }
			return PlayerInfo[ChosenPlayer[playerid]][pVodPrava] = 1, SendClientMessage(ChosenPlayer[playerid], 0x6495EDFF, "Инструктор выдал вам водительские права");
		}
		else
		{
			new message[70];//63 хватит, округлим :3
			new nickname[MAX_PLAYER_NAME];
			GetPlayerName(ChosenPlayer[playerid],nickname,sizeof(nickname));
			format(message, sizeof(message), "%s отказался от покупки лицензии", nickname);
			SendClientMessage(playerid, 0xB4B5B7FF, message);
		}
		return true;
	}

На этом все =)
Обязательно обновлю тему ;)

​
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу