Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Belii poslato Mart 27, 2023, 16:26:26 POSLE PODNE

Naslov: AutoSalon kamera
Poruka od: Belii poslato Mart 27, 2023, 16:26:26 POSLE PODNE
Problem(error/warning): Kada kreiram autosalon i sada trebam da izaberem kordinate za kameru kada igrac kupuje vozilo de da mu postavi i kucam /ascamera od jednom mi se kamera postavi negde skroz drugde dok kad izadje iz auto salona i kad ukucsm /ascamera sve normalno radi
Deo skripte: [pawn]ako je potrebno postavicu[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [pawn]//[/pawn]
Slika/video ingame problema(obavezno ako je ingame problem): ako treba postavicu

mozda sam malo lose objasnio koj je problem
Naslov: Odg: AutoSalon kamera
Poruka od: Belii poslato Mart 28, 2023, 18:12:21 POSLE PODNE
bump
Naslov: Odg: AutoSalon kamera
Poruka od: njoBe_ poslato Mart 28, 2023, 23:16:34 POSLE PODNE
da posaljes mozda kod i da bolje objasnis sta se desava znali bi.. nema niko ovdje u glavi svaki mod pa da zna gdje je sta i kako radi
Naslov: Odg: AutoSalon kamera
Poruka od: Belii poslato Mart 29, 2023, 18:39:22 POSLE PODNE
Citat: njoBe_ poslato Mart 28, 2023, 23:16:34 POSLE PODNE
da posaljes mozda kod i da bolje objasnis sta se desava znali bi.. nema niko ovdje u glavi svaki mod pa da zna gdje je sta i kako radi
razumem te skroz ne znam bas najbolje da objasnim
dok sam u salonu i trebam da sacuvam kordinate za kameru jednostavno me prebaci u vazduh a kada sam van salona radi normalno mogu da se krecem
[pawn]CMD:ascamera( playerid, params[] ) {
    if( PlayerInfo[ playerid ][ xAdmin ] >= 7 ) {
        if( FlyMode[ playerid ] == true && flymodecamera[ playerid ][ cameramode ] == true ) {
            new as = KreiranAutoSalon[ playerid ];
            new Float:fPX, Float:fPY, Float:fPZ,
                Float:fVX, Float:fVY, Float:fVZ,
                Float:object_x, Float:object_y, Float:object_z;

            const Float:fScale = 5.0;

            GetPlayerCameraPos( playerid, fPX, fPY, fPZ);
            GetPlayerCameraFrontVector( playerid, fVX, fVY, fVZ);

            object_x = fPX + floatmul( fVX, fScale );
            object_y = fPY + floatmul( fVY, fScale );
            object_z = fPZ + floatmul( fVZ, fScale );

            AutoSalon[ as ][ aCameraPos ][ 0 ]      = fPX;
            AutoSalon[ as ][ aCameraPos ][ 1 ]      = fPY;
            AutoSalon[ as ][ aCameraPos ][ 2 ]      = fPZ;
            AutoSalon[ as ][ aCameraLookAt ][ 0 ]   = object_x;
            AutoSalon[ as ][ aCameraLookAt ][ 1 ]   = object_y;
            AutoSalon[ as ][ aCameraLookAt ][ 2 ]   = object_z;
            SaveSalon( as );
            CancelFlyMode( playerid );
            SendInfoMessage( playerid, "Uspesno si sacuvao pozicije." );
            SendInfoMessage( playerid, "Sada koristi /asport da se vratis do auto salona." );
        }
    }
    return true;
}[/pawn]//ovo je komanda za cuvanje pozicije
[pawn]enum noclipenum {
    bool:cameramode,
    flyobject,
    mode,
    lrold,
    udold,
    lastmove,
    Float:accelmul
}
new flymodecamera[ MAX_PLAYERS ][noclipenum];

#define MOVE_FORWARD            1
#define MOVE_BACK               2
#define MOVE_LEFT               3
#define MOVE_RIGHT              4
#define MOVE_FORWARD_LEFT       5
#define MOVE_FORWARD_RIGHT      6
#define MOVE_BACK_LEFT          7
#define MOVE_BACK_RIGHT         8
#define MOVE_SPEED              100.0
#define ACCEL_RATE              0.03[/pawn]
[pawn]    flymodecamera[ playerid ][cameramode]   = false;
    flymodecamera[ playerid ][lrold]            = 0;
    flymodecamera[ playerid ][udold]        = 0;
    flymodecamera[ playerid ][mode]         = 0;
    flymodecamera[ playerid ][lastmove]     = 0;
    flymodecamera[ playerid ][accelmul]     = 0.0;[/pawn]
[pawn]stock GetMoveDirectionFromKeys( ud, lr ) {
    new direction = 0;

    if(lr < 0)
    {
        if(ud < 0)      direction = MOVE_FORWARD_LEFT;
        else if(ud > 0) direction = MOVE_BACK_LEFT;
        else            direction = MOVE_LEFT;
    }
    else if(lr > 0)
    {
        if(ud < 0)      direction = MOVE_FORWARD_RIGHT;
        else if(ud > 0) direction = MOVE_BACK_RIGHT;
        else            direction = MOVE_RIGHT;
    }
    else if(ud < 0)     direction = MOVE_FORWARD;
    else if(ud > 0)     direction = MOVE_BACK;

    return direction;
}

stock MoveCamera( playerid ) {
    new Float:FV[ 3 ], Float:CP[ 3 ];
    GetPlayerCameraPos( playerid, CP[ 0 ], CP[ 1 ], CP[ 2 ] );
    GetPlayerCameraFrontVector( playerid, FV[ 0 ], FV[ 1 ], FV[ 2 ] );
    if( flymodecamera[ playerid ][ accelmul ] <= 1 ) flymodecamera[ playerid ][ accelmul ] += ACCEL_RATE;
    new Float:speed = MOVE_SPEED * flymodecamera[ playerid ][ accelmul ];
    new Float:Xa, Float:Ya, Float:Za;
    GetNextCameraPosition( flymodecamera[ playerid ][ mode ], CP, FV, Xa, Ya, Za );
    MovePlayerObject( playerid, flymodecamera[ playerid ][ flyobject ], Xa, Ya, Za, speed );
    flymodecamera[ playerid ][ lastmove ] = GetTickCount( );
    return 1;
}
stock GetNextCameraPosition(move_mode, Float:CP[ 3 ], Float:FV[ 3 ], &Float:Xa, &Float:Ya, &Float:Za) {
    #define OFFSET_X (FV[0]*6000.0)
    #define OFFSET_Y (FV[1]*6000.0)
    #define OFFSET_Z (FV[2]*6000.0)
    switch(move_mode)
    {
        case MOVE_FORWARD:
        {
            Xa = CP[0]+OFFSET_X;
            Ya = CP[1]+OFFSET_Y;
            Za = CP[2]+OFFSET_Z;
        }
        case MOVE_BACK:
        {
            Xa = CP[0]-OFFSET_X;
            Ya = CP[1]-OFFSET_Y;
            Za = CP[2]-OFFSET_Z;
        }
        case MOVE_LEFT:
        {
            Xa = CP[0]-OFFSET_Y;
            Ya = CP[1]+OFFSET_X;
            Za = CP[2];
        }
        case MOVE_RIGHT:
        {
            Xa = CP[0]+OFFSET_Y;
            Ya = CP[1]-OFFSET_X;
            Za = CP[2];
        }
        case MOVE_BACK_LEFT:
        {
            Xa = CP[0]+(-OFFSET_X - OFFSET_Y);
            Ya = CP[1]+(-OFFSET_Y + OFFSET_X);
            Za = CP[2]-OFFSET_Z;
        }
        case MOVE_BACK_RIGHT:
        {
            Xa = CP[0]+(-OFFSET_X + OFFSET_Y);
            Ya = CP[1]+(-OFFSET_Y - OFFSET_X);
            Za = CP[2]-OFFSET_Z;
        }
        case MOVE_FORWARD_LEFT:
        {
            Xa = CP[0]+(OFFSET_X  - OFFSET_Y);
            Ya = CP[1]+(OFFSET_Y  + OFFSET_X);
            Za = CP[2]+OFFSET_Z;
        }
        case MOVE_FORWARD_RIGHT:
        {
            Xa = CP[0]+(OFFSET_X  + OFFSET_Y);
            Ya = CP[1]+(OFFSET_Y  - OFFSET_X);
            Za = CP[2]+OFFSET_Z;
        }
    }
}
stock CancelFlyMode( playerid ) {
    FlyMode[ playerid ] = false;
    CancelEdit( playerid );
    TogglePlayerSpectating( playerid, false);
    DestroyPlayerObject( playerid, flymodecamera[ playerid ][ flyobject ] );
    flymodecamera[ playerid ][ cameramode ] = false;
    return 1;
}

forward FlyMode1( playerid );
public FlyMode1( playerid ) {
    FlyModeAh( playerid );
}

stock FlyModeAh( playerid ) {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos( playerid, X, Y, Z );
    TogglePlayerSpectating( playerid, true );

    flymodecamera[ playerid ][ flyobject ] = CreatePlayerObject( playerid, 19300, X, Y, Z, 0.0, 0.0, 0.0 );
    AttachCameraToPlayerObject( playerid, flymodecamera[ playerid ][ flyobject ] );
    FlyMode[ playerid ] = true;
    flymodecamera[ playerid ][ cameramode ] = true;
    return 1;
}[/pawn]//za flymode
[pawn]    if( flymodecamera[ playerid ][ cameramode ] == true ) {
        new keys,ud,lr;
        GetPlayerKeys(playerid,keys,ud,lr);

        if(flymodecamera[ playerid ][mode] && (GetTickCount() - flymodecamera[ playerid ][ lastmove ] > 100))
        {
            MoveCamera(playerid);
        }
        if(flymodecamera[ playerid ][udold] != ud || flymodecamera[ playerid ][lrold] != lr)
        {
            if((flymodecamera[ playerid ][udold] != 0 || flymodecamera[ playerid ][lrold] != 0) && ud == 0 && lr == 0){
                StopPlayerObject(playerid, flymodecamera[ playerid ][flyobject] );
                flymodecamera[ playerid ][mode]      = 0;
                flymodecamera[ playerid ][accelmul]  = 0.0;
            }
            else
            {
                flymodecamera[ playerid ][mode] = GetMoveDirectionFromKeys(ud, lr);
                MoveCamera(playerid);
            }
        }
        flymodecamera[ playerid ][udold] = ud; flymodecamera[ playerid ][lrold] = lr;
        return 0;
    }
    return true;
}[/pawn]
sve sto je bilo nazvano pod flymode ili flymodecamera je ovde
cak sam i to prebacio iz drugog moda u kome radi perfektno ali kod mene ne radi bas najbolje
Naslov: Odg: AutoSalon kamera
Poruka od: Belii poslato Mart 29, 2023, 21:32:38 POSLE PODNE
bump
Naslov: Odg: AutoSalon kamera
Poruka od: njoBe_ poslato Mart 29, 2023, 22:40:46 POSLE PODNE
koliko vidim to je neki vid camera moda ili slicno, da li ti dobijes mogucnost da pomjeras kameru kada ukucas  ascamera jer tu se samo vidi kako uzimas pozicije kamere i vektora kamere nikakva druga radnja
Naslov: Odg: AutoSalon kamera
Poruka od: Belii poslato Mart 30, 2023, 14:22:20 POSLE PODNE
Citat: njoBe_ poslato Mart 29, 2023, 22:40:46 POSLE PODNE
koliko vidim to je neki vid camera moda ili slicno, da li ti dobijes mogucnost da pomjeras kameru kada ukucas  ascamera jer tu se samo vidi kako uzimas pozicije kamere i vektora kamere nikakva druga radnja
ne dobijam uopste mogucnost da se krecem ali kad napustim interior autosalona mogu da se krecem inace mapa auto salona nema standardan ulaz u interior vec mogu samo da udjem jednostavno u autosalon

ne znam bas najbolje da objasnim
Naslov: Odg: AutoSalon kamera
Poruka od: njoBe_ poslato Mart 30, 2023, 19:10:47 POSLE PODNE
Prvo nauci da  objasnis pa onda skriptaj.. Problem sam po sebi kompleksan jer ni sam ne znam sta se desi.. Ti kazes nesto ti kameru mrda pa spominjes enterijer pa odjednom promijeni polozaj kamere tamo negdje, onda  brdo nekog koda koji vjerovatno nema veze sa autosalonom itd. To ti 5 ljudi ne skontalo ste je pisac htio da kaze
Naslov: Odg: AutoSalon kamera
Poruka od: Belii poslato Mart 30, 2023, 20:06:55 POSLE PODNE
Citat: njoBe_ poslato Mart 30, 2023, 19:10:47 POSLE PODNE
Prvo nauci da  objasnis pa onda skriptaj.. Problem sam po sebi kompleksan jer ni sam ne znam sta se desi.. Ti kazes nesto ti kameru mrda pa spominjes enterijer pa odjednom promijeni polozaj kamere tamo negdje, onda  brdo nekog koda koji vjerovatno nema veze sa autosalonom itd. To ti 5 ljudi ne skontalo ste je pisac htio da kaze
radi sistem ali zavisi na kom mestu a sto je to tako ne znam
Naslov: Odg: AutoSalon kamera
Poruka od: Fr0z3n poslato April 09, 2023, 23:40:50 POSLE PODNE
Neaktivno, lock!