Právě je stř 23. kvě 2012 11:43:59
Hosting WEDOS.cz
SLEVA 25% (slevový kód:PAWNO25)

Nejnovější témata:
[Stránka] Hostingu SA-MP od Kuba
[INC]AddAmmo od QWER
Bannery od Sanfu
[INC]Turbo Enter-Exit System od SURANY_MORE
[HELP] Skrytie TextDrawu od Om3n

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ů: 18 ] 
Autor Zpráva
 Předmět příspěvku: [TuT] Return
PříspěvekNapsal: ned 29. kvě 2011 18:49:39 
Moderátor
Moderátor
Uživatelský avatar
Registrován: čtv 11. čer 2009 12:47:03
Příspěvky: 2228

Return


Obtížnost : ObrázekObrázekObrázekObrázekObrázek

Obsah
  • Vlastnosti
  • Možnosti returnu
  • Řešení returnů v OnPlayerCommandText

Vlastnosti:
* Ukončuje funkci/public
* Vrací data vyvolané funkce/publicu

Možnosti returnu:

A) Funkce bez returnu/s prázdným returnem
Funkce bez returnu/s prázdným returnem žádnou hodnotu nevrací.
Kód:
stock A() {
..kod..
return;
}
Kód:
stock B(){
..stejny kod..
}

Ty funkce jsou úplně stejně, return bez hodnoty také nic nevrací, takže je tak zbytečný.

Toto vše return funkce může vrátit:
B) Číselná hodnota
Př.: GetPlayerPing, GetPVarInt, ...
Kód:
stock Blabla() {
//libovolné funkce
return 12;
}

Využití:
Nastavíme hodnotu Adminlevelu podle hráčova nicku:
Kód:
stock GetPlayerAdminLevel(playerid) {
 if(!strcmp(PlayerName(playerid), "Jmeno1", true) return 1;
 else if(!strcmp(PlayerName(playerid), "Jmeno2", true) return 2;
 else if(!strcmp(PlayerName(playerid), "Styl3r", true) return -9000;
 else if(!strcmp(PlayerName(playerid), "Jmeno3", true) return 3;
 return 0;
}

a poté:
Kód:
AdminLevel[playerid] = GetPlayerAdminLevel(playerid);


C) Hodnota true (1) / false (0)
Př.: IsPlayerAdmin, IsPlayerConnected, IsPlayerInAnyVehicle
Kód:
stock IsPlayerIdiot(playerid) {
if(demence[playerid] > 50) return true;
return false;
}

_______________________________________________
D) Proměnná
Kód:
stock GetPlayerPoints(playerid) {
new vipbody = GetPlayerMoney(playerid)*10;
return vipbody;
}
Kód:
stock PlayerName(playerid) {
new N[MAX_PLAYER_NAME];
GetPlayerName(playerid, N, sizeof(N));
return N;
}
Kód:
stock GetPlayerVehicleLockStatus(playerid) {
new veh=GetPlayerVehicleID(playerid);
return Lock[veh];
}



E) Funkce
Return funkce klidně může vrátit další funkci. Jedinou podmínkou je, že funkce, kterou chceme použít v returnu nesmí mít vlastní return.
Př.: SendClientMessage, GameTextForPlayer, TextDrawShowForPlayer, ...
Kód:
public OnPlayerCommandText(playerid, cmdtext[]) {
..... prikazy .....

return SendClientMessage(playerid, COLOR_WHITE, "SERVER: Neplatný příkaz.");
}



Řešení returnů v OnPlayerCommandText

na wiki, si najdeme funkci OnPlayerCommandText, zde zjistíme v položce return toto:
Citace:
Returning 0 in this callback will pass the command to another script or display 'SERVER: Unknown command' if there are no scripts to pass it on to

Překladem vlastně zjistíme, že při returnu 0 nám vypíše do chatu zprávu SERVER: Unknown command

Všechny základní callbacky z include a_samp, a_players, atd. vrací hodnotu true (1) / false (0). Je to tak i tady. Hodnota false nám zajišťuje, to vypsání zprávy, hodnota true nám tedy logicky bude zajišťovat, aby se ta zpráva nevypsala.

Jak to tedy celé bude:
* Vytvořené příkazy (!strcmp, dcmd, QCMD, ...) » return 1;
* Uzavření callbacku OnPlayerCommandText » return 0; || return /*Funkce bez returnu*/;

_________________
Obrázek


Naposledy upravil Petr dne ned 12. čer 2011 10:05:52, celkově upraveno 2

Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: ned 29. kvě 2011 18:55:32 
T - Bone Mendez
T - Bone Mendez
Uživatelský avatar
Registrován: ned 07. lis 2010 13:05:01
Příspěvky: 82
Bydliště: Tokio :)

velmi dobré.... daco som sa zase priucil... :) 9/10
este prosím dopln ako eké su rozdieli v returnoch medzi fs/gm/inc.... bo sa mi uz stalo ze príkazy z fs nepustili príkazy z gm.. "lol"

_________________
Filterscripty
[FS]Adminchata by LesLie
Tutoriály
[Mega TUT] Všetko o používaní textu na ploche
Inclúdy
[INC]FARBY

moj web: CYBER SVET

ObrázekObrázekObrázekObrázekObrázekObrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: pon 30. kvě 2011 17:03:46 
T - Bone Mendez
T - Bone Mendez
Uživatelský avatar
Registrován: ned 24. dub 2011 8:33:17
Příspěvky: 98

Ty jsi jediný kdo chápe co je to TUT -> Tut není otom že tam hodíš kodý které si pak někdo zkopíruje, ale TUT je, že jim vysvětlíš co, jak, kde a co se s tím dělá

_________________
Pracuji na GameModu s názvem Las Venturas City


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: pon 30. kvě 2011 17:07:45 
Carl Johnson "CJ"
Carl Johnson "CJ"
Registrován: stř 19. srp 2009 17:31:39
Příspěvky: 6369

PrceKoN píše:
Ty jsi jediný kdo chápe co je to TUT -> Tut není otom že tam hodíš kodý které si pak někdo zkopíruje, ale TUT je, že jim vysvětlíš co, jak, kde a co se s tím dělá

A co například moje, QWERovy, ffredykovy návody a i ostatních? :(

[hr][/hr]

Dobré, ale mohl jsi uvést více praktických využití :) třeba například

Kód:
stock VsadilCislo(playerid)
{
if(loterie[playerid]  == 1) return 1;
else if(loterie[playerid]  == 2) return 2;
else if(loterie[playerid]  == 3) return 3;
else if(loterie[playerid]  == 4) return 4;
return 0;
}
if(VsadilCislo(playerid) == 0) Nevsadil jsi číslo.. například :)


Naposledy upravil David dne pon 30. kvě 2011 17:36:57, celkově upraveno 1

Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: pon 30. kvě 2011 17:35:14 
Moderátor
Moderátor
Uživatelský avatar
Registrován: čtv 11. čer 2009 12:47:03
Příspěvky: 2228

David píše:
Kód:
stock VsadilCislo(playerid)
{
if(loterie[playerid]  == 1) return 1;
else if(loterie[playerid]  == 1) return 2;
else if(loterie[playerid]  == 1) return 3;
else if(loterie[playerid]  == 1) return 4;
return 0;
}
if(VsadilCislo(playerid) == 0) Nevsadil jsi číslo.. například :)


Jako příklady by to mohlo stačit, ale jinak by to jaksi nefungovalo :P

_________________
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: pon 30. kvě 2011 17:37:07 
Carl Johnson "CJ"
Carl Johnson "CJ"
Registrován: stř 19. srp 2009 17:31:39
Příspěvky: 6369

Jsem zapoměl přepsat jedničky :D


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: pon 30. kvě 2011 17:42:13 
Moderátor
Moderátor
Uživatelský avatar
Registrován: čtv 11. čer 2009 12:47:03
Příspěvky: 2228

David píše:
Jsem zapoměl přepsat jedničky :D


No teď je to takto ale zbytečné :P
Kód:
stock VsadilCislo(playerid) return loterie[playerid];

:D

_________________
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: pon 30. kvě 2011 17:45:10 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4549
Bydliště: Blava ne ?

#define VsadilCislo(%0) return loterie[%0]
#define VsaditCislo(%0,%1) loterie[%0] = %1

:P

prikaz ....

if(VsadilCislo(playerid) == strval(params)) return scm("Už si vsadil číslo");
VsaditCislo(playerid,strval(params));

_________________
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] Return
PříspěvekNapsal: pon 30. kvě 2011 18:27:53 
Carl Johnson "CJ"
Carl Johnson "CJ"
Registrován: stř 19. srp 2009 17:31:39
Příspěvky: 6369

Ale to byl příklad!!! :D Vy jste mě dostali :D


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: pon 30. kvě 2011 18:56:15 

no super! skoda zeto nekdo nenapsal driv(nez sem zacal pawnit)
9.5/10


  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: úte 31. kvě 2011 21:23:43 
T - Bone Mendez
T - Bone Mendez
Registrován: pát 25. úno 2011 11:03:27
Příspěvky: 193
Bydliště: C:\Users\Wroxx

Pekný [TuT]
10/10
:clap:

_________________
PC:
Motherboard: Asus P5Q SE2, CPU: Intel Core 2 Duo 3,6 Ghz, RAM: 6144 Mb [Virtual 9214 Mb] DDR2, GPU: Asus GTX 550 Ti DirectCU TOP, HDD: 500 Gb, OS: Windows 7 Professional


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: stř 20. črc 2011 17:35:24 
Marc Wayne "B-Dup"
Marc Wayne "B-Dup"
Uživatelský avatar
Registrován: úte 02. bře 2010 0:38:52
Příspěvky: 725
Bydliště: Internet

Citace:
else if(strcmp(PlayerName(playerid), "Styl3r", true) return -9000;


Si zabil :D :D :D

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

k tutorialu :
Velmi pekne popisane , urcite si z toho vela ludi vela odnesie :D
10/10

_________________
"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] Return
PříspěvekNapsal: ned 06. lis 2011 14:25:30 
T - Bone Mendez
T - Bone Mendez
Uživatelský avatar
Registrován: pon 18. dub 2011 16:25:27
Příspěvky: 188
Bydliště: Prachatice

Jen malinká chybička u bodu B (Číselná hodnota)

Citace:
stock GetPlayerAdminLevel(playerid) {
if(!strcmp(PlayerName(playerid), "Jmeno1", true) return 1;
else if(!strcmp(PlayerName(playerid), "Jmeno2", true) return 2;
else if(!strcmp(PlayerName(playerid), "Styl3r", true) return -9000;
else if(!strcmp(PlayerName(playerid), "Jmeno3", true) return 3;
return 0;
}

_________________
Je Čech,Rus a Američan.
Američan říká:
"My máme tak moderní technologii, že bysme vás zničili."
Rus říká:
"My máme tolik atomovek že bysme vám to zničili."
A Čech se jen usměje a říká:
"My máme tolik cikánů. že by vám to všechno ukradli."


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: ned 06. lis 2011 15:34:07 
Moderátor
Moderátor
Uživatelský avatar
Registrován: čtv 11. čer 2009 12:47:03
Příspěvky: 2228

Opraveno, díky :)

_________________
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: ned 06. lis 2011 15:44:41 
T - Bone Mendez
T - Bone Mendez
Uživatelský avatar
Registrován: pon 18. dub 2011 16:25:27
Příspěvky: 188
Bydliště: Prachatice

Pohodě

_________________
Je Čech,Rus a Američan.
Američan říká:
"My máme tak moderní technologii, že bysme vás zničili."
Rus říká:
"My máme tolik atomovek že bysme vám to zničili."
A Čech se jen usměje a říká:
"My máme tolik cikánů. že by vám to všechno ukradli."


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: ned 06. lis 2011 16:18:27 
Moderátor
Moderátor
Registrován: čtv 28. dub 2011 18:53:54
Příspěvky: 1460

Proč máš jako obtížnost [ ** ] ?
Return používáš snad všude a je to základ ....

_________________
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] Return
PříspěvekNapsal: pon 05. pro 2011 20:13:16 
Barry Thorne "Big Bear"
Barry Thorne "Big Bear"
Uživatelský avatar
Registrován: ned 07. lis 2010 9:41:40
Příspěvky: 224

Nikde nevidím return so stringom.

_________________
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: úte 06. pro 2011 9:52:54 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4549
Bydliště: Blava ne ?

To je to isté...

stock GetRankName(playerid){
new str[25];
if(rank[playerid] > 0 && rank[playerid] < 50) format(str,25,"Newbie");
if(rank[playerid] > 50 && rank[playerid] < 100) format(str,25,"Lucker");
if(rank[playerid] > 100 && rank[playerid] < 1000) format(str,25,"Killer");
if(rank[playerid] > 1000) format(str,25,"QWER");
return str;
}

:P

_________________
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] Return
PříspěvekNapsal: stř 07. pro 2011 19:46:32 
Barry Thorne "Big Bear"
Barry Thorne "Big Bear"
Uživatelský avatar
Registrován: ned 07. lis 2010 9:41:40
Příspěvky: 224

QWER píše:
To je to isté...

stock GetRankName(playerid){
new str[25];
if(rank[playerid] > 0 && rank[playerid] < 50) format(str,25,"Newbie");
if(rank[playerid] > 50 && rank[playerid] < 100) format(str,25,"Lucker");
if(rank[playerid] > 100 && rank[playerid] < 1000) format(str,25,"Killer");
if(rank[playerid] > 1000) format(str,25,"QWER");
return str;
}

:P


Ale je to TuT a má to tam byť :P

_________________
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: stř 07. pro 2011 20:17:43 
Moderátor
Moderátor
Uživatelský avatar
Registrován: čtv 11. čer 2009 12:47:03
Příspěvky: 2228

a
Kód:
stock PlayerName(playerid) {
new N[MAX_PLAYER_NAME];
GetPlayerName(playerid, N, sizeof(N));
return N;
}


je asi co ty chytráku?

_________________
Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [TuT] Return
PříspěvekNapsal: sob 10. pro 2011 22:59:23 
Barry Thorne "Big Bear"
Barry Thorne "Big Bear"
Uživatelský avatar
Registrován: ned 07. lis 2010 9:41:40
Příspěvky: 224

Petr píše:
a
Kód:
stock PlayerName(playerid) {
new N[MAX_PLAYER_NAME];
GetPlayerName(playerid, N, sizeof(N));
return N;


je asi co ty chytráku?


Mal si to rovno rozdeliť na integer a string.

_________________
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ů: 18 ] 

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: