26.02.2017, 01:44
When i click the next page it shows the wrong mission but if it the first page got got the right mission.
Код:
new gPlayer_WorkMenu@Page[MAX_PLAYERS char];
Код:
switch (dialogid)
{
case 1337:
{
if (!response)
{
if (!gPlayer_WorkMenu@Page{playerid}) return 1; // clicked on "Close"
// otherwise "Next" option
new rows = sizeof trucker, results = ++gPlayer_WorkMenu@Page{playerid} * 10, string[256];
if (rows > results) // if there are more trucking jobs, set the max rows for the current page (20, 30, 40, ...)
{
rows = results;
}
for (new i = (results - 10); i != rows; i++) // 2nd page = 10-19 indexes | 3rd page = 20-29 indexes etc.
{
format(string, sizeof(string), "%s {FF6347}%s {33AA33}---> {FF6347}%s\n", string,trucker[i][lpname], trucker[i][ulpname]);
}
ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_LIST, "Player Trucking Missions", string, "Select", rows <= results ? ("Close") : ("Next"));
}
else
{
truck_PlayerJob[playerid] = 1;
// each page has 10 items, get total items for pages viewed + current item (listitem)
if (gPlayer_WorkMenu@Page{playerid}) PlayerInfo[playerid][MissionID] = (gPlayer_WorkMenu@Page{playerid} - 1) * 10 + listitem;
else PlayerInfo[playerid][MissionID] = listitem;
gPlayer_WorkMenu@Page{playerid} = 0;
new workmission2[128];
if(!response) return 1; //here he pressed cancel
truck_PlayerJob[playerid] = 1;
DisablePlayerCheckpoint(playerid);
PlayerInfo[playerid][MissionID] = trucker[listitem][mission_id];
SetPlayerCheckpoint(playerid, trucker[listitem][lx], trucker[listitem][ly], trucker[listitem][lz], 7.5);
format(workmission2,sizeof(workmission2), "~w~Head to ~r~%s ~w~to load your trailer with ~y~%s", trucker[listitem][lpname], trucker[listitem][loadname]);
PlayerTextDrawSetString(playerid, work[playerid],workmission2);
}
}
//default: return 0; // dialog not found, search in other scripts
}
Код:
CMD:wmenu(playerid, params[])
{
SendMessageToAdmins(playerid, "/wmenu", params);
new string[1000], rows = sizeof trucker;
if (rows > 10) // more than 10 trucking missions will give "Next" option
{
rows = 10;
gPlayer_WorkMenu@Page{playerid} = 1;
}
else gPlayer_WorkMenu@Page{playerid} = 0;
for(new i; i < rows; i++) format(string, sizeof(string), "%s {FF6347}%s {33AA33}---> {FF6347}%s\n", string,trucker[i][lpname], trucker[i][ulpname]);
ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_LIST, "Work Menu", string, "Select", !gPlayer_WorkMenu@Page{playerid} ? ("Close") : ("Next"));
return 1;
}

