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