Pozz!
Moze li mi netko objasniti strtok(cmdtext, idx);?
Sto to znaci?
http://wiki.sa-mp.com/wiki/Strtok
Ogromno preporucam koristenje: sscanf + zcmd/ycmd/dcmd
Pa ja i jesam koristio sscanf i htio sam napraviti /register i /login komande. I uspio sam napraviti /register komandu ali ne mogu napraviti /login, jer mi se javlja neki error.
Evo ovo je moja /login komanda:
dcmd_login(playerid, params[])
{
new password;
new tmp[256];
new file[128];
new name[MAX_PLAYER_NAME];
if(sscanf(params, "si", password)) return SendClientMessage(playerid, 0xFFFFFFFF, "KORISTENJE: /login <sifra>");
format(file, sizeof(file), "%s.ini", name);
GetPlayerName(playerid, name, sizeof(name));
if(!fexist(file))
{
tmp = dini_Get(file, "Sifra");
if(udb_hash(password) != strval(tmp))
{
SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Account Logged into!");
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Login failed!");
}
}
return 1;
}
A ovaj mi se error javlja:
C:\Documents and Settings\Administrator\Desktop\Bruce\gamemodes\rs.pwn(136) : error 035: argument type mismatch (argument 1)
A ovo je 136 linija gdje je error:
if(udb_hash(password) != strval(tmp))
dcmd_login(playerid, params[])
{
new password[128];
new tmp[256];
new file[128];
new name[MAX_PLAYER_NAME];
if(sscanf(params, "s", password)) return SendClientMessage(playerid, 0xFFFFFFFF, "KORISTENJE: /login <sifra>");
format(file, sizeof(file), "%s.ini", name);
GetPlayerName(playerid, name, sizeof(name));
if(!fexist(file))
{
tmp = dini_Get(file, "Sifra");
if(udb_hash(password) != strval(tmp))
{
SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Account Logged into!");
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "[System]: Login failed!");
}
}
return 1;
}
eto ti ispravljene verzije, znaci sljedece je bilo krivo:
"password" nije bio array,a treba biti za string. i jos jedna greska je bila sta si stavio u sscanf u drugi parametar "si" dok treba samo "s" za string,a "i" znaci da trebas broj,a ne trebas
Ok. Puno ti hvala! ;D