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

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

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

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

/tazer

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

Leonardo_Gun

Умник
Вот сделал Tazer в руке для модов RLS и GF.
Начнём.

Ко всем New
Код:
new TazerStatus[MAX_PLAYERS];
Далее заменяем свою команду /Tazer на мою.
Код:
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;
}
Далее пихаем в public OnPlayerUpdate(playerid)

Код:
if(TazerStatus[playerid] == 1)
{
if(GetPlayerWeapon(playerid) >= 1)
  {
   RemovePlayerAttachedObject(playerid, 0);
   TazerStatus[playerid] = 0;
  }
}
И в public OnPlayerKeyStateChange вставим

Код:
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);
        }
      }
    }
  }
}
В конец мода добавим Stoki

Код:
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;
}
Всё урок окончен. Tazer предназначен для модов RLS и GF Не даю 100% работы на моду VW.




Автор Leonardo_Gun
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу