Jump to content

návod Neznáme pawno - E02 - První příkazy, pojmenování gamemodu a pár vysvětlivek


Recommended Posts

                                              ÚVOD
Po poměrně delší době od prvního tématu jsem se rozhodl, že zkusím druhý díl, se kterým si chci dát více práce. Dnes bych vám chtěl říct něco, o prvních jednoduchých příkazech, ukázat, jak se pojmenovává gamemode a napsat pár vysvětlivek, které i právě chyběly u prvního tématu.
 
                                                                         První příkazy  [*]
Ve složce se serverem ve složce pawno si otevřeme soubor pawno.exe, doporučuji spouštět jako správce. Po otevření nalezneme několik funkcí, které nás zatím zajímat nebudou, ale pokusím se je ve vysvětlivkách popsat.
 
Nalezneme tuto funkci:

 

public OnPlayerCommandText(playerid, cmdtext[])    //Toto je funkce, kde se píši veškeré příkazy (warpy, hráčské příkazy..).

{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)    //Zde se udává, co chcete, aby se muselo napsat do chatu).
{
// Do something here     //Zde se udává přímo ta funkce, pod těmito řádky vám ukážu vzor.
return 1;               //Ukončení příkazu hodnotou 1, ta hodnota 0 se píše až po posledním napsaném příkazu.
}
return 0;
}                          // } = tímto se taktéž ukončuje každá funkce.
 
 
                                  VZOR PŘÍKAZU [Pouze vzor]
 
{
if (strcmp("/lv", cmdtext, true, 10) == 0)   //lv = text, který jsem v mém případě napsal, co se musí do chatu zadat.
{
SetPlayerPos(playerid, x, y, z);      //SetPlayerPos = Funkce pro změny pozice hráče (souřadnice si ukážeme příště).
SendClientMessage(playerid, color, "Byl jsi odwarpován do LV !");   //SendClientMessage = příkaz, kde si můžete vytvořit zprávu pro hráče po napsání příkazu.
return 1;    //Ukončení příkazu hodnotou 1, ta hodnota 0 se píše až po posledním napsaném příkazu.
}
return 0;
}
 
                                                          Pojmenování gamemodu [*]
 
Najdeme funkci: public OnGameModeInit().  //Funke, kde se pojmenovává mod, zapisují souřadnice s vozidly, ...
Máme tam: SetGameModeText("Blank Script");  //Místo toho Blank Script si gamemode pojmenujeme.
 
To samé zde: 
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");  //do závorky místo toho Blank gamemode... napíšeme název gamemodu.
print("----------------------------------\n");
}
 
                                                                 Vysvětlivky na závěr [*]
 
V confingu:
gamemode0   //V confingu se za gamemode0 vždy napíše název gamemodu před spuštěním serveru.

rcon_password   //Heslo,díky kterému se můžete na serveru přihlásit jako rcon administrátor.

maxplayers   //Počet slotů, kolik chcete na serveru mít, to znamená, že kolik max. hráčů může být online najednou.

hostname   //Za hostname se píše jak chcete, aby se váš server v server listu jmenoval.

filterscripts  //Za filterscripts se píši názvy filterscriptů, které chcete na serveru mít, např: House systém, Job systém, ...

weburl   //Za weburl se píše název vašeho webu serveru, pokud tedy nějaký máte.

language  //Za language se píše jazyk vašeho serveru. Zobrazí se v server listu.

V pawnu:

include  //Includy jsou vlastně takové věcičky, které musíte mít ve složce pawno/include, jinak by vám některé systémy nemusely fungovat.

public OnFilterScriptInit()   //Funkce, kde se pojmenovává váš filterscript.

print("\n----------------------------------");
print(" Blank Gamemode by your name here");    //Zde se pojmenovává váš gamemode.

 

print("----------------------------------\n");
public OnGameModeInit()    //Funkce, kde se zapisují souřadnice aut, ikony na mapě, objekty, ...
public OnPlayerCommandText(playerid, cmdtext[])   //Funkce, kde se vytváří příkazy, warpy, ...
 
Toto už by mohlo být vše, funkcí je hodně, ale z toho, co jsme zatím dělali, tak je to dostačující.
Tak snad někdy příště pokračování. S těma barvama, nevěděl jsem, jestli to nechat tak, počkám na ohlasy. icon_e_smile.gif
Edited by JardaHrajeCZ
Link to comment
Share on other sites

U toho configu to co tam máš není všechno co tam je..

 

lanmode
plugins
port
announce
query
onfoot_rate 
incar_rate 
weapon_rate 
stream_distance 
stream_rate 
maxnpc 
logtimeformat 
_________________
 
Tohle jsou ty, který jsou normálně v CFG (snad kromě plugins)
 
a potom jsou x dalších, které si mohl vysvětlit taky, ať je to kompletní.. (napíšu jich tu pár, neznám všechny)
 
ackslimit
gamemodetext
mapname 
chatlogging
 
______________-
 
Mám potom ještě nějaké připomínky, ale upřímně... Asi víš jak to máš používat atp., umíš s tím pracovat, ale neumíš to potom vysvětlit, co se má z tohoto nováček naučit? Právě se naučil jak poslat zprávu a jak ho portnout na pozici x y z (pravděpodobně o nějakým např. /save k zjištění pozice nebude vůbec vědět), s tím, že i kdyby uměl dát save, tak kdyby chtěl portnout přesně tak jak stojí, nemá tam nastavený FacingAngle... Mohl si tam dát toho o hodně víc, například jak používat SetPlayerHealth, SetPlayerArmour, GivePlayerMoney, potom si mohl zjistit health, armour, money a klidně i tu pozici a aby mu to do chatu napsalo, kolik má životů, peněz atp. aby se nováček naučil pracovat se základníma funkcema... 
Link to comment
Share on other sites

  • Hlavní moderátor

Šablona pro psaní návodů (klik)

 

"Své návody můžete zakládat v podsekci 'Nové návody'."

 

Přesunuto do správné sekce.

 

Teď k návodu. Je to víceméně totéž, co minule – částečné správná struktura návodu, otřesná stylizace, nedostačující vysvětlení. Fakt si cením snahy vytvářet návody (jsi jeden z mála, kdo neskončil po prvním návodu), ale když chceš předávat zkušenosti, měl by ses nejdříve sám doučit základy. Ověřování faktů také není od věci.


 

 

U toho configu to co tam máš není všechno co tam je..

Je to návod pro nováčky, myslím, že ty, co uvedl, jsou nejpoužívanější, a proto je to dostačující.

Link to comment
Share on other sites

public OnPlayerCommandText(playerid, cmdtext[]) //Toto je funkce,

Pojmenuj to raději callback. Vzhledem k tomu, že většinu věcí, nevíš jak vysvětlit, nekomplikuj si to. Taky chybí nějaký popis: Zavolá po té, co hráč zadá příkaz(přesněji, po té, co zadá prakticky jakýkoliv text do chatu, co začíná /).

 

if (strcmp("/mycommand", cmdtext, true, 10) == 0) //Zde se udává, co chcete, aby se muselo napsat do chatu).

Nep. To je podmínka, a jejím obsahem je fce, která porovnává řetězec. Pokud porovná správně, pokračuje tím, co je v jejím bloku (aka ve { }).

 

 

 

// } = tímto se taktéž ukončuje každá funkce.

Bloky. A určitě není na škodu se o nich trošku zmínit, protože stačí jen jednu přehlédnout a může dojit až k hromadným chybám ve zdrojovém kódě.

 

VZOR PŘÍKAZU [Pouze vzor]

To nejsou příkazy, ale podmínky a fce pro porovnání řetězců.

 

if (strcmp("/lv", cmdtext, true, 10) == 0) //lv = text, který jsem v mém případě napsal, co se musí do chatu zadat.

Dobře, text jde ale nemusí se zadávat. To je jen podmínka, zda ho zadá. To je rozdíl.

 

SendClientMessage(playerid, color, "Byl jsi odwarpován do LV !"); //SendClientMessage = příkaz, kde si můžete vytvořit zprávu pro hráče po napsání příkazu.

Opět... Funkce, která odešle hráči danou zprávu do chatu. Žádný příkaz.

 

return 1; //Ukončení příkazu hodnotou 1, ta hodnota 0 se píše až po posledním napsaném příkazu.

Přečíst->http://wiki.sa-mp.com/wiki/OnPlayerCommandText Edited by Ernst Remer
Link to comment
Share on other sites

 

U toho configu to co tam máš není všechno co tam je..

 

lanmode
plugins
port
announce
query
onfoot_rate 
incar_rate 
weapon_rate 
stream_distance 
stream_rate 
maxnpc 
logtimeformat 
_________________
 
Tohle jsou ty, který jsou normálně v CFG (snad kromě plugins)
 
a potom jsou x dalších, které si mohl vysvětlit taky, ať je to kompletní.. (napíšu jich tu pár, neznám všechny)
 
ackslimit
gamemodetext
mapname 
chatlogging
 
______________-
 
Mám potom ještě nějaké připomínky, ale upřímně... Asi víš jak to máš používat atp., umíš s tím pracovat, ale neumíš to potom vysvětlit, co se má z tohoto nováček naučit? Právě se naučil jak poslat zprávu a jak ho portnout na pozici x y z (pravděpodobně o nějakým např. /save k zjištění pozice nebude vůbec vědět), s tím, že i kdyby uměl dát save, tak kdyby chtěl portnout přesně tak jak stojí, nemá tam nastavený FacingAngle... Mohl si tam dát toho o hodně víc, například jak používat SetPlayerHealth, SetPlayerArmour, GivePlayerMoney, potom si mohl zjistit health, armour, money a klidně i tu pozici a aby mu to do chatu napsalo, kolik má životů, peněz atp. aby se nováček naučil pracovat se základníma funkcema... 

 

Ano, několik nedostatků tu je. Vím, že v konfingu je toho více, ale pro úplného nováčka a z toho co jsem zatím tak nějak popsal, tak je to dostačující. Ty další funkce jako SetPlayerHealth, SetPlayerArmour, GivePlayerMoney bych zavedl do nějakého z příštích témat, pokud má tedy cenu pokračovat. Co se týče pozic, tak pokud nějaké příště bude, tak mám v plánu tam ty pozice použít. Ale samozdřejmě každé kritiky beru. :)

 

Návod na pojmenování gamemodu lol.gif

Pojmenování bylo část tématu, ne celý. Myslím si, že ten co by pawno otevřel poprvé, tak by ani toto nevěděl a musel by si to najít. :)

Link to comment
Share on other sites

Ano, několik nedostatků tu je. Vím, že v konfingu je toho více, ale pro úplného nováčka a z toho co jsem zatím tak nějak popsal, tak je to dostačující. Ty další funkce jako SetPlayerHealth, SetPlayerArmour, GivePlayerMoney bych zavedl do nějakého z příštích témat, pokud má tedy cenu pokračovat. Co se týče pozic, tak pokud nějaké příště bude, tak mám v plánu tam ty pozice použít. Ale samozdřejmě každé kritiky beru. icon_e_smile.gif

 

Pojmenování bylo část tématu, ne celý. Myslím si, že ten co by pawno otevřel poprvé, tak by ani toto nevěděl a musel by si to najít. icon_e_smile.gif

Pokud nějaké příště bude? Ty jsi začal dělat tutoriál s tím, že další díl už možná ani nebude? Dobrý přístup, jen tak dál :d

Link to comment
Share on other sites

 

public OnFilterScriptInit()   //Funkce, kde se pojmenovává váš filterscript.

 

 

Jsem v pawnu nováček a myslel jsem si že do OnFilterScriptInit nebo OnGameModeInit se zapisujou věci co se stanou po zapnutí gamemodu nebo filterscriptu ... ale ty mi tvrdíš něco jiného :d 

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Pokud nějaké příště bude? Ty jsi začal dělat tutoriál s tím, že další díl už možná ani nebude? Dobrý přístup, jen tak dál icon_e_biggrin.gif

Myšleno tak, že jestli o to vůbec bude zájem. Ale ano, bude se tedy pokračovat :d

Jsem v pawnu nováček a myslel jsem si že do OnFilterScriptInit nebo OnGameModeInit se zapisujou věci co se stanou po zapnutí gamemodu nebo filterscriptu ... ale ty mi tvrdíš něco jiného icon_e_biggrin.gif

Do OnGameModeInit se zapisujou věci co se stavou po zapnutí gamemodu, nebo filterscriptu, ano. Já to možná vysvětlil trochu jinak, ale myšleno stejně. Zapisuješ tam například souřadnice vozidel.

Link to comment
Share on other sites

Myšleno tak, že jestli o to vůbec bude zájem. Ale ano, bude se tedy pokračovat icon_e_biggrin.gif

Do OnGameModeInit se zapisujou věci co se stavou po zapnutí gamemodu, nebo filterscriptu, ano. Já to možná vysvětlil trochu jinak, ale myšleno stejně. Zapisuješ tam například souřadnice vozidel.

 

 

To je jako napsat "Dneska sem šel do Tesca" s tím, že by si potom napsal, že si nemyslel Tesco ale Albert..

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...