Jump to content

script AntiFallOf z Motorky


Reast-X

Recommended Posts

Serus chlapci,

 

Na to že tu neni TuT na Anti Fall of z bajku tak Vám ho teraz prinášam. Trošku som doplnil script pár funkciami ako napr. IsPlayerInWater. Ide o to že ak hráč nasadne na motorku a z nej spadne (crash o stenu) tak sa nespusti Public OnPlayerExitVehicle. Toto sa dalo vyuzit na to aby sa vytvorila funkcia AntiFallOf. (Script nie je moj)

 

Premenne:

 

new GA[MAX_PLAYERS_EX];

new bool:Fall[MAX_PLAYERS];

 

 

Definicie

 

#define Driver 0

#define Passanger 2

 

 

OnPlayerStateChange

if(oldstate == PLAYER_STATE_DRIVER)

{

if(newstate == PLAYER_STATE_ONFOOT)

{

if(Fall[playerid] == true)

{

if (!IsPlayerInWater(playerid))

{

PutPlayerInVehicle(playerid, GA[playerid], Driver);

}

}

}

}

if(oldstate == PLAYER_STATE_PASSENGER)

{

if(newstate == PLAYER_STATE_ONFOOT)

{

if(Fall[playerid] == true)

{

if (!IsPlayerInWater(playerid))

{

PutPlayerInVehicle(playerid, GA[playerid], Passanger);

}

}

}

}

if(oldstate == PLAYER_STATE_ONFOOT)

{

if(newstate == PLAYER_STATE_DRIVER || PLAYER_STATE_PASSENGER)

{

Fall[playerid] = true;

GA[playerid] = GetPlayerVehicleID(playerid);

}

}

 

 

OnPlayerExitVehicle

 

Fall[playerid] = false;

 

 

Niekde do modu

 

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 true;

}

return false;

}

 

IsPlayerInArea(playerid, Float:max_x, Float:min_x, Float:max_y, Float:min_y)

{

new Float:X, Float:Y, Float:Z;

GetPlayerPos(playerid, X, Y, Z);

if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) return 1;

return 0;

}

 

 

Funkciu IsPlayerInWater som pouzil preto, lebo ak spadnes do vody s motorkou tak je to to iste ako napr. ten crash o stenu = nevyvola sa OnPlayerExitVehicle. Supol som tam podmienku že ak je vo vode nehodi ho to spät na motorku.

 

(Ide to z vlastnej skusenosti viem).

Link to comment
Share on other sites

Hod sem pls vidko.

Tenhle skript musi mit bugu jak svina

 

Teraz si ma rozosmial. Má to bugy? Jake prosim ta? Si kompletný. Radsej drz papulu, ked sem nieco davam tak to mám otestovane. Mám to na svojom servery a som s tým nad mieru spokojny

Link to comment
Share on other sites

Hod sem pls vidko.

Tenhle skript musi mit bugu jak svina

 

Teraz si ma rozosmial. Má to bugy? Jake prosim ta? Si kompletný. Radsej drz papulu, ked sem nieco davam tak to mám otestovane. Mám to na svojom servery a som s tým nad mieru spokojny

 

Zas tolik ti toho neřekl ... Tak mu nemusíš nadávat zato co si myslí ...

K tutu 9/10

Link to comment
Share on other sites

  • 6 months later...
:d :D co to je za název :d

AntiFallOf z Motorky

Správně se to nazýva AntiFallOfBike

 

good english :d

 

 

Ja si myslím že by to malo byť AntiAntiFallOfBike...pretože v s0beite sa to nazýva AntiFallOfBike "lol".

 

Ja to asi nepoužijem, ako už bolo písané skôr na stunty ale ja robím RP...

Link to comment
Share on other sites

:d :D co to je za název :d

AntiFallOf z Motorky

Správně se to nazýva AntiFallOfBike

 

good english :d

 

 

Ja si myslím že by to malo byť AntiAntiFallOfBike...pretože v s0beite sa to nazýva AntiFallOfBike "lol".

 

Ja to asi nepoužijem, ako už bolo písané skôr na stunty ale ja robím RP...

Link to comment
Share on other sites

:d :D co to je za název :d

AntiFallOf z Motorky

Správně se to nazýva AntiFallOfBike

 

good english :d

 

 

Ja si myslím že by to malo byť AntiAntiFallOfBike...pretože v s0beite sa to nazýva AntiFallOfBike "lol".

 

Ja to asi nepoužijem, ako už bolo písané skôr na stunty ale ja robím RP...

DATUM?

Link to comment
Share on other sites

:d :D co to je za název :d

AntiFallOf z Motorky

Správně se to nazýva AntiFallOfBike

 

good english :d

 

 

Ja si myslím že by to malo byť AntiAntiFallOfBike...pretože v s0beite sa to nazýva AntiFallOfBike "lol".

 

Ja to asi nepoužijem, ako už bolo písané skôr na stunty ale ja robím RP...

DATUM?

Link to comment
Share on other sites

Zdárec, jak se koukam na ten OnPlayerEnterWater, tak ten script nemusí být zcela funkční.

 

Tento by mělo fungovat na 100%:

new bool:swimming[MAX_PLAYERS];
forward OnPlayerEnterInWater(playerid);

 

 

public OnPlayerUpdate(playerid)

{

if(GetPlayerAnimationIndex(playerid))

{

new animlib[32];

new animname[32];

GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);

if(strcmp(animlib, "SWIM", true) == 0 && !swimming[playerid])

{

swimming[playerid] = true;

OnPlayerEnterInWater(playerid);

}

else if(strcmp(animlib, "SWIM", true) != 0 && swimming[playerid] && strfind(animname, "jump", true) == -1)

{

swimming[playerid] = false;

}

}

return 1;

}

 

 

Takže použiťí:

 

OnPlayerEnterInWater(playerid)
{
Fall[playerid] = false;
return 1;
}

Link to comment
Share on other sites

Zdárec, jak se koukam na ten OnPlayerEnterWater, tak ten script nemusí být zcela funkční.

 

Tento by mělo fungovat na 100%:

new bool:swimming[MAX_PLAYERS];
forward OnPlayerEnterInWater(playerid);

 

 

public OnPlayerUpdate(playerid)

{

if(GetPlayerAnimationIndex(playerid))

{

new animlib[32];

new animname[32];

GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);

if(strcmp(animlib, "SWIM", true) == 0 && !swimming[playerid])

{

swimming[playerid] = true;

OnPlayerEnterInWater(playerid);

}

else if(strcmp(animlib, "SWIM", true) != 0 && swimming[playerid] && strfind(animname, "jump", true) == -1)

{

swimming[playerid] = false;

}

}

return 1;

}

 

 

Takže použiťí:

 

OnPlayerEnterInWater(playerid)
{
Fall[playerid] = false;
return 1;
}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...