Ria
Увидел темку Tyser, решил переписать сис-му т.к. его меня не устроила...
Вот что получилось:
Когда игрок не пристёгнут и врезается(сильно) то его выкидывает из автомобиля, замораживает, кидает в crack, чернеет экран, через 60 секунд игрок может встать, эффект чёрного экрана удаляется, и применяется эффект наркотиков, в общем через 100 секунд все эффекты удаляются.
Когда пристёгнут немного отнимается ХП.
Короче, приступим к вписыванию в мод...
Ко всем new :
В public OnPlayerExitVehicle :
Ко всем таймерам :
Сама команда /sb :
В public OnVehicleDamageStatusUpdate(Если нет создаём в самом низу мода) :
Ко всем текстдравам :
Всё проверялось всё отлично работает.
Автор начального кода: Tyser
Автор переписки/доработки: PremiumWorld
Вот что получилось:
Когда игрок не пристёгнут и врезается(сильно) то его выкидывает из автомобиля, замораживает, кидает в crack, чернеет экран, через 60 секунд игрок может встать, эффект чёрного экрана удаляется, и применяется эффект наркотиков, в общем через 100 секунд все эффекты удаляются.
Когда пристёгнут немного отнимается ХП.
Короче, приступим к вписыванию в мод...
Ко всем new :
PHP:
new seatbelt[MAX_PLAYERS];
new Text:sbremen[MAX_PLAYERS];
PHP:
new string[256];
if(seatbelt[playerid] > 0)
{
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid,sendername,sizeof(sendername));
new carrr = seatbelt[playerid];
if(carrr >= 400 && carrr <= 447 || carrr >= 450 && carrr <= 460 || carrr == 466 || carrr == 467 || carrr == 469 || carrr == 470 || carrr >= 472 && carrr <= 480 || carrr >= 482 && carrr <= 508 || carrr >= 511 && carrr <= 520 || carrr >= 524 && carrr <= 580 || carrr >= 582 && carrr <= 585 || carrr >= 587 && carrr <= 611)
{
if(PlayerInfo[playerid][seatbelt] == 0)
{
format(string, sizeof(string), " %s отстегивает ремень безопасности.", sendername);
ProxDetector(30.0, playerid,string,COLOR_CHARTREUSE,COLOR_CHARTREUSE,COLOR_CHARTREUSE,COLOR_CHARTREUSE,COLOR_CHARTREUSE);
seatbelt[playerid] = 0;
}
}
PHP:
public sbeffect(playerid)
{
ApplyAnimation(playerid,"CRACK","crckidle2",4.1,0,1,1,1,1);
ApplyAnimation(playerid,"CRACK","crckidle2",4.1,0,1,1,1,1);
ApplyAnimation(playerid,"CRACK","crckidle2",4.1,0,1,1,1,1);
ApplyAnimation(playerid,"CRACK","crckidle2",4.1,0,1,1,1,1);
return 1;
}
public sbeffect2(playerid)
{
TogglePlayerControllable(playerid, 0);
return 1;
}
public sbtimer(playerid)
{
SendClientMessage(playerid, COLOR_GREY, "{7AC5CD}Вам стало немного лучше.");
ClearAnimations(playerid);
TogglePlayerControllable(playerid, 1);
TextDrawDestroy(sbremen[playerid]);
return false;
}
public sbtimer2(playerid)
{
SendClientMessage(playerid, COLOR_GREY, "{7AC5CD}Ваше состояние нормализовалось.");
SetPlayerWeather(playerid, 1);
PlayerStoned[playerid] = 0;
SetPlayerDrunkLevel (playerid, 0);
return false;
}
PHP:
if(strcmp(cmd,"/sb",true) == 0 || strcmp(cmd,"/remen",true) == 0)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,COLOR_WHITE,"{ff0000}x {ffffff}Вы не в автомобиле!");
if(seatbelt[playerid] == 1)
{
seatbelt[playerid] = 0;
GetPlayerName(playerid, sendername, sizeof(sendername));
new stringtosee[128];
new ftext[32];
if(PlayerInfo[playerid][pSex] == 1) { ftext = "отстегнул"; }
else if(PlayerInfo[playerid][pSex] == 2) { ftext = "отстегнула"; }
format(stringtosee, sizeof(stringtosee), " %s %s ремень безопасности.", sendername , ftext);
ProxDetector(15.0, playerid, stringtosee, 0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA);
return 1;
}
else if(seatbelt[playerid] == 0)
{
seatbelt[playerid] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
new stringtosee[128];
new ftext[32];
if(PlayerInfo[playerid][pSex] == 1) { ftext = "пристегнул"; }
else if(PlayerInfo[playerid][pSex] == 2) { ftext = "пристегнула"; }
format(stringtosee, sizeof(stringtosee), " * %s %s ремень безопасности.", sendername , ftext);
ProxDetector(15.0, playerid, stringtosee, 0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA);
return 1;
}
}
PHP:
GetVehicleHealth(vehicleid, vh);
if(1000 - vh >= 300)
{
new Float:PH;
new caridi = GetPlayerVehicleID(playerid);
GetPlayerHealth(playerid, PH);
if(seatbelt[playerid] == 0)
{
RemovePlayerFromVehicle(playerid);
for(new i = 0; i < 6; i++) SendClientMessage(-1," "); return 1;
SendClientMessage(playerid, COLOR_GREY, "{7AC5CD}Вы были не пристёгнуты ремнём безопасности!");
SendClientMessage(playerid, COLOR_GREY, "{7AC5CD}Из-за этого Вы вылетели из автомобиля, состояние здоровья ухудшилось, у Вас помутнело в глазах и кружится голова...");
SendClientMessage(playerid, COLOR_GREY, "{7AC5CD}Немного подождите и Вам станет лучше...");
SendClientMessage(playerid, COLOR_GREY, "{ffffff}(({BEBEBE} До полного нормализования и удаления всех эффектов подождите{ff0000} 100 сек. {ffffff} ))");
GetVehicleParamsEx(caridi,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(caridi ,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
SetPlayerHealth(playerid, PH-random(50));//отнимаем хп у игрока(рандомное число от 0 до 50)
SetPlayerDrunkLevel(playerid, 14001);
TextDrawShowForPlayer(playerid, sbremen[0]);
SetPlayerWeather(playerid, -68);
SetTimer("sbeffect",2000,false);
SetTimer("sbeffect2",4000,false);
SetTimer("sbtimer",60000,false);
SetTimer("sbtimer2",100000,false);
}
if(seatbelt[playerid] == 1)
{
for(new i = 0; i < 8; i++) SendClientMessage(-1," "); return 1;
SendClientMessage(playerid, COLOR_GREY, "{7AC5CD}Вы были пристёгнуты ремнём безопасности и избежали серьёзных травм!");
SendClientMessage(playerid, COLOR_GREY, "{7AC5CD}Но ударились головой об руль, Вам стало немного хуже...");
SetPlayerHealth(playerid, PH-random(15));
}
return true;
}
return false;
}
Ко всем текстдравам :
PHP:
sbremen[playerid] = TextDrawCreate(0,0," white");
TextDrawFont(sbremen[playerid],1);
TextDrawLetterSize(sbremen[playerid],1000,1000);
TextDrawBoxColor(sbremen[playerid],0x000000AA);
TextDrawUseBox(sbremen[playerid],1);
Всё проверялось всё отлично работает.
Автор начального кода: Tyser
Автор переписки/доработки: PremiumWorld
Последнее редактирование:
