SA-MP Forums Archive
Taze MMB - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Taze MMB (/showthread.php?tid=149006)



Taze MMB - billiout - 20.05.2010

How can make to taze with the MMB not the cmd /taze

here is the code

Код:
if(strcmp(cmd, "/taze", true) == 0) {
	 if(IsSpawned[playerid] == 0) {
	 SendClientMessage(playerid, COLOR_ERROR, "You are dead. You cannot use this command");
   return 1;
   }
	 if(gTeam[playerid] >= 3) {
	 SendClientMessage(playerid, COLOR_ERROR, "Only Law Enforcement can use this command");
   return 1;
   }
   if(InDerby[playerid] == 1) {
   SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command while you are in the stadium");
   return 1;
   }
	 if(Jailed[playerid] == 1) {
	 SendClientMessage(playerid, COLOR_ERROR, "You cannot use this command in jail");
   return 1;
   }
	 tmp = strtok(cmdtext, idx);
   if(!strlen(tmp)) {
   SendClientMessage(playerid, COLOR_ERROR, "USAGE: /taze (id)");
   return 1;
   }
   giveplayerid = strval(tmp);
   if(!IsNumeric(tmp)) {
   SendClientMessage(playerid, COLOR_ERROR, "USAGE: /taze (id) ID Must be a number");
   return 1;
   }
   if(!IsPlayerConnected(giveplayerid)) {
   format(string, sizeof(string), "ID (%d) Is not an active player", giveplayerid);
   SendClientMessage(playerid, COLOR_ERROR, string);
   return 1;
   }
   if(gTeam[giveplayerid] <= 2) {
   SendClientMessage(playerid, COLOR_ERROR, "You cannot taze another Law Enforcement agent");
   return 1;
   }
   new oname[24];
   new pname[24];
   GetPlayerName(playerid,oname, 24);
   GetPlayerName(giveplayerid, pname, 24);
   if(GetPlayerWantedLevel(giveplayerid) <= 3) {
	 format(string, sizeof(string), "%s(%d) Does not have a warrant. You cannot use your tazer on this player",pname,giveplayerid);
   SendClientMessage(playerid, COLOR_ERROR, string);
   return 1;
   }
   if(GetDistanceBetweenPlayers(playerid,giveplayerid) > 10) {
   format(string, sizeof(string), "%s(%d) Is not close enough to taze",pname,giveplayerid);
   SendClientMessage(playerid, COLOR_ERROR, string);
   return 1;
   }
   if(cuffed[giveplayerid] == 1) {
   format(string, sizeof(string), "%s(%d) Is in handcuffs and is restrained. You cannot taze a handcuffed player",pname, giveplayerid);
   SendClientMessage(playerid, COLOR_ERROR, string);
   return 1;
   }
   if(IsPlayerInAnyVehicle(giveplayerid)) {
   format(string, sizeof(string), "%s(%d) Is in a vehicle. Get the player out the vehicle then use your tazer",pname,giveplayerid);
   SendClientMessage(playerid, COLOR_ERROR, string);
   return 1;
   }
	 if(IsPlayerInAnyVehicle(playerid)) {
	 SendClientMessage(playerid, COLOR_ERROR, "You cannot taze a player from inside a vehicle");
   return 1;
   }
	 if(Tazed[giveplayerid] == 1) {
	 format(string, sizeof(string), "%s(%d) Is being tazed right now. You cannot taze a player while the player is being tazed",pname,giveplayerid);
   SendClientMessage(playerid, COLOR_ERROR, string);
	 }
	 else{
	 
   Tazed[giveplayerid] =1;
   new tazername[30];
   GetPlayerName(playerid,tazername,30);
   format(string, sizeof(string), "Law Enforcement agent %s(%d) Has tazed suspect %s(%d)",tazername,playerid,pname,giveplayerid);
   SendClientMessageToAll(0x00C7FFAA, string);
   SendClientMessage(giveplayerid, 0xA9A9A9AA, "|_Law Enforcement Action_|");
   format(string, sizeof(string), "Officer %s(%d) Has tazed you", oname,playerid);
   SendClientMessage(giveplayerid,COLOR_DODGERBLUE, string);
   ApplyAnimation(giveplayerid,"PED","BIKE_fall_off",4.1,0,1,1,1,1);
   SetTimer("Tazingtime",3000,0);
   }
   return 1;
   }
and if it posible to make it as a pistol tazer.


Re: Taze MMB - MafiaGuy™ - 20.05.2010

ye use OnPlayerKeyStats callback and use this:

Код:
stock IsPlayerAiming(playerid, aimid)
{
	// Not my function, can't remember who made it though.
	new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
	GetPlayerPos(playerid, X1, Y1, Z1);
	GetPlayerPos(aimid, X2, Y2, Z2);
	new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
	if(Distance < 100)
	{
		new Float:A;
	 	GetPlayerFacingAngle(playerid, A);
	 	X1 += (Distance * floatsin(-A, degrees));
	 	Y1 += (Distance * floatcos(-A, degrees));
	 	Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
		if(Distance < 0.5)
		{
		  return true;
		}
	}
	return false;
}



Re: Taze MMB - billiout - 20.05.2010

Quote:
Originally Posted by MafiaGuy™
ye use OnPlayerKeyStats callback and use this:

Код:
stock IsPlayerAiming(playerid, aimid)
{
	// Not my function, can't remember who made it though.
	new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
	GetPlayerPos(playerid, X1, Y1, Z1);
	GetPlayerPos(aimid, X2, Y2, Z2);
	new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
	if(Distance < 100)
	{
		new Float:A;
	 	GetPlayerFacingAngle(playerid, A);
	 	X1 += (Distance * floatsin(-A, degrees));
	 	Y1 += (Distance * floatcos(-A, degrees));
	 	Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
		if(Distance < 0.5)
		{
		  return true;
		}
	}
	return false;
}
what do you mean i dont much from scripting!