(Scr) Больница

Описание: Готовые решения скриптов, filterScript
Модератор: SJplayer

SJplayer M
Автор темы, Модератор
Модератор
Аватара
SJplayer M
Автор темы, Модератор
Модератор
Сообщения: 196
Зарегистрирован: 25 мая 2013
С нами: 10 лет 10 месяцев

#1 SJplayer » 3 июля 2013, 17:12

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

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

Код: Выделить всё

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


Ко всем new:

Код: Выделить всё

new HospitalTime[MAX_PLAYERS];  


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

Код: Выделить всё

HospitalTime[playerid] = 0


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

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

Код: Выделить всё

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


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

Код: Выделить всё

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


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

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

Код: Выделить всё

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


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

Код: Выделить всё

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


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

Код: Выделить всё

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

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

}  


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

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

Код: Выделить всё

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) добавим следующий код:

Код: Выделить всё

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
}  


Вернуться в «Скрипты / FS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 5 гостей