Merlin
Умник
Суть урока таков. Когда вы стреляете с пистолета глушителя то игрок падает на землю и замораживается на пару секунд. Этот урок подходит очень для копов чтобы легче было ловить преступников.
И так начнем
Верху мода где все #define вставляем:
И так начнем
Верху мода где все #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;
}
