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

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

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

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

Респавн после смерти/убийства в больнице

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

AnGeL

Специалист
Привет всем. сегодня я расскажу вам как сделать так что бы респавнится после смерти в больнице. Если есть уже на форуме похожая тема то прошу прощения в поиске искал ну не нашел.
И так приступим.

Ко всем new добавляем следующее:


PHP:
new MedicTime[MAX_PLAYERS]; 
new NeedMedicTime[MAX_PLAYERS]; 
new MedicBill[MAX_PLAYERS]; 
new JustDied[MAX_PLAYERS];
new deathcost;
дальше создадим рандомный респавн
ниже вставите
PHP:
new Float:gMedicSpawns[2][3] = 
{
{348.9868,165.0690,1014.6947}, 
{348.8042,162.5563,1014.6947}, 
};
В enum pinfo дабавте

PHP:
pVirWorld
В паблик OnPlayerConnect добавим

PHP:
JustDied[playerid] = 0; MedicTime[playerid] = 0; NeedMedicTime[playerid] = 0; MedicBill[playerid] = 0;
в public SetPlayerSpawn(playerid) вставим

PHP:
if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0 && PlayerPaintballing[playerid] == 0)
{ 
if(FirstSpawn[playerid] != 1) 
{ 
PlayerInfo[playerid][pDeaths] += 1; 
SetPlayerHealth(playerid, 50.0); 
SetPlayerInterior(playerid, 3); 
PlayerInfo[playerid][pInt] = 3; 
rand = random(sizeof(gMedicSpawns)); 
SetPlayerPos(playerid, gMedicSpawns[rand][0], gMedicSpawns[rand][1], gMedicSpawns[rand][2]); 
SetPlayerFacingAngle(playerid, 0); 
TogglePlayerControllable(playerid, 0); 
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~›ƒ…�E CBOE‚O BOˆƒAPOB‡Eì…• ...", 30000, 3); 
JustDied[playerid] = 1; 
MedicTime[playerid] = 1; 
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); 
if(PlayerInfo[playerid][pDonateRank] > 0) 
{ 
NeedMedicTime[playerid] = 30; // время скок деражать будут.. 
} 
else 
{ 
NeedMedicTime[playerid] = 30; // время скок деражать будут в больнице 
} 
PlayerPlaySound(playerid, 1062, 0.0, 0.0, 0.0); 
return 1; 
} 
} 
if(JustDied[playerid] == 1) 
{ 
if(GetPlayerVirtualWorld(playerid) != 0 || PlayerInfo[playerid][pVirWorld] != 0) 
{ 
SetPlayerVirtualWorld(playerid, 0);//вирт мир 
PlayerInfo[playerid][pVirWorld] = 0; 
} 
SetPlayerPos(playerid, 826.4158,-1369.9487,-0.5015);//куда выйдут 
SetPlayerFacingAngle(playerid, 270.0);//поворот угла 
SetPlayerInterior(playerid,0);//интерьер 
PlayerInfo[playerid][pInt] = 0;//интерьер 
return 1; 
}
И последний шаг. на нем мы в public SetPlayerUnjail() вставим следующее

PHP:
if(MedicTime[i] > 0) 
{ 
if(MedicTime[i] == 3) 
{ 
SetPlayerInterior(i, 3); 
PlayerInfo[i][pInt] = 3; 
new Float:X, Float:Y, Float:Z; 
GetPlayerPos(i, X,Y,Z); 
SetPlayerCameraPos(i, X - 3, Y, Z); 
SetPlayerCameraLookAt(i,X,Y,Z); 
} 
MedicTime[i] ++; 
if(MedicTime[i] >= NeedMedicTime[i]) 
{ 
new cut = deathcost; 
format(string, sizeof(string), " Доктор: Ваш медицинский счёт составляет $%d, Удачного дня. ", cut); 
SendClientMessage(i, COLOR_YELLOW, string); 
TogglePlayerControllable(i, 1); 
MedicBill[i] = 0; 
MedicTime[i] = 0; 
NeedMedicTime[i] = 0; 
PlayerInfo[i][pDeaths] += 1; 
PlayerFixRadio(i); 
ClearAnimations(i); 
SetPlayerInterior(i, 0); 
PlayerInfo[i][pInt] = 0; 
SetPlayerPos(i, 1176.7842,-1323.8354,14.0384)//координаты выхода с больницы 
SetCameraBehindPlayer(i); 
SetPlayerHealth(i, 100); 
} 
}
ну вот вроде бы и все на этом.
Если не жалко то можно и мне +иг поставить.
а да кстати Вырезано с мода Энрико!

ВАЖНО: Если у кого то будут ероры типо error 017: undefined symbol "i" Замените i на playerid
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу