Lecke bevallásának (vissza)
* Ez az állítás két fontos alkalmazások:
Először. mint már említettük, ez biztosítja azonnali kilépés egy funkciót, azaz Ez okozza, hogy a virtuális gép a vezérlést a kódot, hogy hívják ezt a funkciót.
Második. Ez az operátor lehet használni, hogy visszatérjen egy bizonyos értéket, a kód (funkció), amelyből a jelenlegi, megszakította az hívtak meg.
* A formátum az üzemeltető visszatérés
visszatérési értéke; // Ha az „érték” nem kötelező
• Miért kell ez ki a funkciót:
Először is, ezzel a kijelentéssel, tudjuk kezelni a virtuális gép akciók, amikor a kód végrehajtódik. Például nem kell elvégezni egy bizonyos funkciót kódot, ha egy játékos nem kéznél $ 5,000. Itt aztán jön a támogatás és az üzemeltető. De ez még nem minden.
Tegyük fel, hogy van egy hasonló, nem a legjobb minőségű szerkezeti szempontból, parancskódot
nyilvános OnPlayerCommandText (playerid. cmdtext # 91; # 93;)
if (! strcmp ( "/ komanda_1". cmdtext. true))
SetPlayerHealth (playerid 98304.);
SendClientMessage (playerid .. 0xFF0000FF "Most, az egészségügyi villog: 3");
>
if (! strcmp ( "/ komanda_2". cmdtext. true))
printf ( "garázs eladó");
>
if (! strcmp ( "/ komanda_3". cmdtext. true))
Ban (playerid);
>
if (! strcmp ( "/ komanda_4". cmdtext. true))
Kick (playerid);
>
vissza 1;
>
És itt van, hogy a kódot kell kinéznie
nyilvános OnPlayerCommandText (playerid. cmdtext # 91; # 93;)
if (! strcmp ( "/ komanda_1". cmdtext. true))
SetPlayerHealth (playerid 98304.);
SendClientMessage (playerid .. 0xFF0000FF "Most, az egészségügyi villog: 3");
vissza 1;
>
else if (! strcmp ( "/ komanda_2". cmdtext. true))
printf ( "garázs eladó");
vissza 1;
>
else if (! strcmp ( "/ komanda_3". cmdtext. true))
Ban (playerid);
vissza 1;
>
else if (! strcmp ( "/ komanda_4". cmdtext. true))
Kick (playerid);
vissza 1;
>
vissza 0;
>
De mindkét lehetőség működik gyakorlatilag azonos (eltekintve attól a ténytől, hogy az első esetben, visszatértünk a visszahívás egység, annak érdekében, hogy megszabaduljon az üzenet „ismeretlen parancs” (a reakció néhány kolbekkov visszatérítés később térünk ki), és ez az, amit én írok többet ). akkor mi a különbség, kérdezed?
És a különbség, hogy az első esetben, a megállapítás csapat és a végrehajtó a kód, nem jelzi a virtuális gép (szerver), hogy ő találta meg a kódot, hogy meg kell találni (ebben az esetben a kód található szempontjából egység (parancs)). És ha nem adnak egyértelmű utasításokat, ahol meg kell állítani kódfuttatást, a virtuális gép továbbra is rendezni végig a kód található a visszahívás (a zárójel bezárása visszahívási egység), mert a gép nem ismeri a gondolatait, és végre mindent megadott neki, .
A második esetben van:- Mi történt a megfelelő feltételeket.
Micsoda képtelenség hordozza ezt az őrült?
Ugyanazt a parancsot nem lehet olyan szerencsés az összes fordító jelzi, ellenőrizze minden csapat után, amíg meg nem találja a megfelelőt. Azaz, ha az egyik feltétele az alábbi feltételek dobni, mint szoktuk másik üzemben - más (nem). Ez körülbelül, a szerkezet egy ilyen állapot:
almazöld?
igen
>
sz. de most almazöld. // Ha működik, például ez a feltétel
Tehát igen // almazöld
>
sz. de most almazöld. // Apple már zöld, és azt jelenti, hogy ez a vizsgálat értelmetlen => ez lehet dobni
igen
>
az ég kék. // De ez a teszt kell dolgozni, ha nem rámutatni, hogy ő az else és nem használja a feltételeket a felső bevallását. Ebben az esetben, ha miután a fenti feltételek, amit tennie kell, és ezek a feltételek, a magasabb hozam szett nem szükséges, mert nem kell, hogy hagyja abba kódfuttatást, ha egy zöld alma
igen
>
Mindez, már kiadott egy virtuális gép teljesítő szükségtelen intézkedések (az első esetben is, miután a jobb csapat, AMX gép folytatta volna a feltételek teljesítésére, folyamatos kutatás megtalálta a csapat). Ezért AMX gép gyorsan rendezni a parancsot kódot, és kezelhetjük más kód gyorsabb. Ez az úgynevezett optimalizálás;)
Más szóval, az üzemeltető lehetővé ellenőrzés formájában érthetőbb formában a Scripter. Elfogadom, hogy sokkal könnyebb megérteni a jelentését az ilyen feltételek
Ha visszatérő printf ( "A játékos ID az offline". playerid.) (IsPlayerConnected (playerid)!);
Az ellenőrzést a következőképpen néz ki:
Minden más esemény nincs külön utalás a visszatérési érték, az egyetlen különbség az, hogy:
1- polnost esemény befejeződik.
0- esemény feladása és dolgozza fel az összes szkriptet.
Események ahol meg tudod csinálni, hogy nem tér vissza (lehetséges varningov compiler):
- OnVehicleStreamIn
- OnVehicleStreamOut
- OnPlayerStreamIn
- OnPlayerStreamOut
- OnDialogResponse
- OnPlayerClickPlayer
- OnPlayerSelectedMenuRow
- OnPlayerExitedMenu
- OnRconLoginAttempt
- OnVehicleDamageStatusUpdate
- OnVehiclePaintjob
- OnVehicleRespray
- OnVehicleMod
Így, ha visszatér ezekre a visszahívások, meg kell vizsgálni ezeket az adatokat annak érdekében, hogy a kívánt eredményt.
Azt is érdemes megjegyezni, hogy a funkció vissza értéket. Pontosabban a függvény értéket ad vissza.
Megmutatom egy példa:
main ()
printf (. "Funkció 1 (25-18) ==" FuncOne ()); // Ennek eredményeként megkapjuk 7
printf ( "Funkció 2 (20 + 5) ==." FuncTwo ().); // A második függvény mi lesz 25
printf ( "funkció 3 (20) ==." FuncThree ().); // A harmadik függvény egy értéket 20
>
Stock FuncOne ()
vissza FuncTwo () - 18;
>
Stock FuncTwo ()
vissza 5 + FuncThree ();
>
Stock FuncThree ()
20 visszatérés; // A harmadik függvény a 20
>
Az előző részben beszéltünk a reakció a szokásos visszahívók bizonyos értékeket, és visszatér a funkció figyelembe kell vennie, hogy milyen fontos ez a funkció visszatér.
Még a standard funkciók visszaút konkrét értékeket. Mik ezek az értékek - megtalálható az oldalon wiki.sa-mp.com. keres a kívánt funkciót, és látta a leírását.
Ennyi =)
Ha bármilyen kérdése van, ha nem értesz valamit magyarázni, vagy bármilyen kiegészítők / korrekciók ez a bemutató, kérjük, írjon az alábbiakban.
Mindenki megpróbál segíteni a véleményét tudomásul fogja venni.
A tanulság az, nem a végleges változat, és végül lehetséges kiegészítései / korrekciókat.
Veled volt Deimos. Köszönöm a figyelmet
Akkor keressen meg privát üzenetek ebbe a csoportba
Széles körben ismert, hogy az ötletek 0,8333 centért (a piaci ára 10 cent tucat).
Teljes a nagy ötlet, nincs kereslet.
Végrehajtása az ötletből kész a játék megköveteli a hosszú munka,
tehetség, a türelem és a kreativitás, nem is beszélve a költségek pénzt, időt és erőforrásokat.
Javasolj egy ötlet, csak hogy észre - ez a probléma
S Teve P avlina
Írva egy menetben, és különböző részein a leckét más sorrendben, tehát valahol lehet nesostykovochka vagy téveszmék már nagyon szemét „zamylilsya”, és minden, hogy látta átkelés. Ha úgy találja, hibák - írj, ne habozzon: 3
A tervek, hogy a leírás az egyes szereplők hasonló formában, de szervezettebb
Akkor keressen meg privát üzenetek ebbe a csoportba
Széles körben ismert, hogy az ötletek 0,8333 centért (a piaci ára 10 cent tucat).
Teljes a nagy ötlet, nincs kereslet.
Végrehajtása az ötletből kész a játék megköveteli a hosszú munka,
tehetség, a türelem és a kreativitás, nem is beszélve a költségek pénzt, időt és erőforrásokat.
Javasolj egy ötlet, csak hogy észre - ez a probléma
S Teve P avlina