Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Vito Lorenzo poslato Oktobar 17, 2017, 19:35:11 POSLE PODNE

Naslov: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Vito Lorenzo poslato Oktobar 17, 2017, 19:35:11 POSLE PODNE
Skripta koju koristim: afterwhile ( test mod )
Detaljan opis problema: Kada napisem primer komanda /givemoney /setstat, nbt sta da pisem kad napisem 99999999999 pada server, bilo koja komanda da napisem, /givemoney /setstat ( level itn ), jel moze neko resiti ovi bug, imam i server.log kodovi, bug e sa impl.inc ali nemoze da se opravi.
Dio skripte: Brojke
Neke slike/video za lakse dobivanje pomoci(neobavezno):   https://imgur.com/a/NUpm9 Evo slike, evo server.log :
19:12:32] Afterwhile Gaming - www.balkanemotion.hol.es
[19:12:32] v1.0.0 gamemode - Loading...
[19:12:32] v1.0.0 gamemode - Loaded.
[19:12:32] v1.0.0 gamemode by Hulk
[19:12:32] Number of vehicle models: 101
[19:13:05] [connection] 192.168.0.101 requests connection cookie.
[19:13:06] [connection] incoming connection: 192.168 id: 0
[19:13:06] [join] Hulk has joined the server (0:192.168.0)
[19:13:22] [debug] Run time error 4: "Array index out of bounds"
[19:13:22] [debug]  Attempted to read/write array element at index 3 in array of size 3
[19:13:22] [debug] AMX backtrace:
[19:13:22] [debug] #0 002981b4 in ?? (... <5 arguments>) at C:\Users\Hulk\Desktop\Afterwhile Zajednica\Afterwhile Community\gamemodes\AG.pwn:38021
[19:13:22] [debug] #1 00011900 in public OnDialogResponse (playerid=0, dialogid=76, response=1, listitem=-1, inputtext[]=@0314cff0 "karlos") at C:\Users\Hulk\Desktop\Afterwhile Zajednica\Afterwhile Community\pawno\include\YSI\y_hooks/impl.inc:2251
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Terza Lazarevic poslato Oktobar 17, 2017, 20:02:01 POSLE PODNE
Buraz zabrani da se upisuje toliki broj i jos koja bi budala upisala toliki broj  :D
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: ZvRk poslato Oktobar 17, 2017, 20:04:10 POSLE PODNE
Pazi, treba da napravis if komandu da ne moze da se da preko 99.999$. I nece ti dolazi do pada. Koliko znam nece dolaziti ni do 1.000.000 :)
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Vito Lorenzo poslato Oktobar 17, 2017, 20:21:01 POSLE PODNE
Citat: Tᴇʀᴢɪá´,, Sá´,,ʀɪᴘᴛ poslato Oktobar 17, 2017, 20:02:01 POSLE PODNE
Buraz zabrani da se upisuje toliki broj i jos koja bi budala upisala toliki broj  :D

Za inat neko ke napravi novac i ke ostavi u banci 9999999999, i srw shut down  :D , inace na neko cmd nemoguce je da se napravi kolicinu, zato trazim resenije sa pawno, zato sto na nekoj modove moze da se upotrebuvaju ovakvi cifre
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Bojan.amx poslato Oktobar 17, 2017, 20:35:49 POSLE PODNE
new novac;

if(strlen(novac) < 100 || strlen(novac) > 9999999) return SCM(playerid, -1, "Ne mozete toliku kolicinu novca setovati. (Min 100$, max 9999999$).");
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Vito Lorenzo poslato Oktobar 17, 2017, 21:28:39 POSLE PODNE
Citat: Bojan.amx poslato Oktobar 17, 2017, 20:35:49 POSLE PODNE
new novac;

if(strlen(novac) < 100 || strlen(novac) > 9999999) return SCM(playerid, -1, "Ne mozete toliku kolicinu novca setovati. (Min 100$, max 9999999$).");

Buraz, nije samo to, celi gmod je bugovan, celi gmod treba da stavim ovo sta ga dajes, zato preferiram da fixam problem, ne da stavim ovakvo kao sta dajes ti.
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: karburator poslato Oktobar 17, 2017, 21:31:58 POSLE PODNE
Citat: Vito Lorenzo poslato Oktobar 17, 2017, 21:28:39 POSLE PODNE
Citat: Bojan.amx poslato Oktobar 17, 2017, 20:35:49 POSLE PODNE
new novac;

if(strlen(novac) < 100 || strlen(novac) > 9999999) return SCM(playerid, -1, "Ne mozete toliku kolicinu novca setovati. (Min 100$, max 9999999$).");

Buraz, nije samo to, celi gmod je bugovan, celi gmod treba da stavim ovo sta ga dajes, zato preferiram da fixam problem, ne da stavim ovakvo kao sta dajes ti.
To ne mozes na drugi nacin fixati samo vako
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Slade poslato Oktobar 17, 2017, 21:37:11 POSLE PODNE
Pa jednostavno stavi kod unosa u tom dialogu da ne moze biti veci od npr 99999999 i nece moci nikako vise unjeti.
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Vito Lorenzo poslato Oktobar 17, 2017, 21:50:36 POSLE PODNE
Citat: Slade poslato Oktobar 17, 2017, 21:37:11 POSLE PODNE
Pa jednostavno stavi kod unosa u tom dialogu da ne moze biti veci od npr 99999999 i nece moci nikako vise unjeti.

brate to je na skoro svi srpski modovoi, ja sam iz Makedonije, kod nas nema ovakvih modove, /givemoney radi odlicno, a zasto je tako na srpski modovi ne znam ja to, valjda svi modovi su iz ist mod ( UP ), probacicu da fixati ovo, ako ne bude ke radim kao sto vi kazete.
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Łuk@ poslato Oktobar 17, 2017, 21:55:03 POSLE PODNE
Citat: Vito Lorenzo poslato Oktobar 17, 2017, 21:50:36 POSLE PODNE
Citat: Slade poslato Oktobar 17, 2017, 21:37:11 POSLE PODNE
Pa jednostavno stavi kod unosa u tom dialogu da ne moze biti veci od npr 99999999 i nece moci nikako vise unjeti.

brate to je na skoro svi srpski modovoi, ja sam iz Makedonije, kod nas nema ovakvih modove, /givemoney radi odlicno, a zasto je tako na srpski modovi ne znam ja to, valjda svi modovi su iz ist mod ( UP ), probacicu da fixati ovo, ako ne bude ke radim kao sto vi kazete.
fino ti je objasnjeno, ne mozes dati liku 9999999999999999999999999999999999999 el si realan tebra, stavi da ne moze preko 99999999 i manje od 1 i et
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Vito Lorenzo poslato Oktobar 18, 2017, 16:24:12 POSLE PODNE
Citat: Łukmember=1996][/member] link=topic=115511.msg768907#msg768907 date=1508270103]
Citat: Vito Lorenzo poslato Oktobar 17, 2017, 21:50:36 POSLE PODNE
Citat: Slade poslato Oktobar 17, 2017, 21:37:11 POSLE PODNE
Pa jednostavno stavi kod unosa u tom dialogu da ne moze biti veci od npr 99999999 i nece moci nikako vise unjeti.

brate to je na skoro svi srpski modovoi, ja sam iz Makedonije, kod nas nema ovakvih modove, /givemoney radi odlicno, a zasto je tako na srpski modovi ne znam ja to, valjda svi modovi su iz ist mod ( UP ), probacicu da fixati ovo, ako ne bude ke radim kao sto vi kazete.
fino ti je objasnjeno, ne mozes dati liku 9999999999999999999999999999999999999 el si realan tebra, stavi da ne moze preko 99999999 i manje od 1 i et

na makedonski gmodove to radi ( /givemoney 99999999999 ) , sakam ovo da fixati i da radi i kod moj gmod, mislim da je to do pawno ili neke skripte, ne mogu da stavim kolicine na 40 komandi, i opet server ke pada zbog neko komanda koja nije kolicinski ogranicene, igraci ke zloupotrebuvaju
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Shomyy poslato Oktobar 18, 2017, 17:14:47 POSLE PODNE
Citat: Vito Lorenzo poslato Oktobar 18, 2017, 16:24:12 POSLE PODNE
Citat: Łukmember=1996][/member] link=topic=115511.msg768907#msg768907 date=1508270103]
Citat: Vito Lorenzo poslato Oktobar 17, 2017, 21:50:36 POSLE PODNE
Citat: Slade poslato Oktobar 17, 2017, 21:37:11 POSLE PODNE
Pa jednostavno stavi kod unosa u tom dialogu da ne moze biti veci od npr 99999999 i nece moci nikako vise unjeti.

brate to je na skoro svi srpski modovoi, ja sam iz Makedonije, kod nas nema ovakvih modove, /givemoney radi odlicno, a zasto je tako na srpski modovi ne znam ja to, valjda svi modovi su iz ist mod ( UP ), probacicu da fixati ovo, ako ne bude ke radim kao sto vi kazete.
fino ti je objasnjeno, ne mozes dati liku 9999999999999999999999999999999999999 el si realan tebra, stavi da ne moze preko 99999999 i manje od 1 i et

na makedonski gmodove to radi ( /givemoney 99999999999 ) , sakam ovo da fixati i da radi i kod moj gmod, mislim da je to do pawno ili neke skripte, ne mogu da stavim kolicine na 40 komandi, i opet server ke pada zbog neko komanda koja nije kolicinski ogranicene, igraci ke zloupotrebuvaju
ako hoces da tako bude mozes ovako uraditi
if(novac > 99999999) return GivePlayerMoney(id, 99999999);
e sad, sa ovim kodom ti mozes ukucati npr /givemoney 99999999999999 ali ce mu dati 99999999$ posto u sampu ne moze vise od 99999999$ ....
EDIT: Ovo je kako sam te ja razumeo....
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Vito Lorenzo poslato Oktobar 18, 2017, 18:05:36 POSLE PODNE
Citat: [ ATH ] Shomy Script poslato Oktobar 18, 2017, 17:14:47 POSLE PODNE
Citat: Vito Lorenzo poslato Oktobar 18, 2017, 16:24:12 POSLE PODNE
Citat: Łukmember=1996][/member] link=topic=115511.msg768907#msg768907 date=1508270103]
Citat: Vito Lorenzo poslato Oktobar 17, 2017, 21:50:36 POSLE PODNE
Citat: Slade poslato Oktobar 17, 2017, 21:37:11 POSLE PODNE
Pa jednostavno stavi kod unosa u tom dialogu da ne moze biti veci od npr 99999999 i nece moci nikako vise unjeti.

brate to je na skoro svi srpski modovoi, ja sam iz Makedonije, kod nas nema ovakvih modove, /givemoney radi odlicno, a zasto je tako na srpski modovi ne znam ja to, valjda svi modovi su iz ist mod ( UP ), probacicu da fixati ovo, ako ne bude ke radim kao sto vi kazete.
fino ti je objasnjeno, ne mozes dati liku 9999999999999999999999999999999999999 el si realan tebra, stavi da ne moze preko 99999999 i manje od 1 i et

na makedonski gmodove to radi ( /givemoney 99999999999 ) , sakam ovo da fixati i da radi i kod moj gmod, mislim da je to do pawno ili neke skripte, ne mogu da stavim kolicine na 40 komandi, i opet server ke pada zbog neko komanda koja nije kolicinski ogranicene, igraci ke zloupotrebuvaju
ako hoces da tako bude mozes ovako uraditi
if(novac > 99999999) return GivePlayerMoney(id, 99999999);
e sad, sa ovim kodom ti mozes ukucati npr /givemoney 99999999999999 ali ce mu dati 99999999$ posto u sampu ne moze vise od 99999999$ ....
EDIT: Ovo je kako sam te ja razumeo....

Pa da i na se treba da setnam toa, /setstat [ level ] , ostavinovac kod banke i sve komande
Naslov: Odg: Oko pisanje brojke ( 9999999999 ) i pada server
Poruka od: Contixo poslato Oktobar 19, 2017, 09:59:23 PRE PODNE
Ne moze u 32bitni integer da stavis toliko brojeva/cifara.

Najveci broj koji se moze staviti u 32bitni int je:

[pawn]01111111111111111111111111111111‬[/pawn] u obliku nula i jedinica.

Sto je ekvivalentno sa cifrom

[pawn]2,147,483,647‬[/pawn]

Jednostavno savjet je da napravis if uslov i provjeru za veci broj novca. Isto tako ti savjetujem da drugacije isplaniras svoju ekonomiju na serveru da ne dolazi do tolikih cifara. Prvo zato sto ako slucajno taj igrac ima 99 miliona (npr.) Prilikom svakog spawnanja njemu ce se novac ponovno ucitavati i vrtiti ispod healtha dok ne dodje do te cifre. Drugo koji god da je server opterecujes ga s glupostima. Koja je poenta koristenja varijable sa toliko brojeva?

Mozda imaju neke tehnike kojim se rijesi problem ali ja ti savjetujem da skratis i ekonomiju i da postavis uslov za novac kao sto je kolega dao primjer.

Edit:

Isto tako u logu pise da pokusavas pristupiti elementu niza izvan njegovih granica. Ako neki niz ima recimo 5 clanova, ti ne mozes pristupiti njegovom 15om clanu.