[TuT] UPDATED - Popravljanje bagova za obaranje na UPu

Započeo lv, Maj 17, 2016, 01:42:51 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

lv

*

Prethodna tema je zakljucana od strane administratora, ne znam zasto i onako sam hteo da je update-ujem...
I mislim da bi ovu temu trebalo staviti sticky jer nisam video nijedan ovakav tutorijal, a mnogo ljudi se muci sa UP modom, jer je, da se ne lazemo jedan od najkoriscenijih danas.



Pozdrav, vidim da se mnogo vas pati sa UP modom, i pita koji su bagovi za obaranje servera i tih stvarcica.. Ja sam uspeo da pronadjem za sada 4 BAG-a ! A to su
Update: 16.05.2016: Pronadjena su jos 4 nova bag-a, a ima ih jos mnogo.

1. Znak % u input dialozima
2. Duzina lozinke veca od 24 simbola/znaka/slova
3. Boja vozila => 9999 9999
4. /prome(je)nipass
5. SCMF funkcija
6. Stockovi koji se nigde ne koriste
7. Gunshop
8. Infinite string

Potrebno nam je
UnderPoint Mod :D

Pa da krenemo sa popravkama...
Prvo radimo znak % .. Nemojte odmah misliti da trebate ispod svakog dialoga da pravite provere da li je upisan znak % , ili tako nesto.. Vec samo pod OnDialogResponse trebate staviti jednu jedinu proveru.. Evo ovako izgleda

if(strfind(inputtext, "%", true) != -1) // Ukoliko u dialogu server pronadje znak %, sta da radi
{
    SCM(playerid, -1, " Nema ovde obaranja, cibe"); // Salje mu bezobraznu poruku
        return 1;
}

I eto, to je jedan bag ... Sada krenimo na drugi
Duzina lozinke.. Takodje, samo trebate promeniti jedan broj :)
Nadjite na UP modu

MAX_DUZINA_LOZINKE

Kada ste nasli to, iza MAX_DUZINA_LOZINKE pise vam broj 26.. Jednostavno, promenite na neki manji broj.. Recimo 14-15 .. I tako igrac vise nece moci da upise vise od 14 znakova, i server nece pasti...
Ok, idemo na finalni bag, koji sam ja uspeo da nadjem.. A to je da stavite boju vozila na 9999 9999... Takodje, tu samo jedna linija resava problem, ali morate u svim dialozima za farbanje vozila dodati ovo

if(boja[0] >= 255|| boja[0] <= 0 || boja[1] <= 0 || boja[1] >= 255) return SCM(playerid,-1, "Ne mozes koristiti taj ID");

To jednostavno dodajte ispod svakog dialoga za farbanje vozila...
UPDATE: Hvala Levu-u za ovo...
Sledeci bug je /promjenipass, /promenipass .. I tamo morate odraditi ovo.. Dakle, u Up modu nadjite ovo

if(strlen(params) > 26) return SCM(playerid, -1, ""CRVENA"[GRESKA] "SIVA"Lozinka je previse dugacka (Max 26 znakova)!");

Jednostavno, promenite u ovo

if(strlen(params) > 14) return SCM(playerid, -1, ""CRVENA"[GRESKA] "SIVA"Lozinka je previse dugacka (Max 14 znakova)!");

Eto, to je to :) To su svi bagovi koje sam ja uspeo da nadjem, ne kazem da su svi, mozda ima jos koji, ali to su najpoznatiji :)
* UPDATE *
16.05.2016.
Istrazivao sam jos malo skriptu, raspitivao se i pronasao jos koji bag. ;)

Pa pocnimo. Prvi novi bag je SCMF.
Stock SCMF koji koristite i sada na UP modu je prestar i naravno nije skroz kompatibilan sa YCMD i ZCMD... Pa tako kada ukucate 2-3 puta /spodesavanja server ce pasti jer je ta komanda pisana u SCMF.. Sada zamislite da imate server od 20+ igraca i da svako ukuca komandu koja ima SCMF u sebi.. Server puca EZ.
RESENJE: Koristite string umesto SCMF, jeste duze, ali bolje da vam server radi neko da pada.

Drugi bug su stockovi koji se nigde ne koriste. Ja sam ih pronasao tri
Stock stock Log(file[], string[])
forward SendAdminMessage(color, string[]);
stock PointOverString

Nisam siguran da li ovi stock-ovi i forwardi imaju sta sa padanjem servera, ali nisu nigde iskorisceni stoga sam ih uracunao kao nepotrebne u skripti...

Treci bug je gunshop.. Jedan prijatelj preko fejsa, ophion, mi je rekao za ovaj bag.. Nisam mogao da verujem, ali tacno je...
Kada se za kratko vise puta u gunshopu kuca /kupi server ce pasti. Ne znam zasto... Pokretao sam SAMP sandboxed i sa 3 razlicita profila sam ovo uradio i server je uvek pao.
RESENJE: Na zalost, ne znam stvarno kako bih ovo resio... Ali imam neka privremena resenja...
Obrisite gunshop biz i neka vam gunshop bude obican interijer kao opstina..
Koristite /save da dobijete koordinate mesta gde zelite da se kupuje oruzje i koristite IsPlayerInRangeOfPoint(playerid, 3.0, x, y, z); umesto provere da li je blizu izlaza firme.

Poslednji bug u update-u je infinite string... Da... Nisam verovao da ima [cenzura] koje ovo da rade, ali eto, klince i ljubomorne budale nista ne zaustavlja od rusenja tudjeg truda.. Znaci kada neko unese, pazite sad... 32952 karaktera u input dialog server puca... Nisam siguran kako to rade, verovatno ima na internetu negde samo copy...
RESENJE: Samo pod OnDialogResponse napravite proveru da ukoliko npr. igrac upise vise od 24 karaktera bude SCM(playerid, -1, "ne mozes vise od 32 karaktera bla bla"); ili tako nesto..

To je to sto se tice update-a 16.05.2016. Ukoliko vi znate neki bug ne budite ... znate vec sta... recite da i drugi znaju kako bih mogao ja napisati u temu.. Creditsi ce vam biti dati.. Zasto da dopustimo da ljubomorni klinci ruse tudji trud.. Da se razumemo, nema servera koji danas ne koristi UP mod i koji se ne zajebava sa ovim bagovima.

Credits: Rooky, Paolo , Levu, Ophion
Pišem skriptu isključivo kad sam naduvan

Stavis kao Lukenzi na BE/LV da se komande mogu koristiti svake 2s i eto reseno /kupi.

exDeveloper | Generation, Zara Gaming, Meanwhile |
"If nobody hates you, you're doing something wrong."


Citat: TheP4vO poslato Jul 29, 2014, 20:42:16 POSLE PODNE
Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D

thanks :p
EDIT: 'Ja sam ih pronasao tri" bice vise xD ima ih vise od 20 napisacu ti na fejs :3
@Lazarevic
Poslednja Izmena: Maj 17, 2016, 11:20:43 PRE PODNE od ophion
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Evo ti

http://pastebin.com/FMSf9XUH

Definisi samo Error ili prebaci u SCM :D

exDeveloper | Generation, Zara Gaming, Meanwhile |
"If nobody hates you, you're doing something wrong."


Citat: TheP4vO poslato Jul 29, 2014, 20:42:16 POSLE PODNE
Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D

 @Levu  http://pastebin.com/S17dXaM3 :)
EDIT:ja imam jednostavniju funkciju od te za text
Poslednja Izmena: Maj 17, 2016, 11:33:45 PRE PODNE od ophion
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

lv

*

Pronasao sam alternativno resenje za one koje mrzi da menjaju SCMF u format. Imate Y_Less-ov y_va, updatujem temu.

Nemam perm da editujem temu. Kako god, za SCMF koristite ovo
Na vrh skripte dodajte

#include <YSI\y_va>


I medju stockove ovo


SCMF(playerid, colour, format[], va_args<>)
{
    new out[384];
    va_format(out, sizeof (out), format, va_start<3>);
    SendClientMessage(playerid, colour, out);
    return 1;
}
Poslednja Izmena: Maj 17, 2016, 11:51:21 PRE PODNE od [NE] Lazarevic
Pišem skriptu isključivo kad sam naduvan

Komanda /podesinovac ima bug > http://prntscr.com/b51sdn
umesto playerid target :)
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci


Extazy je lepo optimizovan sve pogledajte tu i to vam je to :)

Fino objasnjeno, ali to bi svaki skripter trebao da rijesi bez ove pomoci koji pokusava od UPa da napraviti nesto... :)

lv

*

Naravno da bi trebao.. Ali malo pomoći nikome neće loše biti... Da. BExtazy takodje moze da posluži za fix nekih bagova.
Pišem skriptu isključivo kad sam naduvan