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

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

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

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

Мануал Система спавна в больнице [Full Copy Skrilax-Rp]

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

Lazik16

Умник
Всем привет. Выкладываю систему спавна в больнице как на сервере Skrilax-Rp. Если вы состоите во фракции вы не будите там спавниться, а если вы гражданских и вас убьют или вы умрете то вы респавнетесь в больнице Los-Santos. Там будут 3 пикапа сердца, каждое из них прибавляет вам по +1 HP. Чуть дальше есть другой пикап, если встать на него то вы вылечитесь от наркозависимости.

Скриншот:



Ко всем new:

PHP:
new hospital[4];

В enum pInfo добавляем:

PHP:
pHospital,
pIzol,

В public OnPlayerConnect(playerid)
Вставляем:


PHP:
PlayerInfo[playerid][pNarcoLomka] = 0; PlayerInfo[playerid][pNarcoZavisimost] = 0; PlayerInfo[playerid][pHospital] = 0; PlayerInfo[playerid][pIzol] = 0;


Ко всем диалогам case вставляем:

PHP:
	case 5522:
		{
			if(response)
			{
				new Float:tempheal;
				new sendername[MAX_PLAYER_NAME];
				new giveplayer[MAX_PLAYER_NAME];
				GetPlayerHealth(playerid,tempheal);
				GetPlayerName(playerid, sendername, sizeof(sendername));
				GetPlayerName(HealOffer[playerid], giveplayer, sizeof(giveplayer));
				if(tempheal >= 100.0) return SendClientMessage(HealOffer[playerid], COLOR_GRAD1,"Этот человек здоров!");
				if(PlayerInfo[playerid][pCash] < HealPrice[playerid]) return 	SendClientMessage(HealOffer[playerid], COLOR_GREY, "У этого человека нет столько денег на руках!");
				PlayerInfo[HealOffer[playerid]][pCash] +=HealPrice[playerid];
				PlayerInfo[playerid][pCash] -=HealPrice[playerid];
				SendMes(HealOffer[playerid],0x6ab1ffaa,"Вы вылечили %s за %d вирт",sendername, HealPrice[playerid]);
				PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
				format(string, sizeof(string), "~g~+100hp", playerid);
				GameTextForPlayer(playerid, string, 5000, 1);
				SetPlayerHealthAC(playerid, 100);
				if(PlayerInfo[playerid][pHospital] == 1) PlayerInfo[playerid][pHospital] = 0, SendClientMessage(playerid,COLOR_GREEN,"Медик ускорил ваш курс лечения. Теперь вы можете покинуть больницу.");
				return true;
			}
			else { return true; }
		}
В stock или public SetPlayerSpawn(playerid)
Вставляем:


PHP:
		if(PlayerInfo[playerid][pHospital] == 1)
		{
			SetPlayerHealthAC(playerid,95);
		    SetPlayerFacingAngle(playerid, 90);
		    SetPlayerInterior(playerid,15);
		    SetPPos(playerid,374.6952,-29.9434,1076.4651);
		    PlayerInfo[playerid][pInt] = 15;
		    SetPlayerVirtualWorld(playerid,4);
		    SendClientMessage(playerid,COLOR_WHITE,"Вам придется пройти курс лечения или вылечиться у медика. Встаньте на значек сердечка чтобы начать процедуру.");
		    return true;
		}
В public OnPlayerDeath(playerid, killerid, reason)
Вставляем:


PHP:
if(PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pLeader] == 0) PlayerInfo[playerid][pHospital] = 1;
Дальше ищем строчку else if(pickupid == medpic[1])
Полностью удаляем что написано под ней до следующего пикапа и вставляем это:


PHP:
	else if(pickupid == medpic[1]) 
	{
	    if(PlayerInfo[playerid][pHospital] == 1) return SendClientMessage(playerid,COLOR_WHITE,"Вы не прошли курс лечения, вернитесь обратно и встаньте на значок сердечка и пройдите процедуру.");
	    if(PlayerInfo[playerid][pIzol] > 0)
		{
		    new sendername[MAX_PLAYER_NAME],string[144];
		    GetPlayerName(playerid,sendername,sizeof(sendername));
			format(string, sizeof(string), "Игрок %s[%d] находясь в изоляторе госпиталя пытается выйти из больницы.",sendername,playerid);
			ABroadCast(COLOR_LIGHTRED,string,1);
			SetPlayerHealthAC(playerid,50);
		    SetPlayerFacingAngle(playerid, 270);
		    SetPlayerInterior(playerid,15);
		    SetPPos(playerid,352.9648,-38.8893,1076.4651);
		    PlayerInfo[playerid][pInt] = 15;
		    SetPlayerVirtualWorld(playerid,4);
			SendClientMessage(playerid,COLOR_WHITE,"Вы находитесь в изоляторе и не можете выйти из больницы.");
			return true;
		}
		SetPlayerInterior(playerid,0);
		PlayerInfo[playerid][pInt] = 0;
		SetPPos(playerid,1177.1721,-1323.3220,14.0576);
		SetPlayerFacingAngle(playerid, 270);
		SetPlayerVirtualWorld(playerid, 0);
	}
В public OnPlayerPickUpPickup(playerid, pickupid)
Вставляем:


PHP:
	else if(pickupid >= hospital[0] && pickupid <= hospital[2])
	{
        if(PlayerInfo[playerid][pHospital] == 1)
        {
            new Float:Health,hosp[40];
            GetPlayerHealth(playerid,Health);
            SetPlayerHealthAC(playerid, Health+1);
            PlayerInfo[playerid][pCash] --;
            GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]-1);
            format(hosp,sizeof(hosp),"~r~-1$~g~ +1/%.0f HP",Health+1);
            GameTextForPlayer(playerid,hosp,1000,4);
            if(Health == 100) { SendClientMessage(playerid, COLOR_GREEN,"Курс лечения завершен. Теперь вы можете выйти из больницы"); PlayerInfo[playerid][pHospital] = 0; return true; }
        }
        else return SendClientMessage(playerid,COLOR_GREEN,"Курс лечения завершен. Теперь вы можете выйти из больницы.");
	}
	else if(pickupid == hospital[3])
	{
        if(PlayerInfo[playerid][pNarcoZavisimost] > 0)
        {
            new hosp[40];
            PlayerInfo[playerid][pNarcoZavisimost] --;
            PlayerInfo[playerid][pCash] -= 5;
            GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]-5);
            format(hosp,sizeof(hosp),"~r~-5$~g~ -1/%d",PlayerInfo[playerid][pNarcoZavisimost]);
            GameTextForPlayer(playerid,hosp,1000,4);
        }
        else return SendClientMessage(playerid,COLOR_GREEN,"Вы полностью вылечены от наркозависимости.");
	}

В stock или public Fresh()

PHP:
		if(PlayerInfo[i][pIzol] > 0)
		{
			PlayerInfo[i][pIzol]--;
			if(PlayerInfo[i][pIzol] == 1)
			{
				SetPlayerInterior(i,0);
				PlayerInfo[i][pHospital] = 0;
				PlayerInfo[i][pInt] = 0;
				SetPPos(i,1177.1721,-1323.3220,14.0576);
				SetPlayerFacingAngle(i, 270);
				SetPlayerVirtualWorld(i, 0);
			    PlayerInfo[i][pIzol] = 0;
			    SetPlayerHealthAC(i, 100.0);
			    SendClientMessage(i,COLOR_WHITE,"Вы прошли курс лечения и отсидели срок в изоляторе, вы свободны.");
			}
		}
Дальше в public OnGameModeInit()
Вставляем:


PHP:
hospital[0] = CreatePickup(1240,23,368.9283,-28.3763,1076.4578,4); 
	hospital[1] = CreatePickup(1240,23,370.9422,-28.5009,1076.4578,4); 
	hospital[2] = CreatePickup(1240,23,373.4255,-28.4804,1076.4578,4); 
	hospital[3] = CreatePickup(1559,23,355.3858,-29.0047,1076.4578,4);
Дальше в public или stock OnPlayerRegister(playerid, password[])
Вставляем:


PHP:
ini_setInteger(File,"Hospital",PlayerInfo[playerid][pHospital]);
ini_setInteger(File,"Izol",PlayerInfo[playerid][pIzol]);

Дальше в public или stock SaveAccount(playerid) ставим то же самое:

PHP:
ini_setInteger(File,"Hospital",PlayerInfo[playerid][pHospital]);
ini_setInteger(File,"Izol",PlayerInfo[playerid][pIzol]);[B][/B]
В publics или stock OnPlayerLogin(playerid,password[]) опять тоже самое:

PHP:
ini_getInteger(File,"Hospital",PlayerInfo[playerid][pHospital]);
ini_getInteger(File,"Izol",PlayerInfo[playerid][pIzol]);

Ищем команду /reoff и в самое начало ставим:

PHP:
PlayerInfo[playerid][pHospital] = 0;

К транспорту в stock LoadVehicles() добавляем несколько мопедов к больнице, ну это уже по желанию:

PHP:
AddStaticVehicleEx(462, 1214.2562, -1310.3021, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
	AddStaticVehicleEx(462, 1214.2562, -1313.4445, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
	AddStaticVehicleEx(462, 1214.2562, -1316.5219, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
	AddStaticVehicleEx(462, 1214.2562, -1319.6134, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
	AddStaticVehicleEx(462, 1214.2562, -1322.6569, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
	AddStaticVehicleEx(462, 1214.2562, -1325.7488, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
	AddStaticVehicleEx(462, 1214.2562, -1328.7815, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
	AddStaticVehicleEx(462, 1214.2562, -1332.0087, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
	AddStaticVehicleEx(462, 1214.2562, -1334.9242, 13.2000, 120.0000, 1,1,60); //Faggio Hospital
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу