Peršokti į turinį
Negalima prašyti ar platinti betkokių žaidimą (multiplayer) palengvinančių programų ir scriptų! Kitaip bus taikoma 1.21. taisyklė

IsPlayerInWater(.....)


Kesa

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3555 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Funkcija tikrinanti ar žaidėjas vandenyje. Jei taip gražinama - 1, jei ne - 0.

Naudojimas:

if(IsPlayerInWater(playerid)) SendClientMessage(playerid, -1, "Tu esi vandenyje!");
else SendClientMessage(playerid, -1, "Tavęs nėra vandenyje! Eik maudytis!");

Funkcija:

stock IsPlayerInWater(playerid)
{
new Float:Z;
GetPlayerPos(playerid, Z, Z, Z);
if(Z < 0.7) switch(GetPlayerAnimationIndex(playerid)) { case 1543,1538,1539,1250: return (true); }
if(GetPlayerDistanceFromPoint(playerid, -965, 2438, 42) <= 700 && Z < 45) return (true);
new Float:water_places[][] =
{
{25.0,  2313.0, -1417.0,        23.0},
{15.0,  1280.0, -773.0,         1082.0},
{15.0,  1279.0, -804.0,         86.0},
{20.0,  1094.0, -674.0,         111.0},
{26.0,  194.0,  -1232.0,        76.0},
{25.0,  2583.0, 2385.0,         15.0},
{25.0,  225.0,  -1187.0,        73.0},
{50.0,  1973.0, -1198.0,        17.0}
};
for(new t=0; t < sizeof water_places; t++)
if(GetPlayerDistanceFromPoint(playerid, water_places[t][1], water_places[t][2], water_places[t][3]) <= water_places[t][0]) return (true);
return (false);
}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Kas cia per magiski numeriai? Debilna kazkokia funkcija, kodel tiesiog nepatikrinus tik dabartinės animacijos?

Išvis CPed bloke 0x46C offsete yra toks dalykas:

0 = in air/water

1 = in car
2 = entering interior
3 = on foot
Ir jei 0 galima būtų dar patikrint žaidėjo aukštį.
Redaguota , nario TETYYS
Nuoroda į komentarą
Dalintis per kitą puslapį

Šitą dalyką patarčiau visiems naudoti žvejybos sistemai, kadangi tada žvejoti galima beveik bet kur.

Ir kame logika? Žvejoti galėsi tik "plaukdamas" o ne būdamas šalia vandens, nes tam reikalinga "plaukimo" animacija. Čia labiau tiktų antrankių dėjimo tikrinimui, jaigu žmogus vandenyje, jo nesurakinsi.

Nuoroda į komentarą
Dalintis per kitą puslapį

Ir kame logika? Žvejoti galėsi tik "plaukdamas" o ne būdamas šalia vandens, nes tam reikalinga "plaukimo" animacija. Čia labiau tiktų antrankių dėjimo tikrinimui, jaigu žmogus vandenyje, jo nesurakinsi.

new Float: PlayerPos[3]; GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
if(PlayerPos[2] < 3.0 || IsPlayerInWater(playerid))
{
   //tu vandenyje arba prie jo
}
Redaguota , nario Rocky'
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 4 savaičių...
(redaguota)

 

Kas cia per magiski numeriai? Debilna kazkokia funkcija, kodel tiesiog nepatikrinus tik dabartinės animacijos?

Išvis CPed bloke 0x46C offsete yra toks dalykas:

0 = in air/water

1 = in car
2 = entering interior
3 = on foot
Ir jei 0 galima būtų dar patikrint žaidėjo aukštį.

 

Tai jei nesupranti kodo, tai nereikia vadint "debilna".. Tikrinant tik pagal aukštį buginsis, nes nepagalvoji apie interierų baseinus ir šeip "balas".

Redaguota , nario _kRego
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3555 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...