Jump to content
  • 0

pomoc Unknown Command!


Michal Kuřátko (_Michael_)

Dotaz

Ahoj, mám VIP script a mám příkaz /vipconfig avšak když příkaz zadám píše "Unknown command"

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/vipconfig", cmdtext, true, 10) == 0)
{
new query[300], pname[24], string[512];
GetPlayerName(playerid, pname, 24);
Prihlasen[playerid] = 0;
format(query, sizeof(query), "SELECT * FROM VIPs WHERE user = '%s'", pname);
mysql_query(query);
mysql_store_result();
new rows = mysql_num_rows();
if(!rows)
{
 format(string, sizeof(string), "Vítej %s!\nProsím zaregistruj se do VIP Systému.\n\nZvol si heslo(nikomu ho neříkej):", pName(playerid));
 ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "VIP - Registrace", string, "Ok", "");
}
if(rows == 1)
{
 format(string, sizeof(string), "Vítej %s!\nProsím přihlaš se do VIP Systému\n\nZadej heslo:", pName(playerid));
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "VIP - Přihlášení", string, "Ok", "");
 Registrovan[playerid] = 1;
}
mysql_free_result();
return 1;
}
return 0;
}

 

Každá pomoc vítána! :d

Link to comment
Share on other sites

14 odpovědí na tuto otázku

Recommended Posts

  • 0

Nebo to skus takto...

 

Pokud nemáš tak nahoru:

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

 

Do OnPlayerCommandText:

dcmd(vipconfig, 9, cmdtext);
return InvalidCommand(playerid);

 

Nekam do modu:

dcmd_vipconfig(playerid,params[])
{
#pragma unused params
//Co ma vykonat prikaz
return 1;
}

 

A pak třeba dólu:

InvalidCommand(playerid)
{
SendClientMessage(playerid, COLOR_SERVER, "SERVER: Špatně zadaný příkaz. Použij /help");
return 1;
}

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

  • 0

Si si istý, že si ten FS loadol ? Lebo v scripte chyba nieje (teda nevidel som ju)

 

[18:40:31] Filterscripts

[18:40:31] ---------------

[18:40:31] Loading filterscript 'VIPSFRP.amx'...

[18:40:31] VIP Script uspesne pripojeny na SFRP mod!

[18:40:31] VIP Script uspesne pripojeny MySQL server!

[18:40:31] Loaded 1 filterscripts.

 

FS se načetl...

 

v strcmp přehoď 2 první parametry :d

 

Nechápu jak to myslíš :d

Link to comment
Share on other sites

  • 0

Daj si tam printfy, či sa splní tá podmienka

ti rovnou řeknu že ne :d vim z vlastní zkušenosti :d

takže mame ten tvj kod

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/vipconfig", cmdtext, true, 10) == 0)
{
new query[300], pname[24], string[512];
GetPlayerName(playerid, pname, 24);
Prihlasen[playerid] = 0;
format(query, sizeof(query), "SELECT * FROM VIPs WHERE user = '%s'", pname);
mysql_query(query);
mysql_store_result();
new rows = mysql_num_rows();
if(!rows)
{
	 format(string, sizeof(string), "Vítej %s!\nProsím zaregistruj se do VIP Systému.\n\nZvol si heslo(nikomu ho neříkej):", pName(playerid));
	 ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "VIP - Registrace", string, "Ok", "");
}
if(rows == 1)
{
	 format(string, sizeof(string), "Vítej %s!\nProsím přihlaš se do VIP Systému\n\nZadej heslo:", pName(playerid));
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "VIP - Přihlášení", string, "Ok", "");
	 Registrovan[playerid] = 1;
}
mysql_free_result();
return 1;
}
return 0;
}

vezmeme si řádek

if (strcmp("/vipconfig", cmdtext, true, 10) == 0)

je uplně špatně

správně je to takhle

if (strcmp(cmdtext, "/vipconfig", true, 10) == 0)

určitě se ptáš proč takhle?

protože první parametr(cmdtext) je celkový string který porovnávaš s tim druhým parametrem("/vipconfig")

prostě první parametr(cmdtext) je porovnávaný string

pro ty blbější vždy bude cmdtext první a . :d

Link to comment
Share on other sites

  • 0

ti rovnou řeknu že ne :d vim z vlastní zkušenosti :d

takže mame ten tvj kod

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/vipconfig", cmdtext, true, 10) == 0)
{
new query[300], pname[24], string[512];
GetPlayerName(playerid, pname, 24);
Prihlasen[playerid] = 0;
format(query, sizeof(query), "SELECT * FROM VIPs WHERE user = '%s'", pname);
mysql_query(query);
mysql_store_result();
new rows = mysql_num_rows();
if(!rows)
{
	 format(string, sizeof(string), "Vítej %s!\nProsím zaregistruj se do VIP Systému.\n\nZvol si heslo(nikomu ho neříkej):", pName(playerid));
	 ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "VIP - Registrace", string, "Ok", "");
}
if(rows == 1)
{
	 format(string, sizeof(string), "Vítej %s!\nProsím přihlaš se do VIP Systému\n\nZadej heslo:", pName(playerid));
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "VIP - Přihlášení", string, "Ok", "");
	 Registrovan[playerid] = 1;
}
mysql_free_result();
return 1;
}
return 0;
}

vezmeme si řádek

if (strcmp("/vipconfig", cmdtext, true, 10) == 0)

je uplně špatně

správně je to takhle

if (strcmp(cmdtext, "/vipconfig", true, 10) == 0)

 

Nefunguje...

Link to comment
Share on other sites

  • 0

public OnFilterScriptInit()
{
   mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);
   mysql_debug(0);
   print("VIP Script uspesne pripojeny na SFRP mod!");
   print("VIP Script uspesne pripojeny MySQL server!");
   return 1;
}

 

#define MYSQL_HOST                  "db.crew-servers.com"
#define MYSQL_USER                  "**************"
#define MYSQL_PASSWORD       "*****************"
#define MYSQL_DATABASE         "*******************"

Link to comment
Share on other sites

  • 0

nekdy je dobre se zajímat o to, co jaky parametr v dané funkci dělá

if (strcmp("/vipconfig", cmdtext, true, 10) == 0)

To číslo 10 udává počet kontrolovanych znaků. Pokud potrebuješ porovnat celý text tak to smaz:

if(strcmp("/vipconfig",cmdtext,true) == 0)

 

Ale v tom bych nevidel problem. Spis mas neco nad timto prikazem, kde kod prestane pracovat a ani se k tomu /vipconfig nedostane.

Takovou klasikou je sahani do neexistujici promene. Kdyz sem das cely OnPlayerCommandText budeme vedet vice.

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

  • 0
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/vipconfig", true, 10) == 0)
{
new query[300], pname[24], string[512];
GetPlayerName(playerid, pname, 24);
Prihlasen[playerid] = 0;
format(query, sizeof(query), "SELECT * FROM VIPs WHERE user = '%s'", pname);
mysql_query(query);
mysql_store_result();
new rows = mysql_num_rows();
if(!rows)
{
 format(string, sizeof(string), "Vítej %s!\nProsím zaregistruj se do VIP Systému.\n\nZvol si heslo(nikomu ho neříkej):", pName(playerid));
 ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "VIP - Registrace", string, "Ok", "");
}
if(rows == 1)
{
 format(string, sizeof(string), "Vítej %s!\nProsím přihlaš se do VIP Systému\n\nZadej heslo:", pName(playerid));
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "VIP - Přihlášení", string, "Ok", "");
 Registrovan[playerid] = 1;
}
mysql_free_result();
return 1;
}
return 0;
}

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