Posts: 2,896
Threads: 11
Joined: Sep 2008
Reputation:
0
OnPlayerUpdate is only called for connected players anyway, and again, the current code will not make the server lag.
Posts: 56
Threads: 3
Joined: Aug 2008
Reputation:
0
Very usefull for RP servers and not only.
Posts: 150
Threads: 4
Joined: Jun 2006
Reputation:
0
Okay then Lorenc_, explain to my how you will make it do something AS SOON as the person gets into the water with that function? You'd have to add a timer or use OnPlayerUpdate and then add callbacks, just as I did with this script.
This is why I made this script, because it has callbacks, and not just a function.
If you already have the callbacks in your script, then the function is more efficient because it just reads a static variable instead of checking the whole animations again.
Posts: 85
Threads: 16
Joined: Mar 2008
Reputation:
0
You could make something like when u enter the water u get a swimming suit and a swimming helmet? Just an idea
Posts: 150
Threads: 4
Joined: Jun 2006
Reputation:
0
Well this is just providing the framework, not any flashy features.
Posts: 1,047
Threads: 23
Joined: Jun 2009
Hey Limex,
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
Have fun
Posts: 1,047
Threads: 23
Joined: Jun 2009
Quote:
Originally Posted by Deskoft
Thanks.
|
yes yes that is faster but the one I 'made faster' is more precise.