Dynamic Dialog Pages
#3

This is my SQL based radio station script, it gets the data from the database. It works pretty good.

pawn Code:
public ShowRadio(playerid)
{
        new query[400],title[64];
        format(title,sizeof(title),"{FF9900}Radio Stations");
        format(query, sizeof(query), "SELECT NULL FROM radio");
        mysql_query(query);
        mysql_store_result();
        new tRows = mysql_num_rows();
        if(mysql_num_rows() > 0) {
            mysql_free_result();
            Num1[playerid] = 0;
            Num2[playerid] = 11;
            mysql_free_result();
            format(query, sizeof(query), "SELECT `Name`, `ID`, `Hits` FROM `radio` ORDER BY `Hits` DESC LIMIT %d, %d", Num1[playerid],Num2[playerid]);
            mysql_query(query);
            mysql_store_result();
            new
                szMessageString[1500], // 32 * 15 = 480, 1 extra character for \n
                sName[128],
                sHits,
                sID;
            while(mysql_fetch_row(query))
            {
                sscanf(query, "p<|>s[128]dd", sName, sID, sHits);
                //format(szMessageString, sizeof(szMessageString), "\n");
                format(szMessageString, sizeof(szMessageString), "%s[ID:%d] %s \t\t(%d Hits)\n", szMessageString, sID, sName, sHits);
            }
            if(tRows > 11) { format(szMessageString,sizeof(szMessageString), "%sNext Page", szMessageString); }
            format(szMessageString,sizeof(szMessageString), "The Pilots World Radio\n%s", szMessageString);
            ShowPlayerDialog(playerid, radio1, DIALOG_STYLE_LIST, title, szMessageString, "Select", "Close");
            mysql_free_result();
            return 1;
        }
        else
        {
            mysql_free_result();
            SendClientMessage(playerid, COLOR_ERROR, "There are no radio stations added yet! Ask an administrator to add them.");
            return 1;
        }
}
EDIT The dialog response part:
pawn Code:
if(response)
        {
            if(!strcmp(inputtext, "The Pilots World Radio"))
            {
                PlayAudioStreamForPlayer(playerid, "http://64.31.59.12:8000/listen.pls");
                ListeningToRadio[playerid] = 1;
                new query[128];
                format(query,sizeof(query),"You are now listening to: {FF9900}The Pilots World Radio. {FFFFFF}[/cancelradio to turn off.]");
                SendClientMessage(playerid, COLOR_WHITE, query);
                return 1;
            }
            if(!strcmp(inputtext, "Next Page"))
            {
                new query[200],title[64];
                Num1[playerid] += 11;
                Num2[playerid] += 11;
                format(title,sizeof(title),"{FF9900}Radio Stations");
                format(query, sizeof(query), "SELECT `Name`, `ID`, `Hits` FROM `radio` ORDER BY `Hits` DESC LIMIT %d, 11", Num1[playerid]);
                mysql_query(query);
                mysql_store_result();
                new tRows = mysql_num_rows();

                new
                    szMessageString[1500], // 32 * 15 = 480, 1 extra character for \n
                    sName[128],
                    sHits,
                    sID;

                while(mysql_fetch_row(query))
                {
                    sscanf(query, "p<|>s[128]dd", sName, sID, sHits);
                    //format(szMessageString, sizeof(szMessageString), "\n");
                    format(szMessageString, sizeof(szMessageString), "%s[ID:%d] %s \t\t(%d Hits)\n", szMessageString, sID, sName, sHits);
                }
                if(tRows > 11) { format(szMessageString,sizeof(szMessageString), "%sNext Page", szMessageString); }
                ShowPlayerDialog(playerid, radio1, DIALOG_STYLE_LIST, title, szMessageString, "Select", "Close");
                mysql_free_result();
                return 1;
            }
            else
            {
                Num1[playerid] = 0;
                Num2[playerid] = 0;
                new name[128], shit[64], shit2[64];
                sscanf(inputtext, "s[64]s[128]s[64]", shit,name,shit2);
                ListeningToRadio[playerid] = 1;
                new query[256];
                format(query,sizeof(query),"SELECT URL FROM radio WHERE Name = '%s'", name);
                mysql_query(query);
                mysql_store_result();
                mysql_retrieve_row();
                new url[256];
                mysql_get_field("URL",url);
                PlayAudioStreamForPlayer(playerid, url);
                mysql_free_result();
                format(query,sizeof(query),"You are now listening to: {FF9900}%s. {FFFFFF}[/cancelradio to turn off.]", name);
                SendClientMessage(playerid, COLOR_WHITE, query);
                format(query,sizeof(query),"UPDATE radio SET Hits = Hits + 1 WHERE Name = '%s'", name);
                mysql_query(query);
                return 1;
            }
        }
        Num1[playerid] = 0;
        Num2[playerid] = 0;
        return 1;
I hope you kinda get how it works with this.

Kevin
Reply


Messages In This Thread
Dynamic Dialog Pages - by GiamPy. - 03.06.2013, 14:26
Re: Dynamic Dialog Pages - by GiamPy. - 03.06.2013, 14:35
Re: Dynamic Dialog Pages - by SomebodyAndMe - 03.06.2013, 14:39
Re: Dynamic Dialog Pages - by GiamPy. - 03.06.2013, 15:02
Re: Dynamic Dialog Pages - by Coz - 20.06.2013, 07:05

Forum Jump:


Users browsing this thread: 1 Guest(s)