[PAWN] - Teleportacija vozila


Započeo Joldx, Februar 26, 2025, 00:06:03 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Jednostavna SA-MP komanda za teleportovanje vozila do sebe! [ADMIN]

Potrebni include:
#include <a_samp>
#include <sscanf2>
#include <zcmd>

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!
Poslednja Izmena: Februar 26, 2025, 18:05:17 POSLE PODNE od Joldx





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.  8)

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
}

Kao sto je rekao @Dragi sve ovo moze i bez boja, bez funkcije, timera...

Lepo
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.

@markosimic Pa da, samo da ne pomisli da ga mrzimo. ;D Pokusavam samo dati neke konstruktivne replike. Lepo je sto je podelio i potrudio se da napise tutorial kako je znao vec.

Citat: Dragi poslato Februar 26, 2025, 12:28:54 POSLE PODNEJos 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.
Poslednja Izmena: Februar 26, 2025, 18:05:41 POSLE PODNE od Joldx

Citat: markosimic poslato Februar 26, 2025, 13:02:19 POSLE PODNEKao 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.

Citat: Joldx poslato Februar 26, 2025, 15:05:02 POSLE PODNEZnaš 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.
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.

Citat: markosimic poslato Februar 26, 2025, 16:31:32 POSLE PODNENisam 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.

Citat: Joldx poslato Februar 26, 2025, 15:00:46 POSLE PODNEHvala 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.

Citat: markosimic poslato Februar 26, 2025, 16:31:32 POSLE PODNENisam 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. 
:o

Citat: Dragi poslato Februar 26, 2025, 17:19:41 POSLE PODNENisam 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.
:o
Evo, uklonio sam. Sretan sad? I dalje nešto? Ako imaš još primjedbi, slobodno reci.

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.
skazy42O

Reborn - Developer & Owner
- www.reborn-ogc.com

Citat: roman42O poslato Februar 26, 2025, 19:58:24 POSLE PODNEGde 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. 🚀