Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Больница

Статус
В этой теме нельзя размещать новые ответы.

SaineD

Компетентный
Сегодня покажу как можно сделать респаун после сметри в больницу
Пожалуй начнем.
Ко всем дефайнам #define добавляем ещё один:

PHP:
#define HOSPITAL_TIME 5 //5 - Кол-во минут в больнице
Ко всем new добавим ещё одну:
PHP:
new HospitalTime[MAX_PLAYERS];
В public OnPlayerConnect( playerid ) добавляем обнуление переменной
PHP:
 HospitalTime[playerid] = 0;
Нам нужно загрузить оставшееся время нахождения в больнице, для этого в public OnPlayerLogin( playerid, password[] ) вставляем:
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]);
2)Для тех, у кого НЕ mxINI:
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 замените на свою функцию сохранения
        }
    }
в public SetPlayerUnJail() добавим код отвечающий за "выписку" игрока из больницы.
После 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
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу