Jednostavan sistem MINI PD radara by tayloR

Započeo _tayloR, Jun 25, 2021, 03:35:06 PRE PODNE

prethodna tema - sledeća tema

0 članova i 6 gostiju pregledaju ovu temu.

Aj ipak cu da prodjem kroz sve ovo, necu gledati sta su ostali pisali, neka spoji moderator poruke :)

#define IPI    INVALID_PLAYER_ID
#define                     IVI                               INVALID_VEHICLE_ID
#define                     SCM                                SendClientMessage
#define C3D CreateDynamic3DTextLabel

Koliko znam, Y_Less je nesto skoro u YSIu dodao #if defined SCM da baci error koliko ga je ovo iznerviralo :)

[pawn]enum PDRadari {

   Float:pdradarPos[3], // pozicije x,y,z
   pdradarPostavljen, // provjera jel postavljen
   pdradarKazna // iznos kazne
};[/pawn]

>>

[pawn]enum PDRadari {

    N I S T A
};[/pawn]

Kako sad nista?
Pa vidi, sa obzirom da kreiras jako simple stvar koja ukljucuje iznos kazne, pozicije i da li je radar postavljen - samo mozes da kreiras dinamicnu areu i da vise nikada ne proveravas bilo sta.
Na primer ako hoces da uzmes iznos kazne, samo SELECTujes query
[pawn]Streamer_SetIntData(STREAMER_TYPE_AREA, radar_area, E_STREAMER_EXTRA_ID, free_id_radara);
SELECT `fine_amount` FROM `radari`  WHERE `radar_id` = '%d' // STREAMER EXTRA ID te Aree je sql ID[/pawn]
Ako mislis pak da ce biti "mnogo querya" (iako je ovaj query toliko simple da su bukvalno nanosekunde u pitanju), mozes da koristis E_STREAMER_CUSTOM(1) za iznos kazne (sto je mozda cak i bolje od SELECTovanja svaki put, zavisi koliko ti je baza podataka dobra i udaljena od servera, ako su na istom onda te boli kita)

[pawn]new PDR[MAX_PDRADARA][PDRadari],
   Text3D:PDRadar[MAX_PDRADARA], // Label
   radar_Objekat[MAX_PDRADARA], // Main objekat
   radar_Noga1[MAX_PDRADARA], // noga jedna
   radar_Noga2[MAX_PDRADARA], // noga druga
   radar_Kamera[MAX_PDRADARA]; // kamera[/pawn]

>>

[pawn]N I S T A[/pawn]
[pawn]E_STREAMER_CUSTOM(1),
E_STREAMER_CUSTOM(2),
E_STREAMER_CUSTOM(3)
...[/pawn]

[pawn]new PostavioPDRadar[MAX_PLAYERS] = -1,
   bool:Kaznjen[MAX_PLAYERS]; // ovo ce nam trebati kod detektovanja[/pawn]

>>

[pawn]new PostavioPDRadar[MAX_PLAYERS] = -1,
   bool:Kaznjen[MAX_PLAYERS]; // OVO N E  T R E B A (E_STREAMER_CUSTOM(n) , STREAMER HAS INT DATA)[/pawn]
Tu mozes bitarray (y_bit) ako vec neces CUSTOM iako ce da sacuva mnogo memorije

[pawn]if(GetSpeed(playerid) > 69) { // Stavicemo 69 jer msm da smije malo preko ogranicanja[/pawn]
Glupo je hardcodeovati ove stvari ako si vec napravio da je i kazna podesiva, E_STREAMER_CUSTOM(o^n) i onda tu postavis maks brzinu za taj radar

[pawn]for(new r; r < MAX_RADAR; r++) {[/pawn]
Da ponovim, area.

[pawn]IsValidObject(radar_Objekat[r]) DestroyObject(radar_Objekat[r]); // brise objekte
   IsValidObject(radar_Kamera[r]) DestroyObject(radar_Kamera[r]);
   IsValidObject(radar_Noga1[r]) DestroyObject(radar_Noga1[r]);
   IsValidObject(radar_Noga2[r]) DestroyObject(radar_Noga2[r]);[/pawn]
Bespotrebno, sam DestroyObject u sebi ima IsValidObject tako da ... :)

A ovaj disconnect callback ne da nema smisla...ali dobro :)
Poslednja Izmena: Jun 25, 2021, 13:15:18 POSLE PODNE od Sage

Citat: Sage poslato Jun 25, 2021, 12:56:02 POSLE PODNE
Mrzi me iskreno umro sam sinoc, ali ovo

Ovde ne da ne treba da se koristi sscanf nego...
sscanf je bukvalno isto sto i split tako da nema potrebe za njim
Ja mislim da svaki put moram da ti crtam, a ti samo pokusavas da nadjes nesto na sta mozes da se nadovezes na moj komentar.
Fino sam napisao  'Ne stavljaj ovakve razmake veoma lose izgleda' sto znaci da sam mu samo rekao za sintaksu, nisam rekao koristi sscanf ili nemoj da koristis. Takodjer mislim da bi za njega, a i vecinu drugih ljudi koji nemaju bas veliko znanje o pawn jeziku, bilo pretesko da string pretvore u broj.




Dok je sa sscanfom prelagano.

Citat: __vedran.xyz77 poslato Jun 25, 2021, 13:13:41 POSLE PODNE
Ja mislim da svaki put moram da ti crtam, a ti samo pokusavas da nadjes nesto na sta mozes da se nadovezes na moj komentar.
Fino sam napisao  'Ne stavljaj ovakve razmake veoma lose izgleda' sto znaci da sam mu samo rekao za sintaksu, nisam rekao koristi sscanf ili nemoj da koristis. Takodjer mislim da bi za njega, a i vecinu drugih ljudi koji nemaju bas veliko znanje o pawn jeziku, bilo pretesko da string pretvore u broj.




Dok je sa sscanfom prelagano.
Druze ja nista tebi nisam rekao? Iskreno nisam ni gledao na ciji sam post odgovarao posto mi je browser minimizovan toliko da me boli kita da skrolujem da gledam cija je profilna lol.

I jesi ti dobro? Sa sscanfom je lakse? To sto je sscanf jedina stvar koju ste drkali 4 godine a osnovni (cist) PAWN o kom toliko meni pricate da ne znam (jer, jel, makenzi nista ne zna zato sto koristi samo vec zavrsene stvari (librarije)) ne znate, evo razlike:

[pawn]new kazna;
if( sscanf( params, "i", kazna ) ) return SCM( playerid, -1, "/postaviradar (kazna)" ); // kad upise nesto drugo sem ovog[/pawn]

[pawn]if(!IsNumeric(params)) return SCM( playerid, -1, "/postaviradar (kazna)" ); // kad upise nesto drugo sem ovog
const kazna = params[0];[/pawn]

Znaci nema potrebe da pozivas nesto iz plugina ako vec imas cistu PAWN funkciju koja je namenjena za to

EDIT: Zaboravih da IsNumeric nije default, svakako mnogo jednostavniji loop od onog unutar sscanfa
Poslednja Izmena: Jun 25, 2021, 13:25:14 POSLE PODNE od Sage

Ne nije mnogo jednostavnije, takodjer moras new const, ne mozes samo const.


Mislis da ce pocetniku biti lakse alo loopuje kroz string i gleda elemente ili da iskoristi sscanf u jednoj liniji ?

Citat: __vedran.xyz77 poslato Jun 25, 2021, 13:28:28 POSLE PODNE
Ne nije mnogo jednostavnije, takodjer moras new const, ne mozes samo const.


Mislis da ce pocetniku biti lakse alo loopuje kroz string i gleda elemente ili da iskoristi sscanf u jednoj liniji ?
Au.
Jesi ti svestan da on vec 99.98% ima IsNumeric u modu i da ne mora apsolutno nista da radi kao sto nista i ne radi sa sscanfom? (jer je IsNumeric na vrhu Useful functionsa stare wiki)

Svejedno to je samo provjera da li je broj numeric ili ne, nigdje nisi objasnio sam proces konvertovanja stringa u broj


Ako mislis da ce ovo da ti radi sve si mi rekao o svom znanju.
[pawn]
new const kazna = params[0];[/pawn]


ALI EVO JA SAM TU ZA TEBEEEE, vjerovatno si na nekom opasnom OS-u (predpostavljam custom build linux koji si licno pisao) i ne mozes da testas neke stvari, napravio sam simple komandu evo je:

[pawn]
CMD:test(playerid, params[]) {
   new const kazna = params[0];
   printf("%d", kazna);
   printf("Ukucao, %s", params);
   return 1;
}
[/pawn]

i evo i outputa naravno


49
Ukucao, 111
Nadam se da si shvatio prijatelju
Poslednja Izmena: Jun 25, 2021, 13:41:28 POSLE PODNE od __vedran.xyz77

Citat: __vedran.xyz77 poslato Jun 25, 2021, 13:36:29 POSLE PODNE
Svejedno to je samo provjera da li je broj numeric ili ne, nigdje nisi objasnio sam proces konvertovanja stringa u broj


Ako mislis da ce ovo da ti radi sve si mi rekao o svom znanju.
[pawn]
new const kazna = params[0];[/pawn]
ups, strval(params), svakako, nisam pisao pawn 2 godine i sedim na ovom forumu samo sto mi dosadno, idem u grad za 40 minuta nemoj me smarat vise
(ovo 0 index sam pomesao sa nekim sranjem, ne pitaj)
Poslednja Izmena: Jun 25, 2021, 13:44:34 POSLE PODNE od Sage

Citat: Sage poslato Jun 25, 2021, 13:40:12 POSLE PODNE
ups, strval(params), svakako, nisam pisao pawn 2 godine i sedim na ovom forumu samo sto mi dosadno, idem u grad za 40 minuta nemoj me smarat vise


Kako nisi pisao kada citav dan po forumu pises ?
Drugar, moras malo da opravdas to svoje 'znanje' koje mislis da imas, apsolutno sve boli kurac sto ti kazes da nisi pisao pawn 2 godine i sto ti je dosano i sto ides u grad, bas bas nikoga to ne zanima.


[pawn]
const kazna = params[0];
[/pawn]  :D

sa obzirom da pisem sve sa telefona iz WCa ne znam sta da ti kazem, napisao sam skraceno, strval(params) ce da radi :)

A i ne znam zasto si se uvatio za to da IsNumeric nije osnova kada je loop kroz indekse array-a da proveris ASCII karaktere na vrhu pawn lang fajla, lol

E vidi opet ti kazem apsolutno nikoga ne zanima odakle pises i sve tvoje uslove u kojima pises bas bas nikoga, hoces reci da na kompu znas kako se pise, a na fonu ne ili hoces reci da kad si ispred kompa znas kako se pise, a u WC-u ne?


Pa jer sam upravu IsNumeric nije default funkcija, a ovo je filterscripta (bar jednim dijelom)

Tacno vi niste normalni natezite se u privatnim porukama ja sam ovo objavio i da bi nesto novo naucio i da bi nekom pomogo a ne da se vi možete natezat po komentarima.

Naravno Vedrane nepodcjenjuj ne znas ni ti dosta toga lp.
Digo si se puno. Ne cinis mi se los lik ali pomalo pomalo umislio si dosta.