Alberto_Johnson
Компетентный
Прошу не разводить бессмысленый флуд! Вопросы касающиеся тазера задаем в этой теме!
Автор: Bady (Alberto_Johnson)
Скрин:
Добовляем ко всем new:
В public OnPlayerUpdate(playerid)
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
И в конец мода вставляем:
Автор: Bady (Alberto_Johnson)
Скрин:
Добовляем ко всем new:
PHP:
new TazerStatus[MAX_PLAYERS];
PHP:
if(TazerStatus[playerid] == 1)
{
if(GetPlayerWeapon(playerid) >= 1)
{
RemovePlayerAttachedObject(playerid, 0);
TazerStatus[playerid] = 0;
}
}
PHP:
if(IsKeyJustDown(KEY_FIRE,newkeys,oldkeys))
{
if(IsPlayerConnected(playerid))
{
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new giveplayerid = GetNearPlayer(playerid, 0);
GetPlayerName(playerid,sendername,sizeof(sendername));
if(TazerStatus[playerid] == 1)
{
if(PlayerCuffed[giveplayerid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, "Игрок уже парализован!");
return 1;
}
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, "Не можете использовать это пока находитесь в автомобиле!");
return 1;
}
if(IsPlayerInAnyVehicle(giveplayerid))
{
SendClientMessage(playerid, COLOR_GREY, "Подозреваемый - в автомобиле, достаньте его сначала!");
return 1;
}
new Float:XposP, Float:YposP, Float:ZposP;
GetPlayerPos(giveplayerid, XposP, YposP, ZposP);
if(IsPlayerInRangeOfPoint(playerid, 2.0, XposP, YposP, ZposP))
{
TogglePlayerControllable(giveplayerid, false);
PlayerCuffed[giveplayerid] = 2;
PlayerCuffedTime[giveplayerid] = 15;
ApplyAnimation(giveplayerid,"CRACK","crckdeth3",4.1,0,1,1,1,1);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GameTextForPlayer(giveplayerid, "~r~Tazed", 2500, 3);
format(string, sizeof(string), "* %s парализовал %s на 15 секунд.", sendername, giveplayer);//PlayerName(giveplayerid), PlayerCuffedTime[giveplayerid])
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ApplyAnimation(giveplayerid,"CRACK","crckdeth3",4.0,0,1,1,1,0);
}
}
}
}
PHP:
stock IsKeyJustDown(key, newkeys, oldkeys)
{ //возвращает верно если произошло нажатие
if((newkeys & key) && !(oldkeys & key)) return 1;
return 0;
}
stock GetNearPlayer(playerid, wanted)//вызывается по командам /tazer /arrest
{
new Float: maxdistance = 99999.99;
new Float: distance;
new PlayerID = -1;
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i) && i != playerid)
{
if(WantedLevel[i] >= wanted)
{ //сканируем всех у кого розыск от указанного значения и выше
distance = GetDistanceBetweenPlayers(playerid, i);
if(distance < maxdistance && distance != -1.00)
//если дистанция меньше предыдущей и оба игрока в игре
{ //сканируем всех игроков находящихся как можно ближе к playerid
maxdistance = distance;
PlayerID = i;
}
}
}
}
return PlayerID;//возвращает ID самому близкого игрока
}
Последнее редактирование модератором:
