Wysłany: 2014-01-05, 13:06
sojcef
Wiek: 36 Na forum: 5058 dni Posty: 30
Kod: // Wywo?ywanie komend z innych nazw np. "/changepass 1234" = "/pass 1234"
CMD:changepass(playerid, params[])
return cmd_pass(playerid, params);
CMD:zmienhaslo(playerid, params[])
return cmd_pass(playerid, params);
CMD:nowynick(playerid, params[])
return cmd_nick(playerid, params);
CMD:zmiennick(playerid, params[])
return cmd_nick(playerid, params);
CMD:nick(playerid, params[])
{
new DBResult:result;
if(isnull(params) || strlen(params) > MAX_PLAYER_NAME)
return SendClientMessage(playerid, 0x800040AA, "/nick [nowy nick]");
if(!IsValidPlayerName(params))
return SendClientMessage(playerid, 0x800040AA, "Zmiana nicku: poda?e? nieprawid?owy nick!");
format(query, sizeof query, "SELECT `id` FROM `players` WHERE `login` = '%s'", params);
result = db_query(b_Acc, query);
if(db_num_rows(result))
return SendClientMessage(playerid, 0x800040AA, "Zmiana nicku: ten nick jest ju? zaj?ty!");
db_free_result(result);
format(query, sizeof query, "UPDATE `players` SET `login` = '%s' WHERE `login` = %s", params, PlayerName(playerid));
db_free_result(db_query(b_Acc, query));
SetPlayerName(playerid, params);
SendClientMessage(playerid, 0x80FF00AA, "Prawid?owo zmieni?e? nick i przenis?e? swoje statystyki! Tw?j nowy nick to:");
SendClientMessage(playerid, 0x0080FFAA, PlayerName(playerid));
return 1;
}
CMD:pass(playerid, params[])
{
if(isnull(params) || strlen(params) > 24 || strlen(params) < 5)
return SendClientMessage(playerid, 0x800040AA, "/pass [nowe has?o]");
ConvertToSQLitePass(params);
format(query, sizeof query, "UPDATE `players` SET `pass` = '%s' WHERE `login` = '%s'", params, PlayerName(playerid));
db_free_result(db_query(b_Acc, query));
SendClientMessage(playerid, 0x80FF00AA, "Prawid?owo zmieni?e? has?o! Twoje nowe has?o to:");
SendClientMessage(playerid, 0x0080FFAA, params);
return 1;
}
CMD:top10(playerid, params[])
{
new DBResult:result, buf_Nick[MAX_PLAYER_NAME], buf_resp[8], dialog[512] = " ** Lista Top 10 Graczy: **\n";
result = db_query(b_Acc, "SELECT `login`, `respect` FROM `players` ORDER BY `respect` DESC LIMIT 10");
do
{
db_get_field(result, 0, buf_Nick, sizeof(buf_Nick));
db_get_field(result, 1, buf_resp, sizeof(buf_resp));
format(dialog, sizeof dialog, "%s\n\t%sp. %s", dialog, buf_Nick, buf_resp);
}
while(db_next_row(result));
format(dialog, sizeof dialog, "%s\n_____________________________________________________________", dialog);
db_free_result(result);
ShowPlayerDialog(playerid, DIALOG_TOP, DIALOG_STYLE_MSGBOX, "TOP 10", dialog, "OK", "Wyjd?");
}
CMD:top25(playerid, params[])
{
new DBResult:result, buf_Nick[MAX_PLAYER_NAME], buf_resp[8], dialog[512] = " ** Lista Top 25 Graczy: **\n";
result = db_query(b_Acc, "SELECT `login`, `respect` FROM `players` ORDER BY `respect` DESC LIMIT 25");
do
{
db_get_field(result, 0, buf_Nick, sizeof(buf_Nick));
db_get_field(result, 1, buf_resp, sizeof(buf_resp));
format(dialog, sizeof dialog, "%s\n\t%sp. %s", dialog, buf_Nick, buf_resp);
}
while(db_next_row(result));
format(dialog, sizeof dialog, "%s\n_____________________________________________________________", dialog);
db_free_result(result);
ShowPlayerDialog(playerid, DIALOG_TOP, DIALOG_STYLE_MSGBOX, "TOP 25", dialog, "OK", "Wyjd?");
}
Prosi?bym o przerobienie tych komend z "zcmd" na "strcmp". Nie mam poj?cia jak si? do tego zabra? ;d
Wysłany: 2014-01-05, 14:30
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
sojcef , Przerobienie w sensie zcmd ---> strcmp czy zcmd+sscanf ----> strcmp+strtok ?
Wysłany: 2014-01-05, 15:49
sojcef
Wiek: 36 Na forum: 5058 dni Posty: 30
Wysłany: 2014-01-05, 17:11
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
Wysłany: 2014-01-05, 17:25
sojcef
Wiek: 36 Na forum: 5058 dni Posty: 30
Kod:
if (strcmp("/nick", cmdtext, true, 10) == 0)
{
new DBResult:result;
if(isnull(params) || strlen(params) > MAX_PLAYER_NAME)
return SendClientMessage(playerid, 0x800040AA, "/nick [nowy nick]");
if(!IsValidPlayerName(params))
return SendClientMessage(playerid, 0x800040AA, "Zmiana nicku: poda?e? nieprawid?owy nick!");
format(query, sizeof query, "SELECT `id` FROM `players` WHERE `login` = '%s'", params);
result = db_query(b_Acc, query);
if(db_num_rows(result))
return SendClientMessage(playerid, 0x800040AA, "Zmiana nicku: ten nick jest ju? zaj?ty!");
db_free_result(result);
format(query, sizeof query, "UPDATE `players` SET `login` = '%s' WHERE `login` = %s", params, PlayerName(playerid));
db_free_result(db_query(b_Acc, query));
SetPlayerName(playerid, params);
SendClientMessage(playerid, 0x80FF00AA, "Prawid?owo zmieni?e? nick i przenis?e? swoje statystyki! Tw?j nowy nick to:");
SendClientMessage(playerid, 0x0080FFAA, PlayerName(playerid));
return 1;
}
if (strcmp("/pass", cmdtext, true, 10) == 0)
{
if(isnull(params) || strlen(params) > 24 || strlen(params) < 5)
return SendClientMessage(playerid, 0x800040AA, "/pass [nowe has?o]");
ConvertToSQLitePass(params);
format(query, sizeof query, "UPDATE `players` SET `pass` = '%s' WHERE `login` = '%s'", params, PlayerName(playerid));
db_free_result(db_query(b_Acc, query));
SendClientMessage(playerid, 0x80FF00AA, "Prawid?owo zmieni?e? has?o! Twoje nowe has?o to:");
SendClientMessage(playerid, 0x0080FFAA, params);
return 1;
}
if (strcmp("/top10", cmdtext, true, 10) == 0)
{
new DBResult:result, buf_Nick[MAX_PLAYER_NAME], buf_resp[8], dialog[512] = " ** Lista Top 10 Graczy: **\n";
result = db_query(b_Acc, "SELECT `login`, `respect` FROM `players` ORDER BY `respect` DESC LIMIT 10");
do
{
db_get_field(result, 0, buf_Nick, sizeof(buf_Nick));
db_get_field(result, 1, buf_resp, sizeof(buf_resp));
format(dialog, sizeof dialog, "%s\n\t%sp. %s", dialog, buf_Nick, buf_resp);
}
while(db_next_row(result));
format(dialog, sizeof dialog, "%s\n_____________________________________________________________", dialog);
db_free_result(result);
ShowPlayerDialog(playerid, DIALOG_TOP, DIALOG_STYLE_MSGBOX, "TOP 10", dialog, "OK", "Wyjd?");
}
if (strcmp("/top25", cmdtext, true, 10) == 0)
{
new DBResult:result, buf_Nick[MAX_PLAYER_NAME], buf_resp[8], dialog[512] = " ** Lista Top 25 Graczy: **\n";
result = db_query(b_Acc, "SELECT `login`, `respect` FROM `players` ORDER BY `respect` DESC LIMIT 25");
do
{
db_get_field(result, 0, buf_Nick, sizeof(buf_Nick));
db_get_field(result, 1, buf_resp, sizeof(buf_resp));
format(dialog, sizeof dialog, "%s\n\t%sp. %s", dialog, buf_Nick, buf_resp);
}
while(db_next_row(result));
format(dialog, sizeof dialog, "%s\n_____________________________________________________________", dialog);
db_free_result(result);
ShowPlayerDialog(playerid, DIALOG_TOP, DIALOG_STYLE_MSGBOX, "TOP 25", dialog, "OK", "Wyjd?");
}
Kod:
pawno\include\dutils.inc(199) : error 025: function heading differs from prototype
pawno\include\dutils.inc(199) : error 021: symbol already defined: "b_SetMoney"
Desktop\cos.pwn(1671) : warning 225: unreachable code
Desktop\cos.pwn(2167) : error 017: undefined symbol "params"
Desktop\cos.pwn(2167) : error 029: invalid expression, assumed zero
Desktop\cos.pwn(2167) : error 017: undefined symbol "params"
Desktop\cos.pwn(2167) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
6 Errors.
linijki:
Kod:
(2167) - if(isnull(params) || strlen(params) > MAX_PLAYER_NAME)
Wysłany: 2014-01-05, 18:22
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Kod: if(!strcmp(cmdtext, "/komenda", true, [b]ILOSC_ZNAKOW[/b]))
{
+ do sscanfa i isnulla uzywasz zamiast params:
Kod:
ILOSC_ZNAKOW - ilosc znakow w komendzie
Wysłany: 2014-01-05, 20:20
sojcef
Wiek: 36 Na forum: 5058 dni Posty: 30
Ok, poradzi?em sobie mo?na zamkn??
Wysłany: 2014-01-06, 11:09
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Z?e u?ycie sscanfa.
Jego u?ywasz, ?eby wymusi? wpisanie czego? tam a nie do warunk?w;
Je?li chcesz u?y? sscanfa to:
Kod:
new newnick[24];
if(sscanf(cmdtext[6],"s[24]",newnick)) return SendClientMessage(playerid,-1,"Uzyj: /zmiennick [nick]");
I newnick = to co wpisal
lub bez sscanf dla jednego argumentu
Kod: if(!cmdtext[5]) return SendClientMessage(playerid,-1,"Uzyj: /zmiennick [nick]");
I cmdtext[6] = to co wpisal
Tagi: zcmd :: strcmp
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: