Právě je ned 20. kvě 2012 7:30:29
Hosting WEDOS.cz
SLEVA 25% (slevový kód:PAWNO25)

Nejnovější témata:
[Prezentace]GameMix Hosting a Adminka od No.Wolf
[HOSTING] Hledáme od MarekH
[SCRIPT/INC] Colored Checkpoint v1 (QCCP v1) od QWER
[HLEDAM] Status hračov od aburi
[GM] Lucky Adventures od martanius

Vyzkoušejte antivirus ESET Smart Security 5

Vyhledat témata bez odpovědí | Zobrazit aktivní témata Zobrazit nové příspěvky | Zobrazit vaše příspěvky


Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 34 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 30. říj 2011 23:25:24 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

Cyklus a všetko o ňom


Obsah návodu: Čo je to cyklus, Ako funguje cyklus, Využitie,
Obtiažnosť : ObrázekObrázekObrázekObrázekObrázek


Obsah:

1) Čo je to cyklus
1.a) Využitie
2) Druhy cyklusov a ich využitie
2.a) Rýchlostné testy (cyklistické závody)
3) Funkcie v cykloch

1) Čo je to cyklus

Cyklus je funkcia ktorá vytvára slučku. Slučka sa opakuje dovtedy, kým sa nesplní podmienka, ktorú sme si dopredu určili. V podstate sa cyklus dá vyjadriť aj pomocou funkcie goto, ale to ukážem až na konci návodu.

1.a) Využitie
Využitie je skoro nekonečné, od funkcií pre všetkých hráčov napríklad "GiveMoneyForAll" až po cyklenie pre všetky nehnuteľnosti

2) Druhy Cyklov
Poznáme 4 + 1 druhov cyklov. Najpoužívanejší je for po ňom je while po while následuje do while, predposledný je zase goto while a na poslednom mieste (ak ste si všimli nenapísal som "Poznáme 5 druhov cyklov" ale 4 +1) následuje funkcia, ktorá není cykus ale môže sa pomocou nej jednoducho urobiť goto

Každý cyklus má svoj špecifický spôsob používania.

Cyklus for
Kód:
for(new premena; premena < 5; premena++) 

new premena = vytvorí premenu, ktorá sa bude zvečšovať
premena < 5 = podmienka, dokedy sa bude cyklus opakovať
premena++ = o koľko sa bude zvyšovať/znižovať hodnota premenej...

Najčastejšie uvidíte niečo takéto
Kód:
for(new i; i < MAX_PLAYERS;i++){
if(
IsPlayerConnected(i)){
SetPlayerHealh(i,100);
}

Tento mini-script vytvorí cyklus, a každému hráčovy, ktorý je pripojený na servery, nastaví život na 100. Ako som spomínal na začiatku, využitie je nekonečné.

Cyklus while
Kód:
new premena;
while(
premena < 5){
premena++;
}

new premena = vytvorí premenu... aké prekvapivé
premena < 5 = podmienka, dokedy sa bude premene "premena" pridávať hodnota
premena++ = nastavovanie premene hodnotu...

Najčastejšie môžete vidieť
Kód:
new i;
while(
< MAX_PLAYERS){
if(
IsPlayerConnected(i)) GivePlayerMoney(i,500);
i++;
}

Vytvorí premenu, premena nespĺňa podmienku (novo vytvorená premena má automaticky hodnotu 0) tak je hráč na servery, pridá mu 500$ a zvýši hodnotu premenej o 1 (premena+=1)..
Cyklus do-while

Málo používaný cyklus
Kód:
new premena;
do
{
    GivePlayerWeapon(i,38,500);
    i++;
}
while (< MAX_PLAYERS);

Je to vlastne to isté ako pri while, lenže funkcie miesto do "while" píšete do "do"...
Využívajú ho ľudia vtedy, keď sa cyklus opakuje min. 1x ale je to cyklus ako všetky ostatné... predsa keď niečo nechcete aby sa opakovalo tak nepoužijete cyklus... tento cyklus ani goto-while som nevyužil...

Cyklus goto-while

Tiež málo používaný cyklus
Kód:
new premena;
cyk:
while(
premena < 5){
premena++;
goto cyk;

Je to rovnaké ako u while, lenže sa vlastne vráti nad cyklus... 
a tak sa znova vyvolá tá podmienka

Využitie napríklad
Kód:
new i;
cyk:
while(
i<MAX_PLAYERS){
if(
IsPlayerConnected(i)) SetPlayerVirtualWorld(i,5+i);
i++
goto cyk;

Vytvorí premenu, potom "vraciaci" sa bod, potom príde na rad cyklus, podmienka či je na servery, ak je tak mu dá hráčovy 
virtual world 5+ID_Hráča pridá hodnotu premene a nakoniec 
funkcia "goto" sa vráti na uktovený bod "cyk"

Extra cyklus

Nevyužívajte ho moc, ale je to dobrá pomôcka, na vysvetlenie ako funguje cyklus
Kód:
new premena;
cyklus:
if(
premena < MAX_PLAYERS){
if(
IsPlayerConnected(premena)) ResetPlayerWeapons(premena);
premena++
goto cyklus;

Ak sa podmienka nesplní, tak sa vyvolá znova všetko v podmienke a tak znova a znova až kým sa nesplní podmienka...

2.a) Rýchlostné testy
Určite sa teraz rozhodujete, ktorý cyklus budete používať vy. Môžete si vybrať ten, ktorý je vám najsympatickejší, ale aj ten, 
ktorý je najrýchlejší. Dovolil som si spraviť veľký test cyklov. Tu sú výsledky (Ako testovať vlastné scripty vám ukážem niekedy inokedy...):

for 9 848 milisekúnd (9,84 sekundy)
while 9 734 milisekúnd (9,73 sekundy)
do-while 9 785 milisekúnd (7,78 sekundy)
goto-while 9 857 milisekúnd (9,85 sekundy)
goto 9 990 milisekúnd (9,99 sekundy)

Najrýchlejší je while, potom do-while, goto-while, for a najpomalší je goto...
Rýchlosť je závislá od CPU, tz. pri každom PC sú iné výsledky a môže byť aj iný najrýchlejší !

Testoval som 1000*5000 (cyklus v cykle)

3) Funkcie v cykloch

Kód:
continue 

Funkcia pri ktorej cyklus pokračuje, no táto hodnota je "preskočená". Ja viem, znie to náročne ale je to jednoduché, viz ukážka.

Kód:
for(new i; i < 500;i++){
if(!
IsPlayerConnected(i)) continue;
Ban(i);

Ak hráč není pripojený, tak ho to "preskočí" napríklad má premena "i" hodnotu 47 a hráč s id 47 není pripojený,
 tak ho to preskočí a ide 48... (ako kebyže dáte pri goto-while (if(!IsPlayerConnected(i)) goto cyk;)

Kód:
break 

"Násilne" zastaví cyklus... Napríklad chcete zistiť iba najvyššie pripojené ID, tak je blbosť aby cyklus prešiel celých 500 id keď môže iba 400 (príklad)

Kód:
new najvyssieid;
for(
new i = GetMaxPlayers(); i => 0;i--){
if(
IsPlayerConnected(i)){
najvyssieid = i;
printf("Najvyssie pripojene ID je %d",najvyssieid);
break;
}
}



To by malo byť všetko...
S pozdravom
QWER


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pon 31. říj 2011 12:31:01 
The Truth
The Truth
Uživatelský avatar
Registrován: úte 03. kvě 2011 18:43:36
Příspěvky: 556
Bydliště: Slovakia

VÝBORNÉ!! 10/1

_________________
BRUNES.cz
Creative Scriping
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pon 31. říj 2011 14:11:17 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: čtv 08. říj 2009 16:36:48
Příspěvky: 847

BrUn3S píše:
VÝBORNÉ!! 10/1




VYBORNE!! 0/0 reagujem k brunesovmu prísmevku




QWER vidím že chceš tieto lamy niečo naučiť, to sa cenní, ale sám vidíš odozvu.



//EDIT: Čo to nevidím "Nejoblíbenější sekční moderátor" QWER pekná hodnosť :D mne by sa zišla "Najnenávidenejší globálni kritik" :D


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pon 31. říj 2011 16:48:59 
Moderátor
Moderátor
Registrován: čtv 28. dub 2011 18:53:54
Příspěvky: 1451

mohl jsi jít trochu více do teorie a né hned do praxe .. např. loop 'do', vůbec o něm tam nemáš, pokud vím tak loop do se používá pokud chceš aby cyklus jel alespoň jednou ...

jinak dobrý, 9/10

_________________
Používejte mozek! Snadněji tak vyřešíte záhadu Schrödingerovy kočky.


Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pon 31. říj 2011 17:09:14 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

j ale načo to tam budem písať keď to nikto nevyužije...

Citace:

QWER vidím že chceš tieto lamy niečo naučiť, to sa cenní, ale sám vidíš odozvu.

Zvykol som si...

Citace:
//EDIT: Čo to nevidím "Nejoblíbenější sekční moderátor" QWER pekná hodnosť :D mne by sa zišla "Najnenávidenejší globálni kritik" :D

:D Ja som tú hodnosť vyhral xD... nj, ty by si ju mohol dostať

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pon 31. říj 2011 17:29:44 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Registrován: úte 01. bře 2011 10:57:34
Příspěvky: 629
Bydliště: Opava

dobré, používám ale jen for :D možná začnu i do-while

_________________
Slavné hlášky
„Smrt jednoho je tragédie. Smrt milionů je statistika“... stalin
„vidim hned první chybu misto GivePlayerWeapon má být GetPlayerWeapon“... cjcarl
„ja pawn viem, len som lenivý spravit si vlastný mod“... jakubes
zapoj mozog..keď to nejde tak skús znovu skopírovať ten kód... jakubes


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pon 31. říj 2011 17:46:18 
Eddie Pulaski
Eddie Pulaski
Uživatelský avatar
Registrován: pon 26. led 2009 22:20:55
Příspěvky: 1577

Yes "joker" To je ono Quere ! xD

_________________
Dělte se o svou zkušenost.
Je to cesta jak dosáhnout nesmrtelnosti. Dalajlama



DeviantArt http://exodusone.deviantart.com/


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: úte 01. lis 2011 19:28:09 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: stř 21. črc 2010 11:45:46
Příspěvky: 903

čekal jsem něco víc.... ale určitě kdybych naprosto nechápal cyklusy toto mi pomuže...

_________________
"Na nikoho si nehraju, takže s mým chováním nemám šanci zapadnout"
"Netrpím samomluvou, jen si někdy potřebuji popovídat s někým inteligentním"


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: stř 02. lis 2011 21:27:00 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: úte 02. bře 2010 0:38:52
Příspěvky: 705
Bydliště: Internet

QWER zabil ponga.. A opravnene...

_________________
"Dôležité je víťazstvo celého tímu a nie osobné štatistiky." - Marcel Hossa
Vy máte ve vládě gorily a my kokoty - kazlik


Obrázek


Kontakt :
Skype : playhosting.tp
ICQ : 579-854-270
E-Mail : majkx5@gmail.com


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: sob 05. lis 2011 14:21:27 
The Truth
The Truth
Uživatelský avatar
Registrován: úte 08. úno 2011 19:36:09
Příspěvky: 596

1o0O/1 ako vzdy qwere uzasne a sprav aj druhy diel s Ysi atp :D

_________________
Big Fail=> http://pawno.cz/rcon-cracker-t20120.html


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: čtv 17. lis 2011 21:46:55 
Barry Thorne "Big Bear"
Barry Thorne "Big Bear"
Uživatelský avatar
Registrován: sob 02. kvě 2009 16:58:47
Příspěvky: 384

Velmi pěkný TUT. Toto hodnotim jako výborný s * :D

BTW: do-while 9 785 milisekúnd (7,78 sekundy) ;)

_________________
Obrázek
Spoiler:
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: čtv 17. lis 2011 22:43:24 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

jaj maly sek... btw dik

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pát 23. pro 2011 20:17:21 
Moderátor
Moderátor
Registrován: čtv 28. dub 2011 18:53:54
Příspěvky: 1451

Rád bych sem dodal cyklus pro hráče (optimalizovaný).
Funguje to tak že když máte připojené ID např. 2,4,5 tak se vyvolají 4 cyklusy namísto (MAX_PLAYERS) 800 cyklů ;).

Proměnná se dvoumi poli (nebo si můžete udělat 2 proměnné, je to jedno)

Kód:
new Players[2]; // Players[0] = max. připojené ID, Players[1] = min. připojené ID   


A teď OnPlayerConnect.

Kód:
if(!IsPlayerNPC(playerid)) { // pokud není hráč NPC
    if(playerid > Players[0]) Players[0] = playerid; // pokud jeho ID je největší připojené zapíšeme ho do proměnné
    if(playerid < Players[1]) Players[1] = playerid; // pokud jeho ID je nejmenší připojené zapíšeme ho do proměnné


A OnPlayerDisconnect

Kód:
if(!IsPlayerNPC(playerid)) // pokud není NPC
{
    if(playerid == Players[1]) // pokud jeho ID je nejmenší připojené
    {
        for(new i=Players[0];i>playerid;i--) // spustíme cyklus, do i dáme hodnotu největšího připojeného ID a budeme hledat nové nejmenší ID
        {
            if(IsPlayerConnected(i)) // pokud je vůbec připojen
            {
                Players[1] = i; // tak ho zapíšeme do proměnné
            }
        }
         }
    if(playerid == Players[0]) // a pokud je největší připojené id
    {
        for(new i=Players[1];i<playerid;i++) // spustíme cyklus s nejmenší a do i zapíšeme nejmenší připojené id 
        {
            if(IsPlayerConnected(i)) // pokud je hráč připojen
            {
                Players[0] = i; // zapíšeme ho do proměnné
            }
        }
    }


Zde je vylepšovák:
Kód:
#define ForPlayers(%0)                for(new %0=Players[1];%0<=Players[0];%0++)   


Použití:

Kód:
ForPlayers(i) 
{
if(
IsPlayerConnected(i))
{
GivePlayerMoney(i,9999999999);
}} 


A máme o několik % CPU menší! :)

PS.: Je to z Petrovu návodu díky kterému jsem snížil CPU, moc ti za to děkuju péťo ;) . Napsal jsem to sem protože jeho TuT je mezi starými návody..

_________________
Používejte mozek! Snadněji tak vyřešíte záhadu Schrödingerovy kočky.


Obrázek


Naposledy upravil Mort dne pát 23. pro 2011 20:35:16, celkově upraveno 2

Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pát 23. pro 2011 20:25:38 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

ForPlayer(i)
{
if(IsPlayerConnected(i))
{
GivePlayerMoney(playerid,2500);
}}

niečo tu nesedí

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pát 23. pro 2011 20:26:37 
Moderátor
Moderátor
Registrován: čtv 28. dub 2011 18:53:54
Příspěvky: 1451

QWER píše:
ForPlayer(i)
{
if(IsPlayerConnected(i))
{
GivePlayerMoney(playerid,2500);
}}

niečo tu nesedí


njn, psal jsem to na rychlo .. chybička opravena!

_________________
Používejte mozek! Snadněji tak vyřešíte záhadu Schrödingerovy kočky.


Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pát 23. pro 2011 20:30:21 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: čtv 08. říj 2009 16:36:48
Příspěvky: 847

QWER píše:
nj, ty by si ju mohol dostať


Nebolo by zlé


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pát 23. pro 2011 20:31:29 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: stř 21. črc 2010 11:45:46
Příspěvky: 903

QWER píše:
ForPlayer(i)
{
if(IsPlayerConnected(i))
{
GivePlayerMoney(playerid,2500);
}}

niečo tu nesedí


Taky si říkam že 2500 je málo :problem: :problem: :problem: :D :D

_________________
"Na nikoho si nehraju, takže s mým chováním nemám šanci zapadnout"
"Netrpím samomluvou, jen si někdy potřebuji popovídat s někým inteligentním"


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 26. úno 2012 11:19:22 
Cesar Vialpando
Cesar Vialpando
Uživatelský avatar
Registrován: stř 11. lis 2009 16:04:05
Příspěvky: 1911
Bydliště: NightCore a GrooveRadio

Pekne no chyba ty tam continue ;)


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 26. úno 2012 12:31:57 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

3) Funkcie v cykloch

a hneď pod tým je continue;
btw ti a nie ty

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: pát 16. bře 2012 17:54:32 
Moderátor
Moderátor
Registrován: čtv 28. dub 2011 18:53:54
Příspěvky: 1451

Tutoriál na cyklus do-while jsem psal do časopisu, ale nejspíš si ho nikdo nepřečetl. Snad si ho někdo přečte tu, co já s ním u sebe :D


Spoiler:
Takže znovu ahoj, dnes se podíváme na málo využíváný i přesto užitečný a zajímavý cyklus do-while. Někteří jistě pochopili již tento cyklus dávno a kdo ne, máte šanci díky tomuto článku.
Takže jdeme na to! :)

Jak funguje cyklus do-while?

Cyklus ve svorkách do ( {} ) se vykonává pokud podmínka (while) je vykonána. Pokud podmínka je splněna, tak cyklus se opětovně vrací nad strukturu do { }.
Asi to zní složitě, ale není tomu tak. Proto jsem si pro Vás připravil tento obrázek, který znázorňuje funkci do-while.

Obrázek



Aneb cyklus do-while se vykonává, pokud chcete aby se provedla akce alespoň jednou.


Kde se dá cyklus použít?

Abych byl úpřimný, tak tento cyklus je takové plus pro pawn. Jelikož je tento cyklus pomalejši než while a dá se nahradit cyklem while (fungují na stejném principu), tak se moci využít nedá. Ale naděje umírá poslední, proto Vám ukážu jeden příklad s funkcí random.


Kód:
new rand1, rand2;
rand1 = random(2);
do
{
    rand2 = random(2);
}
while(
rand1 != rand2);



Teď si to trochu vysvětlíme. Vytvořili jsme dvě lokální proměnné. První jsme použili a zapsali jsme do něj náhodné číslo (0 nebo 1). Potom jsme spustili cyklus. V cyklusu jsme použili naši druhou proměnnou a zapsali jsme do ní další číslo (1 nebo 0). Jakmile se kód v do udělá, přeskočí se na podmínku while. Podmínka znamená pokud v první proměnné není hodnota stejná jako v druhé proměnné. Tím pádem můžeme dostat do proměn jenom hodnoty 0 a 1. A můžete si to vyzkoušet, když do callbacku OnGameModeInit nebo OnFilterScriptInit vložíme tento kód:

Kód:
printf(„rand1 = %; rand2 = %d“,rand1,rand2);


Samozřejmě že by se to dalo udělat pomocí while nebo goto, ale tento způsob se mi zná nejjednoduší, ale pokud opravdu chcete co nejvíce optimalizovat, tak použijte cyklus while :).

_________________
Používejte mozek! Snadněji tak vyřešíte záhadu Schrödingerovy kočky.


Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 21:32:47 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: čtv 31. črc 2008 11:00:48
Příspěvky: 784
Bydliště: mozkomor :D

pardon že to otevírám ale mám otázečku
udělal jsem cyklus
Kód:
new str1[128];
format(str1,128,"%d",inputtext);

for(new i;i <= str1; i++) {
new str2[128];
format(str2, 128,"%d", i);
SendClientMessage(playerid,0xFFFFFFFF,str2);
}


a neustále mi to vyhazuje problém u for.. array must be indexed (variable "str1")
ale když udělám např str[0] tak se to nezopakuje kolikrát chci ... kde dělám chybu ?


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 21:34:21 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

nemôžeš dať string... jedine integer (možno aj float - neskúšal som)

ale neviem čo chceš urobiť... Ak napíšeš čo chceš urobiť, tak ti môžem poradiť

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 21:40:52 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: čtv 31. črc 2008 11:00:48
Příspěvky: 784
Bydliště: mozkomor :D

jde o to že uživatel zadá do dialogu číslo kolikrát se má cyklus zopakovat

číslo jsem se pokusil dát do proměnné str1 a tuto proměnnou použít jako počet opakování ve for

prakticky nás ted zajímá jen tato část kodu omlouvám se že jsem tam nakopíroval i zbytek
Kód:
new str1[128];
format(str1,128,"%d",inputtext);

for(new i;i <= str1; i++)


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 21:43:32 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

Kód:
new str1[128];
format(str1,128,"%d",inputtext);
new len = strlen(inputtext);
for(new i;i < len; i++)

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 22:09:46 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: čtv 31. črc 2008 11:00:48
Příspěvky: 784
Bydliště: mozkomor :D

přestávám chápat jak to funguje :D v této syntaxi se to zopakuje pouze jednou když přidám rovnítko tak se to zopakuje o jedno mín než požaduji


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 22:14:11 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

:D nechápem vôbec tej vete

posledný znak je "\0" a on sa neráta takže to <= tam nemá byť

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 22:36:39 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: čtv 31. črc 2008 11:00:48
Příspěvky: 784
Bydliště: mozkomor :D

prostě mám
Kód:
new len = strlen(inputtext);

for(new i;i < len; i++) {

SendClientMessage(playerid,0xFFFFFFFF,"ahoj");
}


jenže když v dialogu zadám třeba 4 tak se to vypíše jen 2x či jinej počet ...


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 22:39:03 
Moderátor
Moderátor
Uživatelský avatar
Registrován: čtv 11. čer 2009 12:47:03
Příspěvky: 2228

Red beanie píše:
prostě mám
Kód:
new len = strlen(inputtext);

for(new i;i < len; i++) {

SendClientMessage(playerid,0xFFFFFFFF,"ahoj");
}


jenže když v dialogu zadám třeba 4 tak se to vypíše jen 2x či jinej počet ...


Kód:
new a = strval(inputtext);

for(
new i; i<a; i++) {
SendClientMessage(playerid,0xFFFFFFFF,"ahoj");
}

_________________
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 22:43:02 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: čtv 31. črc 2008 11:00:48
Příspěvky: 784
Bydliště: mozkomor :D

cože ? :D dit je to to samí jen z "len" je "a" a najednou to funguje . :D tak to je dopíči haluz


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Cyklus a všetko o ňom [**]
PříspěvekNapsal: ned 22. dub 2012 22:45:13 
Moderátor
Moderátor
Uživatelský avatar
Registrován: čtv 11. čer 2009 12:47:03
Příspěvky: 2228

Red beanie píše:
cože ? :D dit je to to samí jen z "len" je "a" a najednou to funguje . :D tak to je dopíči haluz


[wiki]strlen[/wiki] -> [wiki]strval[/wiki]

_________________
Obrázek


Offline
 Profil  
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 34 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


 Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na: