stock IsPlayerInWater(playerid)
{
new Float:x,Float:y,Float:pz;
GetPlayerPos(playerid,x,y,pz);
if (
(IsPlayerInArea(playerid, 2032.1371, 1841.2656, 1703.1653, 1467.1099) && pz <= 9.0484) //lv piratenschiff
|| (IsPlayerInArea(playerid, 2109.0725, 2065.8232, 1962.5355, 10.8547) && pz <= 10.0792) //lv visage
|| (IsPlayerInArea(playerid, -492.5810, -1424.7122, 2836.8284, 2001.8235) && pz <= 41.06) //lv staucamm
|| (IsPlayerInArea(playerid, -2675.1492, -2762.1792, -413.3973, -514.3894) && pz <= 4.24) //sf sьdwesten kleiner teich
|| (IsPlayerInArea(playerid, -453.9256, -825.7167, -1869.9600, -2072.8215) && pz <= 5.72) //sf gammel teich
|| (IsPlayerInArea(playerid, 1281.0251, 1202.2368, -2346.7451, -2414.4492) && pz <= 9.3145) //ls neben dem airport
|| (IsPlayerInArea(playerid, 2012.6154, 1928.9028, -1178.6207, -1221.4043) && pz <= 18.45) //ls mitte teich
|| (IsPlayerInArea(playerid, 2326.4858, 2295.7471, -1400.2797, -1431.1266) && pz <= 22.615) //ls weiter sьdцstlich
|| (IsPlayerInArea(playerid, 2550.0454, 2513.7588, 1583.3751, 1553.0753) && pz <= 9.4171) //lv pool цstlich
|| (IsPlayerInArea(playerid, 1102.3634, 1087.3705, -663.1653, -682.5446) && pz <= 112.45) //ls pool nordwestlich
|| (IsPlayerInArea(playerid, 1287.7906, 1270.4369, -801.3882, -810.0527) && pz <= 87.123) //pool bei maddog's haus oben
|| (pz < 1.5)
)
{
return 1;
}
return 0;
}
stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}
stock IsPlayerInWater(playerid)
{
new animlib[32], animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
if(strcmp(animlib, "SWIM", true) == 0) return 1;
return 0;
}
|
Yeah but you can't use the swimming animation anywhere then, or hackers can cheat the system by using that anim on ground. A native function would be much better..
OnPlayerDamage could be scripted with timers but as above, a native would be much better and probably more efficient. |
stock IsPlayerSwimming(playerid)
{
new animlib[32];
new animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,sizeof(animlib),animname,sizeof(animname));
if(IsPlayerConnected(playerid))
{
if(GetPlayerAnimationIndex(playerid))
{
if(!strcmp(animlib,"SWIM",true) &&!strcmp(animname,"SWIM_crawl",true)){
return 1;}
if(!strcmp(animlib,"SWIM",true) &&!strcmp(animname,"Swim_Breast",true)){
return 1;}
if(!strcmp(animlib,"SWIM",true) &&!strcmp(animname,"Swim_Dive_Under",true)){
return 1;}
if(!strcmp(animlib,"SWIM",true) &&!strcmp(animname,"Swim_Glide",true)){
return 1;}
if(!strcmp(animlib,"SWIM",true) &&!strcmp(animname,"Swim_jumpout",true)){
return 1;}
if(!strcmp(animlib,"SWIM",true) &&!strcmp(animname,"Swim_Tread",true)){
return 1;}
if(!strcmp(animlib,"SWIM",true) &&!strcmp(animname,"Swim_Under",true)){
return 1;}
}
}
return 0;
}