Skriptu koju koristim: Moji gamemode od 0
Detaljan opis problema: Imam komande /register i /login ali neznam kako da napravim da register i login nije vise u komande nego da je u dialog, ja znam da napravim ono showplayerdialog cim se igrac konektuje ali kako da napravim ono sta ide pod OnDialogResponse.
Dio skripte: CMD:register(playerid, params[])
{
if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /register [pass]");
new Query[320], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
mysql_real_escape_string(pName, pName);
format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
mysql_query(Query);
mysql_store_result();
if(mysql_num_rows())
{
SendClientMessage(playerid, COLOR_ORANGE, "[*] An account already exists under that name! Use \"/login\" to log in!");
mysql_free_result();
return 1;
}
mysql_free_result();
WP_Hash(Query, 129, params);
new IP[16];
GetPlayerIp(playerid, IP, 16);
format(Query, sizeof Query, "INSERT INTO `accounts` (Name, Password, IP, Admin, Money, Score, Kills, Deaths) VALUES ('%s', '%s', '%s', %i, %i, %i, %i, %i)",
pName,
Query,
IP,
GetPVarInt(playerid, "Admin"),
GetPlayerMoney(playerid),
GetPlayerScore(playerid),
GetPVarInt(playerid, "Kills"),
GetPVarInt(playerid, "Deaths"));
mysql_query(Query);
SetPVarInt(playerid, "Logged", 1);
SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully registered and automatically logged in!");
return 1;
}
CMD:login(playerid, params[])
{
if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "[*] You're already logged in!");
if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "[*] Usage: /login [pass]");
new Query[256], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
mysql_real_escape_string(pName, pName);
format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
mysql_query(Query);
mysql_store_result();
if(!mysql_num_rows())
{
SendClientMessage(playerid, COLOR_ORANGE, "[*] You're not registered! Use \"/register\" to register an account!");
mysql_free_result();
return 1;
}
mysql_free_result();
WP_Hash(Query, 129, params);
format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", pName, Query);
mysql_query(Query);
mysql_store_result();
if(!mysql_num_rows())
{
SetPVarInt(playerid, "LoginWarns", GetPVarInt(playerid, "LoginWarns") + 1);
if(GetPVarInt(playerid, "LoginWarns") == 3)
{
format(Query, sizeof Query, "[*] %s has been kicked for 3 wrong login attempts!", pName);
SendClientMessageToAll(COLOR_ROYALBLUE, Query);
Kick(playerid);
}
else
{
format(Query, sizeof Query, "[*] Wrong password! Attempt %i out of 3.", GetPVarInt(playerid, "LoginWarns"));
SendClientMessage(playerid, COLOR_ORANGE, Query);
}
return 1;
}
mysql_fetch_row(Query);
new values[5];
sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[5]", values); //Enjoy editing.
SetPVarInt(playerid, "Admin", values[0]);
GivePlayerMoney(playerid, values[1]);
SetPlayerScore(playerid, values[2]);
SetPVarInt(playerid, "Kills", values[3]);
SetPVarInt(playerid, "Deaths", values[4]);
mysql_free_result();
SetPVarInt(playerid, "Logged", 1);
SendClientMessage(playerid, COLOR_LIMEGREEN, "[*] Succesfully logged in!");
//Ip setting
GetPlayerIp(playerid, Query, 16);
format(Query, sizeof Query, "UPDATE `accounts` SET `IP` = '%s' WHERE `Name` = '%s' LIMIT 1", Query, pName);
mysql_query(Query);
return 1;
}
cek, jel ti zelis da kucas /register ili /login pa da se pojavi dialog ili da se odma pojavi bez komandi
Citat: [AG] System32 poslato Maj 20, 2011, 19:32:54 POSLE PODNE
cek, jel ti zelis da kucas /register ili /login pa da se pojavi dialog ili da se odma pojavi bez komandi
znaci, ja cu si uraditi SHOWPLAYERDIALOG, neznam kako napraviti ono sta ide ispod ondialogresponse :D mozda uradis ti ? Hvala unapred, pozdrav
pa jel zelis da ti kad kucas koamndu da se onda projavi dialog ili automatski???
Citat: [AG] System32 poslato Maj 20, 2011, 20:17:21 POSLE PODNE
pa jel zelis da ti kad kucas koamndu da se onda projavi dialog ili automatski???
A da ti proÄitaÅ¡ njegov post? On je uradio sve samo mu treba netko napraviti Response za dijaloge !
Već 50 postova imaš jel automatski ili ovako , nije bitno on je napisao što treba a ne da ga ispituješ tu svaki 2 post.
ok ok nisam ga skuzio
evo ovako je u mom GM-u ti samo promjeni svoje funkcije i varjable za spremanje score,va money itd.
if (dialogid == 1)
{
new name[MAX_PLAYER_NAME], file[256], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Niste registrirani", "Dobrodošli, niste registrirani! Molim registrirajte se za daljnju igru!", "Register", "Leave");
dini_Create(file);
dini_IntSet(file, "Lozinka", udb_hash(inputtext));
dini_IntSet(file, "Admin Level",PlayerInfo[playerid][pAdminLevel] = 0);
dini_IntSet(file, "Money",PlayerInfo[playerid][pMoney] = 0);
dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
dini_IntSet(file, "Kills",PlayerInfo[playerid][pKills] = 0);
dini_IntSet(file, "Deaths",PlayerInfo[playerid][pDeaths] = 0);
format(string, 128, "Registrirali ste se s imenom %s i s lozinkom %s, automatski ste logirani!", name, inputtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
gPlayerLogged[playerid] = 1;
}
if (dialogid == 2)
{
new name[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Vi ste registrirani", "Dobrodosli, vi ste registrirani. Logirajte se!", "Login", "Leave");
new tmp;
tmp = dini_Int(file, "Lozinka");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, COLOR_RED, "Pogresna lozinka.");
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_INPUT, "Pogrešna lozinka!", "Upisali ste pogrešnu lozinku!\nMolimo pokušajte ponovo!", "Login", "Leave");
}
else
{
gPlayerLogged[playerid] = 1;
PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "Admin Level");
PlayerInfo[playerid][pScore] = dini_Int(file, "Score");
PlayerInfo[playerid][pMoney] = dini_Int(file, "Money");
PlayerInfo[playerid][pKills] = dini_Int(file, "Kills");
PlayerInfo[playerid][pDeaths] = dini_Int(file, "Deaths");
SendClientMessage(playerid,COLOR_RED, "Logirani ste!");
}
}
Citat: [AG] System32 poslato Maj 20, 2011, 20:44:59 POSLE PODNE
ok ok nisam ga skuzio
evo ovako je u mom GM-u ti samo promjeni svoje funkcije i varjable za spremanje score,va money itd.
if (dialogid == 1)
{
new name[MAX_PLAYER_NAME], file[256], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Niste registrirani", "Dobrodošli, niste registrirani! Molim registrirajte se za daljnju igru!", "Register", "Leave");
dini_Create(file);
dini_IntSet(file, "Lozinka", udb_hash(inputtext));
dini_IntSet(file, "Admin Level",PlayerInfo[playerid][pAdminLevel] = 0);
dini_IntSet(file, "Money",PlayerInfo[playerid][pMoney] = 0);
dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
dini_IntSet(file, "Kills",PlayerInfo[playerid][pKills] = 0);
dini_IntSet(file, "Deaths",PlayerInfo[playerid][pDeaths] = 0);
format(string, 128, "Registrirali ste se s imenom %s i s lozinkom %s, automatski ste logirani!", name, inputtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
gPlayerLogged[playerid] = 1;
}
if (dialogid == 2)
{
new name[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Vi ste registrirani", "Dobrodosli, vi ste registrirani. Logirajte se!", "Login", "Leave");
new tmp;
tmp = dini_Int(file, "Lozinka");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, COLOR_RED, "Pogresna lozinka.");
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_INPUT, "Pogrešna lozinka!", "Upisali ste pogrešnu lozinku!\nMolimo pokušajte ponovo!", "Login", "Leave");
}
else
{
gPlayerLogged[playerid] = 1;
PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "Admin Level");
PlayerInfo[playerid][pScore] = dini_Int(file, "Score");
PlayerInfo[playerid][pMoney] = dini_Int(file, "Money");
PlayerInfo[playerid][pKills] = dini_Int(file, "Kills");
PlayerInfo[playerid][pDeaths] = dini_Int(file, "Deaths");
SendClientMessage(playerid,COLOR_RED, "Logirani ste!");
}
}
Vidiš ti da on koristi mysql? -.-
Citat: [BU] aleluja poslato Maj 20, 2011, 21:31:00 POSLE PODNE
Citat: [AG] System32 poslato Maj 20, 2011, 20:44:59 POSLE PODNE
ok ok nisam ga skuzio
evo ovako je u mom GM-u ti samo promjeni svoje funkcije i varjable za spremanje score,va money itd.
if (dialogid == 1)
{
new name[MAX_PLAYER_NAME], file[256], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Niste registrirani", "Dobrodošli, niste registrirani! Molim registrirajte se za daljnju igru!", "Register", "Leave");
dini_Create(file);
dini_IntSet(file, "Lozinka", udb_hash(inputtext));
dini_IntSet(file, "Admin Level",PlayerInfo[playerid][pAdminLevel] = 0);
dini_IntSet(file, "Money",PlayerInfo[playerid][pMoney] = 0);
dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
dini_IntSet(file, "Kills",PlayerInfo[playerid][pKills] = 0);
dini_IntSet(file, "Deaths",PlayerInfo[playerid][pDeaths] = 0);
format(string, 128, "Registrirali ste se s imenom %s i s lozinkom %s, automatski ste logirani!", name, inputtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
gPlayerLogged[playerid] = 1;
}
if (dialogid == 2)
{
new name[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Vi ste registrirani", "Dobrodosli, vi ste registrirani. Logirajte se!", "Login", "Leave");
new tmp;
tmp = dini_Int(file, "Lozinka");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, COLOR_RED, "Pogresna lozinka.");
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_INPUT, "Pogrešna lozinka!", "Upisali ste pogrešnu lozinku!\nMolimo pokušajte ponovo!", "Login", "Leave");
}
else
{
gPlayerLogged[playerid] = 1;
PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "Admin Level");
PlayerInfo[playerid][pScore] = dini_Int(file, "Score");
PlayerInfo[playerid][pMoney] = dini_Int(file, "Money");
PlayerInfo[playerid][pKills] = dini_Int(file, "Kills");
PlayerInfo[playerid][pDeaths] = dini_Int(file, "Deaths");
SendClientMessage(playerid,COLOR_RED, "Logirani ste!");
}
}
Vidiš ti da on koristi mysql? -.-
sad sam vidio :S
mozete li mi uraditi barem za login da viidm kako ide a ja cu da si uradim za register :D
Ovo ti je najbolej pitat na SA-Mp forumu pošto tamo likovi znaju s mysql..
Citat: [BU] aleluja poslato Maj 20, 2011, 23:06:53 POSLE PODNE
Ovo ti je najbolej pitat na SA-Mp forumu pošto tamo likovi znaju s mysql..
pitao sam ali neodgovaraju :@ :@ a ja se vec 10 dana mucim sa jеbеnog dialoga :@
Pošto radiš Stunt/DM server..to ti je po meni totalno nepotrebno .. ;)
@aleluja ko te pita sta ,pomozi ako znas ako ne nepostaj.
Resicu ti ja sutra nmg sad preko moba.
uradio sam ali aj da ne otvaram drugi topic da pitam ovde:
zasto na ovaj line:
OnPlayerCommandText(playerid,"/register %s", inputtext);
nalazi ovaj error
D:\Infinity DM Stunt\gamemodes\infinitygm.pwn(511) : error 004: function "zcmd_OnPlayerCommandText" is not implemented
cek jel ti koristis zcmd? Ako koristis zcmd onda ti ide OnPlayerCommandPreformed
Citat: [AG] System32 poslato Maj 21, 2011, 11:35:01 PRE PODNE
cek jel ti koristis zcmd? Ako koristis zcmd onda ti ide OnPlayerCommandPreformed
da, zcmd koristim, sada imam ovaj error :D
D:\Infinity DM Stunt\gamemodes\infinitygm.pwn(511) : error 017: undefined symbol "OnPlayerCommandPreformed"
Otvori posebno temu za to!
Citat: eXtreme poslato Maj 21, 2011, 11:46:50 PRE PODNE
Otvori posebno temu za to!
pusti covjeka, sve jedno pomoci ce mu se
OnPlayerCommandPerformed
tako ide moj bed
Citat: eXtreme poslato Maj 21, 2011, 11:46:50 PRE PODNE
Otvori posebno temu za to!
zasto da otvorim? kada je ovo problem koji je vezan za ovu temu ?!
Inace evo kako koristim i nece
OnPlayerCommandPreformed(playerid,"/register %s", inputtext);
a evo sta nalazi:
D:\Infinity DM Stunt\gamemodes\infinitygm.pwn(511) : error 017: undefined symbol "OnPlayerCommandPreformed"
Citat: Mario Velickovski poslato Maj 21, 2011, 11:54:21 PRE PODNE
Citat: eXtreme poslato Maj 21, 2011, 11:46:50 PRE PODNE
Otvori posebno temu za to!
zasto da otvorim? kada je ovo problem koji je vezan za ovu temu ?!
Inace evo kako koristim i nece
OnPlayerCommandPreformed(playerid,"/register %s", inputtext);
a evo sta nalazi:
D:\Infinity DM Stunt\gamemodes\infinitygm.pwn(511) : error 017: undefined symbol "OnPlayerCommandPreformed"
Sad je rekao System32 da ide
OnPlayerCommandPerformed
probaj tak
Citat: AG | Fox <3 poslato Maj 21, 2011, 11:55:27 PRE PODNE
Citat: Mario Velickovski poslato Maj 21, 2011, 11:54:21 PRE PODNE
Citat: eXtreme poslato Maj 21, 2011, 11:46:50 PRE PODNE
Otvori posebno temu za to!
zasto da otvorim? kada je ovo problem koji je vezan za ovu temu ?!
Inace evo kako koristim i nece
OnPlayerCommandPreformed(playerid,"/register %s", inputtext);
a evo sta nalazi:
D:\Infinity DM Stunt\gamemodes\infinitygm.pwn(511) : error 017: undefined symbol "OnPlayerCommandPreformed"
Sad je rekao System32 da ide
OnPlayerCommandPerformed
probaj tak
sada nalazi ovo
D:\Infinity DM Stunt\gamemodes\infinitygm.pwn(511) : error 035: argument type mismatch (argument 3)
ovako je public od toga public OnPlayerCommandPerformed(playerid, cmdtext[], success)
kakav /register bokte?
Citat: [AG] System32 poslato Maj 21, 2011, 12:01:53 POSLE PODNE
ovako je public od toga public OnPlayerCommandPerformed(playerid, cmdtext[], success)
kakav /register bokte?
zelim prisiliti igraca na komandu ! jel kontas ?
imas tamo u korisne skripte i kodovi correlieve funkcije itd. za prisiljavanje
Citat: [AG] System32 poslato Maj 21, 2011, 12:07:52 POSLE PODNE
imas tamo u korisne skripte i kodovi correlieve funkcije itd. za prisiljavanje
ali ta je bez parametri :D