Lazik16
Умник
Всем привет. Выкладываю систему спавна в больнице как на сервере Skrilax-Rp. Если вы состоите во фракции вы не будите там спавниться, а если вы гражданских и вас убьют или вы умрете то вы респавнетесь в больнице Los-Santos. Там будут 3 пикапа сердца, каждое из них прибавляет вам по +1 HP. Чуть дальше есть другой пикап, если встать на него то вы вылечитесь от наркозависимости.
Скриншот:
Ко всем new:
В enum pInfo добавляем:
В public OnPlayerConnect(playerid)
Вставляем:
Ко всем диалогам case вставляем:
В stock или public SetPlayerSpawn(playerid)
Вставляем:
В public OnPlayerDeath(playerid, killerid, reason)
Вставляем:
Дальше ищем строчку else if(pickupid == medpic[1])
Полностью удаляем что написано под ней до следующего пикапа и вставляем это:
В public OnPlayerPickUpPickup(playerid, pickupid)
Вставляем:
В stock или public Fresh()
Дальше в public OnGameModeInit()
Вставляем:
Дальше в public или stock OnPlayerRegister(playerid, password[])
Вставляем:
Дальше в public или stock SaveAccount(playerid) ставим то же самое:
В publics или stock OnPlayerLogin(playerid,password[]) опять тоже самое:
Ищем команду /reoff и в самое начало ставим:
К транспорту в stock LoadVehicles() добавляем несколько мопедов к больнице, ну это уже по желанию:
Скриншот:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Ко всем 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; }
}
Вставляем:
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;
}
Вставляем:
PHP:
if(PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pLeader] == 0) PlayerInfo[playerid][pHospital] = 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);
}
Вставляем:
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,"Вы прошли курс лечения и отсидели срок в изоляторе, вы свободны.");
}
}
Вставляем:
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);
Вставляем:
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]
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
Последнее редактирование:
