SA-MP Forums Archive
Get Player Weapon - 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)
+--- Thread: Get Player Weapon (/showthread.php?tid=618240)



Get Player Weapon - StrikerZ - 03.10.2016

Hey there. I'm making headshot system. I need to know how to check if a player is having gun. I'm making the headshot for every weapon. So i think getplayerweapon won't help me. Like, if he won't have any gun then headshot will not occur. For now i made this. Is it correct?
Код:
	    if(GetPlayerWeapon(playerid) && ScopeEnabled == 1))
 		{
     		new Float:blahx, Float:blahy, Float:blahz;
			HeadshotCheck(playerid, blahx, blahy, blahz);
		}



Re: Get Player Weapon - CarRamper - 03.10.2016

Headshot Is Mainly Mean Through Sniper


Re: Get Player Weapon - CarRamper - 03.10.2016

If You Want it for Sniper Then Try This
Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
 if(GetPlayerTeam(issuerid) != GetPlayerTeam(playerid))
 {
     if(weaponid == 34 && bodypart == 9)
     {
     SetPlayerHealth(playerid, 0.0);
     GameTextForPlayer(playerid, "~n~~n~~r~HEADSHOT", 5000, 3);
     GameTextForPlayer(issuerid, "~n~~n~~g~HEADSHOT", 5000, 3);
     GivePlayerScore(issuerid, 2);
     new str[1500];
     format(str,sizeof(str),"Good Job!You Killed %s and got 2+ score for {FF0000}HEADSHOT!", PlayerName1(playerid));
     SendClientMessage(issuerid, 0x00FF00FF, str);
     }
 }
return 1;
}
Like This Keep Changing The 34 In Line if(weaponid == 34 && bodypart == 9) To THe Weapon Id U Want Using Else


Re: Get Player Weapon - StrikerZ - 03.10.2016

I want it for every weapon.


Re: Get Player Weapon - CarRamper - 03.10.2016

Wait


Re: Get Player Weapon - CarRamper - 03.10.2016

If U Want For All Guns Try This
Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
 new weaponid = GetPlayerWeapon(playerid);
 if(GetPlayerTeam(issuerid) != GetPlayerTeam(playerid))
 {
     if(weaponid == 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |  31 | 32 | 33 | 34 | 38 && bodypart == 9)
     {
     SetPlayerHealth(playerid, 0.0);
     GameTextForPlayer(playerid, "~n~~n~~r~HEADSHOT", 5000, 3);
     GameTextForPlayer(issuerid, "~n~~n~~g~HEADSHOT", 5000, 3);
     GivePlayerScore(issuerid, 2);
     new str[1500];
     format(str,sizeof(str),"Good Job!You Killed %s and got 2+ score for {FF0000}HEADSHOT!", PlayerName1(playerid));
     SendClientMessage(issuerid, 0x00FF00FF, str);
     }
 }
return 1;



Re: Get Player Weapon - StrikerZ - 03.10.2016

Thanks!. Now how can i make a bleeding system. Like a player got shot only 1 time. Now his health will decrease by 10 every 5 seconds. Any idea?


Re: Get Player Weapon - CarRamper - 03.10.2016

On Top Of The Script Type This
Код:
new decreaser[MAX_PLAYERS];
forward DecreaseHealth(playerid);
Rest Code
Код:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
    new giveplayerid;
    if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFFFFFFFF, "Player is no Longer connected.");
    decreaser[giveplayerid] = SetTimerEx("DecreaseHealth", 5000, true, "i", giveplayerid);
	SetPlayerHealth(giveplayerid, GetPlayerHealth(giveplayerid) - 10.0);
	return 1;
}

public DecreaseHealth(playerid) SetPlayerHealth(playerid, GetPlayerHealth(playerid) - 10.0);

public OnPlayerDeath(playerid, killerid, reason)
{
	KillTimer(decreaser[playerid]);
	return 1;
}



Re: Get Player Weapon - StrikerZ - 03.10.2016

I'm having errors with OnPlayerWeaponShot
Код:
pwn(4355) : warning 219: local variable "fX" shadows a variable at a preceding level
pwn(4355) : warning 219: local variable "fY" shadows a variable at a preceding level
.pwn(4355) : warning 219: local variable "fZ" shadows a variable at a preceding level
.pwn(4360) : warning 202: number of arguments does not match definition
.pwn(4364) : warning 202: number of arguments does not match definition

Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


7 Warnings.
Код:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)//4355
{
    new giveplayerid;
    if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFFFFFFFF, "Player is no Longer connected.");
    decreaser[giveplayerid] = SetTimerEx("DecreaseHealth", 5000, true, "i", giveplayerid);
	SetPlayerHealth(giveplayerid, GetPlayerHealth(giveplayerid) - 10.0);//4360
	return 1;
}
public DecreaseHealth(playerid) SetPlayerHealth(playerid, GetPlayerHealth(playerid) - 10.0);//4364
Forward code i used
Код:
forward OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);