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!
lepo ;)
Cool
(https://image.spreadshirtmedia.net/image-server/v1/products/T1459A839PA4459PT28D188778079W6350H6350/views/1,width=800,height=800,appearanceId=839,backgroundColor=F2F2F2/cool-sticker.jpg)
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
@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.
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.
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.
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. 🚀
Citat: Dragi poslato Februar 26, 2025, 20:02:31 POSLE PODNE🚀 Vec ulazimo u raketnu nauku. 🚀
Nauka
Ovaj Tajmer mi isto nema smisla ako vec radis "SIMPLE".
Ako si vec koristio tajmer iskoristi ga sa nekom idejom.
Naprimer evo ti jedan kao zoves Valet i valet ti donosi vozilo. itd itd....
Citat: roman42O poslato Februar 26, 2025, 22:53:57 POSLE PODNENauka
Ovaj Tajmer mi isto nema smisla ako vec radis "SIMPLE".
Ako si vec koristio tajmer iskoristi ga sa nekom idejom.
Naprimer evo ti jedan kao zoves Valet i valet ti donosi vozilo. itd itd....
Slazem se, gospodine, Romane. Rekoh, hajde da ja ne kudim sve, pomislice ljudi da sam picajzla. Sve je tako...
Ako vec tako gledamo onda moze ovo i bez zcmd i sscanf i boja, ako vec hocete simple simple ono do koske.
Simple jeste, ovaj sistem moze biti komplikovan mnogo tako da ovo i jeste simple cak i originalno napisano kako jeste.