Dynamic Map Icon System | by Vasic

FunnyGamingDay - FGD Započeo Vasic
pre 6 godina
4,606
pregleda
28
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
FunnyGamingDay - FGD
OG Legend
pre 6 godina
mumitza. wrote on July 10, 2019, 11:27 am:
nek me jebe cijeli bsamp ako sam shvatio šta si htio reći

Mislio je kao ono u singleplayeru ikonice za misije, a ovo za vozilo je mislio dok je ono u pokretu da se pomera i ikonica gde i vozilo

Former SA:MP server developer

Shomy Script
Godfather
pre 6 godina
mumitza. wrote on July 10, 2019, 11:27 am:
nek me jebe cijeli bsamp ako sam shvatio šta si htio reći
Ja cu prvi da te bem
Mister Naithan
Kingpin
pre 6 godina
Tema nije postavljena po formularu.
LOCK

Ma zajebavam te  😄 😄 😄 😄

10 od 10  😎 @Vasic
ivan221
Made Man
pre 6 godina
/
FunnyGamingDay - FGD
OG Legend
pre 6 godina
imnaithan wrote on July 10, 2019, 2:16 pm:
Tema nije postavljena po formularu.
LOCK

Ma zajebavam te  😄 😄 😄 😄

10 od 10  😎 @Vasic

<3 <3 <3

Former SA:MP server developer

RahimPAWNO
OG Legend
pre 6 godina
Solidno, samo guraj, nema većih grešaka.
stock GetNearestMapIcon( playerid ) {
    for( new b = 1; b < sizeof( MI ); b++) {
        if( IsPlayerInRangeOfPoint( playerid, 300.0, MI[ b ][ miX ], MI[ b ][ miY ] , MI[ b ][ miZ ]  ) ) return b; }
    return -1;
}

Ovdje će ti uvijek returnati ranije generiran mapicon ukoliko imaš više kreiranih icona u radijusu od 300.0, trebao si eventualno dodati privremenu varijablu za udaljenost izmedju igraca i najblizeg mapicona, pa ostaviti loop do kraja da uporedi da li je generiran neki mapicon sa kraćom udaljenošću.

Kod će ti prepoznati npr. ovog od 250.0 kao najbližeg, a ne ovog 60.0
    GetPlayerPos( playerid, x, y, z );
    MI[ mid ][ miX ] = x;
    MI[ mid ][ miY ] = y;
    MI[ mid ][ miZ ] = z;

bez x, y, z:
 GetPlayerPos( playerid, MI[ mid ][ miX ], MI[ mid ][ miY ], MI[ mid ][ miZ ] );


Ostalo je sasvim ok, nauči sql, lagan je
FunnyGamingDay - FGD
OG Legend
pre 6 godina
psychosomatic wrote on July 10, 2019, 9:10 pm:
Solidno, samo guraj, nema većih grešaka.
stock GetNearestMapIcon( playerid ) {
    for( new b = 1; b < sizeof( MI ); b++) {
        if( IsPlayerInRangeOfPoint( playerid, 300.0, MI[ b ][ miX ], MI[ b ][ miY ] , MI[ b ][ miZ ]  ) ) return b; }
    return -1;
}

Ovdje će ti uvijek returnati ranije generiran mapicon ukoliko imaš više kreiranih icona u radijusu od 300.0, trebao si eventualno dodati privremenu varijablu za udaljenost izmedju igraca i najblizeg mapicona, pa ostaviti loop do kraja da uporedi da li je generiran neki mapicon sa kraćom udaljenošću.

Kod će ti prepoznati npr. ovog od 250.0 kao najbližeg, a ne ovog 60.0
    GetPlayerPos( playerid, x, y, z );
    MI[ mid ][ miX ] = x;
    MI[ mid ][ miY ] = y;
    MI[ mid ][ miZ ] = z;

bez x, y, z:
 GetPlayerPos( playerid, MI[ mid ][ miX ], MI[ mid ][ miY ], MI[ mid ][ miZ ] );


Ostalo je sasvim ok, nauči sql, lagan je

Za ovo
stock GetNearestMapIcon( playerid ) {
    for( new b = 1; b < sizeof( MI ); b++) {
        if( IsPlayerInRangeOfPoint( playerid, 300.0, MI[ b ][ miX ], MI[ b ][ miY ] , MI[ b ][ miZ ]  ) ) return b; }
    return -1;
}

sam vec rekao u nekim od komentara u ovoj temi (omaklo mi se pa stavio misleci da cu uraditi na drugi nacin).
A ovo za visible distance sto si rekao, upravu si. Zapravo, razmisljao sam na pocetku da li da stavim da igrac postavlja distance ili ja u skripti automatski. Hvala ti svakako, sql ucim ali radim jos uvek na iniju.

Former SA:MP server developer

Danisoni
Godfather
pre 6 godina
Upravu je Bashovski, na to se treba obratiti pažnja. 300 bi ti označavalo jednostavno radius izvan kojeg ne želiš uopšte uzeti u obzir brisanje ili koju akciju povlačiš sa funkcijom.
GetNearestMapIcon( playerid ) {
new Float:p_Pos[ 3 ], Float:maxradius = 300.0, id = -1;
GetPlayerPos(playerid, p_Pos[ 0 ], p_Pos[ 1 ], p_Pos[ 2 ] );
    for( new b = 1; b < sizeof( MI ); b++) {
        if( VectorSize( p_Pos[ 0 ]-MI[ b ][ miX ], p_Pos[ 1 ]-MI[ b ][ miY ], p_Pos[ 2 ]-MI[ b ][ miZ ] ) >= maxradius ) continue;
        id = b;
        maxradius = VectorSize( p_Pos[ 0 ]-MI[ b ][ miX ], p_Pos[ 1 ]-MI[ b ][ miY ], p_Pos[ 2 ]-MI[ b ][ miZ ] );
    }
    return id;
}


Probaj, iako nisam u nekoj formi, mislim da bi taj kod funkcionirao odlično za tu funkciju.

Btw. Lijepo odrađeno.
FunnyGamingDay - FGD
OG Legend
pre 6 godina
Slade wrote on July 10, 2019, 9:33 pm:
Upravu je Bashovski, na to se treba obratiti pažnja. 300 bi ti označavalo jednostavno radius izvan kojeg ne želiš uopšte uzeti u obzir brisanje ili koju akciju povlačiš sa funkcijom.
GetNearestMapIcon( playerid ) {
new Float:p_Pos[ 3 ], Float:maxradius = 300.0, id = -1;
GetPlayerPos(playerid, p_Pos[ 0 ], p_Pos[ 1 ], p_Pos[ 2 ] );
    for( new b = 1; b < sizeof( MI ); b++) {
        if( VectorSize( p_Pos[ 0 ]-MI[ b ][ miX ], p_Pos[ 1 ]-MI[ b ][ miY ], p_Pos[ 2 ]-MI[ b ][ miZ ] ) >= maxradius ) continue;
        id = b;
        maxradius = VectorSize( p_Pos[ 0 ]-MI[ b ][ miX ], p_Pos[ 1 ]-MI[ b ][ miY ], p_Pos[ 2 ]-MI[ b ][ miZ ] );
    }
    return id;
}


Probaj, iako nisam u nekoj formi, mislim da bi taj kod funkcionirao odlično za tu funkciju.

Btw. Lijepo odrađeno.

Videcu bolje da uradim u drugoj verziji, naravno, ako bude bilo nje. Hvala u svakom slucaju.

Former SA:MP server developer

Djenan Bosti
Wheel Man
pre 6 godina
Odlicno
FunnyGamingDay - FGD
OG Legend
pre 6 godina
jettY wrote on July 11, 2019, 1:47 am:
Odlicno

Hvala <3

Former SA:MP server developer

Scripter Vladimir
Underboss
pre 6 godina
Super odradjeno, gj
FunnyGamingDay - FGD
OG Legend
pre 6 godina
Quote from July 13, 2019, 11:33 am:
Super odradjeno, gj

Hvala

Former SA:MP server developer

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava