В enum pinfo
Код:
pHospital, pHospitalTime,
в public SetPlayerSpawn(playerid)
Код:
if(PlayerInfo[playerid][pHospital] == 1)
{
SetPlayerInterior(playerid, 3); //меняем интерьер
SetPlayerPos(playerid,338.4664,161.4294,1019.9844); //портуем в больницу, кординаты норм можете не менять
SetPlayerVirtualWorld(playerid, 3);// хотите меняйте вирт мир..
SetPlayerHealthAC(playerid, 100); //хиляем до 100%
TogglePlayerControllable(playerid, 0); // морозим чтоб не дрался
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); //забацаем анимку))
SendClientMessage(playerid, COLOR_LIGHTRED, "Вы попали в больницу, отдыхайте."); // пишем сообщение при попадании в больницу
return 1;в public OnPlayerDeath(playerid, killerid, reason)
Код:
if(killerid != INVALID_PLAYER_ID)
{
ResetPlayerWeapons(playerid); // забираем оружие
PlayerInfo[playerid][pHospital] = 1;
PlayerInfo[playerid][pHospitalTime] = 300; // Сажаем игрока на 5 минут
}======================Теперь функция выбрасывания игрока из больницы=======================
Это у меня после паблика Freeh стоит, вы у себя можете найти в моде строчку под названием "вы заплатили свой долг общевству"
Код:
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pHospital] > 0) // делаем проверку, если у игрока не осталось времени то следуем дальше)
{
if(PlayerInfo[i][pHospitalTime] > 0)
{
PlayerInfo[i][pHospitalTime]--;
}
if(PlayerInfo[i][pHospitalTime] <= 0)
{
PlayerInfo[i][pHospitalTime] = 0; //если игрок здоров скидываем время на 0
PlayerInfo[i][pHospital] = 0; //тоже самое
SendClientMessage(i, COLOR_GRAD1,"Теперь ты полностью здоров");
SetPlayerInterior(i, 0); //тп на улицу(больница ЛС)
SetPlayerVirtualWorld(i, 0);//
SetPlayerPos(i,2024.3229,-1404.7660,17.2010)//координаты тоже норммальные, на улицу возле больницы
TogglePlayerControllable(i, 1); // размараиваем обязательно
SetPlayerHealthAC(i,100); //ну и хилим если хотите..
}
}
}в public OnPlayerRegister(playerid, password[])
Код:
ini_setInteger(File,"Hosp",PlayerInfo[playerid][pHospital]);
ini_setInteger(File,"HospTime",PlayerInfo[playerid][pHospitalTime]);тоже самое в public OnPlayerUpdateRL(playerid)
Код:
ni_setInteger(File,"Hosp",PlayerInfo[playerid][pHospital]);
ini_setInteger(File,"HospTime",PlayerInfo[playerid][pHospitalTime]);И да можете сделать тексдрав или же командой будем выводить игроку время скока ему лижать в больнице
Код:
else if(strcmp(cmd, "/timeh", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pHospitalTime] > 0)
{
format(string, sizeof(string), "Осталось время больнице %d секунд", PlayerInfo[playerid][pHospitalTime]-10);
}
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
