(Scr) Больница

Description: Готовые решения скриптов, filterScript
Moderator: SJplayer

SJplayer M
Topic author, Модератор
Модератор
Avatar
SJplayer M
Topic author, Модератор
Модератор
Posts: 196
Joined: 25 May 2013
With us: 11 years 9 months

#1by SJplayer » 3 Jul 2013, 17:12

(Scr) Больница
Автор Jekazz

Ко всем #define добавляем:

Code: Select all

#define HOSPITAL_TIME 5 //5 - Кол-во минут в больнице  


Ко всем new:

Code: Select all

new HospitalTime[MAX_PLAYERS];  


В publicOnPlayerConnect(playerid) добавляем обнуление переменной

Code: Select all

HospitalTime[playerid] = 0


Нам нужно загрузить оставшееся время нахождения в больнице, для этого в publicOnPlayerLogin(playerid, password[]) вставляем:

1. Для тех, у кого загрузка на mxINI:

Code: Select all

ini_getInteger(File"HospitalTime"HospitalTime[playerid]);  


2. Для тех, у кого нет никакого ридера / райтера:

Code: Select all

if( !strcmpkey "HospitalTime" true ) ) HospitalTime[playerid] = strvalini_GetValueData ) );  


Далее нам нужно сделать сохранение время проведения в больнице и для этого в publicSavePlayer( playerid ) или public GF_OnPlayerUpdate(playerid) ( Не путать с publicOnPlayerUpdate(playerid) ) добавляем следующее:

1. Для тех, у кого mxINI:

Code: Select all

ini_setInteger(File"HospitalTime"HospitalTime[playerid]); 


2. Для тех, у кого нет никакого ридера / райтера:

Code: Select all

format(var, 32"HospitalTime=%d\n"HospitalTime[playerid]), fwrite(hFile, var);  


Теперь нам надо сделать так, чтобы после смерти игрок попадал в больницу.
Для этого в начало publicOnPlayerDeath(playerid, killerid, reason) добавим код отвечающий за, так сказать, "помещение" игрока в больницу:

Code: Select all

if(killerid != INVALID_PLAYER_ID//Если смерть "произошла" от рук другого игрока. 
{     
    if(!
HospitalTime[playerid]) //Если игрок ещё не в больнице. 
   

      
HospitalTime[playerid] = (HOSPITAL_TIME 60); 
      
SavePlayer(playerid); //SavePlayer замените на свою функцию сохранения 
   

}  


publicSetPlayerUnJail() добавим код отвечающий за "выписку" игрока из больницы.

После if(IsPlayerConnected(i)) вставляем следующий код:

Code: Select all

if(HospitalTime[i] > && !(-- HospitalTime[i])) 

    
SendClientMessage(i0xBFC0C2FF,"Теперь ты здоров!"); 
    
SetPlayerInterior(i0); 
    
SetPlayerVirtualWorld(i0); 
    
SetPlayerPos(i,2024.3229, -1404.766017.2010);//Замените на свою функцию телепортации 
    
TogglePlayerControllable(itrue); 
    
SetPlayerHealth(i,100); //Замените на свою функцию "выдачи" ХП 
    
SavePlayer(i); //SavePlayer замените на свою функцию сохранения 
}  


Теперь мы добавим функцию помещения игрока в больницу при спавне (если время проведения в больнице не окончено).
В начало publicOnPlayerSpawn(playerid) добавим следующий код:

Code: Select all

if(HospitalTime[playerid] > 0

    
SetPlayerInterior(playerid3); 
    
SetPlayerPos(playerid,338.4664,161.4294,1019.9844);//Замените на свою функцию телепортации 
    
SetPlayerVirtualWorld(playerid3); 
    
SetPlayerHealth(playerid100); 
    
TogglePlayerControllable(playerid0); 
    
ApplyAnimation(playerid"CRACK""crckdeth2"4.010000); 
    
SendClientMessage(playerid0xFF6347AA"Вы попали в больницу, отдыхайте."); 
    
SavePlayer(playerid);//SavePlayer замените на свою функцию сохранения 
    
return true
}  


Return to “Скрипты / FS”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest