Áno ! Zase som tu s mojím novým návodom. Dúfam že ho nepíšem len tak do vzduchu, a že to čo máte na krku nenosíte iba aby vám do krku nešla voda . Tak začíname, idete ?
[size=150]Definície[/size]
Teória
Toto je to najzákladnejšie, najpotrebnejšie a zároveň najľahšie z týchto troch možností, ktoré tu opíšem.
Určite ste sa s tým stretli, či už pri definovaný farby alebo funkcie. Ale prejdime k praxi.
Prax
V móde určite máte niečo takéto
Alebo definovanie funkcie npr.
SCM(playerid,COLOR_BIELA,WELCOME);
Ale toto není jediné čo sa dá nadefinovať.
Ukážem vám kód npr.
GivePlayerMoney(playerid,KratDesat(500));
a dá mu 5 000 dolárov
alebo
GivePlayerMoney(playerid,KratDesat(random(500));
a dá mu náhodné číslo od 0 do 500 ktoré vynásobí 10
Ak si pozrete definíciu tak vidíte že som použil parameter (%0) dá sa použiť od 0% do %9
npr.
GivePlayerMoney(playerid,Nasob(10,3,7))
a dá mu to x penazí (nechce sa mi to počítať )
alebo pridáme premenu
a máte aj Anti Money Hack
Verdikt
výhody
+ Nezvačšuje súbor (veľkosť súboru)
+ Po načítaní sa tvári že tam nieje (zmizne ako keby) a tým pádom keď tam máte náročnejšie scripty tak sa tvári ako kebyže to tam nieje (no keď máte stock tak sa vždy po použití "obnoví" tu nie...)
nevýhody
- Menší hokej z tých %0....
- Nenapadá ma nič iné...
[size=150]Stocky (funkcie)[/size]
Teória
Určite v móde máte minimálne jeden stock ! Stock môžeme využiť na vačšie scripty, ktoré chceme skrátiť do jedného riadka. Môžeme robiť z návratovými hodnotami, floatmy, boolmy. Môžeme funkcie kombinovať a tak si uľahčiť prácu ešte viac. (teda u kopirákov to neplatí...)
Prax
Jeden stock (podobný) určite máte
v tomto stocku vytvorý premenu, zistí hráčov nick a odošle.
Stocky možno využiť na Float-y na Bool-y ukážem ku každému príklad
bool
ServerTips(true);
alebo
ServerTips(fasle);
a to publicu s tipmy dáte
if(ServerTipy == false) return 0;
jednoduché nie ?
Float
if(GetPlayerHealthEx(playerid) > 80) return SCM("Nemôžeš si dať život veď ho máš skoro plný");
Obyčajná premena
Verdikt
výhody
+ Priehľadnosť
+ Jednoduchosť
[size=150]Publicy[/size]
Teória
Určite máte v móde základné publicy no a to je to isté, funguje to na rovnakom princípe ako stock lenže potrebuje forward, môže biť vyvolaný a následne poučitý ako obyčajný public npr. OnPlayerText ale môže biť použitý aj ako stock !
Prax
Potrebujete forward ukážeme si to
Keďže public má rovnaké využitie ako stock nenapíšem sem viac príkladov, prejdem rovno k tomu čo stock nemá
Vyvolanie public a následne využitie publicu ako npr. OnPlayerText
Takže dáme si forward
Verdikt
výhody
+ Využitie
Fujha, Dakujem že ste to prečítali a dúfam že ste to pochopili.
Made by QWER
[size=150]Definície[/size]
Teória
Toto je to najzákladnejšie, najpotrebnejšie a zároveň najľahšie z týchto troch možností, ktoré tu opíšem.
Určite ste sa s tým stretli, či už pri definovaný farby alebo funkcie. Ale prejdime k praxi.
Prax
V móde určite máte niečo takéto
- kód:
#define COLOR_BIELA 0xFFFFFFAA
- kód:
0xFFFFFFAA
- kód:
COLOR_BIELA
Alebo definovanie funkcie npr.
- kód:
#define SCM SendClientMessage
- kód:
SCM(playerid,COLOR_BIELA,"Kša ! choď preč!")
- kód:
#define WELCOME "Vitaj na QWER-ovom servery !"
SCM(playerid,COLOR_BIELA,WELCOME);
Ale toto není jediné čo sa dá nadefinovať.
Ukážem vám kód npr.
- kód:
#define KratDesat(%0) %0*10
GivePlayerMoney(playerid,KratDesat(500));
a dá mu 5 000 dolárov
alebo
GivePlayerMoney(playerid,KratDesat(random(500));
a dá mu náhodné číslo od 0 do 500 ktoré vynásobí 10
Ak si pozrete definíciu tak vidíte že som použil parameter (%0) dá sa použiť od 0% do %9
npr.
- kód:
#define Nasob(%0,%1,%2) %0*%1*%2
GivePlayerMoney(playerid,Nasob(10,3,7))
a dá mu to x penazí (nechce sa mi to počítať )
alebo pridáme premenu
- kód:
#define GivePlayerMoneyEx(%0,%1) GivePlayerMoney(%0,%1); peniaze[%0] += %1;
a máte aj Anti Money Hack
Verdikt
výhody
+ Nezvačšuje súbor (veľkosť súboru)
+ Po načítaní sa tvári že tam nieje (zmizne ako keby) a tým pádom keď tam máte náročnejšie scripty tak sa tvári ako kebyže to tam nieje (no keď máte stock tak sa vždy po použití "obnoví" tu nie...)
nevýhody
- Menší hokej z tých %0....
- Nenapadá ma nič iné...
[size=150]Stocky (funkcie)[/size]
Teória
Určite v móde máte minimálne jeden stock ! Stock môžeme využiť na vačšie scripty, ktoré chceme skrátiť do jedného riadka. Môžeme robiť z návratovými hodnotami, floatmy, boolmy. Môžeme funkcie kombinovať a tak si uľahčiť prácu ešte viac. (teda u kopirákov to neplatí...)
Prax
Jeden stock (podobný) určite máte
- kód:
stock Jmeno(playerid)
{
new pName[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, pName, sizeof(pName));
}
return pName;
}
v tomto stocku vytvorý premenu, zistí hráčov nick a odošle.
Stocky možno využiť na Float-y na Bool-y ukážem ku každému príklad
bool
- kód:
stock ServerTips(bool:tipy){
switch(tipy){
case true: ServerTipy = true;
case false: ServerTipy = false;
}
}
ServerTips(true);
alebo
ServerTips(fasle);
a to publicu s tipmy dáte
if(ServerTipy == false) return 0;
jednoduché nie ?
Float
- kód:
stock Float:GetPlayerHealthEx(playerid)
{
new Float:health;
GetPlayerHealth(playerid, health);
return health;
}
if(GetPlayerHealthEx(playerid) > 80) return SCM("Nemôžeš si dať život veď ho máš skoro plný");
Obyčajná premena
- kód:
stock GivePlayerMoneyEx(playerid,suma){
GivePlayerMoney(playerid,suma);
PlayerMoney[playerid] += suma;
}
Verdikt
výhody
+ Priehľadnosť
+ Jednoduchosť
[size=150]Publicy[/size]
Teória
Určite máte v móde základné publicy no a to je to isté, funguje to na rovnakom princípe ako stock lenže potrebuje forward, môže biť vyvolaný a následne poučitý ako obyčajný public npr. OnPlayerText ale môže biť použitý aj ako stock !
Prax
Potrebujete forward ukážeme si to
- kód:
forward Tips();
public Tips(){
SendClientMessageToAll(COLOR_BIELA,"TIP ! Návody by QWER");
}
Keďže public má rovnaké využitie ako stock nenapíšem sem viac príkladov, prejdem rovno k tomu čo stock nemá
Vyvolanie public a následne využitie publicu ako npr. OnPlayerText
Takže dáme si forward
- kód:
forward OnPlayerChangeHealth(playerid,Float:oldhealth,Float:newhealth);
do OnPlayerUpdate dáte
new Float:hp[2];
GetPlayerHealth(playerid,hp[0]);
GetPlayerHealth(playerid,hp[1]);
if(hp[0] != hp[1]) OnPlayerChangeHealth(playerid,hp[0],hp[1]);
- kód:
public OnPlayerChangeHealth(playerid,oldhealth,newhealth){
if(newhealth > 100) BanEx(playerid,"Health Hack");
}
Verdikt
výhody
+ Využitie
Fujha, Dakujem že ste to prečítali a dúfam že ste to pochopili.
Made by QWER