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

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

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

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

Мануал Магазин игрушек

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

Mr Green

Новичок
Приветствую пользователей pawno-info.ru

Я Mr Green, и сегодня я решил выложить для Вас, копию магазина игрушек, как на сервере Megapolis RP (давно закрыт)

Внимание! Данный мануал не рассчитан на новичков, если вы не понимаете как это работает пишите в комментарии

Ко всем new добавляем:
PHP:
new ToysNum[6][2] =
{{594,5000},
	{441,8000},
	{464,14000},
	{465,14500},
	{501,14500},
	{564,15500}};
new shoptoy[2];
new caridtoys[MAX_PLAYERS];
new bool:vehnoff[MAX_PLAYERS];
new Float:TeleportDest[MAX_PLAYERS][3];
В OnPlayerConnect добавляем:
PHP:
caridtoys[playerid] = -1;
vehnoff[playerid] = false;
В OnPlayerDisconnect добавляем:
PHP:
if(caridtoys[playerid] >= 0) DestroyVehicle(caridtoys[playerid]);
В OnPlayerDeath добавляем:
PHP:
if(caridtoys[playerid] >= 0) DestroyVehicle(caridtoys[playerid]);
В OnGamеModeInit добавляем:
PHP:
shoptoy[0] = CreatePickup(1318,23,1409.9629,-1881.7791,13.5469);
shoptoy[1] = CreatePickup(1318,23,-2240.9631,128.3762,1035.4141,1);
Create3DTextLabel( "Магазин игрушек", COLOR_YELLOW, 1409.9629,-1881.7791,13.5469, 8.0,0, 1);
Create3DTextLabel( "Введите: /buytoys", COLOR_YELLOW, -2237.3052,130.1964,1035.4141, 8.0,1, 1);
В OnPlayerPickUpPickup добавляем:
PHP:
if(pickupid == shoptoy[0])
{
	SetPlayerPos(playerid,-2239.7039,129.5925,1035.4141);
	SetPlayerFacingAngle(playerid, 355.4080);
	SetPlayerInterior(playerid,6);
	SetPlayerVirtualWorld(playerid,1);
	return 1;
}
if(pickupid == shoptoy[1])
{
	SetPlayerPos(playerid,1409.9015,-1879.7454,13.5469);
	SetPlayerInterior(playerid,0);
	SetPlayerVirtualWorld(playerid,0);
	return 1;
}
К enum pInfo добавляем:
PHP:
pToys,
pToysProz
Ко всем командам добавляем:
PHP:
if(strcmp(cmd, "/mytoy", true) == 0)
{
	if(gPlayerLogged[playerid] == 0) {SendClientMessage(playerid, COLOR_WHITE, "Необходимо авторизоваться!"); return 1;}
	if(PlayerInfo[playerid][pToys] <= 0) {SendClientMessage(playerid, COLOR_GRAD1, "У вас нет игрушки!");return 1;}
	if(GetPlayerInterior(playerid) != 0 && GetPlayerVirtualWorld(playerid) != 0){SendClientMessage(playerid, COLOR_GRAD1, "Выйдите на улицу!"); return 1;}
	switch(vehnoff[playerid])
	{
	case false:
		{
			if(IsPlayerInAnyVehicle(playerid)) {SendClientMessage(playerid, COLOR_GRAD1, "Выйдите из машины!"); return 1;}
			if(PlayerInfo[playerid][pToysProz] <= 0)
			{
				PlayerInfo[playerid][pToysProz] = 0;
				SendClientMessage(playerid, COLOR_GRAD1, "Ваша игрушка поломана купите новую!");
				return 1;
			}
			vehnoff[playerid] = true;
			GetPlayerPos(playerid,TeleportDest[0][playerid],TeleportDest[1][playerid],TeleportDest[2][playerid]);
			new Float:Angle; GetPlayerFacingAngle(playerid,Angle);
			PlayerInfo[playerid][pToysProz] -= 1;
			caridtoys[playerid] = CreateVehicle(PlayerInfo[playerid][pToys], TeleportDest[0][playerid], TeleportDest[1]   [playerid], TeleportDest[2][playerid], Angle , -1 , -1,5600);
			PutPlayerInVehicle(playerid, caridtoys[playerid], 0);
			SetVehicleParamsEx(caridtoys[playerid] ,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
			RepairVehicle(caridtoys[playerid]);
			SendClientMessage(playerid, COLOR_GREY,"Чтобы завершить управление радио игрушкой наберите {FFFFFF}(( /mytoy ))");
			return 1;
		}
	case true:
		{
			vehnoff[playerid] = false;
			SendClientMessage(playerid, COLOR_GREY,"Вы завершили управление радио игрушкой!");
			SetVehiclePos(caridtoys[playerid],TeleportDest[0][playerid],TeleportDest[1][playerid],TeleportDest[2][playerid]);
			DestroyVehicle(caridtoys[playerid]);
			return 1;
		}
	default: {SendClientMessage(playerid, COLOR_GREY,"Произошла ошибка!"); return 1;}
	}
	return SendClientMessage(playerid, COLOR_GREY,"Произошла ошибка!");
}


//==================================================================//

if(strcmp(cmd, "/buytoys", true) == 0)
{
	if(IsPlayerInRangeOfPoint(playerid, 5, -2237.3052,130.1964,1035.4141))
	{
		return ShowPlayerDialog(playerid,1152,DIALOG_STYLE_LIST,"Список игрушек:","[1] - RC Cam - 5000$\n[2] - RC Bandit- 8000$\n[3] - RC Baron - 14000$\n[4] - RC Raider - 14500$\n[5] - RC Goblin - 14500$\n[6] - RC Tiger - 15500$","Ок","Отмена");
	}
	return 1;
}
В OnDialogResponse добавляем:
PHP:
case 1152:
		{
			if(response)
			{
				if(PlayerInfo[playerid][pCash] < ToysNum[listitem][1]) return SendClientMessage(playerid, COLOR_GREY, "Недостаточно денег!");
				PlayerInfo[playerid][pCash] -= ToysNum[listitem][1];
				PlayerInfo[playerid][pToys] = ToysNum[listitem][0];
				PlayerInfo[playerid][pToysProz] = 20;
				format(string, sizeof(string), "Вы купили радио игрушку %s",VehicleNames[ToysNum[listitem][0]-400]);
				SendClientMessage(playerid, 0x6495EDFF,string);
				SendClientMessage(playerid, COLOR_WHITE, "Играйте осторожно, игрушки любят ломаться!");
				SendClientMessage(playerid, COLOR_WHITE, "Введите: /mytoy чтобы поиграть.");
				return 1;
			}
			else return 1;
		}
Наш магазин игрушек с сохранением, это значит что Вам нужно сохранить переменные:
PlayerInfo[playerid][pToys], PlayerInfo[playerid][pToysProz], думаю тут Вы сами справитесь.

Скриншотов нет, магазин находится в ЛС, за Мэрией, через дорогу.

Внимание! Данный скрипт подойдет на 80% модов типа rls, если же у Вас возникли ошибки, то помните мануал адресован более опытным скриптерам, поэтому пишите ошибки в комментарии, постараюсь помочь Вам в этом вопросе.

Всем спасибо за внимание!
С Вами был Mr Green

Авторские права принадлежат Mr Green (c)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу