[pomoc] Kako od komandu napraviti dialog

Započeo [IF] mariomako, Maj 20, 2011, 18:19:49 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

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;
}
Poslednja Izmena: Maj 20, 2011, 21:31:28 POSLE PODNE od [AG] BloodMaster

cek, jel ti zelis da kucas /register ili /login pa da se pojavi dialog ili da se odma pojavi bez komandi
Uskoro novi stunt server iStunt. DoÄ'ite i zabavite se!




   
   




Dizajniram za $$$
Popis stvari koje radim:

Wallpaper √  Signature ×  Logo √  Dizajn stranice (Ne kodiranje) √  Baner √  Avatar √  Animacija √  Intro √

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???
Uskoro novi stunt server iStunt. DoÄ'ite i zabavite se!




   
   




Dizajniram za $$$
Popis stvari koje radim:

Wallpaper √  Signature ×  Logo √  Dizajn stranice (Ne kodiranje) √  Baner √  Avatar √  Animacija √  Intro √

poznaticovik

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.
Poslednja Izmena: Maj 20, 2011, 20:24:48 POSLE PODNE od [H] Matt

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!");
        }
    }
Uskoro novi stunt server iStunt. DoÄ'ite i zabavite se!




   
   




Dizajniram za $$$
Popis stvari koje radim:

Wallpaper √  Signature ×  Logo √  Dizajn stranice (Ne kodiranje) √  Baner √  Avatar √  Animacija √  Intro √

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
Uskoro novi stunt server iStunt. DoÄ'ite i zabavite se!




   
   




Dizajniram za $$$
Popis stvari koje radim:

Wallpaper √  Signature ×  Logo √  Dizajn stranice (Ne kodiranje) √  Baner √  Avatar √  Animacija √  Intro √

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
Uskoro novi stunt server iStunt. DoÄ'ite i zabavite se!




   
   




Dizajniram za $$$
Popis stvari koje radim:

Wallpaper √  Signature ×  Logo √  Dizajn stranice (Ne kodiranje) √  Baner √  Avatar √  Animacija √  Intro √