[pomoc] Kako od komandu napraviti dialog

20. Maj 2011.
8,449
pregleda
25
postova
mariomako
5
Underboss
20. Maj 2011.
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 ");
new Query, pName;
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;
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 ");
new Query, pName;
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;
sscanf(Query, "p<|>{sss}a", values); //Enjoy editing.
SetPVarInt(playerid, "Admin", values);
GivePlayerMoney(playerid, values);
SetPlayerScore(playerid, values);
SetPVarInt(playerid, "Kills", values);
SetPVarInt(playerid, "Deaths", values);
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;
}
Mr.Lowrey
5
Godfather
20. Maj 2011.
cek, jel ti zelis da kucas /register ili /login pa da se pojavi dialog ili da se odma pojavi bez komandi
mariomako
5
Underboss
20. Maj 2011.
Quote from May 20, 2011, 5:32 pm:
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 😄 mozda uradis ti ? Hvala unapred, pozdrav
Mr.Lowrey
5
Godfather
20. Maj 2011.
pa jel zelis da ti kad kucas koamndu da se onda projavi dialog ili automatski😕
Deleted User
Obrisan korisnik
20. Maj 2011.
Quote from May 20, 2011, 6:17 pm:
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.
Mr.Lowrey
5
Godfather
20. Maj 2011.
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, file, string;
        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 = 0);
        dini_IntSet(file, "Money",PlayerInfo = 0);
        dini_IntSet(file, "Score",PlayerInfo = 0);
        dini_IntSet(file, "Kills",PlayerInfo = 0);
        dini_IntSet(file, "Deaths",PlayerInfo = 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 = 1;
}
if  (dialogid == 2)
{
        new name, file;
        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 = 1;
            PlayerInfo = dini_Int(file, "Admin Level");
            PlayerInfo = dini_Int(file, "Score");
            PlayerInfo = dini_Int(file, "Money");
            PlayerInfo = dini_Int(file, "Kills");
            PlayerInfo = dini_Int(file, "Deaths");
            SendClientMessage(playerid,COLOR_RED, "Logirani ste!");
        }
    }
aleluja
5
Godfather
20. Maj 2011.
Quote from May 20, 2011, 6:44 pm:
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, file, string;
        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 = 0);
        dini_IntSet(file, "Money",PlayerInfo = 0);
        dini_IntSet(file, "Score",PlayerInfo = 0);
        dini_IntSet(file, "Kills",PlayerInfo = 0);
        dini_IntSet(file, "Deaths",PlayerInfo = 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 = 1;
}
if  (dialogid == 2)
{
        new name, file;
        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 = 1;
            PlayerInfo = dini_Int(file, "Admin Level");
            PlayerInfo = dini_Int(file, "Score");
            PlayerInfo = dini_Int(file, "Money");
            PlayerInfo = dini_Int(file, "Kills");
            PlayerInfo = dini_Int(file, "Deaths");
            SendClientMessage(playerid,COLOR_RED, "Logirani ste!");
        }
    }

Vidiš ti da on koristi mysql? -.-
Mr.Lowrey
5
Godfather
20. Maj 2011.
Quote from May 20, 2011, 6:44 pm:
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, file, string;
        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 = 0);
        dini_IntSet(file, "Money",PlayerInfo = 0);
        dini_IntSet(file, "Score",PlayerInfo = 0);
        dini_IntSet(file, "Kills",PlayerInfo = 0);
        dini_IntSet(file, "Deaths",PlayerInfo = 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 = 1;
}
if  (dialogid == 2)
{
        new name, file;
        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 = 1;
            PlayerInfo = dini_Int(file, "Admin Level");
            PlayerInfo = dini_Int(file, "Score");
            PlayerInfo = dini_Int(file, "Money");
            PlayerInfo = dini_Int(file, "Kills");
            PlayerInfo = dini_Int(file, "Deaths");
            SendClientMessage(playerid,COLOR_RED, "Logirani ste!");
        }
    }

Vidiš ti da on koristi mysql? -.-
sad sam vidio :S
mariomako
5
Underboss
20. Maj 2011.
mozete li mi uraditi barem za login da viidm kako ide a ja cu da si uradim za register 😄
aleluja
5
Godfather
20. Maj 2011.
Ovo ti je najbolej pitat na SA-Mp forumu pošto tamo likovi znaju s mysql..
mariomako
5
Underboss
20. Maj 2011.
Quote from May 20, 2011, 9:06 pm:
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 :@
aleluja
5
Godfather
20. Maj 2011.
PoÅ¡to radiÅ¡ Stunt/DM server..to ti je po meni totalno nepotrebno .. 😉
pavle.bakun
5
Crime Lord
20. Maj 2011.
@TiXoR_ ko te pita sta ,pomozi ako znas ako ne nepostaj.
Resicu ti ja sutra nmg sad preko moba.
mariomako
5
Underboss
21. Maj 2011.
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
Mr.Lowrey
5
Godfather
21. Maj 2011.
cek jel ti koristis zcmd? Ako koristis zcmd onda ti ide OnPlayerCommandPreformed

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha