[PAWN] - Teleportacija vozila

Joldx Započeo Joldx
pre 11 meseci
2,225
pregleda
18
postova
Joldx
Street Runner
pre 11 meseci
Jednostavna SA-MP komanda za teleportovanje vozila do sebe!

Potrebni include:
#include 
#include
#include


Potrebne boje:
#define COLOR_RED  0xAA3333AA


Komanda za teleportaciju:
CMD:tpveh(playerid, params[]) {
    if(!IsPlayerAdmin(playerid)) // Provjera da li je RCON admin
        return SendClientMessage(playerid, COLOR_RED, "Nemate dozvolu za ovu komandu!");

    new vehicleid;
    if(sscanf(params, "d", vehicleid))
        return SendClientMessage(playerid, COLOR_RED, "KORISTI: /tpveh [ID vozila]");

    if(vehicleid < 1 || vehicleid > 1999 || GetVehicleModel(vehicleid) == 0) // Provjera da li vozilo postoji
        return SendClientMessage(playerid, COLOR_RED, "To vozilo ne postoji!");

    // Ako je sve ispravno, prikaži poruku i pokreni teleportaciju
    GameTextForPlayer(playerid, "~b~~h~Vozilo stiže...", 3000, 3);

    SetTimerEx("TeleportVehicle", 3000, false, "ii", vehicleid, playerid);
    return 1;
}


Potrebne fukcije
forward TeleportVehicle(vehicleid, playerid);
public TeleportVehicle(vehicleid, playerid) {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetVehiclePos(vehicleid, x + 2.0, y, z);
    return 1;
}


Nadam se da vam se komanda sviđa i da će vam biti korisna. Dodano je da samo RCON administratori mogu koristiti teleportaciju. Slobodno ga dodajte u svoju skriptu i testirajte, već je provjeren u radu. Ja sam ovo samo napravio i testirao, nisam nešto specijalno uređivao. Sretno kod korištenja!
Mladjo558
Shot Caller
pre 11 meseci
lepo  😉
ivanboskic1
Underboss
pre 11 meseci
Cool

Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager

Gagule
Made Man
pre 11 meseci


Ja kako bih uradio, na tako jednostavnu CMD ne bih komplikovao i dodavao timere i dodatnu funkciju s dve naredbe... Sve bih ja to spakovao u jednu CMD. Opet, svkao radi kako zna i ume. Na kraju, bitno da radi, jelte.  😎
Gagule
Made Man
pre 11 meseci
Jos jedna ispravka, jeste ta da ako se pravi tutorial, potrebno je objasniti svaku liniju koda.
Gde koristis COLOR_BLUE?

Tvoj tutorial bi ovako trebalo da izgleda:

CMD:tpveh(playerid, params[]) { // Definicija komande tpveh
    if(!IsPlayerAdmin(playerid)) // Provjera da li je RCON admin
        return SendClientMessage(playerid, COLOR_RED, "Nemate dozvolu za ovu komandu!");

    new vehicleid; // Deklaracija varijable za ID vozila
    if(sscanf(params, "d", vehicleid)) // Provera da li su parametri ispravno uneseni
        return SendClientMessage(playerid, COLOR_RED, "KORISTI: /tpveh [ID vozila]");

    if(vehicleid < 1 || vehicleid > 1999 || GetVehicleModel(vehicleid) == 0) // Provera da li vozilo postoji
        return SendClientMessage(playerid, COLOR_RED, "To vozilo ne postoji!");

    // Ako je sve ispravno, prikazi poruku i pokreni teleportaciju
    GameTextForPlayer(playerid, "~b~~h~Vozilo stiže...", 3000, 3);

    SetTimerEx("TeleportVehicle", 3000, false, "ii", vehicleid, playerid); // Postavljanje tajmera za teleportaciju
    return 1; // Izadji ovde
}

forward TeleportVehicle(vehicleid, playerid); // Deklaracija funkcije za teleportaciju vozila
public TeleportVehicle(vehicleid, playerid) {
    new Float:x, Float:y, Float:z; // Deklaracija varijabli za poziciju igraca
    GetPlayerPos(playerid, x, y, z); // Dobijanje trenutne pozicije igraca
    SetVehiclePos(vehicleid, x + 2.0, y, z); // Postavljanje pozicije vozila blizu igraca
    return 1; // Izadji ovde
}


Evo i od mene free tut samo kontra:

CMD:gotoveh(playerid, params[]) // Definicija komande gotoveh by Dragi (Dragan Avdic)
{
if(!IsPlayerAdmin(playerid)) // Provera da li je igrac admin
            return SendClientMessage(playerid, COLOR_RED, "Nemate dozvolu za ovu komandu!"); // Slanje poruke o nedostatku dozvole

new carid; // Deklaracija varijable za ID vozila
if(sscanf(params, "d", carid)) // Provera da li su parametri ispravno uneseni
            return SendClientMessage(playerid, COLOR_RED, "KORISTI: /gotoveh [ID vozila]"); // Slanje poruke o pravilnoj upotrebi komande

new Float:x,Float:y,Float:z; // Deklaracija varijabli za koordinate vozila
GetVehiclePos(carid, x, y, z); // Dobijanje pozicije vozila na osnovu ID-a

if (GetPlayerState(playerid) == 2) { // Provera da li je igrac u vozilu
    new tmpcar = GetPlayerVehicleID(playerid); // Dobijanje ID-a vozila u kojem se igrac nalazi
    SetVehiclePos(tmpcar, x, y, z); // Postavljanje pozicije vozila na nove koordinate
}
else SetPlayerPos(playerid, x, y, z); // Ako igrac nije u vozilu, postavi njegovu poziciju

SendClientMessage(playerid, COLOR_BLUE, "Teleportovani ste!"); // Slanje poruke o teleportaciji

return 1; // Izadji ovdeNa
}
neshallon
Kingpin
pre 11 meseci
Kao sto je rekao @Dragi sve ovo moze i bez boja, bez funkcije, timera...

Lepo
Gagule
Made Man
pre 11 meseci
@markosimic Pa da, samo da ne pomisli da ga mrzimo. 😁 Pokusavam samo dati neke konstruktivne replike. Lepo je sto je podelio i potrudio se da napise tutorial kako je znao vec.
Joldx
Street Runner
pre 11 meseci
Dragi wrote on February 26, 2025, 11:28 am:
Jos jedna ispravka, jeste ta da ako se pravi tutorial, potrebno je objasniti svaku liniju koda.
Gde koristis COLOR_BLUE?

Tvoj tutorial bi ovako trebalo da izgleda:

CMD:tpveh(playerid, params[]) { // Definicija komande tpveh
    if(!IsPlayerAdmin(playerid)) // Provjera da li je RCON admin
        return SendClientMessage(playerid, COLOR_RED, "Nemate dozvolu za ovu komandu!");

    new vehicleid; // Deklaracija varijable za ID vozila
    if(sscanf(params, "d", vehicleid)) // Provera da li su parametri ispravno uneseni
        return SendClientMessage(playerid, COLOR_RED, "KORISTI: /tpveh [ID vozila]");

    if(vehicleid < 1 || vehicleid > 1999 || GetVehicleModel(vehicleid) == 0) // Provera da li vozilo postoji
        return SendClientMessage(playerid, COLOR_RED, "To vozilo ne postoji!");

    // Ako je sve ispravno, prikazi poruku i pokreni teleportaciju
    GameTextForPlayer(playerid, "~b~~h~Vozilo stiže...", 3000, 3);

    SetTimerEx("TeleportVehicle", 3000, false, "ii", vehicleid, playerid); // Postavljanje tajmera za teleportaciju
    return 1; // Izadji ovde
}

forward TeleportVehicle(vehicleid, playerid); // Deklaracija funkcije za teleportaciju vozila
public TeleportVehicle(vehicleid, playerid) {
    new Float:x, Float:y, Float:z; // Deklaracija varijabli za poziciju igraca
    GetPlayerPos(playerid, x, y, z); // Dobijanje trenutne pozicije igraca
    SetVehiclePos(vehicleid, x + 2.0, y, z); // Postavljanje pozicije vozila blizu igraca
    return 1; // Izadji ovde
}


Evo i od mene free tut samo kontra:

CMD:gotoveh(playerid, params[]) // Definicija komande gotoveh by Dragi (Dragan Avdic)
{
    if(!IsPlayerAdmin(playerid)) // Provera da li je igrac admin
            return SendClientMessage(playerid, COLOR_RED, "Nemate dozvolu za ovu komandu!"); // Slanje poruke o nedostatku dozvole

    new carid; // Deklaracija varijable za ID vozila
    if(sscanf(params, "d", carid)) // Provera da li su parametri ispravno uneseni
            return SendClientMessage(playerid, COLOR_RED, "KORISTI: /gotoveh [ID vozila]"); // Slanje poruke o pravilnoj upotrebi komande

    new Float:x,Float:y,Float:z; // Deklaracija varijabli za koordinate vozila
    GetVehiclePos(carid, x, y, z); // Dobijanje pozicije vozila na osnovu ID-a

    if (GetPlayerState(playerid) == 2) { // Provera da li je igrac u vozilu
        new tmpcar = GetPlayerVehicleID(playerid); // Dobijanje ID-a vozila u kojem se igrac nalazi
        SetVehiclePos(tmpcar, x, y, z); // Postavljanje pozicije vozila na nove koordinate
    }
    else SetPlayerPos(playerid, x, y, z); // Ako igrac nije u vozilu, postavi njegovu poziciju

    SendClientMessage(playerid, COLOR_BLUE, "Teleportovani ste!"); // Slanje poruke o teleportaciji

    return 1; // Izadji ovdeNa
}

Hvala na ispravci! Za objašnjavanje svake linije nisam znao da treba, jer sam prvi put postavio i više sam gledao da li sve valja i to. Ali ubuduće ću sve detaljno objašnjavati.
Joldx
Street Runner
pre 11 meseci
markosimic wrote on February 26, 2025, 12:02 pm:
Kao sto je rekao @Dragi sve ovo moze i bez boja, bez funkcije, timera...

Lepo

Znaš kako, timer sam dodao čisto da prođe malo vremena prije nego što vozilo stigne, jer sam stavio tekst 'Vozilo stiže...', pa mi je imalo smisla da ne dođe odmah. Možda je tako ljepše – sad kako kome.
neshallon
Kingpin
pre 11 meseci
Joldx wrote on February 26, 2025, 2:05 pm:
Znaš kako, timer sam dodao čisto da prođe malo vremena prije nego što vozilo stigne, jer sam stavio tekst 'Vozilo stiže...', pa mi je imalo smisla da ne dođe odmah. Možda je tako ljepše – sad kako kome.


Nisam rekao nista. Dobro je sve. Kazem samo da je moglo biti jednostavnije, cak i bez funkcije sa timerom se to moglo uraditi. Funkcija nema poente osim ako nece raditi automatizaciju necega u buducnosti, ako me razumes.
Joldx
Street Runner
pre 11 meseci
markosimic wrote on February 26, 2025, 3:31 pm:
Nisam rekao nista. Dobro je sve. Kazem samo da je moglo biti jednostavnije, cak i bez funkcije sa timerom se to moglo uraditi. Funkcija nema poente osim ako nece raditi automatizaciju necega u buducnosti, ako me razumes.

Razumijem te.
Gagule
Made Man
pre 11 meseci
Joldx wrote on February 26, 2025, 2:00 pm:
Hvala na ispravci! Za objašnjavanje svake linije nisam znao da treba, jer sam prvi put postavio i više sam gledao da li sve valja i to. Ali ubuduće ću sve detaljno objašnjavati. Plavu boju sam dodao samo kod GameTextForPlayer [~b~]. Hvala još jednom na pomoći! 😄


Nisam te pitao za specijalni tag GameText color (~b~) nego za #define COLOR_BLUE 0x0000BBAA.

Nadam se da razumes razliku izmedju specijalnog taga i #define funkcije.

markosimic wrote on February 26, 2025, 3:31 pm:
Nisam rekao nista. Dobro je sve. Kazem samo da je moglo biti jednostavnije, cak i bez funkcije sa timerom se to moglo uraditi. Funkcija nema poente osim ako nece raditi automatizaciju necega u buducnosti, ako me razumes.


Tako je. Hajde to sve na stranu, mene najvise plasi ovo iznad sto napisah. 
😮
Joldx
Street Runner
pre 11 meseci
Dragi wrote on February 26, 2025, 4:19 pm:
Nisam te pitao za specijalni tag GameText color (~b~) nego za #define COLOR_BLUE 0x0000BBAA.

Nadam se da razumes razliku izmedju specijalnog taga i #define funkcije.

Tako je. Hajde to sve na stranu, mene najvise plasi ovo iznad sto napisah.
😮

Evo, uklonio sam. Sretan sad? I dalje nešto? Ako imaš još primjedbi, slobodno reci.
RomaNn
Made Man
pre 11 meseci
Gde ti je provera da li je opste kreirano vozilo na serveru? Ja portam id 1345 i ne porta mi nista. Dodaj tu proveru isto.
Gagule
Made Man
pre 11 meseci
roman42O wrote on February 26, 2025, 6:58 pm:
Gde ti je provera da li je opste kreirano vozilo na serveru? Ja portam id 1345 i ne porta mi nista. Dodaj tu proveru isto.


🚀 Vec ulazimo u raketnu nauku. 🚀

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava