Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2014-01-05, 13:06


sojcef







Wiek: 36
Na forum: 5059 dni
Posty: 30



Respekt: 50

Ostrzeżeń: 20%
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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-05, 14:30


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

sojcef, Przerobienie w sensie zcmd ---> strcmp czy zcmd+sscanf ----> strcmp+strtok ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-05, 15:49


sojcef







Wiek: 36
Na forum: 5059 dni
Posty: 30



Respekt: 50

Ostrzeżeń: 20%
na strcmp + sscanf

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-05, 17:11


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

sojcef, Dodajesz t? komend? w callbacku:
http://wiki.sa-mp.com/wiki/OnPlayerCommandText
I zmieniasz pierwsz? linijk? komendy na:
Kod:

if(!strcmp(cmdtext, "/komenda", true))
{


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-05, 17:25


sojcef







Wiek: 36
Na forum: 5059 dni
Posty: 30



Respekt: 50

Ostrzeżeń: 20%
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)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-05, 18:22


xqz

otaku desu!






Wiek: 32
Na forum: 6407 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

Kod:

if(!strcmp(cmdtext, "/komenda", true, [b]ILOSC_ZNAKOW[/b]))
{


+ do sscanfa i isnulla uzywasz zamiast params:

Kod:

cmdtext[ILOSC_ZNAKOW+1]



ILOSC_ZNAKOW - ilosc znakow w komendzie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-05, 20:20


sojcef







Wiek: 36
Na forum: 5059 dni
Posty: 30



Respekt: 50

Ostrzeżeń: 20%
Ok, poradzi?em sobie mo?na zamkn??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-06, 11:09


xqz

otaku desu!






Wiek: 32
Na forum: 6407 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

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

Postaw piwo autorowi tego posta
 

 
Tagi: zcmd :: strcmp
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku