Jump to content
  • 0

pomoc Vlastní RCON CMD


Pavel Tuček

Dotaz

Zdravím,

minule jsem tu byl s tím, že mi nešlo sprovoznit vlastní RCON CMD.. ten jsem díky vaši pomoci sprovoznil.. Dnes tu mám problém...RCON cmd se bude použivat - /rcon delete VIPs Pavel

Potřebuji pomoct, jak z tohto příkazu vytáhnu 2 parametry... nevím, jestli me chápete

public OnRconCommand(cmd[])
{
    new cmdtext[128], idx;
	cmdtext = strtok(cmd, idx);
   	if(strcmp(cmd, "delete", true))
    {
        new tmp[128];
		tmp = strtok(cmd, idx);
		new file[32];
		format(file, sizeof(file), "%s/%s.txt", tmp);
		if(!dini_Exists(file)) return 0;
		dini_Remove(file);
	}
	return 1;
}

Potřebuji zadat nick a pak i custom koncovku.. proste /rcon delete NAZEV_SLOZKY NICK ... šlo by to nejak? Potřebuji do toho příkazu zadat 2 parametry. Díky za rady

Edited by Pavel Tuček
Link to comment
Share on other sites

19 odpovědí na tuto otázku

Recommended Posts

  • 0

Ano.. ale kam to dat :d

je to stock dej si to kam chceš, následné využítí je takové

if(sscanf(params, "isudf", promenné do které zapíšeš))

třeba

new ID,HP;
if(sscanf(params, "ii", ID,HP)) return SCM(...,"Použij /setHP ID HP");
SetPlayerHealth(ID,HP);
Link to comment
Share on other sites

  • 0

To jo ale ja to používam v OnRconCommand a tam to je nejak divne.. tam není params :/


Zkousil jsem to dát na /rcon chat Jmeno text ale nefunguje to vubec

public OnRconCommand(cmd[])
{
if(strcmp(cmd, "chat", true))
{
        new jmeno, text, string[128];
	if(sscanf(cmd, "ss", jmeno, text))
	format(string, sizeof(cmdtext), "%s %s", jmeno, text);
	SendClientMessageToAll(-1,string);
	return 1;
}
return 0;
}
Edited by Pavel Tuček
Link to comment
Share on other sites

  • 0

 

To jo ale ja to používam v OnRconCommand a tam to je nejak divne.. tam není params :/

Zkousil jsem to dát na /rcon chat Jmeno text ale nefunguje to vubec

public OnRconCommand(cmd[])
{
if(strcmp(cmd, "chat", true))
{
        new jmeno, text, string[128];
	if(sscanf(cmd, "ss", jmeno, text))
	format(string, sizeof(cmdtext), "%s %s", jmeno, text);
	SendClientMessageToAll(-1,string);
	return 1;
}
return 0;
}

tak hádej 3x to za kravinu s proměnnou tam máš..

Link to comment
Share on other sites

  • 0
  • Hlavní moderátor

Tak do začátku, pánové, už tahle podmínka je blbě:

if(strcmp(cmd, "chat", true))

strcmp při shodě řetězců vrací nulu, správná podmínka je tedy:

if(strcmp(cmd, "chat", true) == 0)

popř.

if(!strcmp(cmd, "chat", true))

Co se týče rozdělování, přečti si tohle.

Link to comment
Share on other sites

  • 0
  • Hlavní moderátor

If the "s" is the last format parameter the string will contain everything remaining in the source string, if it isn't it will just get a single word similar to strtok

Tohle je ten konkrétní úsek. To znamená, že jestli chceš tři slova, pak by to mohlo vypadat následovně: "sss "

Link to comment
Share on other sites

  • 0


public OnRconCommand(cmd[])
{
if(strcmp(cmd,"delete",true,6) == 0)//delete ma 6 znaku takze budeme porovnavat jen prvnich 6 a zato si muze napsat cokoliv
{
new file[32];//uvaz jestli ti tech 32 znaku bude opravdu stacit...
format(file,sizeof(file),"%s/%s.txt",cmd[7]);//predpokladame ze za "delete" napise mezeru a pak samotny nazev, takze proto 7
if(dini_Exists(file)) dini_Remove(file);
}
return 1;
}

 

Edited by ATomas
Link to comment
Share on other sites

  • 0

Kód od ATomase nebude fungovat. Do formátu dosazuje pouze jeden parametr (místo 2) a nikde není kontrola a chtělo by to možná i kontrolu, jestli vůbec ty parametry zadal.

Link to comment
Share on other sites

  • 0

Funguje to tak jak ti to napsal ATomas jenom to chce sccanf na víc pro příkazy typu /rcon delete [něco] [něco] (než se najde nějaký chytrák tak už to mám otestované :o). Jestli chceš napiš mě na skype v popisku když mě nebudeš otravovat celý den jako většina tak ti to udělám (tady je to akorát samá kritika).

Edited by rEf
Link to comment
Share on other sites

  • 0

Funguje to tak jak ti to napsal ATomas jenom to chce sccanf na víc pro příkazy typu /rcon delete [něco] [něco] (než se najde nějaký chytrák tak už to mám otestované :o). Jestli chceš napiš mě na skype v popisku když mě nebudeš otravovat celý den jako většina tak ti to udělám (tady je to akorát samá kritika).

to ja prehledl ze tam chce dva parametry, protoze jsem se koukal jen na pocet parametru ve formatu a tam mel jen jeden :d

public OnRconCommand(cmd[])
{
    if(strcmp(cmd,"delete",true,6) == 0)//delete ma 6 znaku takze budeme porovnavat jen prvnich 6 a zato si muze napsat cokoliv
    {
        if(dini_Exists(cmd[7])) dini_Remove(cmd[7]);//predpokladame ze za "delete" napise mezeru a pak samotny nazev, takze proto 7
        return 1;
    }
    return 0;
}

v tomto konkretnim pripade to lze jednoduse udelat takto a tim ze tam musis napsat celou tu cestu

/rcon delete slozka/soubor.txt
Edited by ATomas
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...