В 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; }