if(strcmp(cmd, "/tazer", true) ==0 || strcmp(cmd, "/ta", true) ==0)
{
if(IsACop(playerid) || PlayerInfo[playerid][pDuty] == 1)
{
new weapons[13][2];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
}
if(Tazer[playerid] == 0)
{
if(PlayerInfo[playerid][pTazerBullets] != 0)
{
new ammo = weapons[2][1];
PreTazerAmmo[playerid] = ammo;
SafeGivePlayerWeapon(playerid, 23, PlayerInfo[playerid][pTazerBullets]);
Tazer[playerid] = 1;
AttachWeaponCorrectly(playerid, 24);
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 500);
OnePlayAnim(playerid,"SWORD","sword_block",50.0,0,1,1,1,1);
format(string, sizeof(string), "* %s hostlers his Desert Deagle and Unhostlers his Tazer.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
}
else
{
SendClientMessage(playerid, COLOR_GREY,"* No charges in the tazer!");
return 1;
}
}
else
{
new ammo = weapons[2][1];
PlayerInfo[playerid][pTazerBullets] = ammo;
SafeGivePlayerWeapon(playerid, 24, PreTazerAmmo[playerid]);
AttachWeaponCorrectly(playerid, 23);
Tazer[playerid] = 0;
ClearAnimations(playerid);
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, PlayerInfo[playerid][pSilenSkill]);
format(string, sizeof(string), "* %s hostlers his tazer and Unhostlers his Deagle.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
}
}
return 1;
}
else if ( PRESSED(KEY_FIRE) )
{
if(IsACop(playerid) || GetPlayerWeapon(playerid) == 23 || Tazer[playerid] == 1)
{
new Float:X,Float:Y,Float:Z,Float:pX,Float:pY,Float:pZ;
GetPlayerPos(playerid, pX,pY,pZ);
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i,60, pX,pY,pZ))
{
if(i != playerid)
{
GetPlayerPos(i, X,Y,Z);
new iname[MAX_PLAYER_NAME];
GetPlayerName(i, iname, sizeof(iname));
if(IsPlayerAimingAt(playerid, X,Y,Z,1.5))
{
GameTextForPlayer(i,"~r~BEING TAZED",9000,4);
GameTextForPlayer(playerid, "~b~USING THE TAZER",2000,4);
TogglePlayerControllable(i, 0);
TogglePlayerControllable(playerid, 0);
ApplyAnimation(i, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
SetTimerEx("Unfreezeply",9000,0,"i",i);
ApplyAnimation(playerid,"ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1);
SetTimerEx("Unfreezeply",1500,0,"i",playerid);
format(string, sizeof(string),"* %s Aims his Tazer at %s and Shoots it",sendername,iname);
}
else return GameTextForPlayer(playerid, "~b~Missed the Shoot",3750,4);
}
}
}
}
}
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
if(IsACop(playerid) || GetPlayerWeapon(playerid) == 23 || Tazer[playerid] == 1)
{
new iname[MAX_PLAYER_NAME]
GameTextForPlayer(damageid,"~r~BEING TAZED",9000,4);
GameTextForPlayer(playerid, "~b~USING THE TAZER",2000,4);
TogglePlayerControllable(damageid, 0);
TogglePlayerControllable(playerid, 0);
ApplyAnimation(damageid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
SetTimerEx("Unfreezeply",9000,0,"i",damageid);
ApplyAnimation(playerid,"ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1);
SetTimerEx("Unfreezeply",1500,0,"i",playerid);
format(string, sizeof(string),"* %s Aims his Tazer at %s and Shoots it",sendername,iname);
//Send the message to near player
}
return 1;
}
for(new i=0; i < MAX_PLAYERS; i++)
{
|
also
Код:
for(new i=0; i < MAX_PLAYERS; i++)
{
https://sampwiki.blast.hk/wiki/GetMaxPlayers |
|
Why? There is no point using this. If OnPlayerTakeDamage is a function that is call when someone get shot, it will be only 1 player.
|