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; }