Jump to content

návod [ Navod ] Jak na zcmd, a proc nepouzivat dcmd...


LukYs

Recommended Posts

                                                                                   Navod

 

                                             JAK NA CMD

                                    A proc nepouzivat dcmd...

 

DCMD:

 

Co je otravne, kdyz pouzivate dcmd?

dcmd(prikaz,5,cmdtext);

Toto je nejvic otravne, kdyz pouzivate dcmd..

 

 

DCMD zabira radky...

 

dcmd hleda text a hledat text je delsi nez cislo...

 

 

+ DCMD je 8 let stare..

 

 

ZCMD:

 

 

ZCMD je o hodne lepsi nez dcmd!!

 

k ZCMD potrebujete pouze include zcmd

 

DOWNLAND zcmd include:   http://uloz.to/xPfVRwNf/zcmd-inc

 

 

Takze nahoru staci napsat:

#include <zcmd>

Pouzivani zcmd:

CMD:prikaz(playerid, params[])
{
    	    SendClientMessage(playerid, 0xC138FB88, "Napsal jsi /prikaz");
	return 1;
} 

 Tak toto by bylo pro zatim vse, doufam ze to nejakym novackum pomohlo, a nebo ti kteri pouzivaji dcmd, a precetli si tento navod, tak si doufam uvedomi, ze dcmd je na nic! A lepsi je ZCMD, samozrejme je super i YSI a spoustu dalsich typu, ale tento je rozhodne lepsi nez DCMD! 

 

 

                                              

Edited by LukYs
Link to comment
Share on other sites

Lol, proč tu dáváš něco co tu je milionkrát? Bez tak chytří používají zcmd, ysi nebo klasicky bez includu, tohle tu většinou nikdo už nedělá (na pár vyjímek)

Link to comment
Share on other sites

V public OnPlayerCommandText(...) mám nějaký kód, který se ale nikdy po zavolání příkazů nevykoná (i kdyby měl?) a přitom mám kód napsaný jako ty.... Kde dělám chybu? ;)

 

Jinak k návodu: Moc obsáhlý není, ale na jednu stranu, co více ještě napsat o zcmd, pokud chceme detaily, můžeme si je přečíst na samp fóru. Celkově na mě tvůj návod působí dojmem, jak když si ho napsal v dost velkém spěchu a je to trochu zmatlané, viz.: 

 

 

Co je otravne, kdyz pouzivate dcmd?

dcmd(prikaz,5,cmdtext);

Toto je nejvic otravne, kdyz pouzivate dcmd..   

 

Taky jsi tam nastrkal nějaké fakta, co jsi někde slyšel a vůbec jsi to nijak nezformuloval do souvislých či smysludávajících vět. A to, že je skoro každý řádek jinou barvou na mě taky nepůsobí moc dobře, zkus si příště vybrat 2 až 3 barvy a dávat pouze ty, žádné jiné, jinak to pak působí na oči strašně přeplácaně. Hodnocení: 4/10 za snahu, to se ovšem může změnit, pokud to trošku upravíš a odpovíš mi na můj výše zmíněný problém (dotaz). ;)

Link to comment
Share on other sites

podle čeho je lepší zcmd oproti dcmd? PROSÍM AT ODPOVÍ AUTOR JEN

 

nevysvětlil jsi mě proč napsal si jen že je lepší nic víc...

tento návod je odpad, vůbec si neřekl nic o dcmd a o zcmd

jaké jsou funkce includu zcmd? 

CMD:prikaz(arg)
COMMAND:prikaz(arg)
command(prikaz,arg)

třeba toto si veděl že tam je?

Edited by Steam wallet
Link to comment
Share on other sites

Rozdíl mezi dcmd a y_commands(musíš být konkrétnější, nestačí říct jenom YSI), což tady není nějak zmíněno, je že dcmd není nic více než preprocesor s podmínkou. Hledá text po textu, písmenku po písmenku, a to prostě zabere čas(pokud si to neumíš představit, tak určitě znáš Rcon Brute Force, jak zjišťuje rcon tak musí písmenko po písmenku nejdříve a, b, c, d... pak aa, ab, ac, ad... a takhle to pokračuje až klidně i 3 dny, záleží na délce hesla), mezitím co y_commands bere každý příkaz jako id. Díky tomu je to rychlejší, protože najde jenom číslo od 0 do třeba 10, a s tím pracuje. A taky s tím id můžeš nadále pracovat.
Link to comment
Share on other sites

Podle toho, co tu pisete, tak dcmd je obycejny switch podle stringu. v pawnu nejspise rada ifu po sobe. (Na tom neni nic spatnyho, bezne se to pouziva v jinych jazycych). Zato, co y_commands je ordered mapa (B-tree?, hash mapa?) a da se v ni vyhledavat binarne. 

 

 

Misto tohohle shit tutorialu si aspon mohol udelat benchmark obojiho...

Link to comment
Share on other sites

Zcmd funguje na princípe, že si z cmdtextu odfiltruje názov príkazu písmenko po písmenku, až po medzeru, tým zistí presnú pozíciu params za príkazom, ak hráč nezadá params, tak sa odošle do params null a následne sa vyvolá ten váš COMMAND:prikaz(playerid, params[]) a kód, čo v ňom máte, čo v skutočnosti je len callback, ktorý má svoje macro v zcmd.inc. Vo výsledku to je lepšie v tom, že oproti klasickému strcmp zcmd nelistuje a neprechádza všetky podmienky, či hráč zadal ten príkaz, ale priamo vyvolá iba ten, čo zadal, čo je užitočné teda hlavne pri väčších množstvách príkazov.

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

Tohle je tu už milionkrát. A chce to popsat trochu konkrétněji. Návod o ničem.

 

3/10 za snahu

 

Za snahu ti v praci plat nedaj. Bud mas vysledky nebo muzes jit. Hodnoti se script, tutorial, mod, atd. ale ne neci snaha...

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

Za snahu ti v praci plat nedaj. Bud mas vysledky nebo muzes jit. Hodnoti se script, tutorial, mod, atd. ale ne neci snaha...

Tak plat asi ne. Ale u mě se snaha cení :d. Ale kdybych to měl hodnotit jako tutorial, tak 0/10. Prostě není to vůbec popsané a pořádně vysvětlené.

Link to comment
Share on other sites

Dobrý večer. 

Nedá mi nezareagovať na tvoj návod " návod ako na ZCMD a prečo nepoužívať DCMD ". 

V prvom prípade, ako už písali kolegovia, je toho plný internet.  Ak vážne je niekto seriózny, a hľadá pre svoj server iba to najlepšie, dostane sa k ZCMD veľmi rýchlo. 
Ja osobne som rád, že je tu noví propagandista, ktorý upozorňuje na večný problém v SK/CZ pawn komunite. 
Samozrejme mám aj menšiu výhradu. 
Písal si že DCMD je 8 rokov staré. Áno máš pravdu, páč významní rok pre DCMD sa datuje na rok 2008. Len že, zabúdaš na ten fakt, že ZCMD mal poslední update datovaní na rok 2009. Tak tiež, som sa dozvedel od nemenovanej osoby, že ZCMD má po istom počte príkazov, 100+ spomalovacie účinky. 
Ja osobne, by som spomenul najnovší Command systém, a najrýchlejší samozrejme, ktorý málo kto pozná. Volá sa I-ZCMD.  I-ZCMD, ako už je z názvu počuť, pochádza z ZCMD generácie, až na to že samotní kód je vylepšení o najnovšie tkz. " furutovky ",  a o vývoj sa stará Yashas.
 

Viac tu:

http://forum.sa-mp.com/showthread.php?t=576114

Link to comment
Share on other sites

Dobrý večer. 

 

Nedá mi nezareagovať na tvoj návod " návod ako na ZCMD a prečo nepoužívať DCMD ". 

 

V prvom prípade, ako už písali kolegovia, je toho plný internet.  Ak vážne je niekto seriózny, a hľadá pre svoj server iba to najlepšie, dostane sa k ZCMD veľmi rýchlo. 

Ja osobne som rád, že je tu noví propagandista, ktorý upozorňuje na večný problém v SK/CZ pawn komunite. 

Samozrejme mám aj menšiu výhradu. 

Písal si že DCMD je 8 rokov staré. Áno máš pravdu, páč významní rok pre DCMD sa datuje na rok 2008. Len že, zabúdaš na ten fakt, že ZCMD mal poslední update datovaní na rok 2009. Tak tiež, som sa dozvedel od nemenovanej osoby, že ZCMD má po istom počte príkazov, 100+ spomalovacie účinky. 

Ja osobne, by som spomenul najnovší Command systém, a najrýchlejší samozrejme, ktorý málo kto pozná. Volá sa I-ZCMD.  I-ZCMD, ako už je z názvu počuť, pochádza z ZCMD generácie, až na to že samotní kód je vylepšení o najnovšie tkz. " furutovky ",  a o vývoj sa stará Yashas.

 

Viac tu:

http://forum.sa-mp.com/showthread.php?t=576114

Ja pouzivam svuj vlastni command system, ten system je na stejnem principu jako ZCMD, jen ho pouzivam driv nez ZCDM vznikl :) Kazdopadne u ZCMD a podobnych systemu je vzdy system stejne rychly pri jakemkoli poctu prikazu (nebo je zpomaleni nemeritelne, protoze se ztraci v meritelne odchylce procesoru)

Link to comment
Share on other sites

Se mi zdá že tady někdo u toho tzv. Návodu zapomněl že u zcmd musí vložit zcmd_OnPlayerCommandText do OnPlayerCommandText public/ku aby příkazy reagovali. 

Link to comment
Share on other sites

Se mi zdá že tady někdo u toho tzv. Návodu zapomněl že u zcmd musí vložit zcmd_OnPlayerCommandText do OnPlayerCommandText public/ku aby příkazy reagovali. 

od kdy?

#if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
#else
    #define _ALS_OnGameModeInit
#endif
#define OnGameModeInit zcmd_OnGameModeInit
forward zcmd_OnGameModeInit();

#endif /*if defined FILTERSCRIPT*/

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (zcmd_g_HasOPCS && !CallLocalFunction("OnPlayerCommandReceived", "is", playerid, cmdtext))
    {
        return 1;
    }
    new
        pos,
        funcname[MAX_FUNC_NAME];

    while (cmdtext[++pos] > ' ')
	{
		funcname[pos-1] = tolower(cmdtext[pos]);
	}
	format(funcname, sizeof(funcname), "cmd_%s", funcname);
    while (cmdtext[pos] == ' ') pos++;



	if (!cmdtext[pos])
	{
		if (zcmd_g_HasOPCE)
		{
			return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, "\1"));
		}
		return CallLocalFunction(funcname, "is", playerid, "\1");
	}
	if (zcmd_g_HasOPCE)
	{
		return CallLocalFunction("OnPlayerCommandPerformed", "isi", playerid, cmdtext, CallLocalFunction(funcname, "is", playerid, cmdtext[pos]));
	}
	return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
}

#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText zcmd_OnPlayerCommandText
forward zcmd_OnPlayerCommandText(playerid, cmdtext[]);
Edited by Steam wallet
Link to comment
Share on other sites

Se mi zdá že tady někdo u toho tzv. Návodu zapomněl že u zcmd musí vložit zcmd_OnPlayerCommandText do OnPlayerCommandText public/ku aby příkazy reagovali. 

 

 

Nemusi, na serveru to vzdycky 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...