Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => FilterScripte, Include, Pluginovi za SA-MP => Filterskripte & include fajlovi => Temu započeo: _tayloR poslato Jun 25, 2021, 03:35:06 PRE PODNE

Naslov: Jednostavan sistem MINI PD radara by tayloR
Poruka od: _tayloR poslato Jun 25, 2021, 03:35:06 PRE PODNE
Tip: FilterSkripta
Slike ili Video: https://imgur.com/a/gYZAFT4 ali eto ima i dole
Opis i dodatne informacije: Sistem PD radara sa AttachObjectToObject, PS: Nemojte zamjeriti na greskicama na brzinu je uradjeno
Download link: https://pastebin.com/7C4SbgrJ
Scan link: Pastebin je
Credits: tayloR
(https://i.imgur.com/c9GpxHY.png)
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Skorpija_026 poslato Jun 25, 2021, 04:16:45 PRE PODNE
Lep sistem, samo proradi malo na kodu ovako sve full
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: _tayloR poslato Jun 25, 2021, 04:41:51 PRE PODNE
Citat: Skorpija_026 poslato Jun 25, 2021, 04:16:45 PRE PODNE
Lep sistem, samo proradi malo na kodu ovako sve full
smirio si se od proslog puta drago mi je

Mozda i poradim na kodu kad bi mi reko sta konkretno ima dosta toga sto bi se moglo ali eto sta ti je zapalo za oko bas
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Galardo poslato Jun 25, 2021, 07:46:24 PRE PODNE
Gledo sam preko telefona, tako da ima vjerovatno nesto da mi je promaklo.

Imenovanje varijabli i funkciju, neka budu na eng, a povratne poruke na kojem god oces jeziku.
"skracenice" kao sto su scm i ostalo na sta ste navikli zaboravite, pisite puno ime funkcije koje jasno kaze sta radi.
Vidio sam da dosta imas return true, ali zasto se koristi return true/false?
Za boolean, a koliko sam vidio, nemas razloga za return true/false.
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: _tayloR poslato Jun 25, 2021, 09:59:26 PRE PODNE
Citat: Galardo poslato Jun 25, 2021, 07:46:24 PRE PODNE
Gledo sam preko telefona, tako da ima vjerovatno nesto da mi je promaklo.

Imenovanje varijabli i funkciju, neka budu na eng, a povratne poruke na kojem god oces jeziku.
"skracenice" kao sto su scm i ostalo na sta ste navikli zaboravite, pisite puno ime funkcije koje jasno kaze sta radi.
Vidio sam da dosta imas return true, ali zasto se koristi return true/false?
Za boolean, a koliko sam vidio, nemas razloga za return true/false.
Uredu sve to ali ovo za imenovanje varijabli vas ne kontam kakve to veze ima isacim
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Galardo poslato Jun 25, 2021, 11:13:38 PRE PODNE
Citat: Taylor Morelli poslato Jun 25, 2021, 09:59:26 PRE PODNE
Uredu sve to ali ovo za imenovanje varijabli vas ne kontam kakve to veze ima isacim
Sta mislis da neki stranac uzme neki tvoj code i mora da pogleda citav kod da bi pokusao shvatiti cemu ta varijabla sluzi. Ni jedan ozbiljniji programer nece imenovati varijablu na nekom trecem jeziku.
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: _tayloR poslato Jun 25, 2021, 11:21:15 PRE PODNE
Citat: Galardo poslato Jun 25, 2021, 11:13:38 PRE PODNE
Sta mislis da neki stranac uzme neki tvoj code i mora da pogleda citav kod da bi pokusao shvatiti cemu ta varijabla sluzi. Ni jedan ozbiljniji programer nece imenovati varijablu na nekom trecem jeziku.
razumijem ja to sve za npr neki ozbiljniji projelat u cpp ili drugom programskom jeziku a sad za ovo skriptanje manje vise, glupo mi rec da je programiranje xD
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: __vedran.xyz77 poslato Jun 25, 2021, 11:41:57 PRE PODNE
Kada pises bilo kakav kod potrudi se da bude profesionalan, bez obzira ko ce gledati i koji je programski jezik.
Kada objavljujes nesto, objavi bez errora.


[pawn]

// Normalno na diskonektu dodajte ovo
PostavioPDRadar[playerid] = -1;
Kaznjen[playerid] = false;
[/pawn]


U FilterScript-i mozes da korisits
[pawn]
public OnPlayerDisconnect
[/pawn]
Nece se pojebati glavni kod.




Ne stavljaj ovakve razmake veoma lose izgleda
[pawn]
if( sscanf( params, "i", kazna ) ) return SCM( playerid, -1, "/postaviradar (kazna)" ); // kad upise nesto drugo sem ovog
[/pawn]


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


Takodjer


[pawn]
// kada kreiras radar setas mu ovu varijablu pa zasto je ne iskoristis ?


// PostavioPDRadar[playerid] = id;



CMD:pokupiradar(playerid, params[]) { // Komanda je tek tako bezveze dodana jer ce se svakako unistiti kad se udalji

   for(new r; r < MAX_PDRADARA; r++) {
if(IsPlayerInRangeOfPoint(playerid, 3.0, PDR[r][pdradarPos][0], PDR[r][pdradarPos][1], PDR[r][pdradarPos][2]) && PDR[r][pdradarPostavljen] == 1) {
[/pawn]
[pawn]
CMD:pokupiradar(playerid) {
       if (IsPlayerInRangeOfObject(playerid, 3.0, PDR[PostavioPDRadar][pdradarPos][0], PDR[PostavioPDRadar][pdradarPos][1], PDR[PostavioPDRadar][pdradarPos][2])
}
[/pawn]

Imas dosta viska varijabli tipa pdradarPostavljen, umjesto te varijable mogao si da provjeris samo da li su mu kordinate X i Y == 0.0 Ukoliko jesu radar nije kreiran.


Koristi Streamer, a ne obican CO


Umjesto ovih provjera da li je u range-u bla bla, mogao si da kreiras jedan rectangle i da provjeris kada udje u taj rectangle (jer to je povrsina oko radara) da ga detekuje, ima tu jos dosta sto bi moglo da se malo rewrite-a ali samo nastavi i probaj da poboljsas pisanje koda. Nadam se da ce izaci na dobro
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: _tayloR poslato Jun 25, 2021, 11:52:38 PRE PODNE
Citat: __vedran.xyz77 poslato Jun 25, 2021, 11:41:57 PRE PODNE
Kada pises bilo kakav kod potrudi se da bude profesionalan, bez obzira ko ce gledati i koji je programski jezik.
Kada objavljujes nesto, objavi bez errora.


[pawn]

// Normalno na diskonektu dodajte ovo
PostavioPDRadar[playerid] = -1;
Kaznjen[playerid] = false;
[/pawn]


U FilterScript-i mozes da korisits
[pawn]
public OnPlayerDisconnect
[/pawn]
Nece se pojebati glavni kod.




Ne stavljaj ovakve razmake veoma lose izgleda
[pawn]
if( sscanf( params, "i", kazna ) ) return SCM( playerid, -1, "/postaviradar (kazna)" ); // kad upise nesto drugo sem ovog
[/pawn]


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


Takodjer


[pawn]
// kada kreiras radar setas mu ovu varijablu pa zasto je ne iskoristis ?


// PostavioPDRadar[playerid] = id;



CMD:pokupiradar(playerid, params[]) { // Komanda je tek tako bezveze dodana jer ce se svakako unistiti kad se udalji

   for(new r; r < MAX_PDRADARA; r++) {
if(IsPlayerInRangeOfPoint(playerid, 3.0, PDR[r][pdradarPos][0], PDR[r][pdradarPos][1], PDR[r][pdradarPos][2]) && PDR[r][pdradarPostavljen] == 1) {
[/pawn]
[pawn]
CMD:pokupiradar(playerid) {
       if (IsPlayerInRangeOfObject(playerid, 3.0, PDR[PostavioPDRadar][pdradarPos][0], PDR[PostavioPDRadar][pdradarPos][1], PDR[PostavioPDRadar][pdradarPos][2])
}
[/pawn]

Imas dosta viska varijabli tipa pdradarPostavljen, umjesto te varijable mogao si da provjeris samo da li su mu kordinate X i Y == 0.0 Ukoliko jesu radar nije kreiran.


Koristi Streamer, a ne obican CO


Umjesto ovih provjera da li je u range-u bla bla, mogao si da kreiras jedan rectangle i da provjeris kada udje u taj rectangle (jer to je povrsina oko radara) da ga detekuje, ima tu jos dosta sto bi moglo da se malo rewrite-a ali samo nastavi i probaj da poboljsas pisanje koda. Nadam se da ce izaci na dobro
Hvala na savjetima

Trebo si zaglavlje u pastebinu procitat gdje sam sve objasnio

A sto se tice tih razmaka to je stvar ukusa sta znam to je neko moje misljenje

Za radarPostavljen isto dobra optimizacija isto tako i za pokupi radar nije trebala for slazem se iako bi u tvojoj komandi trebala jedna provjera i nisi dobro upiso var PostavioPDRadar

A sto se tice dynamicobj nisam siguran jel ima uopste AttachDynamicObjectTo..

Eto neka moja objasnjena vrv sam nesto zaboravio pisem preko fona i jos jednom hvala na savjetima :D
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: _tayloR poslato Jun 25, 2021, 11:54:36 PRE PODNE
Ima izgleda izvinjavam se nisam mogo provjerit jer pisem preko fonajer me ne zbunjivalo malo AttachDynamicObjectTOOBJECT
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: V01D poslato Jun 25, 2021, 12:10:39 POSLE PODNE
Odlicno! Uradio sam isti sistem pre par meseci, ali jedan objekat. Mada sluzi svrsi.

Imas par greskica u kodu, sve ovo sto je gore navedeno, ali da se popraviti! Sve pohvale
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: _tayloR poslato Jun 25, 2021, 12:14:14 POSLE PODNE
Citat: V01D poslato Jun 25, 2021, 12:10:39 POSLE PODNE
Odlicno! Uradio sam isti sistem pre par meseci, ali jedan objekat. Mada sluzi svrsi.

Imas par greskica u kodu, sve ovo sto je gore navedeno, ali da se popraviti! Sve pohvale
hvalaaa
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Muma poslato Jun 25, 2021, 12:24:15 POSLE PODNE
Ima streamer sve i još više, kod nas se streamer ne koristi ni 3% s obzirom koliko funkcija ima
https://github.com/samp-incognito/samp-streamer-plugin/wiki

Kao što je Vedran rekao napraviti rectangle da se generiše oko radara i kada neko uđe u tu areu da provjeri brzinu ili neki player timer da provjerava par puta u sekundi pa kad izađe da ga destroya

Također radarPostavljen kako već i for loop glupost, koristi y_iterate/foreach brže je 10x
new Iterator:RADARI<MAX_RADAR>;
Kad kreiraš ideš Iter_Free pronađeš slobodan slot, ako nema returnat će -1
onda Iter_Add, kad hoćeš da obrišeš Iter_Remove
i da loopaš ideš foreach(new i : RADARI)
i to je sve što trebaš znat (valjda je ovako išlo i ostalo još uvijek hehe)

Također bolje da si za objekte array nego poziciju, ima tu još šta bi se moglo popravit al ajde :D

Svakako dobra ideja za ovakav radar :)
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Galardo poslato Jun 25, 2021, 12:50:37 POSLE PODNE
@Sage de ga zabiberi  :D
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Sage poslato Jun 25, 2021, 12:56:02 POSLE PODNE
Mrzi me iskreno umro sam sinoc, ali ovo

CitatNe stavljaj ovakve razmake veoma lose izgleda
Pawno Code: [Izaberi]
if( sscanf( params, "i", kazna ) ) return SCM( playerid, -1, "/postaviradar (kazna)" ); // kad upise nesto drugo sem ovog


primjer kako bi trebalo izgledati
Pawno Code: [Izaberi]
if (sscanf(params, "i", kazna)) return SCM(playerid, -1, "/postaviradar (kazna)" ); // kad upise nesto drugo sem ovog


Ovde ne da ne treba da se koristi sscanf nego...
sscanf je bukvalno isto sto i split tako da nema potrebe za njim
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Sage poslato Jun 25, 2021, 13:13:29 POSLE PODNE
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 :)
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: __vedran.xyz77 poslato Jun 25, 2021, 13:13:41 POSLE PODNE
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.
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Sage poslato Jun 25, 2021, 13:21:02 POSLE PODNE
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
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: __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 ?
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Sage poslato Jun 25, 2021, 13:30:26 POSLE PODNE
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)
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: __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]


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:
(https://balkan-samp.com/forum/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZkAAACjCAYAAABYM2OxAAAgAElEQVR4Ae2dTatdRdbH+wM8H+QO7uSRSyO+0E/rFZooJCGo14lRrxhak+AsBg3pEBw46IsggegkAUkIJCB9J06iGQjpcZxn5AfwI9TDqqpVtep1731P1Tn7nPMfHM7L3rt21ap/rV+tqn2q/rKzu6fwgg2gAWgAGoAGemjgLz0SRZoQKzQADUAD0ABpAJBBJIdIFhqABqCBbhoAZCCubuJCTxY9WWgAGgBkABlABhqABqCBbhpoA5m/fqTeu3RTHdrXmb9H9I6OHx5+pF7gSq0d43Pw3k0A6GlGWoXWoDVooKkGGkDmdfXG4VX1xl9tY/37ZXV4SXzfPafOBN/p/JvqvTdfzxbk5YOb6vDgXPYYHCIcIjQADUAD66WBBpCJC0xQualcNKMjlcvqZdE7IJCUIPPCm1cBGWErNKhYX/gOTUAD66SB/pDZNZGLGyJLIh0pGHOuAxScLSI6aAAagAbWWgPNIaOHu+ScixWIjlD0nE0Y1Wgia/DYOZ3MtetEbeRVdhrwGXqABrZdA00hY0ASQ8RGMnaehWFTjFY0cOI0INRtFyrKjzYADaynBppBxsBDTvhbg2Sgoc8tRizxgwLraVg0CNQbNAANQAON/vFfBAwNlSVzMGFkE1dCHUAQbWwvfIcmoAFoYM4aaBDJmKfJ+D8y7l1EKgZC/n80wSPKcj6G5mzEdXM2HPKGhg0NQAPQwLAGGkBm+CaoCNgIGoAGoIHt1AAgg8cj1/rxSDiu7XRcqPf1qXdABpABZKABaAAa6KYBQAbi6iYu9DbXp7eJukJd9dIAIAPIADLQADQADXTTwNpB5uCr/1H86kVepIteHTQADUADbTQAyKAH060Hg0bappHCjrDjOmsAkAFkABloABqABrppAJCBuLqJa517X8g7ogdooI0GABlAxkLmQF2790QdfTZeWKduHKuHx0/M69aV2cGK8zdYps/uqof3jtSpbdfCmSN1h+vzONXChVu2rumcuL7p2oVtaDRImrpz42B2egJ0xvsGaas2kIm2UE5WWI6Ol5aO0dsEyA3PMo2eJ/3pXRakyef9x+rpF8/t63f1/YvWqPb3B/ts5M/V9xefq6cXH6kPdu1ndx1d/1hdz+S9nMdv1P6Pf6rTn3L6bd9f+u5P9e71b6r20g4kdhwjy6Cd+QmvLdtkcRsAMhNtqCFzV10YqPdSfS+iIdKBTndhUE0s80BZe+pzW9JuABla8FKsvpwsiBmvqmwWyEx2xqTrDi+rM4diV82MAHpB5oOzv6unXwiwEDzOE0T2FB375eLv6peznxtH/eIj811Axh3b3VPXz08FzYohQz3542HnUmoUJadTOn92vyOSMbpeEDI7u9OjYakFghQimM2DZAPIxEY5yfbLfI0BUBIJCdj0gcy36sEXz5WPVMIyacicfaQeaKgQdB6r7/cfqV90xGIiGQmZHRvdhL+Zezw9/20QUVCU8eFP6SuIPD59Js75Q+2fDvP3wvU/xHEfEcW/u/t8d1/koewYCB7U6OUwSW7oqQyZK+pIDL/4IRZzz9ChxL+Z7/nhOJ9nn7djde0M20XeV/7Ox22vWeatUQ962GZRuYL7DpUrzrcoG4Hy1pEe8nx4fKyufWaHvoL0pV2epEOEC0NmT+0sAGxAxutTwnfdP/eHzIjtl/Uwmd7UbEWQ0cNh5SEuA5nP1fXzFOnYCIeimSJkbDQTACUPGSOgSiRz+lf17k8CLBo4z9RLDF59XHzn38V7dbis4lg0POT4eCHiKUHmwi0ZHRkHx5DS10gHqPPhnaaGhxuCM87XQ8k7av4tPJ8bK93Tp+kaa1yOBRyjS9Pae8hmp27cFTCcWK4zR+pIzFUENtRlMvMoBrxk+7D8g068ogVZzlJ9m3PCe8rrhj4P5k9oeigtHOc2sPr35pCZvP2ynq/hnTDnCRka/tJRyf5j9cv5x+oBDZsNQEYPvwWQqVV2GTIUjQRRzW50roaMj15yjasKmYqDTZ1J3oGk5+XLGjqRMK0wDTomARX3kC1kHITi43z/8B7GNuZahp3+rWKDnD1rv4XloHzk8sD5s5GJK8fYctnrJRREGbydw3vT79UHHGR6FYeeltGX5+RDZpl6qeShVgc4Jutj9Z+bQsbsG8PA4MIZcPAeMry3jBkSi6ESf+c0/HuX4bKBSMZBZpeiEZ63oc8U/eSGy3KRjC9D2ggicIjGVRpOCx4SkMNpP/6qXhDX071qkNEOQ0YU4trUmZDTSp86Ss+zZbW9azfkJaOi3T09DGciEXIwIuLQzk48ycTDWi6fYx1S6GSN3TPXCged1k2t3tJjqS0im+XKFkEmAKCoD3bg0p5uLk2UoQSZ+PrkPk0gI+s1tU/Ovhp+uYgzKPu4tHLp47fV2q4ZZAw8xAMALBD9IEAIHn0ubU4WP3VGm5bxq7B5WRfI6KikPCdDkEnnaxg4OciYobFwTqZW0XXIhJFMLR0DlA8j0NQgUxtDzztMAQNbx+l5e2rHOlPpyLzzs2Vgx0jnOoDwtVEkw3rS7xlQBMfZRnOBDNvMAIeH+Mj5hbarlyuJRCQU2JYBvHPlt7bJ1I+ps5rdzbVhntnW/F4vQ9nhn/Q6vi/ey7ZdrW2aQKYIGGr4ydNmYWQTGmZFkUz2iTD/dNk0yNhHmu1DAr58BjzxxD8f1xFLMCFvhaGjFDEnk3WmXkR6sj+CTO43vm/NscTOJHFyNi/xeTpt7cTYudrhrCiS4Z71nXvH0f9zjMPxDwr48pl8j3VIeSery8HRg3W2yTASOe3c/0EG7B/bIrSZgYwDL9+b8zLwdFaQb3vutEhG2jHKC5VL52dRyORt7vRWsR+VTwJ4zDU4R9bpPD83gMyC2y8HolsdZEisBJP0fzIGGkORjL/uucqDpA6Znd376rR4yiyIXuRwmD7HT/SnT5D5Y74Bmkip9nRZrnFrh8lDVfQuow3n5KJhLecwzbCJG9q5d6SuZZyIuUfOsVnQiPv7PA5AhgEhrtVPXGWfPrurLpBzDcpGjdU44bDMw424brP46bC76hr9odXZbKBcDCVbrqMb9ASZtd1gJGPLI2zi7WnL1QIyIh9ef8N2o3MBmXF2mmrXVZ/fADLLNUyX4bIAdMstz6oFoO+vnXLq6ONeeY+8LuMeJ8u3hZwDwDhdzLc8I/K/MGQGIDnQzgCZEXU0YMOTab3vfQGZNay0HkIKh2KM6Lo7TO3UxJDaTOpCl5t6/BMBQ/XS3WY9bbQgZHIamqLVtbZdz3pZ87QBmTWvwCmNuH5u2gvt1ui1MzPDbG5+YkPqoZvNlmEfUS80zBnXjYYID7fFAKZrkyHHqT1kGz0mc3dT08H59ba+XPsAMstovLiHWGFguQKfU2NDXlD326gBQAYAAACgAWgAGuimAUBmd0+9/H//6Gbgbey5oMzosUMD0ABrAJABZABY9GKhAWigmwYAGUCmm7i4J4N39Gqhge3VACADyAAy6MVCA9BANw0AMoBMN3H1671mlkSBk5h3PQ48Hl3XSrhaQfxodf3a7Y0g5mKXNpCJFrpMNh2LjofbL2eWpSksjklG6/GPf0z8r6ghuu0Spt4fkJmLAxmdDw2ZdFUJvv7jz95Xz374xL7eUV9nOw3pf7n4erxPbUPLO78BZGi9MbH6crIgJkFEHLebmPntl+l4uEpzTTCAzPLEUauHJscAmXlHH1lHf0L91SBz8I569oMHy9dffaKe/fst9XFyf0CmSbtL7HrCOh2ZTgPIxBk0kYmLZoJNycy5tLEZIMN2o4UzH6vrdrsBvdBmvIKz3u+GF+/k/Wz21A79Hp+7S9tD/15YpJPvKd/tqtFfcPrhDqH5RUPperqO8mIX/tTXh9fu6P13ON3nIq/yGnHc7dUj85f7HEUyPBQj/3EeLZIph1j0v/L5n+v87v7BTo6MlrqRQzRRD7ySdlcnQPe9dcUsXWPzHS5y6f8xrxcmlfYQKzz7f+5HS/oUy0W2sIt56n/jX/HbPGcXHY0XU62t8PyKuvvvT9R/P3vFA/e1t9R/f3hf3X0trvsKZKwGQnvE1+N7V30WoNMfMoPbL297JMMOlx20+e5WfdbwicCiN0vbE7tzho1nPGQsYAo7eOp0BMT0d7633aztqQODSUvuoUOAkt8TgbeIZKxzkRDRKyg7aPA2AxEoXIMwDvSC+86Omh2w+e6d1xV1NDrtsF6S8rt7jjyPIcD312XnfNK6aQts7UyrTnO6lC99L7aZBS4dt3kgexOs2C7yc7acOq+cnizvvvpPABT6bobN/nMgz6PPgEzWtlN1tOTzm0Nm8vbLuybycZuVBUNrscg2cU6GoCIgYrccYOdMjp0/G4EZZ24gRNdaOImoZtC5s8iqO4JGsNPXyHvLz6aeYrjpKEhAKmkgi0JGL3WfrrGV3KeyBTI5xxBQqSOrr0dGDtg7+vTeUsPGpsG2EBQB1mzEdUXv5OAL0UnuvmG+LTxjkATpybzKconPIg8SLPQ5zJtMqxbJMGRMREPzMgQXGjILohtth7RucuXGb5HtpYZW8LkpZMzmZfH8SrhJmTnnpnLDaXGhkzmd0GCbNydTh0w4XOWHlgxkyNEbQF0//1g9OG+AQ9e4SCi2r/geRyph40zzZYbIOO1hyPD57FSTPC0IGbNXTa53HO1lo4eWMiAghymdrrZN6shCZz0ybWHn0K6hnicdEw7eXGfyytEE70bq9vChcrvypeWK761BwcOHgc2GIcNRBt87BPcQZOLIxQBnUiTTw95I0w9hLmCLZpAp7o5Z2345m3GKbOSDAmGj3EbIhJFMaA8DlG/VA+oN7z9WD/Y9eGInknwX0U9yzM6nhGCQ0c0YyIi8aqAwoOzvC0KGh2ziHrSZc5HwEU7SaY5+k+dwXlNnLCEzLm1OK37vGclQefzwFdWnzDdDIHH+1h71cgn7CdDJSCbQT24IszhcZoASRi0c3cT2S+smuK+r2/g6fF+lnZpApggYqvQkMgkjm7jwpeE2Pm/bIKMn96PhNLYFvWvInH2kHpz93MzRUETDQ2iDjc44vRLEdBQlhnLCyGciZAahNcURGIdqHKZxPL7Hbp2rGAYyPXQZydScVXpMOmv9uZr2lHJMPFc4eKr7EAzSJhw5jI9k6uWaCBm7q2gAtCJk9pR5fNlP9OvvU58us2CTOpDtBJ8nam3Qd4xPrwFk4jmVm0rPr4j/uvAQmZt3OTjnwzANIXvNpZvqUB7LFHTrIEM20HMnfqjsqYCIdvwOQsbxjx7j1/aNe9f8AIIRkQZN9smzIcjE6RYeAgjKFs5NlR1D5FB5q2QXmZjjPHRz58ZRMG9inHO0bbS7tg4Zty2zHVaK0y7neXyjLKZBkAmGs8JILCzXxK2dnQ2NXcJyDUEmtDfl0Q3hcRuuQIbKG/xPJgsYsl9aN95WnIfQJv54A/tzWfDu/fcIWzSAzHIrb/Mgs1z7odGtsb2jSGat6nIAMuPKUoOMOYZIZn76BmSwrMykXsk4ZzA/oW9EvgEZ/f+cYBjODRvKoUHob056B2QAGUBmRMg/i0a79pDxQ5QxKOr25aGwzdyyu1729QcmIAPIADLrAhnkE1pdQw0AMoAMGu4aNtxN7/2ifOsfwXAdAjKADCADyEAD0EA3DQAygEw3cXFPBu+b0ytFXaIup2oAkAFkABn0YqEBaKCbBgAZQKabuKb2eHA+esnQwOZpAJDZEMi89N2f6sOf/lD7p3uI9L46/ROlb17vXv8mBVPm8dpXb11Wt387VOd299S5+1fV7Z/fVq/aHqPemEov6e43q9qhzasK//aOV+Wtpb2YozJ/6kv+sT6Tni79q3+ueVvM7j10izTnUCdtIBNtr5yssBwdD7dfNkIIlp4RS9LERsI//vMN58SQOf2revenZ+qlihPVaX93PwULX6P/zS3XBjN5LIJAb0pl4OLhUVoU0aTlzxtIm/N04vd5Q4aXtZn2P5O8ZuK2he+wUw8NNIDMotsv76mhRTFlwQGZxg1hEDLfqP0f/1SnPy3dt+KU/3XoohcNnPunDKgIMjZiYXjwu6xr+Tk5Xkr7xHDh8lXKs3DafI8F35ss0bJgHuZiC+Sj3PmbiW0aQCYWq1kw00UzQ9sv0/FK5CIdDX3ePMjQUNQz9ZJ29nZI6sdf1QssEAcBMWSVHOehrDgiIUDQEJq41kUt8je+nt7jITdzXhEymWGyuM5y3wkatEGV3ts9O0z2it6W15xjzg2Xg4911+p7DBn+t7lYeJHKLBaqlFFFuEil/Yd7sKcLRXycJh0X6eo6l8fKS6UUl9nnhS7dPVvZBenkdIzfhnXRHzID2y/rYbKDj9Qbh34l5vfefL1I582EDDl3BoSJHNy8h4MPO/+C03cwkpVu0vLgiNImp5a9jn+X8OHPnE9zn7Kzk/mofSaY+GXeudFqCH2173SQRDIM4ebvEjLG4YdzILVtiuNy0vUSIibth24nTXkvtqc839xfQoztk+6Syfe2kAJknHaczZprhW2O95qNm0OmNPTl51zCnTP1+XKTMjt/4yKhSBibCRkGiBHrC9f/UB/yHIiFjIwkaI7EQYjtk4WFgYq8Nkibrs1eJxtNAWr6vsZJZp0g52vgXS/xLmCixSrmbFi8y4cMbQ+QWbI+KQ859XQ+ivJNAA5tk9pLRz4VIBQhjiEzQCTRomy38/ncFDIGJCFEdjiSsfvEMGwYIgSZOHLJ/cbOZmsgw0NigxCwYsqe1xsylZ72mAbAMNHvdviMgMO/izSWDRkzHFaGhxwu85GJaNg0pJbAYwRkoqG47N4s2i5luHFbwbuoD6El2GW5dmkGGQOPzLbJA9sv6+uijcoAmTiSCYeoso1kJZBJnWY2b9kGTsNknyjax90DhJ4we0d9PQPI0BCZmV+Rw1fxbpTUWHPOnn4LrzN2Se0VRDI6OgmjH0Qyy3WI4/WLfI21VRPIFAFDzmVo+2U9PCbgFH+PHNTGRzIaFuJpriw8MgLPnjciktmtDYfRferHi04wqrdYkHKYzEHGwYVgYwBE1/GuiVMn/ilvFAmEQ1YZ2wV5NSDgeRidhthuWUNBfDf3kBFPChJf9vRYChmRlo1qOC8+nT01OCcj8hhcF5R1yBY4DtstroEGkFlw+2USfbAFswBOpkFsJmR4Ut28yzmUoTkTPcci/ihp/jDJkc8YyOypnU+fuT9a+ocEWFx1yGhnl+218/WZdwcTe0x/j54goyfO9NNnn6hnX+1r0EyFjMnbmHkVmccQMrzlrx8SM0OEPFwWblPMkY59qsw9gcZRzQBk7DwOp/3w3pG6diuf/zLczT18fmXZ8BnQWL4GGkBmuZneTMiEE//r1RBip7xcPVRtlRl+qp6f6dTM8vyBSf84+pplGdbF1sjnwg9YADIrX1aGIoV1hsye2tFOTwzzrLxhcm9+6lDZjABZtKGJpLJDgPzQAIbKFnaMAHO7tgDIADJtGiQ5ODi3NrYsAsYMx2XnaCrXwGG2c5iw5XRbAjIrh8z0SoPQYTNoABpYFw0AMoBM9973ujQG5BOOGxporwFABpABZDDUBA1AA900AMgAMt3EhV5h+14hbAqbrpsGABlABpBBLxYagAa6aQCQAWS6iWvdelzIL6IEaKC9BgCZDYHMiXfGHNWDM//6b7n9cr0x/0398+er6ptbf9ssAOZWNth9xa3hVrcJNX5jl9t687dT6svfNtBGo/QYOUL6nxYen59tW2kDGbs8/+ElsycMr7DsGk10XG6/bJb693vJFNOw4tu8f/xHDeYkjWx3T50YMtk1z8I8Nd9+2TrLECISLPJzmBenqRPaaZXXp2u02XXZ4q0OimUDZEr1p1c5SFa93hztlMq9Dr83gMzi2y8Hhtq6BTJX3BAGIZOufxbU125lWZniFsk5iMjf5OcV26fo8KfniyBDq067rQziNdxG3OvcfY5ejI2+/Nf0fIT1tynXGx1mV0IYYdfNtMk86rYBZOKCTNx+ORJAbul/KYDNi2RoKGrbtl/OQUT+Jj+TvszQ0O3fDtU5rRf6fln989Brzztf/s2kcfu3q8q8+Fpz/NVbl+3vdDxMa+fwbfWNu+6qMsNTnO4C78Fw2X5hmMysQO0WB/33W+rjqI3I9tDsM63YcOuK3d7ALPAZryxgtj7gxT/lMkLewZtVqekcedyuGu0WDJXL/ZhtEa7dONYrZt+5cUVduxdf75cJMouH8oKjUV1UVp0w+Spctwz7bvE9+kOGNy07/MjsW58s/S+FQoDa1lWYw5WT3c6XOtKg1Zl5fbPCqsjZiMREIf5a892lTcLPXse/h6tDhys8m3qjxhs7o2HHF0OE0pK/yc+5uYchyFjA6LkLqS/7+fBt9aWY79HA+flt9ap2BOZ+PkLI3T+T5lQnQqtMZ4bJ3JDa1PQWPZ/XPeMhp3g9ujNH6ujGgRv3D7c88BBgLYTDV7Utq+2q1nRfmweKRqSugu0QquWktCK42fMBmQaardq+nH5zyOg5FgaKyJTZc4bmXuKdM33mhqIYcl6bGckwQIwtgi2SLWTk8v/rv/2yhAjXv/yNP79dmNwegAwN07moh9OvvOvIxUQ6IXDsNWLYbxiglfu49kDRyvvq7mvpuQSZZ8uKXlx+cvvT+OgkW+ZgJWgLGQYUpVuJKsKN3gQYxDUJZEZtJzGQZ1lefHYdhmz9NrRPU8gYkMQQoTmbm+qwsP2yL2A0zFYo5NZAZqO3X2aIyKfH5G/msxnmioaytC7qkMmCItCTTD8cTtPXxhFQY8hwtKKBovfMkcAxT5vxcJmewwnynoLJt6EFjgkHb9IzDpsjE7+vDg+X0TsPPw07dxNJyGs54hiGDOVHXu/zlJZXwqmJXZZh+w2/RzPIGMBkhroGtl9mIejrMxEQH+f3rYHMd/dNT6M0nBULM3teOmkfREmURvY62XgLw3P6/sPOhestfi/NoZhhKg8c7fSTqKQOmZ0BKNC9b7vhsT1l5mDKkcwwtKS9Bj7TMBlFKmLSn3b+zG7IZudwlgKaAmR4Il07efmYcCaS4XPjujZzOQwkso8Ai/ws8lCGBV1bGqI9uR7jPOP7gI5j/1P53gQyRcDQjZM5mDCyMZU5LoqhczceMvHw2CAErBiy542AzMD2yr22X04cdzDE5SFDdZ5AwT4IwPMmBkT81BXZoz6PotNz0QpHNfbBADvpz2lzWv67sbdO47erKv697pzEMJmADEc26bXhNtTp8Ywj0M7/yfRtF4SDp/vEYNCQccNhxpmPjWTC+RuOSqZFMr7s5t75aEbCK7SNzn9hvsanHV6D39vYowFkDCD4/y3uXUQlBkLivzB26IwrsTSPw8fl+2ZCJpxgl/MvQ5HGWm6/bHs97KjTYbEQMvxQQPAUmIaSHeq6f0qDKPzfjQFN9umy6OmxL2/R02Ti6bPoeJiubXj2/tljhV5dDBM/XPaO+lpfEz1Z9sMn+QinkL5pJzEARjoKgox4+ssDxF7P8LLnHN04UndGD5eZ6IPTD7esFmAQoPORDJdHDLU52EVlE9dLn0GfDTRLEVCUTtW+ODe27dD3BpBZrtE3EzLhxP9Qpc3reK1nuVxtLNUuScQzn7LqXrsc2hrjNCsOeql2HZPX7DlGh6UhO/PkGkdP86mr9bDtYvYCZFa+rAzNeawzZOa4/fJijaLe8Hl4bepQWc882bQ5GpkKGHLaaw6ZcDhP2pqjKACmrmtps7afARlAps2jjGvupFbVAGdz33WuPxrKOwlYsxFRWwc7m/pdYVkBmZVDBqJGQ4QGoIHN1QAgA8i0iWRW2FOCg9pcB4W6Xf+6BWQAGUAGgIQGoIFuGgBkAJlu4kIvdP17oahD1OGiGgBkABlABr1YaAAa6KYBQAaQ6SauRXtAuB69aGhg/TUAyAAygAx6sdAANNBNA20gE22vPGX7ZeqpxMvOvPfm68UCb94//hv0VPYfq6cXH6kP5thQeKOuzN4p6KU2qPs51jnyVPRf26j5BpBZcPtlWkBTrHO2g+2Xpwt0ppCh1YVpxeG7tEcKIDO9XuGsYbMN0EADyMS9sWhFZQ2NcI8ZWhCToxUdxQQLZtL1mS0DrLE3L5L5XH1/8bl6sL+nrp9/rp5+Qa/f1fcvCrsSRPTv0bEXH6lf3O98Lb0/Vte1vXza3IP64Ozv6un5b03j1dfTud+qB5yOiIjo3F/Ofi7yZfLJaVXfKYKxYNELQRYgYxYuxJIfVVtugKNB+UR73rL67A+Zoe2X7VAbQ2doReZNhQxBhBw6NUYNmwAEAjoaOAwRK9xiJDMGMhJcBjYEPMqHBpLIl/4uIDTWcQAy2+tgxmoE522uRppDpgQJP+8SRjVGXHaPmUt+B82S6DYWMgwV6uUIaHA04e2RgkOe788j0abnalDwvWwkxFChawlwDLvgXMqXi3ymNYgaZML8TksX18Je0MD8NdAUMgYkMUTCTcoYNu7hABvJmO8MmzgNb8hNhYx09LLh+CE0ORwWDVsJKMlrx0EmiopEKA/IeN2FdsXvsAc0MFYDzSBj4JGZSxnYfllHPsGcjAEND5/FBdlGyHBkEdvCfQdkMEEsOgdOF/gNupiBBppApggYKuDA9svJ8FoQ2aS9hW2DjB4Kix8EiIWjh7HEvI07bobLHKQIRjTBHwyXrTaS4R0Li5tNubKkWoAzhU2ggflroAFkFt1+mYfI/PbMbigt42C2DjJkA4YDPwHmnh7zAtNDW7njdt5Fw+XiI3U9+3SZT0c22sWGy9KthJ/9kHmUmTfaKm2pm9GAzCM+5+sOdoFd5qKBBpBZbmVuHmSWa7+5CM/lw+4dj0hmy3WAzsTGDu0BMlhWZkXiNnuyPzx+ogAYAMZ1OgCbFbXHfhoEZACZjRM1HFY/hwHbwrZTNQDIADKADHrP0AA00E0DgAwg001cU3s8OB+9ZGhg8zQAyKAHA8hAA9AANNBNA4AMxNVNXOiVbl6vFHWKOp2qAUAGkDZkMccAAATdSURBVAFkoAFoABropgFABuLqJq6pPR6cj14yNLB5GgBkLGR4eZOH947UKYAH4IEGoAFooIkG2kDGrjd2SEv1X7qpkmVhouPBTpjJ9svlFZipl9PjH/+y93Th1hN158ZBE+PKdPF583poqFPUKTQwrIEGkKG1x8Tqy8mCmPFOl9Eqy9EqzXqxTbkdc9Sb6A2ZHVpLC+toAbKR7uBMhp0JbAQb5TTQADKxYadsvxwBRzfsGEph+oBMaI9cpeI32AgagAbmooH+kKluv2wgEw6v5X7zggFkvC3mIiLkA3UCDUADJQ00h0yyP4wdduAdMQ8vhXMu8fAYnxeCx1dgd8joVYHvqgsYLsGQGTQADUADC2ugKWQMIEKI7HAkY3e/TCFiIhd+aOC9N8+FczxRJXeHDN3PLj+PuRkP91IvBb/DRtAANFDTQDPIGHiIBwAYDtHEPmVGn1uc3Kc5mRhUvhK7Q4Ym/vEY88K9l5rocMzrGbaALTZdA00gUwQMgSZ52sxGLjayCQ0cPTTAoBLvS4EMni4DZITmQo3CKcIe0MAUDTSAjAEDD3e5dxGp8BCZOyYBoyHEWy9nIqGosQMyEPgUgeNc6AUaWK0GGkBmuQUAZJZrbzRQ2BsagAYW0QAgE0VK+Mc/GtQiDQrXQj/QQKgBQMZCxq1ddozHl9FIwkYCe8Ae0MDJNQDIRJEMxHRyMcF2sB00AA3EGgBkABk8SQYNQAPQQDcNADK7e2r3f1/BCzaABqABaKCDBgAZQAYNq0PDQscFHTdowGgAkAFkABlABhqABrppAJABZLqJCz059OahAWgAkAFkABn0YqEBaKCbBtpAhlctPn6iHh4/UUefRY/xDR2nRSnttQ+Pj9W1M9H14smPHv/4R28LvS1oABqABvpooAFkDtS1ewIMGhji++4VdSTBo4EjjkffzZ8iy3+IBGT6CAENDHaFBqCBHhpoAJk46gihoqERLZ0vl26hz+G+LeH18R97ABk0hB4NAWlCV9BAHw0sBzLR0vkaPPo3ioLk8Jr5TkNnd24cZP8cBMj0EQIaGOwKDUADPTTQHDI6MpGRSzQcFu466SGjr7Nw8RCKo6Q9BcigIfRoCEgTuoIG+migKWRK8ynmd/NQAO06eeHGsY1U8pGLHE7DcFmfikeDgl2hAWhgGRpoBhkDEjGhL54Ii0FBEOEn0HQEEwyn+egmvo6+I5JBw1hGw8A9oDNooI0GmkBmKmCCiX77+DJDZ0d/x9NlEHgbgcOOsCM0sFoNNICMeRrM/8/FD4ud0tFMeDw7oR/8T6YMGEQyqxULGivsDw1AA1M10AAy6eR8bpir1W8YLoPIp4oc50Mz0MDqNADIYFmZbstJoGGvrmHD9rD9XDQAyAAygAzWrYIGoIFuGgBkAJlu4ppLTwr5QK8eGlidBgAZQAaQQS8WGoAGumlg7SDT6gECpLPcBzZgb9gbGthODQAylT+NolFsZ6NAvaPeoYF2GgBkAJnsQqRoZO0aGWwJW26zBgAZQAaQgQagAWigmwYAGYirm7i2ufeGsiN6gQaMBgAZQAaQgQagAWigmwYAGYirm7jQk0NvHhqABgAZQAaQgQagAWigmwYAGYirm7jQi0UvFhqABgAZQAaQgQagAWigmwYAGYirm7jQi0UvFhqABv4fyWmKCQrz03wAAAAASUVORK5CYII=)
[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
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Sage poslato Jun 25, 2021, 13:40:12 POSLE PODNE
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)
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: __vedran.xyz77 poslato Jun 25, 2021, 13:44:38 POSLE PODNE
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
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: Sage poslato Jun 25, 2021, 13:45:17 POSLE PODNE
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
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: __vedran.xyz77 poslato Jun 25, 2021, 13:48:58 POSLE PODNE
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)
Naslov: Odg: Jednostavan sistem MINI PD radara by tayloR
Poruka od: _tayloR poslato Jun 25, 2021, 13:53:31 POSLE PODNE
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.