Leonardo_Gun
Умник
Вот сделал Tazer в руке для модов RLS и GF.
Начнём.
Ко всем New
Далее заменяем свою команду /Tazer на мою.
Далее пихаем в public OnPlayerUpdate(playerid)
И в public OnPlayerKeyStateChange вставим
В конец мода добавим Stoki
Всё урок окончен. Tazer предназначен для модов RLS и GF Не даю 100% работы на моду VW.
Автор Leonardo_Gun
Начнём.
Ко всем New
Код:
new TazerStatus[MAX_PLAYERS];
Код:
if(strcmp(cmd, "/tazer", true) ==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pMember] == 14)//Указываем номер фракции
{
if(GetPlayerWeapon(playerid) == 0)
{
if(TazerStatus[playerid] == 0)
{
SetPlayerAttachedObject(playerid, 0, 18642, 6, 0.055994, 0.018028, 0.045403, 348.699523, 154.366394, 0.000000, 1.000000, 1.000000, 1.000000 );
TazerStatus[playerid] = 1;
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}Вы достали тазер из кобуры!");
return 1;
}
else
{
RemovePlayerAttachedObject(playerid, 0);
TazerStatus[playerid] = 0;
SendClientMessage(playerid,COLOR_RED,"{FFFFFF}Вы спрятали тазер, в кобуру!");
return 1;
}
}
else SendClientMessage(playerid,COLOR_RED,"{FFFFFF}Чтобы воспользоваться {FF0000}тазером{FFFFFF} в руках не должно быть оружие!");
}
}
return 1;
}
Код:
if(TazerStatus[playerid] == 1)
{
if(GetPlayerWeapon(playerid) >= 1)
{
RemovePlayerAttachedObject(playerid, 0);
TazerStatus[playerid] = 0;
}
}
Код:
if(IsKeyJustDown(KEY_FIRE,newkeys,oldkeys))
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 3)//Указываем номер фракции
{
new suspectid = GetNearPlayer(playerid, 0);
if(TazerStatus[playerid] == 1)
{
if(PlayerCuffed[suspectid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, "Он уже парализован!");
return 1;
}
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, "Вы находитесь в автомобиле!");
return 1;
}
if(IsPlayerInAnyVehicle(suspectid))
{
SendClientMessage(playerid, COLOR_GREY, "Он в Авто!");
return 1;
}
new Float:XposP, Float:YposP, Float:ZposP;
GetPlayerPos(suspectid, XposP, YposP, ZposP);
if(IsPlayerInRangeOfPoint(playerid, 2.0, XposP, YposP, ZposP))
{
TogglePlayerControllable(suspectid, false);
PlayerCuffed[suspectid] = 2;
PlayerCuffedTime[suspectid] = 300;
ApplyAnimation(suspectid,"CRACK","crckdeth3",4.0,0,1,1,1,0);
GameTextForPlayer(suspectid, "~r~Tazed", 2500, 3);
format(string, sizeof(string), "* %s парализовал %s'а на %d секунд.", PlayerName(playerid), PlayerName(suspectid), PlayerCuffedTime[suspectid]);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,INVALID_VEHICLE_ID,0);
ApplyAnimation(suspectid,"CRACK","crckdeth3",4.0,0,1,1,1,0);
}
}
}
}
}
Код:
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) && gPlayerSpawned[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 самому близкого игрока
}
stock PlayerName(playerid)
{
new pName[MAX_PLAYER_NAME+1];//20+1
GetPlayerName(playerid, pName, sizeof(pName));
return pName;
}
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Автор Leonardo_Gun
Последнее редактирование:
