Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Updated 2020-12-17 | Rewiews: 150
- //Created by Vok3 | more: https://pastebin.com/u/Voke_Bass
- #define FlySpeed 40 //If it exceeds the speed
- #define FlyTimer 2 //Within a few seconds the player position is restored
- new PlayerSwiming[MAX_PLAYERS];
- new Float:PlayerSwimPos[MAX_PLAYERS][3];
- public OnPlayerSpawn(playerid)
- {
- SetTimerEx("SetPlayerPosition", FlyTimer*1000, true, "i", playerid);
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- new PlayerAnimation = GetPlayerAnimationIndex(playerid);
- new PlayerAnimationLib[30], PlayerAnimationName[30];
- GetAnimationName(PlayerAnimation, PlayerAnimationLib, sizeof(PlayerAnimationLib), PlayerAnimationName, sizeof(PlayerAnimationName));
- if(GetPlayerSpeed(playerid) > FlySpeed)
- {
- if(strcmp(PlayerAnimationLib, "PARACHUTE", true) == 0) { PlayerFlying(playerid); }
- if(strcmp(PlayerAnimationLib, "SWIM", true) == 0) { PlayerSurfing(playerid); }
- if(strcmp(PlayerAnimationLib, "SWIM_crawl", true) == 0) { PlayerSurfing(playerid); }
- }
- return 1;
- }
- forward SetPlayerPosition(playerid);
- public SetPlayerPosition(playerid)
- {
- new Float:Position[3];
- GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
- if(PlayerSwiming[playerid] == 2)
- {
- SetPlayerPos(playerid, PlayerSwimPos[playerid][0], PlayerSwimPos[playerid][1], PlayerSwimPos[playerid][2]);
- PlayerSwiming[playerid] = 0;
- }
- if(PlayerSwiming[playerid] == 1)
- {
- PlayerSwimPos[playerid][0] = Position[0];
- PlayerSwimPos[playerid][1] = Position[1];
- PlayerSwimPos[playerid][2] = Position[2];
- PlayerSwiming[playerid] = 2;
- }
- return 1;
- }
- stock PlayerFlying(playerid)
- {
- new Float:Position[3];
- GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
- SetPlayerPos(playerid, Position[0], Position[1], Position[2]);
- return 1;
- }
- stock PlayerSurfing(playerid)
- {
- if(PlayerSwiming[playerid]) return 1;
- PlayerSwiming[playerid] = 1;
- return 1;
- }
- stock GetPlayerSpeed(playerid)
- {
- new Float: Position[4];
- GetPlayerVelocity(playerid, Position[0], Position[1], Position[2]);
- Position[3] = floatsqroot(floatpower(floatabs(Position[0]), 2.0) + floatpower(floatabs(Position[1]), 2.0) + floatpower(floatabs(Position[2]), 2.0)) * 213.3;
- return floatround(Position[3]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement