Promjena gravitacije za igrača

Započeo Kamberovic
16. Avg. 2018. Zaključano
721
pregleda
9
postova
AmexScript
4
Enforcer
16. Avg. 2018.
Problem(error/warning): Zanima me da li postoji mogučnost promjene gravitacije za igrača bez korištenja dodatnih incude-a.I ukoliko ne postoji po vama koji je najbolji incude za to
Dio skripte: [ pawn ]//[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]//[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem)://
Dzoni Zivkovic
5
Underboss
16. Avg. 2018.
Mislim da nije.
Danisoni
5
Godfather
16. Avg. 2018.
Poslat ću ti ja gravitaciju po igraču iz mog moda, radi odlično na poslu Astronaut.
Ivan_Ino
5
Kingpin
Danisoni
5
Godfather
16. Avg. 2018.
Ino42O wrote on August 16, 2018, 6:47 am:
http://forum.sa-mp.com/showthread.php?t=513499


Ubacio sam i ja YSF-ov ali ne radi, nisam siguran zašto, uopšte se gravitacija ne postavi.

static bool:moving[MAX_PLAYERS char], falltime, Float:velZ, Float:gravity, bool:setgravity[MAX_PLAYERS char];

Pod OnPlayerConnect:
    moving{playerid} 						= false;
    velZ{playerid} = 0.0;
    gravity = 0.0;
    setgravity{playerid} = false;
SetPlayerGravity(playerid, Float:newgravity) //Postavlja gravitaciju
{
    setgravity{playerid} = true;
    gravity = newgravity*50.0;
    moving{playerid} = false;
}

ResetPlayerGravity(playerid) //Resetuje gravitaciju
{
    setgravity{playerid} = false;
    gravity = 0.0;
    moving{playerid} = false;
}


Pod OnPlayerUpdate:
if(setgravity{playerid} && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
        new Float:x, Float:y, Float:z;
        GetPlayerVelocity(playerid, x, y, z);
        new anim = GetPlayerAnimationIndex(playerid);
        if(anim == 1130 || anim == 1132 || anim == 1195)
        {
            if(!moving{playerid} || z == 0.0)
            {
                velZ = z;
                moving{playerid} = true;
                falltime = GetTickCount();
            }
            new time = GetTickCount()-falltime;
            z = (gravity*time)/1000.0;
            if(z > 1.17) z = 1.17;
            SetPlayerVelocity(playerid, x, y, velZ-z);
        }
        else moving{playerid} = false;
}


Nisam ja radio, ali radi oke, OnPlayerUpdate ima prebrz timer, možeš ga zamjenit sa nekim sporijim, al OnPlayerUpdate najtačnije radi.
Dzoni Zivkovic
5
Underboss
16. Avg. 2018.
Ino42O wrote on August 16, 2018, 6:47 am:
http://forum.sa-mp.com/showthread.php?t=513499
Ivane, ne bih mu preporucio da koristi YSF paket samo zbog toga.
Dzoni Zivkovic
5
Underboss
16. Avg. 2018.
Slade wrote on August 16, 2018, 10:34 am:
Ubacio sam i ja YSF-ov ali ne radi, nisam siguran zašto, uopšte se gravitacija ne postavi.

static bool:moving[MAX_PLAYERS char], falltime, Float:velZ, Float:gravity, bool:setgravity[MAX_PLAYERS char];

Pod OnPlayerConnect:
    moving{playerid} 						= false;
    velZ{playerid} = 0.0;
    gravity = 0.0;
    setgravity{playerid} = false;
SetPlayerGravity(playerid, Float:newgravity) //Postavlja gravitaciju
{
    setgravity{playerid} = true;
    gravity = newgravity*50.0;
    moving{playerid} = false;
}

ResetPlayerGravity(playerid) //Resetuje gravitaciju
{
    setgravity{playerid} = false;
    gravity = 0.0;
    moving{playerid} = false;
}


Pod OnPlayerUpdate:
if(setgravity{playerid} && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
        new Float:x, Float:y, Float:z;
        GetPlayerVelocity(playerid, x, y, z);
        new anim = GetPlayerAnimationIndex(playerid);
        if(anim == 1130 || anim == 1132 || anim == 1195)
        {
            if(!moving{playerid} || z == 0.0)
            {
                velZ = z;
                moving{playerid} = true;
                falltime = GetTickCount();
            }
            new time = GetTickCount()-falltime;
            z = (gravity*time)/1000.0;
            if(z > 1.17) z = 1.17;
            SetPlayerVelocity(playerid, x, y, velZ-z);
        }
        else moving{playerid} = false;
}


Nisam ja radio, ali radi oke, OnPlayerUpdate ima prebrz timer, možeš ga zamjenit sa nekim sporijim, al OnPlayerUpdate najtačnije radi.

OnPlayerUpdate ga pozove vise puta u sekundi a to mu ne treba.
Inace da ideja sa SetPlayerVelocity je dobra.
Dzoni Zivkovic
5
Underboss
16. Avg. 2018.
Za ovo uopste ni tajmer ne treba nikakav mogu da odradim system ako zelite 😛 sa tom funkciom i to bez tajmera 😛|
SetPlayerGravity(playerid, gravity (default 0.0) stavis sad npr 20.0 ono ce leteti 20 metara); ali bez tajmera i onplayerupdate-a 😄
AmexScript
4
Enforcer
16. Avg. 2018.
Slade wrote on August 16, 2018, 10:34 am:
Ubacio sam i ja YSF-ov ali ne radi, nisam siguran zašto, uopšte se gravitacija ne postavi.

static bool:moving[MAX_PLAYERS char], falltime, Float:velZ, Float:gravity, bool:setgravity[MAX_PLAYERS char];

Pod OnPlayerConnect:
    moving{playerid} 						= false;
    velZ{playerid} = 0.0;
    gravity = 0.0;
    setgravity{playerid} = false;
SetPlayerGravity(playerid, Float:newgravity) //Postavlja gravitaciju
{
    setgravity{playerid} = true;
    gravity = newgravity*50.0;
    moving{playerid} = false;
}

ResetPlayerGravity(playerid) //Resetuje gravitaciju
{
    setgravity{playerid} = false;
    gravity = 0.0;
    moving{playerid} = false;
}


Pod OnPlayerUpdate:
if(setgravity{playerid} && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
        new Float:x, Float:y, Float:z;
        GetPlayerVelocity(playerid, x, y, z);
        new anim = GetPlayerAnimationIndex(playerid);
        if(anim == 1130 || anim == 1132 || anim == 1195)
        {
            if(!moving{playerid} || z == 0.0)
            {
                velZ = z;
                moving{playerid} = true;
                falltime = GetTickCount();
            }
            new time = GetTickCount()-falltime;
            z = (gravity*time)/1000.0;
            if(z > 1.17) z = 1.17;
            SetPlayerVelocity(playerid, x, y, velZ-z);
        }
        else moving{playerid} = false;
}


Nisam ja radio, ali radi oke, OnPlayerUpdate ima prebrz timer, možeš ga zamjenit sa nekim sporijim, al OnPlayerUpdate najtačnije radi.
Hvala

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha