Dialogs
#1

Hi-

I'm making a bug system, and the way to see an active bug is by a dialog. However, I can't figure out how to make it add a new line to the list dialog for each bug report that's added.

Код:
#define DIALOG_BUGS 3354
enum BugInfo
{
	bugID,
	bSender[MAX_PLAYER_NAME],
	bText[128],
	bMonth,
	bDay,
	bYear,
	bHour,
	bMinute
}
new BugReport[MAX_BREPORTS][BugInfo];
	
stock LoadBug()
{
    if(!fexist("bug.cfg")) fcreate("bug.cfg");
	new binfo[6][32];
	new string[256];
	new File:file = fopen("bug.cfg", io_read);
	if(file)
	{
	    new bug = 0;
		while(bug < MAX_BREPORTS)
		{
		    fread(file, string);
		    split(string, binfo, '|');
		    format(BugReport[bug][bSender], 32, "%s", binfo[1]);
		    format(BugReport[bug][bText], 128, "%s", binfo[2]);
		    BugReport[bug][bMonth] = strval(binfo[3]);
		    BugReport[bug][bDay] = strval(binfo[4]);
		    BugReport[bug][bYear] = strval(binfo[5]);
		    BugReport[bug][bHour] = strval(binfo[6]);
		    BugReport[bug][bMinute] = strval(binfo[7]);
		    
		    bug++;
	    }
	}
	print("Bugs rehashed.");
	return 1;
}

stock SaveBugs()
{
    if(!fexist("bug.cfg")) fcreate("bug.cfg");
	new bug = 0, File:file;
	new string[256];
	while(bug < MAX_BREPORTS)
	{
	    format(string, sizeof(string), "%s|%s|%d|%d|%d|%d|%d|\r\n",
		BugReport[bug][bSender],
		BugReport[bug][bText],
		BugReport[bug][bMonth],
		BugReport[bug][bDay],
		BugReport[bug][bYear],
  		BugReport[bug][bHour],
		BugReport[bug][bMinute]);
	    if(bug == 1)
	    {
	        file = fopen("bug.cfg", io_write);
	    }
	    else
	    {
	    	file = fopen("bug.cfg", io_append);
	    }
		fwrite(file, string);
		fclose(file);
		bug++;
	}
	print("Bug system saved.");
}
CMD:sendbug(playerid, params[])
{
	new string[128];
	new hour, minute;
	new Month, Day, Year;
	getdate(Year, Month, Day);
	gettime(hour, minute, _);
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
	if(!PlayerInfo[playerid][pAdmin] && PlayerInfo[playerid][pTester]) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
	if(isnull(params)) return SCM(playerid, GREY, "Usage: /sendbug [bug text]");
	for(new bug=0; bug<MAX_BREPORTS; bug++)
	{
	    if(!BugReport[bug][bText][0])
		{

		    format(BugReport[bug][bSender], 32, RPN(playerid));
		    format(BugReport[bug][bText], 128, params);
		    BugReport[bug][bMonth] = Month;
		    BugReport[bug][bDay] = Day;
		    BugReport[bug][bYear] = Year;
		    BugReport[bug][bHour] = hour;
		    BugReport[bug][bMinute] = minute;
		    format(string,sizeof(string),"[New Bug Report:%d] Sender: %s, Bug: %s (Use /bugs)", bug, RPN(playerid), params);
		    SendATMessage(ADMIN, string);
			Log("logs/bugs.log", string);
			bug = MAX_BREPORTS;
		}
	}
	return 1;
}

CMD:bugs(playerid, params[])
{
	new bug2[128], bug1[32];
	if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
	if(!PlayerInfo[playerid][pAdmin] || PlayerInfo[playerid][pTester]) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
	for(new f=0; f<MAX_BREPORTS; f++)
	{
		 format(bug1,sizeof(bug1), "Active Bug Reports:");
		 format(bug2, sizeof(bug2), "{FF0000}(Bug %d){FFFFFF} Date:%02d/%02d/%d |Sender: %s| %s\r\n", f, BugReport[f][bMonth], BugReport[f][bDay], BugReport[f][bYear], BugReport[f][bSender], BugReport[f][bText]);
		 ShowPlayerDialog(playerid, DIALOG_BUGS, DIALOG_STYLE_LIST, bug1, bug2, "Select", "Quit");
	}
	return 1;
}
CMD:clearbug(playerid, params[])
{
	new id, string[128];
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
	if(!PlayerInfo[playerid][pAdmin] && PlayerInfo[playerid][pTester]) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
	if(sscanf(params, "i", id)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /clearbug [bugid]");
	if(!BugReport[id][bText][0]) return SendClientMessage(playerid, ADMIN, "There's no active report on that ID.");
 	format(string, sizeof(string), "[Bug Saver] %s cleared %s's bug report [Bug %d]", RPN(playerid), BugReport[id][bSender], id);
	SendATMessage(ADMIN, string);
	Log("logs/bugs.log", string);
    format(BugReport[id][bSender], 32, "");
    format(BugReport[id][bText], 128, "");
    BugReport[id][bMonth] = 0;
    BugReport[id][bDay] = 0;
    BugReport[id][bYear] = 0;
    BugReport[id][bHour] = 0;
    BugReport[id][bMinute] = 0;
	return 1;
}
It's under /bugs that I can't figure it out.
Each time I try it in game, it just keeps one line even if there's no active bugs.
Such as, "(Bug: ) Date:00/00/0|Sender: | "
Reply


Messages In This Thread
Dialogs - by Gecko75 - 16.11.2013, 02:22
Re: Dialogs - by Loot - 16.11.2013, 13:24

Forum Jump:


Users browsing this thread: 2 Guest(s)