Доступ к готовым решениям

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

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

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

Мануал Tazer/Tазер пистолет с глушителем

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

Merlin

Умник
Суть урока таков. Когда вы стреляете с пистолета глушителя то игрок падает на землю и замораживается на пару секунд. Этот урок подходит очень для копов чтобы легче было ловить преступников.
И так начнем
Верху мода где все #define вставляем:
​
PHP:
#define TAZE_WEAPON 23 // id оружия на котором будет срабатывать tazer. 
#define TAZE_TIMER 4000 // Время в сек.когда человек может встать 
#define TAZE_SPARK 18617 // искры объекта, можете это не трогать 
#define TAZE_DESTROY 1200 // время в сек.когда игрок лежит 
#define TAZE_LOSEHP 1 // Если вы поставили 1 то когда игрок лежит у него будут сниматься жизни , если поставите 0 то жизни будут оставаться на месте.
Верху мода где все new вставляем: ​
PHP:
new Tazer[MAX_PLAYERS]; 
new Spark[MAX_PLAYERS]; 
new Tazed[MAX_PLAYERS];
Верху мода где все forward вставляем: ​
PHP:
forward DestroySpark(playerid); 
forward TazedRemove(playerid);
После этого ищем public OnPlayerConnect и туда вставляем: ​
PHP:
Tazed[playerid] = 0; 
  Tazer[playerid] = 0;
После этого ищем public OnPlayerGiveDamage и туда вставляем: ​
PHP:
if(Tazer[playerid] == 1 && GetPlayerWeapon(playerid) == TAZE_WEAPON) 
  { 
      new Float:health,losehp; 
      GetPlayerHealth(damagedid,health); 
      losehp = TAZE_LOSEHP; 
      if(Tazed[damagedid] == 1) return 1; 
      new Float:x, Float:y, Float:z; 
      GetPlayerPos(damagedid, x, y, z); 
      ClearAnimations(damagedid); 
      ApplyAnimation(damagedid,"PED","KO_skid_front",4.1,0,1,1,1,0); 
      Spark[damagedid] = CreateObject(TAZE_SPARK, x, y, z-3, 0, 0, 0); 
      SetTimerEx("DestroySpark", TAZE_DESTROY, 0, "i", damagedid); 
      SetTimerEx("TazedRemove", TAZE_TIMER, 0, "i", damagedid); 
      //TogglePlayerControllable(damagedid, 0); 
      Tazed[damagedid] = 1; 
      if(losehp) {} else SetPlayerHealth(damagedid, health+amount); 
  }
Потом ищем public OnPlayerCommandText и туда вставляем: ​
PHP:
if (strcmp("/sdpistol", cmdtext, true, 6) == 0) 
  { 
      GivePlayerWeapon(playerid, TAZE_WEAPON, 100); 
      return 1; 
  } 
  if (strcmp("/tazer", cmdtext, true, 6) == 0) 
  { 
   new string[256]; 
      new sendername[MAX_PLAYER_NAME]; 
       GetPlayerName(playerid, sendername, sizeof(sendername)); 
      if(Tazer[playerid] == 0) 
      { 
    if(GetPlayerWeapon(playerid) == TAZE_WEAPON) {} else return SendClientMessage(playerid, 0xFFFFFFFF, "{DC0C0C}Тазер: {FFFFFF}Прикрепить tazer к пистолету с глушитилем?."); 
    Tazer[playerid] = 1; 
    format(string, sizeof(string), "{DC0C0C}Тазер: {FFFFFF}Вы взяли tazer к пистолету с глушителем, %s.", sendername); 
    SendClientMessage(playerid, 0xFFFFFFFF, string); 
    return 1; 
   } 
   else if(Tazer[playerid] == 1) 
   { 
       Tazer[playerid] = 0; 
       format(string, sizeof(string), "{DC0C0C}Тазер: {FFFFFF}Вы сняли тазер с пистолета с глушитилем, %s.", sendername); 
    SendClientMessage(playerid, 0xFFFFFFFF, string); 
    return 1; 
   } 
   else Tazer[playerid] = 0; 
   return 1; 
  }
Потом в любое место вставляем две функции publica ​
PHP:
public DestroySpark(playerid) 
{ 
  DestroyObject(Spark[playerid]); 
  return 1; 
} 

public TazedRemove(playerid) 
{ 
  TogglePlayerControllable(playerid, 1); 
  ClearAnimations(playerid); 
  Tazed[playerid] = 0; 
  return 1; 
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу