Перейти к содержанию
Авторизация  
cars9787

Появление в больнице.

Рекомендуемые сообщения

cars9787

Нормально написано.

Ко всем дефайнам (#define) добавляем ещё один:
#define HOSPITAL_TIME 5 //5 - Кол-во минут в больнице

Ко всем new добавим ещё одну:
new HospitalTime[MAX_PLAYERS];

В public OnPlayerConnect( playerid ) добавляем обнуление переменной
HospitalTime[playerid] = 0;

Нам нужно загрузить оставшееся время нахождения в больнице, для этого в public OnPlayerLogin( playerid, password[] ) вставляем:
1)Для тех, у кого загрузка на mxINI т.е загрузка уровня у них выглядит примерно так:
ini_getInteger(File, "Level", PlayerInfo[playerid][pLevel]);//Этот код вставлять НЕ надо!!!
Вставляем вот такую строку
ini_getInteger(File, "HospitalTime", HospitalTime[playerid]);
2)Для тех у кого НЕ на mxINI т.е загрузка уровня выглядит примерно так:
if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
Вставляем следующую строку:
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:
ini_setInteger(File, "HospitalTime", HospitalTime[playerid]);
2)Для тех, у кого НЕ mxINI:
format(var, 32, "HospitalTime=%d\n",HospitalTime[playerid]);fwrite(hFile, var);

С сохранением мы тоже разобрались.Теперь нам надо сделать так, чтобы после смерти игрок попадал в больницу, для этого в
public OnPlayerDeath( playerid, killerid, reason ) добавим код отвечающий за так сказать "помещение" игрока в больницу:
if(killerid != INVALID_PLAYER_ID)
{
if(!HospitalTime[playerid])
{
HospitalTime[playerid] = HOSPITAL_TIME * 60;
SavePlayer(playerid);//SavePlayer замените на свою функцию сохранения
}
}

в public SetPlayerUnJail() добавим код отвечающий за "выписку" игрока из больницы.
После if(IsPlayerConnected(i)) вставляем следующий код
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 ) добавим следующий код:
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;
}

Автор: не я!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vadim_Galitskiy

Нормально написано.

Ко всем дефайнам (#define) добавляем ещё один:
#define HOSPITAL_TIME 5 //5 - Кол-во минут в больнице

Ко всем new добавим ещё одну:
new HospitalTime[MAX_PLAYERS];

В public OnPlayerConnect( playerid ) добавляем обнуление переменной
HospitalTime[playerid] = 0;

Нам нужно загрузить оставшееся время нахождения в больнице, для этого в public OnPlayerLogin( playerid, password[] ) вставляем:
1)Для тех, у кого загрузка на mxINI т.е загрузка уровня у них выглядит примерно так:
ini_getInteger(File, "Level", PlayerInfo[playerid][pLevel]);//Этот код вставлять НЕ надо!!!
Вставляем вот такую строку
ini_getInteger(File, "HospitalTime", HospitalTime[playerid]);
2)Для тех у кого НЕ на mxINI т.е загрузка уровня выглядит примерно так:
if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
Вставляем следующую строку:
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:
ini_setInteger(File, "HospitalTime", HospitalTime[playerid]);
2)Для тех, у кого НЕ mxINI:
format(var, 32, "HospitalTime=%dn",HospitalTime[playerid]);fwrite(hFile, var);

С сохранением мы тоже разобрались.Теперь нам надо сделать так, чтобы после смерти игрок попадал в больницу, для этого в
public OnPlayerDeath( playerid, killerid, reason ) добавим код отвечающий за так сказать "помещение" игрока в больницу:
if(killerid != INVALID_PLAYER_ID)
{
if(!HospitalTime[playerid])
{
HospitalTime[playerid] = HOSPITAL_TIME * 60;
SavePlayer(playerid);//SavePlayer замените на свою функцию сохранения
}
}

в public SetPlayerUnJail() добавим код отвечающий за "выписку" игрока из больницы.
После if(IsPlayerConnected(i)) вставляем следующий код
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 ) добавим следующий код:
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;
}

Автор: не я!

 

разборчиво сделай хоть, а не скопировал и все в код вставил.
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
warior

Нормально написано.

Ко всем дефайнам (#define) добавляем ещё один:
#define HOSPITAL_TIME 5 //5 - Кол-во минут в больнице

Ко всем new добавим ещё одну:
new HospitalTime[MAX_PLAYERS];

В public OnPlayerConnect( playerid ) добавляем обнуление переменной
HospitalTime[playerid] = 0;

Нам нужно загрузить оставшееся время нахождения в больнице, для этого в public OnPlayerLogin( playerid, password[] ) вставляем:
1)Для тех, у кого загрузка на mxINI т.е загрузка уровня у них выглядит примерно так:
ini_getInteger(File, "Level", PlayerInfo[playerid][pLevel]);//Этот код вставлять НЕ надо!!!
Вставляем вот такую строку
ini_getInteger(File, "HospitalTime", HospitalTime[playerid]);
2)Для тех у кого НЕ на mxINI т.е загрузка уровня выглядит примерно так:
if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
Вставляем следующую строку:
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:
ini_setInteger(File, "HospitalTime", HospitalTime[playerid]);
2)Для тех, у кого НЕ mxINI:
format(var, 32, "HospitalTime=%dn",HospitalTime[playerid]);fwrite(hFile, var);

С сохранением мы тоже разобрались.Теперь нам надо сделать так, чтобы после смерти игрок попадал в больницу, для этого в
public OnPlayerDeath( playerid, killerid, reason ) добавим код отвечающий за так сказать "помещение" игрока в больницу:
if(killerid != INVALID_PLAYER_ID)
{
if(!HospitalTime[playerid])
{
HospitalTime[playerid] = HOSPITAL_TIME * 60;
SavePlayer(playerid);//SavePlayer замените на свою функцию сохранения
}
}

в public SetPlayerUnJail() добавим код отвечающий за "выписку" игрока из больницы.
После if(IsPlayerConnected(i)) вставляем следующий код
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 ) добавим следующий код:
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;
}

Автор: не я!

 

 

Лишь бы + поставили за это, остальное не важно. И если не ошибаюсь ,это у кого основа мода с GF. P.S (не проверял)

Изменено пользователем warior

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

Это был код Ulanzetz. Он постил его здесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.