SaineD
Компетентный
Сегодня покажу как можно сделать респаун после сметри в больницу
Пожалуй начнем.
Ко всем дефайнам #define добавляем ещё один:
Ко всем new добавим ещё одну:
В public OnPlayerConnect( playerid ) добавляем обнуление переменной
Нам нужно загрузить оставшееся время нахождения в больнице, для этого в public OnPlayerLogin( playerid, password[] ) вставляем:
1)Для тех, у кого mxINI
Вставляем следующую строку:
С загрузкой разобрались.
Далее нам нужно сделать сохранение время проведения в больнице и для этого в public SavePlayer( playerid ) или public GF_OnPlayerUpdate( playerid ) (у всех поразному) добавляем следующее:
У кого mxINI, а у кого не mxINI мы разобрались уже.
1)Для тех, у кого mxINI:
2)Для тех, у кого НЕ mxINI:
С сохранением мы тоже разобрались.Теперь нам надо сделать так, чтобы после смерти игрок попадал в больницу, для этого в
public OnPlayerDeath( playerid, killerid, reason ) добавим код отвечающий за так сказать "помещение" игрока в больницу:
в public SetPlayerUnJail() добавим код отвечающий за "выписку" игрока из больницы.
После if(IsPlayerConnected(i)) вставляем следующий код
Теперь мы добавим функцию помещения игрока в больницу при спавне (если время проведения в больнице не окончено).
В начало public OnPlayerSpawn( playerid ) добавим следующий код:
ну и все
Автор: Jekazzz
Пожалуй начнем.
Ко всем дефайнам #define добавляем ещё один:
PHP:
#define HOSPITAL_TIME 5 //5 - Кол-во минут в больнице
PHP:
new HospitalTime[MAX_PLAYERS];
PHP:
HospitalTime[playerid] = 0;
1)Для тех, у кого mxINI
PHP:
ini_getInteger(File, "HospitalTime", HospitalTime[playerid]);
PHP:
if( strcmp( key , "HospitalTime" , true ) == 0 ) { val = ini_GetValue( Data ); HospitalTime[playerid] = strval( val ); }
Далее нам нужно сделать сохранение время проведения в больнице и для этого в public SavePlayer( playerid ) или public GF_OnPlayerUpdate( playerid ) (у всех поразному) добавляем следующее:
У кого mxINI, а у кого не mxINI мы разобрались уже.
1)Для тех, у кого mxINI:
PHP:
ini_setInteger(File, "HospitalTime", HospitalTime[playerid]);
PHP:
format(var, 32, "HospitalTime=%d\n",HospitalTime[playerid]);fwrite(hFile, var);
public OnPlayerDeath( playerid, killerid, reason ) добавим код отвечающий за так сказать "помещение" игрока в больницу:
PHP:
if(killerid != INVALID_PLAYER_ID)
{
if(!HospitalTime[playerid])
{
HospitalTime[playerid] = HOSPITAL_TIME * 60;
SavePlayer(playerid);//SavePlayer замените на свою функцию сохранения
}
}
После if(IsPlayerConnected(i)) вставляем следующий код
PHP:
if(HospitalTime[i] > 0)
{
HospitalTime[i] --;
if(!HospitalTime[i])
{
SendClientMessage(i, 0xBFC0C2FF,"Теперь ты здоров!");//Замените на свою функцию
SetPlayerInterior(i, 0);//Замените на свою функцию
SetPlayerVirtualWorld(i, 0);//Замените на свою функцию
SetPlayerPos(i,2024.3229, -1404.7660, 17.2010);//Замените на свою функцию
TogglePlayerControllable(i, true);//Замените на свою функцию
SetPlayerHealth(i,100);
}
SavePlayer(i);//SavePlayer замените на свою функцию сохранения
}
В начало public OnPlayerSpawn( playerid ) добавим следующий код:
PHP:
if(HospitalTime[playerid] > 0)
{
SetPlayerInterior(playerid, 3);//Замените на свою функцию
SetPlayerPos(playerid,338.4664,161.4294,1019.9844);//Замените на свою функцию
SetPlayerVirtualWorld(playerid, 3);//Замените на свою функцию
SetPlayerHealth(playerid, 100); //Замените на свою функцию
TogglePlayerControllable(playerid, 0);//Замените на свою функцию
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
SendClientMessage(playerid, 0xFF6347AA, "Вы попали в больницу, отдыхайте.");//Замените на свою функцию
SavePlayer(playerid);//SavePlayer замените на свою функцию сохранения
return true;
}
Автор: Jekazzz
