Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* SuperHuman V1 - (c) PRODUDE 2011 */
- #include <a_samp>
- #define Callback:%0(%1) forward %0(%1); public %0(%1)
- new
- bool:PowerEnabled[MAX_PLAYERS],
- GroundExplosionTimer[MAX_PLAYERS] = { -1, ... },
- PlayerAnimLib[MAX_PLAYERS][32],
- PlayerAnimName[MAX_PLAYERS][32]
- ;
- Callback:OnFilterScriptInit()
- {
- printf("\n SuperHuman V1 - (c) iPLEOMAX 2011 Loaded! \n");
- return true;
- }
- Callback:OnFilterScriptExit() return true;
- Callback:OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if (PowerEnabled[playerid]) ActivateMotion(playerid, newkeys);
- return true;
- }
- Callback:ActivateMotion(playerid, player_keys)
- {
- new
- Float:X, Float:Y, Float:Z,
- Float:VX, Float:VY, Float:VZ,
- Float:pAng
- ;
- GetPlayerCameraFrontVector(playerid, VX, VY, VZ);
- GetAnimationName(GetPlayerAnimationIndex(playerid), PlayerAnimLib[playerid], 32, PlayerAnimName[playerid], 32);
- if(strlen(PlayerAnimLib[playerid]) && !strcmp(PlayerAnimLib[playerid], "ped", true, 3))
- {
- if (player_keys & KEY_SPRINT)
- {
- GetPlayerFacingAngle(playerid, pAng);
- GetPlayerVelocity(playerid, X, Y, Z);
- SetPlayerVelocity(playerid, floatsin(-pAng, degrees) * 1.6, floatcos(pAng, degrees) * 1.6 , (Z*2)+0.03);
- } else
- if (player_keys & KEY_JUMP)
- {
- if(strlen(PlayerAnimName[playerid])
- && !strcmp(PlayerAnimName[playerid], "IDLE_", true, 5)
- || !strcmp(PlayerAnimName[playerid], "GETUP_", true, 6)
- || !strcmp(PlayerAnimName[playerid], "WALK_", true, 5)
- || !strcmp(PlayerAnimName[playerid], "FALL_", true, 5)
- || !strcmp(PlayerAnimName[playerid], "FACTALK", true, 7)
- || !strcmp(PlayerAnimName[playerid], "JUMP_", true, 5)
- || !strcmp(PlayerAnimName[playerid], "FALL_", true, 5)
- || !strcmp(PlayerAnimName[playerid], "RUN_", true, 4))
- {
- SetPlayerVelocity(playerid, 0, 0, 5);
- GetPlayerPos(playerid, X, Y, Z);
- AngleXYInFrontOfPlayer(playerid, X, Y, -2.7, 30);
- CreateExplosion(X, Y, Z, 4, 10);
- CreateExplosion(X, Y, Z, 2, 2);
- GetPlayerPos(playerid, X, Y, Z);
- AngleXYInFrontOfPlayer(playerid, X, Y, -2.7, -30);
- CreateExplosion(X, Y, Z, 4, 10);
- CreateExplosion(X, Y, Z, 2, 2);
- }
- } else
- if (player_keys & KEY_FIRE)
- {
- if (strlen(PlayerAnimName[playerid])
- && !strcmp(PlayerAnimName[playerid], "JUMP_", true, 5)
- || !strcmp(PlayerAnimName[playerid], "FACTALK", true, 7)
- || !strcmp(PlayerAnimName[playerid], "FALL_", true, 5))
- {
- new
- Float:fAng,
- Float:X1, Float:Y1, Float:Z1,
- Float:X2, Float:Y2, Float:Z2
- ;
- GetPlayerPos(playerid, X1, Y1, Z1);
- GetPlayerCameraPos(playerid, X2, Y2, Z2);
- #pragma unused Z1
- #pragma unused Z2
- fAng = (atan2(Y2-Y1, X2-X1))-270;
- ClearAnimations(playerid);
- SetPlayerFacingAngle(playerid, fAng);
- SetPlayerVelocity(playerid, VX, VY, VZ+0.5);
- }
- } else
- if (player_keys & KEY_CROUCH)
- {
- SetPlayerVelocity(playerid, 0, 0, -50);
- KillTimer(GroundExplosionTimer[playerid]);
- GroundExplosionTimer[playerid] = SetTimerEx("Gexplode", 250, false, "d", playerid);
- }
- }
- return true;
- }
- Callback:Gexplode(playerid)
- {
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X, Y, Z);
- CreateExplosion(X, Y, Z, 4, 10);
- CreateExplosion(X, Y, Z, 2, 2);
- return true;
- }
- Callback:OnPlayerDisconnect(playerid, reason)
- {
- PowerEnabled[playerid] = false;
- return true;
- }
- Callback:OnPlayerSpawn(playerid)
- {
- if (PowerEnabled[playerid]) SetPlayerHealth(playerid, 0x107FFF);
- return true;
- }
- Callback:OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!strcmp(cmdtext, "/superhuman", true, 11) && strlen(cmdtext))
- {
- if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERROR] Only Admins can use this command.");
- if (PowerEnabled[playerid])
- {
- SetPlayerHealth(playerid, 100);
- SendClientMessage(playerid, 0x00FFFFFF, "*** You no longer have the Super Human abilities... ***");
- PowerEnabled[playerid] = false;
- } else {
- SendClientMessage(playerid, 0x00FFFFFF, "*** Acquired Super powers! ***");
- SendClientMessage(playerid, 0xFFFFFFFF, "- Use Sprint Key to Boost run.");
- SendClientMessage(playerid, 0xFFFFFFFF, "- Use Jump Key to Super Jump.");
- SendClientMessage(playerid, 0xFFFFFFFF, "- Use Crouch Key to Land at lighting speed.");
- SendClientMessage(playerid, 0xFFFFFFFF, "- Use Fire to Accelerate towards your point of view.");
- SetPlayerHealth(playerid, 0x107FFF);
- PowerEnabled[playerid] = true;
- }
- return true;
- }
- return false;
- }
- AngleXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance, Float:Angle = 0.0)
- { //by Y_Less (a little change by pleomax)
- new Float:a;
- GetPlayerPos(playerid, x, y, a);
- GetPlayerFacingAngle(playerid, a);
- if (GetPlayerVehicleID(playerid)) {
- GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
- }
- x += (distance * floatsin(-(a+Angle), degrees));
- y += (distance * floatcos(-(a+Angle), degrees));
- }
Add Comment
Please, Sign In to add comment