Jump to content

návod Príkazy


Tanga

Recommended Posts

Úvod:


 • Toto je návod, ako vytvárať príkazy tým najjednoduchším spôsobom.
 • Je dobré nepoužívať ten pôvodný systém pre zabránenie výskytu lagov, sprehľadnenie kódu.
 • Ak sa chceš vyhnúť sscanf, jednoducho len skoč na príklad 2, tam je to jednoducho ukázané.
 • Ak nevieš čo je sscanf, buď rád. Netreba ti to.


Na začiatok:ak ešte nemáš includ zcmd


 • Najprv si stiahni includ zcmd a dajte ho do priečinka \pawno\include.
 • Zo svojho kódu musíš zmazať (ak tam máš) túto časť:

 

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/mycommand", cmdtext, true, 10) == 0)
	{
		// Do something here
		return 1;
	}
	return 0;
}

 

 

 • Na začiatok tvojho skriptu napíš:

 

#include <zcmd>

 

 

 

 • Čo je to includ:

Includ je nejaký súbor, ktorý môžeš použiť vo svojom kóde. V skutočnosti sa používa len na sprehladnenie kódu. Ty si totiž môžeš celý includ prepísať do svojho kódu, ale to by bolo príliš chaotické a tak sa vymysleli includy :).


Tvar bežného príkazu:

 

command(prikaz,playerid,params[])
{
    // Tu je nejaký kód
    return 1;
}

 • Príkaz vždy nahradíš tvojim príkazom, napríklad ban, ale píše sa bez lomítka vpredu a nepíše sa do úvodzoviek.
 • Je mnoho spôsobov zápisu, ale tento je rozhodne najlepší a netreba ti vedieť iný.


Príklady použitia ZCMD:
1. Doplnenie života hráčovi:

 

command(vyliecit,playerid,params[])
{
    SetPlayerHealth(playerid,100.00);
    SendClientMessage(playerid,0xFFFFFFAA,"Bol si vyliečený zadarmo!");
    return 1;
}

 


2. Odkaz adminovi:

 

#define DIALOG_ODKAZADMINOVI 9999 // vytvorím si dialóg

command(odkazadminovi,playerid,params[])
{
    ShowPlayerDialog(playerid,DIALOG_ODKAZADMINOVI,DIALOG_STYLE_INPUT,"Ohlásenie adminom","Prosím zadaj správu:","OK",""); // zobrazím ho
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_ODKAZADMINOVI)
    {
        if(!response || !strelen(inputtext)) return 1;// Ak si nevyplnil správu, tak sa nič nestane
        new MenoOdosielatela[MAX_PLAYER_NAME];
        GetPlayerName(playerid,MenoOdosielatela,sizeof(MenoOdosielatela));
        new string[256];
        format(string,sizeof(string), "%s odoslal odkaz: %s", MenoOdosielatela, inputtext); // ak nevieš čo je format kukni návod dole
        for( new i = 0; i < MAX_PLAYERS, i++ ) // skontroluje každého hráča
        {
            if(IsPlayerAdmin(i)) // AK je admin RCON (prípadne váš vlastný lvl systém)
            {
                SendClientMessage(i,0xFFFFFFAA, string); // pošle mu tvoju správu bielej farby
            }
        }
    }
    return 1;
}  

 

 

 

Návod označen jako platný

Ten to návod byl označen jako platný.Návod může být kdykoli označen jako nevhodný či neplatný

Link to comment
Share on other sites

tak todle "Slyším" poprvé command(vyliecit,playerid,params[]) :d já používam CMD:prikaz (playerid, params[])

ale neřekl jsi hodne vecí . . . naco je např params proč je tam return 1; a proč se má používat toto a toto

Link to comment
Share on other sites

Myslel som, že to niekto napíše... command je prehladnejší a dá ti lepší zvyk do budúcich jazykov.

ale vážne :d fakt to vidím po prvé :d a nevím jestli je to steje že kdyby jsi nahradil vylecit na Vylecit tak příkaz je hned nefunkční 

Link to comment
Share on other sites

2. Odkaz adminovi:

 

to si tam fakt dal super príklad. Keby si aspoň tam dal príkaz kde využiješ aj "params" tak by bolo dobre.

Aha, veď ty ani nikde nevysvetľuješ čo to je :d A teraz mi zase hovor že je to dobrý návod

Link to comment
Share on other sites

Presne tak LAX.
Nováčik nemá šancu pochopiť params, dokonca ani sscanf.
Preto som ponúkol alternatívu s dialogom - okrem toho, že je to pohodlnejšie než písať príkaz.

Link to comment
Share on other sites

Tento tutoriál už je lepší než ten předchozí na format a souhlasím, že vysvětlovat úplnýmu začátečníkovi params je trošku předčasné, když ještě ani pomalu neví co jsou to parametry.

Ještě jsem měl k tomu jednu výtku, ale tu se mi teď povedlo zapomenout, tak případně později dopíšu.

Link to comment
Share on other sites

Isigar, zápis, ktorý som ja použil je lepší syntakticky. Ty ho používaš určite len preto, že to tak robia ostatní. Môj spôsob je aj prehľadnejší.

Link to comment
Share on other sites

Isigare, Já jsem teda zcmd použil asi jednou v životě a jeho zdroják jsem neotevřel nikdy, ale myslím si, že CMD:XXX je pouze zkratka pro Command(..,..,..), takže si nemyslím, že by to byl nějaký zastaralý zápis zcmd.

Link to comment
Share on other sites

Isigare, Já jsem teda zcmd použil asi jednou v životě a jeho zdroják jsem neotevřel nikdy, ale myslím si, že CMD:XXX je pouze zkratka pro Command(..,..,..), takže si nemyslím, že by to byl nějaký zastaralý zápis zcmd.

když si nikdy neotevřel ZCMD jak sakra můžeš vedet co je dobre a co ne ?!? 

Link to comment
Share on other sites

Tak pre tých čo opovrhujú mojou ZCMD metódou - ja som si dal tú námahu a pozrel sa, že čo je v zcmd.inc.
Zistil som, že pôvodný príkaz je COMMAND.
CMD je len odkazom na COMMAND a command je tiež len odkazom na COMMAND.
Avšak command je prehľadnejšie, modernejšie.

Link to comment
Share on other sites

Tak pre tých čo opovrhujú mojou ZCMD metódou - ja som si dal tú námahu a pozrel sa, že čo je v zcmd.inc.

Zistil som, že pôvodný príkaz je COMMAND.

CMD je len odkazom na COMMAND a command je tiež len odkazom na COMMAND.

Avšak command je prehľadnejšie, modernejšie.

i tak se mi víc libi CMD:tango (playerid,params[])

Link to comment
Share on other sites

nesouhlasim s tvojí definicí inlcudu

 

Includ je nejaký súbor, ktorý môžeš použiť vo svojom kóde. V skutočnosti sa používa len na sprehladnenie kódu. Ty si totiž môžeš celý includ prepísať do svojho kódu, ale to by bolo príliš chaotické a tak sa vymysleli includy :).

neuvedl si ty věci např params apod.
neuvedl si další metody k vytvoření příkazu s parametry např. myslim použití jiného cmd systému třeba QCMD nebo dcmd apod.
uvedl jsi přímo co jsi mají stahnout ale nikde neni ani hláska že můžou použít jiný cmd systém
návod založený čistě na tvem preferovaném cmd systému je na nic

Link to comment
Share on other sites

RHS - to, že som neuviedol params sa riešilo pár komentov nad tebou...
Ďalšie metódy tam nie sú, lebo y_cmd je najrýchlejší, ale zložitejší pre nováčika a dcmd je už pomalší.
Ak to nikdy nepoužije netreba to vedieť.
Návod ualožený na mojom štýle - to je subjektívne jak hovado - blbosť. Ak nepoznám iný štýl, rozdiel to nie je. Prečo by mal byť nanič?
Ak sú logaritmy efektívnejšie tak ich mohol preferovať aj Hitler a používal by som ich.
 

Link to comment
Share on other sites

RHS - to, že som neuviedol params sa riešilo pár komentov nad tebou...

Ďalšie metódy tam nie sú, lebo y_cmd je najrýchlejší, ale zložitejší pre nováčika a dcmd je už pomalší.

Ak to nikdy nepoužije netreba to vedieť.

Návod ualožený na mojom štýle - to je subjektívne jak hovado - blbosť. Ak nepoznám iný štýl, rozdiel to nie je. Prečo by mal byť nanič?

Ak sú logaritmy efektívnejšie tak ich mohol preferovať aj Hitler a používal by som ich.

 

pro nováčka asi hned zprvu neni důležitá rychlost někomu může vyhovovat něco jiného ikdyž moc rozdílu v použití neni jen malinko jinačí zápis

Link to comment
Share on other sites

  • 2 months later...

 

Nováčik nemá šancu pochopiť params

To je otazka schopnosti ucitele ucit respektive vysvetlovat :)

 

Tady jsi ukazal jak delat prikazy, ale pro novacka by bylo dobre mu i rict jak to vlastne funguje...

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...