Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Recommended Posts

Admin

Není zbytečné u té funkce OnlyNumbers kontrolovat každý znak jeslti ej číslo ? Není jednodužší rovnou zkontrolovat jestli je to celé číslo ?

Sdílet tento příspěvek


Link to post
Share on other sites
Moderátor

Ewwe má pravdu, ale z hlediska estetiky pro uživatele to bude hezčí. Přeci jenom když zadá čistě text a napíše se mu "Nelze vybrat 0$," tak to není vůbec ono. 

 

 

Jinak je tam redundantní kód 

if (!response) return true;
   
return true;

Tohle by mohlo jít mimo toho switche

 

 

Možná by bylo ještě fajn ošetřit přetečení hodnotou 2^32-1 :d

Sdílet tento příspěvek


Link to post
Share on other sites
Admin

Ewwe má pravdu, ale z hlediska estetiky pro uživatele to bude hezčí. Přeci jenom když zadá čistě text a napíše se mu "Nelze vybrat 0$," tak to není vůbec ono. 

 

Jak to myslíš ?

Sdílet tento příspěvek


Link to post
Share on other sites
Moderátor

Říkals jestli není jednodušší zkontrolovat jestli je to číslo

 

strval("asdasdgdg") ==> 0

strval("123sdfdsf") ==> 123

strval("asdas456564") ==> 0

 

Z 2/3 případů vrací 0, ve tvém případě by se uživateli vypsalo "Nelze vybrat/vložit 0$", což není úplně hezký

Sdílet tento příspěvek


Link to post
Share on other sites
Author of the topic Odesláno před (upraveno)

To bych mohl, to je pravda. Jsem fci přidal hlavně kvůli záporu, aby se pak nemuselo všude zjišťovat menší nebo rovno ale rovnou fakticky pouze kladná čísla.

 

//edited, upraven topic.

Edited by Ernst Remer

Sdílet tento příspěvek


Link to post
Share on other sites
Admin

Jak to myslíš ?

Být to PHP, mohlo by strval vracet false a použil bys jednoduše operátor ===, tady to holt vrací nulu jak pro strval("0"), tak pro strval("asdf"). icon_e_biggrin.gif Zas ale nemůžu chtít zázraky od jazyka, který datové typy nerozeznává (o tagech Float, bool apod. nemluvme).

 

Jinak návod je v pohodě. Aktuální návody pro tento a podobné systémy tu momentálně nejsou (alespoň co vím), takže se to hodí. Ty z roků 2008 a 2010 už akorát přidělávají práci helperům, kteří pak musí opravovat zastaralé kódy.

Sdílet tento příspěvek


Link to post
Share on other sites

Ospravedlňujem sa za otváranie starého topicu, ale všimol som dosť podstatný bug.

Nie je ošetrený výber (ani vklad) zápornej čiastky.
Funkcia OnlyNumbers mi síce zabráni napísať do dialogu priamo zápornú hodnotu, ale myslím, že mi nič nebráni docieliť zápornú hodnotu pomocou overflowu. 
Napríklad tak, že by som do dialogu na výber peňazí napísal sumu 2147483649 (2^31 + 1).

Funkcia OnlyNumbers ma nezastaví, pretože každý znak v reťazci "2147483649" je platná číslica.
strval("2147483649") vracia hodnotu -2147483647.
if (GetPlayerMoney(playerid) < strval(inputtext)) ma nezastaví, pretože budem mať pri sebe viac $ ako -2147483647.
Riadok GivePlayerMoney(playerid, -strval(inputtext)); nakoniec spôsobí, že mi server vyplatí 2147483647 $ aj napriek tomu, že som v banke nemusel mať uložené vôbec nič.

Edited by DuFF

Sdílet tento příspěvek


Link to post
Share on other sites
Author of the topic Odesláno před (upraveno)
před 28 minutami, DuFF said:

Ospravedlňujem sa za otváranie starého topicu, ale všimol som dosť podstatný bug.

Nie je ošetrený výber (ani vklad) zápornej čiastky...(více)

To je sice dobrá přípomínka ale tohle je (k tomu ještě 3 roky starý) tutoriál a ne publikovaný FS. Návod je plně zaměřený na tvorbu Banky, to znamená na vklad, výběr a manipulace. Tvoje připomínka už spadá do kategorie optimalizace.
Mimochodem, všimni si poslední věty:

On 18. 4. 2017 at 21:37, Scydo said:

PSS: Ano, jde to udělat ještě lépe, ale já jsem to chtěl zpracovat jednoduchou a snadně-pochopitelnou cestou.

Tím myslím, že tohle je jedna z možností, jak zpracovat Banky, ne celý FS.

Edited by Scydo

Sdílet tento příspěvek


Link to post
Share on other sites
Admin
před 15 hodinami, Scydo said:

To je sice dobrá přípomínka ale tohle je (k tomu ještě 3 roky starý) tutoriál a ne publikovaný FS. Návod je plně zaměřený na tvorbu Banky, to znamená na vklad, výběr a manipulace. Tvoje připomínka už spadá do kategorie optimalizace.
Mimochodem, všimni si poslední věty:

Tím myslím, že tohle je jedna z možností, jak zpracovat Banky, ne celý FS.

Náhodou je to velmi dobrá připomínka, kterou je potřeba brát v potaz nejen v těchto typech systémů. Overflow je vážná bezpečnostní díra, se kterou by se mělo počítat od základu :)

Sdílet tento příspěvek


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Zde můžete odpovědět na toto téma...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Obnovili jsme váš původní obsah (obsah napsaný před zavřením).   Smazat obnovený obsah

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...