SA-MP Forums

Go Back   SA-MP Forums > SA-MP Scripting and Plugins > Filterscripts > Includes

Reply
 
Thread Tools Display Modes
Old 23/12/2018, 12:38 PM   #1
Nickk888
Big Clucker
 
Nickk888's Avatar
 
Join Date: Oct 2011
Location: Germany
Posts: 60
Reputation: 82
Thumbs up NDIALOG-PAGES 2.0 - Split dialog lists into multiple pages!



About Include:
NDialog-Pages is basically an addon that adds 3 additional options to the "ShowPlayerDialog" function. It will add a feature so that you can split the dialog list into multiple pages!
It will basically calculate how many items will fit into one page and generate the "Next" button if there are too many. It will also add a "Back" button if you go to the second page etc. It will calculate the "listitem" in such way, like a normal list would work, so you don't need to make some calculation yourself, everything is automatic and it will return the correct "listitem".
It is VERY easy to use, because everything is fully automatic.

Features:
  • Adds 3 new parameters to "ShowPlayerDialog"
  • Easy to use!
  • Fully customable.
  • Fully automatic, no need to script page change.

Functions:
Code:
AddDialogListitem(playerid, const itemstring[]);
Code:
ClearDialogListitems(playerid);
Code:
ShowPlayerDialog(playerid, dialogid, style, caption[], #, button1[], button2[], items_per_page = 0, nextbutton[] = "{FF0000}>>>", backbutton[] = "{FF0000}<<<");
Parameters:
Code:
items_per_page - Items inside a page
nextbutton[] - "Next" button string
backbutton[] - "Back" button string
How to use it(Examples):
Code:
#include <a_samp>
#include <zcmd>
#define MAX_DIALOG_ITEMS 		500
#include <ndialog-pages>

new string[256];
CMD:dialogtest(playerid, params[])
{
	for(new i; i < MAX_DIALOG_ITEMS; i++)
	{
		format(string, sizeof string, "{FFFFFF}List Item {FF00FF}%i", i);
		AddDialogListitem(playerid, string);
	}
	ShowPlayerDialog(playerid, 586, DIALOG_STYLE_LIST, "{FFFFFF}Test Dialog ID {FF00FF}586", #, "Button 1", "Button 2", 25);
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == 586 && response)
	{
		if(listitem != INVALID_LISTITEM)
		{
			format(string, sizeof string, "{FFFFFF}[NDialog-Pages] {FFFF00}You have selected listitem ID: %i", listitem);
			SendClientMessage(playerid, -1, string);
		}
	}
	return 0;
}
Defines:
Code:
#define INVALID_LISTITEM -1
Download:
V2.0: https://github.com/Nickk888SAMP/Dialog-Pages

Credits:
a_samp: SAMP Team
Y_Hooks: Y-Less
__________________

Last edited by Nickk888; 04/06/2020 at 01:46 PM. Reason: New version
Nickk888 is offline   Reply With Quote
Old 23/12/2018, 12:58 PM   #2
Zyzol
Little Clucker
 
Join Date: Nov 2017
Posts: 2
Reputation: 0
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

Nice
Zyzol is offline   Reply With Quote
Old 23/12/2018, 01:32 PM   #3
SyS
High-roller
 
SyS's Avatar
 
Join Date: Oct 2015
Posts: 1,939
Reputation: 504
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

Nice idea
SyS is offline   Reply With Quote
Old 23/12/2018, 02:41 PM   #4
RogueDrifter
High-roller
 
RogueDrifter's Avatar
 
Join Date: Dec 2017
Location: SA-MP Drifting world.
Posts: 1,193
Reputation: 420
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

Nicely done c:
__________________
Quote:
Originally Posted by Andy
My anti cheat is still relevant *puts shades on* https://github.com/RogueDrifter/Anti_cheat_pack

[Github]:Link [Gists]:Link [Forum]:Link [Server]:Link [Discord]:Link

RogueDrifter is offline   Reply With Quote
Old 23/12/2018, 03:30 PM   #5
cuber
Gangsta
 
cuber's Avatar
 
Join Date: Oct 2016
Posts: 850
Reputation: 213
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

I will definetly be using this in the future, nice release.
cuber is offline   Reply With Quote
Old 23/12/2018, 03:53 PM   #6
Smith.
Big Clucker
 
Join Date: Apr 2012
Posts: 148
Reputation: 7
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

works with easyDialog?
Smith. is offline   Reply With Quote
Old 23/12/2018, 03:55 PM   #7
Nickk888
Big Clucker
 
Nickk888's Avatar
 
Join Date: Oct 2011
Location: Germany
Posts: 60
Reputation: 82
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

Quote:
Originally Posted by Smith. View Post
works with easyDialog?
I have no idea, probably? You would have to check it. The problem with Easy Dialog is, it doesn't support the 3 additional parameters, so you would need to modify Easy Dialog for your needs.
__________________
Nickk888 is offline   Reply With Quote
Old 23/12/2018, 04:11 PM   #8
Smith.
Big Clucker
 
Join Date: Apr 2012
Posts: 148
Reputation: 7
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

Thanks, good work
Smith. is offline   Reply With Quote
Old 04/06/2020, 01:47 PM   #9
Nickk888
Big Clucker
 
Nickk888's Avatar
 
Join Date: Oct 2011
Location: Germany
Posts: 60
Reputation: 82
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

BUMP - Code has been rewritten, version 2.0
Download >>> https://github.com/Nickk888SAMP/Dialog-Pages <<<
__________________
Nickk888 is offline   Reply With Quote
Old 04/06/2020, 05:46 PM   #10
ToiletDuck
Huge Clucker
 
ToiletDuck's Avatar
 
Join Date: Apr 2012
Location: Philippines, Lucena City
Posts: 400
Reputation: 43
Default Re: NDIALOG-PAGES - Split dialog lists into multiple pages!

Quote:
Originally Posted by Nickk888 View Post
BUMP - Code has been rewritten, version 2.0
Download >>> https://github.com/Nickk888SAMP/Dialog-Pages <<<

Code:
include\ndialog-pages.inc(131) : error 035: argument type mismatch (argument 4)
\ndialog-pages.inc(154) : error 035: argument type mismatch (argument 4)

line 131: ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
I wonder why const variable in parameter make this error.

@EDIT: Working fine tho but then I check my server.log it shows me this.
Code:
[02:30:26] [debug]
[02:30:26] [debug] Parameter count corrections:
[02:30:26] [debug]
[02:30:26] [debug] The 1st mangled argments (e.g. `<1073741823 arguments>`) below should read `<5 arguments>`
[02:30:26] [debug]
[02:30:26] [debug] Run time error 4: "Array index out of bounds"
[02:30:26] [debug]  Attempted to read/write array element at negative index -2
[02:30:26] [debug] AMX backtrace:
[02:30:26] [debug] #0 006f791c in OnDialogResponse (playerid=0, dialogid=6182, response=1, listitem=-2, inputtext[]=@4fd59dd0 ">>>") at ./includes/OnDialogResponse.pwn:3233
[02:30:26] [debug] #1 0001789c in public OnDialogResponse (0, 6182, 1, 10, 1339399632) at D:\05_Desktop\EGRP-master\pawno\include\YSI_Coding\y_timers\..\..\YSI_Data\y_foreach\..\..\YSI_Coding\y_hooks\..\y_cgen\y_cgen.inc:127
[02:30:31] [debug]
[02:30:31] [debug] Parameter count corrections:
[02:30:31] [debug]
[02:30:31] [debug] The 1st mangled argments (e.g. `<1073741823 arguments>`) below should read `<5 arguments>`
[02:30:31] [debug]
[02:30:31] [debug] Run time error 4: "Array index out of bounds"
[02:30:31] [debug]  Attempted to read/write array element at negative index -2
[02:30:31] [debug] AMX backtrace:
[02:30:31] [debug] #0 006f791c in OnDialogResponse (playerid=0, dialogid=6182, response=1, listitem=-2, inputtext[]=@4fd59dd0 ">>>") at ./includes/OnDialogResponse.pwn:3233
[02:30:31] [debug] #1 0001789c in public OnDialogResponse (0, 6182, 1, 10, 1339399632) at D:\05_Desktop\EGRP-master\pawno\include\YSI_Coding\y_timers\..\..\YSI_Data\y_foreach\..\..\YSI_Coding\y_hooks\..\y_cgen\y_cgen.inc:127
[02:30:36] [debug]
[02:30:36] [debug] Parameter count corrections:
[02:30:36] [debug]
[02:30:36] [debug] The 1st mangled argments (e.g. `<1073741823 arguments>`) below should read `<5 arguments>`
[02:30:36] [debug]
[02:30:36] [debug] Run time error 4: "Array index out of bounds"
[02:30:36] [debug]  Attempted to read/write array element at negative index -2
[02:30:36] [debug] AMX backtrace:
[02:30:36] [debug] #0 006f791c in OnDialogResponse (playerid=0, dialogid=6182, response=1, listitem=-2, inputtext[]=@4fd59dd0 ">>>") at ./includes/OnDialogResponse.pwn:3233
[02:30:36] [debug] #1 0001789c in public OnDialogResponse (0, 6182, 1, 10, 1339399632) at D:\05_Desktop\EGRP-master\pawno\include\YSI_Coding\y_timers\..\..\YSI_Data\y_foreach\..\..\YSI_Coding\y_hooks\..\y_cgen\y_cgen.inc:127
[02:30:40] [debug]
[02:30:40] [debug] Parameter count corrections:
[02:30:40] [debug]
[02:30:40] [debug] The 1st mangled argments (e.g. `<1073741823 arguments>`) below should read `<5 arguments>`
[02:30:40] [debug]
[02:30:40] [debug] Run time error 4: "Array index out of bounds"
[02:30:40] [debug]  Attempted to read/write array element at negative index -2
[02:30:40] [debug] AMX backtrace:
[02:30:40] [debug] #0 006f791c in OnDialogResponse (playerid=0, dialogid=6182, response=1, listitem=-2, inputtext[]=@4fd59dd0 ">>>") at ./includes/OnDialogResponse.pwn:3233
[02:30:40] [debug] #1 0001789c in public OnDialogResponse (0, 6182, 1, 10, 1339399632) at D:\05_Desktop\EGRP-master\pawno\include\YSI_Coding\y_timers\..\..\YSI_Data\y_foreach\..\..\YSI_Coding\y_hooks\..\y_cgen\y_cgen.inc:127
[02:30:48] [debug]
[02:30:48] [debug] Parameter count corrections:
[02:30:48] [debug]
[02:30:48] [debug] The 1st mangled argments (e.g. `<1073741823 arguments>`) below should read `<5 arguments>`

Last edited by ToiletDuck; 04/06/2020 at 06:37 PM.
ToiletDuck is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How can I list up to X messages and split the messages between "pages" EtayJ Scripting Help 2 31/10/2017 10:13 AM
Report dialog max 17 rows ... how can i make pages? Metharon Scripting Help 6 30/05/2015 11:07 PM
Dynamic Dialog Pages GiamPy. Scripting Help 4 20/06/2013 07:05 AM
Pawno, C++, web pages... AiVAMAN Everything and Nothing 4 18/01/2009 03:25 PM


All times are GMT. The time now is 06:18 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.