07.06.2011, 01:21
Hey Limex,
I have optimized the code a bit for you.
Here is the code:
Have fun
I have optimized the code a bit for you.
Here is the code:
pawn Код:
/* =============================
Limex's Swimming Include
Made by Limex / A
New function:
IsPlayerSwimming(playerid)
New callbacks:
OnPlayerStartSwimming(playerid)
OnPlayerStopSwimming(playerid)
Enjoy!
edit By Gamer_Z | ****** did mention code optimizing tips too and I used them here.
note:
OnPlayerUpdate Code should be as fast and efficient as possible!
============================= */
#include <a_samp>
#define ANIM_SWIM1 1544 //wasn't so hard to get! , just debug
#define ANIM_SWIM2 1540
#define ANIM_SWIM3 1541
#define ANIM_SWIM4 1538
#define ANIM_SWIM5 1539
#define ANIM_JUMP1 1197//this too!
#define ANIM_JUMP2 1195
#define ANIM_JUMP3 1198
#define ANIM_JUMP4 1064
#define ANIM_JUMP5 1062
#define ANIM_JUMP6 1542
#if !defined SWIM_NO_CALLBACKS
#define SWIM_USE_CALLBACKS
#endif
#if defined SWIM_USE_CALLBACKS
new swimming[MAX_PLAYERS] = {0,...};//sorry I don't know if bool or normal variables are faster so I used them to enchance the performance of IsPlayerSwiming
stock IsPlayerSwimming(playerid)
{
return swimming[playerid];
}
forward OnPlayerStartSwimming(playerid);
forward OnPlayerStopSwimming(playerid);
public OnPlayerUpdate(playerid)
{
if(swimming[playerid] == 0)
{
switch(GetPlayerAnimationIndex(playerid))
{
case ANIM_SWIM1,ANIM_SWIM2,ANIM_SWIM3,ANIM_SWIM4,ANIM_SWIM5:
{
swimming[playerid] = 1;
OnPlayerStartSwimming(playerid);
}
}
}
else
{
switch(GetPlayerAnimationIndex(playerid))
{
case ANIM_JUMP1,ANIM_JUMP2,ANIM_JUMP3,ANIM_JUMP4,ANIM_JUMP5,ANIM_JUMP6,ANIM_SWIM1,ANIM_SWIM2,ANIM_SWIM3,ANIM_SWIM4,ANIM_SWIM5:
{
}
default:
{
swimming[playerid] = 0;
OnPlayerStopSwimming(playerid);
}
}
}
return 1;
}
//OnPlayerStartSwimming(playerid)SendClientMessage(playerid,0xFFFFFFFF,"You Started swimming");
//OnPlayerStopSwimming(playerid)SendClientMessage(playerid,0xFFFFFFFF,"You Stoped swimming");
#else
stock IsPlayerSwimming(playerid)
{
switch(GetPlayerAnimationIndex(playerid))
{
case ANIM_SWIM1,ANIM_SWIM2,ANIM_SWIM3,ANIM_SWIM4,ANIM_SWIM5:
{
return 1;
}
case ANIM_JUMP1,ANIM_JUMP2,ANIM_JUMP3,ANIM_JUMP4,ANIM_JUMP5,ANIM_JUMP6:
{
return -1;//or 2?
}
default:
return 0;
}
}
#endif