SA-MP Forums Archive
Report dialog max 17 rows ... how can i make pages? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Report dialog max 17 rows ... how can i make pages? (/showthread.php?tid=574986)



Report dialog max 17 rows ... how can i make pages? - Metharon - 22.05.2015

I want for example only 17 reports per dialog page.


And if the players press [ Go to Page 2 ] to show the rest of them..


If my server have 17 + it goes:

Row 1
Row 2
Row 3
... (to 16)
Row 17
Ro (un-completed)

I want to be
Row 1
Row 2 - 16
[ Next page ]


source code:
pawn Code:
stock ListReports(playerid)
{
    new l;
    new s[149];
    new str[35];
    new string[MAX_REPORTS * 100];
    if (ReportCount != 0)
    {
        for (new i = 0; i < MAX_REPORTS + 1; i += 1)
        {
            strmid(s, ReportInfo[i][rReportString], 0, strlen(ReportInfo[i][rReportString]), 255);
            if (ReportIDTaken[i])
            {
                new statusreport[20];
                if(ReportInfo[i][rReportStatus] == 1) { statusreport = "{CC3300}Checked"; }
                if(ReportInfo[i][rReportStatus] == 2) { statusreport = "{99CCFF}Picked"; }
                else { statusreport = "{66CC33}New"; }
                if (ReportInfo[i][rReportAnswered]) continue;
                format(str, sizeof(str), "(%d)\t%s\t %s\n", i, ReportInfo[i][rReporter],statusreport);
                strcat(string, str);
                ReportInfo[i][rListitem][l] = 1;
                l += 1;
            }
        }
        new stringx[456];
        format(stringx, sizeof(stringx), "ID\tSender\tStatus\n%s", string);
        ShowPlayerDialog(playerid, DIALOG_REPORT2,DIALOG_STYLE_TABLIST_HEADERS, "  ", stringx, "Check", "Back");
    }
    else
    {
        new titlereports[456];
        format(titlereports, 456, "Reports - %d mesaje primite", ReportCount);
        ShowPlayerDialog(playerid, DIALOG_REPORT1, DIALOG_STYLE_LIST,titlereports, "Mesaje primite\nSterge mesaje", "Select", "Cancel");
    }
    return 1;
}



Re: Report dialog max 17 rows ... how can i make pages? - Metharon - 24.05.2015

UP PLEASE , I want to find out a method to create a dialog with pages


Re: Report dialog max 17 rows ... how can i make pages? - amirm3hdi - 25.05.2015

If it helps
Code:
if ( l == 16 )
{
    // Then stop adding lines to the corrent page(dialog),
}



Re: Report dialog max 17 rows ... how can i make pages? - SickAttack - 25.05.2015

Here's a script that you can use as a reference:
pawn Code:
// [ DEVELOPMENT GAMEMODE ]

// INCLUDES:

#include <a_samp>
#include <sscanf2>
#include <zcmd>

// DEFINES:

// GENERAL:

#define MAX_RESULTS 20
#define TOTAL_VEHICLES 212

// FUNCTIONS:

#define GetPageCount(%0,%1) floatround(%1 / %0, floatround_floor) + 1

// DIALOGS:

#define DIALOG_OK 500
#define DIALOG_VEHICLE_LIST 501

// ARRAYS AND ENUMERATORS:

static const stock aVehicles[TOTAL_VEHICLES][] =
{
    {"Landstalker"},
    {"Bravura"},
    {"Buffalo"},
    {"Linerunner"},
    {"Perrenial"},
    {"Sentinel"},
    {"Dumper"},
    {"Firetruck"},
    {"Trashmaster"},
    {"Stretch"},
    {"Manana"},
    {"Infernus"},
    {"Voodoo"},
    {"Pony"},
    {"Mule"},
    {"Cheetah"},
    {"Ambulance"},
    {"Leviathan"},
    {"Moonbeam"},
    {"Esperanto"},
    {"Taxi"},
    {"Washington"},
    {"Bobcat"},
    {"Mr Whoopee"},
    {"BF Injection"},
    {"Hunter"},
    {"Premier"},
    {"Enforcer"},
    {"Securicar"},
    {"Banshee"},
    {"Predator"},
    {"Bus"},
    {"Rhino"},
    {"Barracks"},
    {"Hotknife"},
    {"Trailer 1"},
    {"Previon"},
    {"Coach"},
    {"Cabbie"},
    {"Stallion"},
    {"Rumpo"},
    {"RC Bandit"},
    {"Romero"},
    {"Packer"},
    {"Monster"},
    {"Admiral"},
    {"Squalo"},
    {"Seasparrow"},
    {"Pizzaboy"},
    {"Tram"},
    {"Trailer 2"},
    {"Turismo"},
    {"Speeder"},
    {"Reefer"},
    {"Tropic"},
    {"Flatbed"},
    {"Yankee"},
    {"Caddy"},
    {"Solair"},
    {"Berkley's RC Van"},
    {"Skimmer"},
    {"PCJ-600"},
    {"Faggio"},
    {"Freeway"},
    {"RC Baron"},
    {"RC Raider"},
    {"Glendale"},
    {"Oceanic"},
    {"Sanchez"},
    {"Sparrow"},
    {"Patriot"},
    {"Quad"},
    {"Coastguard"},
    {"Dinghy"},
    {"Hermes"},
    {"Sabre"},
    {"Rustler"},
    {"ZR-350"},
    {"Walton"},
    {"Regina"},
    {"Comet"},
    {"BMX"},
    {"Burrito"},
    {"Camper"},
    {"Marquis"},
    {"Baggage"},
    {"Dozer"},
    {"Maverick"},
    {"News Chopper"},
    {"Rancher"},
    {"FBI Rancher"},
    {"Virgo"},
    {"Greenwood"},
    {"Jetmax"},
    {"Hotring"},
    {"Sandking"},
    {"Blista Compact"},
    {"Police Maverick"},
    {"Boxville"},
    {"Benson"},
    {"Mesa"},
    {"RC Goblin"},
    {"Hotring Racer A"},
    {"Hotring Racer B"},
    {"Bloodring Banger"},
    {"Rancher"},
    {"Super GT"},
    {"Elegant"},
    {"Journey"},
    {"Bike"},
    {"Mountain Bike"},
    {"Beagle"},
    {"Cropdust"},
    {"Stunt"},
    {"Tanker"},
    {"Roadtrain"},
    {"Nebula"},
    {"Majestic"},
    {"Buccaneer"},
    {"Shamal"},
    {"Hydra"},
    {"FCR-900"},
    {"NRG-500"},
    {"HPV1000"},
    {"Cement Truck"},
    {"Tow Truck"},
    {"Fortune"},
    {"Cadrona"},
    {"FBI Truck"},
    {"Willard"},
    {"Forklift"},
    {"Tractor"},
    {"Combine"},
    {"Feltzer"},
    {"Remington"},
    {"Slamvan"},
    {"Blade"},
    {"Freight"},
    {"Streak"},
    {"Vortex"},
    {"Vincent"},
    {"Bullet"},
    {"Clover"},
    {"Sadler"},
    {"Firetruck LA"},
    {"Hustler"},
    {"Intruder"},
    {"Primo"},
    {"Cargobob"},
    {"Tampa"},
    {"Sunrise"},
    {"Merit"},
    {"Utility"},
    {"Nevada"},
    {"Yosemite"},
    {"Windsor"},
    {"Monster A"},
    {"Monster B"},
    {"Uranus"},
    {"Jester"},
    {"Sultan"},
    {"Stratum"},
    {"Elegy"},
    {"Raindance"},
    {"RC Tiger"},
    {"Flash"},
    {"Tahoma"},
    {"Savanna"},
    {"Bandito"},
    {"Freight Flat"},
    {"Streak Carriage"},
    {"Kart"},
    {"Mower"},
    {"Duneride"},
    {"Sweeper"},
    {"Broadway"},
    {"Tornado"},
    {"AT-400"},
    {"DFT-30"},
    {"Huntley"},
    {"Stafford"},
    {"BF-400"},
    {"Newsvan"},
    {"Tug"},
    {"Trailer 3"},
    {"Emperor"},
    {"Wayfarer"},
    {"Euros"},
    {"Hotdog"},
    {"Club"},
    {"Freight Carriage"},
    {"Trailer 3"},
    {"Andromada"},
    {"Dodo"},
    {"RC Cam"},
    {"Launch"},
    {"LSPD Police Car"},
    {"SFPD Police Car"},
    {"LVPD Police Car"},
    {"Police Ranger"},
    {"Picador"},
    {"SWAT Van"},
    {"Alpha"},
    {"Phoenix"},
    {"Glendale"},
    {"Sadler"},
    {"Luggage Trailer A"},
    {"Luggage Trailer B"},
    {"Stair Trailer"},
    {"Boxville"},
    {"Farm Plow"},
    {"Utility Trailer"}
};

// VARIABLES:

new pLastPage[MAX_PLAYERS];

// MAIN:

main()
{
    print("Development Mode: vehicle_list.amx");
}

// CALLBACKS:

public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOG_OK: return 1;
        case DIALOG_VEHICLE_LIST:
        {
            if(!response) return 1;
            else if(response)
            {
                pLastPage[playerid] ++;
                ShowVehicleList(playerid);
            }
        }
    }
    return 1;
}

// COMMANDS:

CMD:vehiclelist(playerid, params[])
{
    pLastPage[playerid] = 1;
    ShowVehicleList(playerid);
    return 1;
}

// FUNCTIONS:

stock ShowVehicleList(playerid)
{
    new title[128], string[300], pages = GetPageCount(MAX_RESULTS, TOTAL_VEHICLES), resultcount = ((MAX_RESULTS * pLastPage[playerid]) - MAX_RESULTS), bool:nextpage = false;
    strcat(string, "ID\tName");

    for(new i = resultcount; i < TOTAL_VEHICLES; i ++)
    {
        resultcount ++;
        if(resultcount <= MAX_RESULTS * pLastPage[playerid])
        {
            format(string, sizeof(string), "%s\n%d\t%s", string, resultcount, aVehicles[i]);
        }
        if(resultcount > MAX_RESULTS * pLastPage[playerid])
        {
            nextpage = true;
            break;
        }
    }

    format(title, sizeof(title), "{FFFF00}Vehicles - Page %d of %d", pLastPage[playerid], pages);
    if(nextpage) return ShowPlayerDialog(playerid, DIALOG_VEHICLE_LIST, DIALOG_STYLE_TABLIST_HEADERS, title, string, "Next", "Close");
    return ShowPlayerDialog(playerid, DIALOG_OK, DIALOG_STYLE_TABLIST_HEADERS, title, string, "Close", "");
}



Re: Report dialog max 17 rows ... how can i make pages? - Metharon - 30.05.2015

I dont' get your script.. please.. update, help


Re: Report dialog max 17 rows ... how can i make pages? - SickAttack - 30.05.2015

Quote:
Originally Posted by Metharon
View Post
I dont' get your script.. please.. update, help
What don't you get? It's a script that implies the fact that pages can be done in a dynamic, easy and light weighted way.

What? Do you want us to do all the work for you? I showed you how it could be done, with the intention that you would make it work with your script.


Re: Report dialog max 17 rows ... how can i make pages? - amirm3hdi - 30.05.2015

You should not expect us to code for you, he gave you a code to look up to,
It's not script wanted section.