Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- new mid;
- new Float:hp;
- new Killing[MAX_PLAYERS];
- forward OnMinigunAttacking(targetid);
- stock Float:GetDistanceToMinigun(minigunid,targetid)
- {
- new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
- if (!IsPlayerConnected(targetid)) {
- return -1.00;
- }
- GetObjectPos(minigunid,x1,y1,z1);
- GetPlayerPos(targetid,x2,y2,z2);
- return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
- }
- stock GetTargetStats(Float:X, Float:Y, Float:tX, Float:tY, &Float:Angle)
- {
- Angle = atan2(Y-tY, X-tX);
- Angle = floatsub(Angle, 90.0);
- if(Angle < 0.0){Angle = floatadd(Angle, 360.0);}
- }
- stock CreateMinigun(targetid, Float:X, Float:Y, Float:Z, Float:Rx, Float:Ry, Float:Rz)
- {
- mid = CreateObject(2985, X, Y, Z,Rx, Ry, Rz, 0.0);
- SetTimerEx("OnMinigunAttacking", 250, 1, "i", targetid);
- Killing[targetid] = 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/minigun", cmdtext, true, 10) == 0)
- {
- new Float: x, Float: y, Float: z;
- GetPlayerPos(playerid, x, y, z);
- CreateMinigun(playerid, x-1.5, y-1.5, z-1.0, 0.0, 0.0, 0.0);
- return 1;
- }
- return 0;
- }
- public OnPlayerSpawn(playerid)
- {
- Killing[playerid] = 1;
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- Killing[playerid] = 0;
- return 1;
- }
- public OnMinigunAttacking(targetid)
- {
- if(Killing[targetid] == 1 && GetDistanceToMinigun(mid, targetid < 27.5))
- {
- new Float:mx, Float:my, Float:mz, Float:xp, Float:yp, Float:zp, Float:ang;
- GetObjectPos(mid, mx, my, mz);
- GetPlayerPos(targetid, xp, yp, zp);
- GetPlayerFacingAngle(targetid, ang);
- GetPlayerHealth(targetid, hp);
- SetPlayerHealth(targetid, hp-4.5);
- GetTargetStats(xp, yp, mx, my, ang);
- SetObjectRot(mid,0.0,0.0,ang+90.0);
- PlayerPlaySound(targetid, 1057,0.0,0.0,0.0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement