View difference between Paste ID: JFgtZ6uB and bc0ebZft
SHOW: | | - or go back to the newest paste.
1-
//Alternative Dialogs by Nexius v3.0
1+
//Alternative Dialogs by Nexius v3.5
2
3
#if defined _alt_dialogs_included
4
	#endinput
5
#endif
6
#define _alt_dialogs_included
7
8
#include <a_samp>
9
10-
#define AD_VERSION						"3.0"
10+
#define AD_VERSION						"3.5"
11
12
#define AD_STYLE_LIST					2
13
14
//#define FAST_DOUBLE_CLICK
15
16
#if defined FAST_DOUBLE_CLICK
17
	#define MAX_CLICK_INTERVAL			250
18
#endif
19
20
#define AD_SELECTION_COLOR				-10
21
#define AD_TITLE_COLOR					-75
22
#define AD_CLOSE_BUTTON_COLOR			-75
23
#define AD_BUTTONS_COLOR				-75
24
#define AD_UP_DOWN_BUTTONS_COLOR		-75
25
#define AD_ITEMS_COLOR					-75
26
27
#define AD_TITLE_BOX_COLOR				110
28
#define AD_PANEL_BOX_COLOR				70
29
#define AD_CLOSE_BUTTON_BOX_COLOR		-16777156
30
#define AD_BUTTONS_BOX_COLOR			50
31
#define AD_SCROLL_BOX_COLOR				35
32
#define AD_UP_DOWN_BUTTONS_BOX_COLOR	25
33
#define AD_ITEMS_BOX_COLOR				15
34
35
#define AD_SELECTED_ITEM_BOX_COLOR		35
36
37
#define AD_MAX_DIALOG_PAGES				3	//Change if you want
38
#define AD_MAX_CAPTION_LENGTH			38
39
#define AD_MAX_ITEM_LENGTH				40
40
#define AD_MAX_BUTTONS_LENGTH			6
41
42
#define AD_INVALID_ID					-1
43
44
static
45
	adItemID[MAX_PLAYERS],
46
	adPageID[MAX_PLAYERS],
47
	adDialogID[MAX_PLAYERS],
48
	adMaxItems[MAX_PLAYERS],
49
	bool:adIgnoreEsc[MAX_PLAYERS],
50
	#if defined FAST_DOUBLE_CLICK
51
		adLastClicked[MAX_PLAYERS],
52
	#endif
53
54
	Text:adArrayTDs[11] = {Text:65535, ...},
55
	PlayerText:adArrayPTDs[MAX_PLAYERS][21],
56
57
	adItems[MAX_PLAYERS][AD_MAX_DIALOG_PAGES * 8][AD_MAX_ITEM_LENGTH];
58
59
#undef AD_MAX_ITEM_LENGTH
60
61
forward OnAltDialogResponse(playerid, dialogid, response, listitem);
62
63
//To unlock the Easter egg, uncomment the next line...
64
//#define EASTER_EGG_WHITE_STYLE
65
66
#if defined EASTER_EGG_WHITE_STYLE
67
	#undef AD_SELECTION_COLOR
68
	#define AD_SELECTION_COLOR				50
69
	#undef AD_TITLE_COLOR
70
	#define AD_TITLE_COLOR					100
71
	#undef AD_CLOSE_BUTTON_COLOR
72
	#define AD_CLOSE_BUTTON_COLOR			100
73
	#undef AD_BUTTONS_COLOR
74
	#define AD_BUTTONS_COLOR				100
75
	#undef AD_UP_DOWN_BUTTONS_COLOR
76
	#define AD_UP_DOWN_BUTTONS_COLOR		100
77
	#undef AD_ITEMS_COLOR
78
	#define AD_ITEMS_COLOR					100
79
80
	#undef AD_TITLE_BOX_COLOR
81
	#define AD_TITLE_BOX_COLOR				-170
82
	#undef AD_PANEL_BOX_COLOR
83
	#define AD_PANEL_BOX_COLOR				-165
84
	#undef AD_CLOSE_BUTTON_BOX_COLOR
85
	#define AD_CLOSE_BUTTON_BOX_COLOR		-16777156
86
	#undef AD_BUTTONS_BOX_COLOR
87
	#define AD_BUTTONS_BOX_COLOR			-160
88
	#undef AD_UP_DOWN_BUTTONS_BOX_COLOR
89
	#define AD_UP_DOWN_BUTTONS_BOX_COLOR	-155
90
	#undef AD_ITEMS_BOX_COLOR
91
	#define AD_ITEMS_BOX_COLOR				-150
92
	#undef AD_SCROLL_BOX_COLOR
93
	#define AD_SCROLL_BOX_COLOR				-125
94
95
	#undef AD_SELECTED_ITEM_BOX_COLOR
96
	#define AD_SELECTED_ITEM_BOX_COLOR		-80
97
#endif
98
99-
public OnGameModeInit()
99+
#if defined _inc_y_hooks || defined _INC_y_hooks
100
	hook OnGameModeInit()
101
#else
102
	public OnGameModeInit()
103
#endif
104
{
105
	adArrayTDs[0] = TextDrawCreate(470.0, 140.0, "_"); //Title box
106
	TextDrawTextSize(adArrayTDs[0], 175.0, 0.0);
107
	TextDrawLetterSize(adArrayTDs[0], 0.0, 1.3);
108
	TextDrawUseBox(adArrayTDs[0], 1);
109
	TextDrawBoxColor(adArrayTDs[0], AD_TITLE_BOX_COLOR);
110
	#undef AD_TITLE_BOX_COLOR
111
112
	adArrayTDs[1] = TextDrawCreate(470.0, 155.0, "_"); //Panel box
113
	TextDrawTextSize(adArrayTDs[1], 175.0, 0.0);
114
	TextDrawLetterSize(adArrayTDs[1], 0.0, 17.1);
115
	TextDrawUseBox(adArrayTDs[1], 1);
116
	TextDrawBoxColor(adArrayTDs[1], AD_PANEL_BOX_COLOR);
117
	#undef AD_PANEL_BOX_COLOR
118
119
	adArrayTDs[2] = TextDrawCreate(470.0, 140.0, "_"); //Close button box
120
	TextDrawTextSize(adArrayTDs[2], 446.0, 12.0);
121
	TextDrawLetterSize(adArrayTDs[2], 0.0, 1.3);
122
	TextDrawUseBox(adArrayTDs[2], 1);
123
	TextDrawBoxColor(adArrayTDs[2], AD_CLOSE_BUTTON_BOX_COLOR);
124
	#undef AD_CLOSE_BUTTON_BOX_COLOR
125
126
	adArrayTDs[3] = TextDrawCreate(314.0, 290.5, "_"); //Button 1 box
127
	TextDrawTextSize(adArrayTDs[3], 264.0, 12.0);
128
	TextDrawLetterSize(adArrayTDs[3], 0.0, 1.3);
129
	TextDrawUseBox(adArrayTDs[3], 1);
130
	TextDrawBoxColor(adArrayTDs[3], AD_BUTTONS_BOX_COLOR);
131
132
	adArrayTDs[4] = TextDrawCreate(376.0, 290.5, "_"); //Button 2 box
133
	TextDrawTextSize(adArrayTDs[4], 325.0, 12.0);
134
	TextDrawLetterSize(adArrayTDs[4], 0.0, 1.3);
135
	TextDrawUseBox(adArrayTDs[4], 1);
136
	TextDrawBoxColor(adArrayTDs[4], AD_BUTTONS_BOX_COLOR);
137
138
	adArrayTDs[5] = TextDrawCreate(346.0, 290.5, "_"); //Button 1 box only
139
	TextDrawTextSize(adArrayTDs[5], 296.0, 12.0);
140
	TextDrawLetterSize(adArrayTDs[5], 0.0, 1.3);
141
	TextDrawUseBox(adArrayTDs[5], 1);
142
	TextDrawBoxColor(adArrayTDs[5], AD_BUTTONS_BOX_COLOR);
143
	#undef AD_BUTTONS_BOX_COLOR
144
145
	adArrayTDs[6] = TextDrawCreate(470.0, 155.0, "_"); //Up button box
146
	TextDrawTextSize(adArrayTDs[6], 460.0, 5.0);
147
	TextDrawLetterSize(adArrayTDs[6], 0.0, 1.3);
148
	TextDrawUseBox(adArrayTDs[6], 1);
149
	TextDrawBoxColor(adArrayTDs[6], AD_UP_DOWN_BUTTONS_BOX_COLOR);
150
151
	adArrayTDs[7] = TextDrawCreate(470.0, 262.0, "_"); //Down button box
152
	TextDrawTextSize(adArrayTDs[7], 460.0, 5.0);
153
	TextDrawLetterSize(adArrayTDs[7], 0.0, 1.3);
154
	TextDrawUseBox(adArrayTDs[7], 1);
155
	TextDrawBoxColor(adArrayTDs[7], AD_UP_DOWN_BUTTONS_BOX_COLOR);
156
	#undef AD_UP_DOWN_BUTTONS_BOX_COLOR
157
158
	adArrayTDs[8] = TextDrawCreate(454.0, 141.0, "X"); //Close button
159
	TextDrawFont(adArrayTDs[8], 2);
160
	TextDrawTextSize(adArrayTDs[8], 465.0, 12.0);
161
	TextDrawLetterSize(adArrayTDs[8], 0.27, 0.9);
162
	TextDrawColor(adArrayTDs[8], AD_CLOSE_BUTTON_COLOR);
163
	#undef AD_CLOSE_BUTTON_COLOR
164
	TextDrawSetShadow(adArrayTDs[8], 0);
165
	TextDrawSetSelectable(adArrayTDs[8], 1);
166
167
	adArrayTDs[9] = TextDrawCreate(462.3, 165.0, "v"); //Up button
168
	TextDrawFont(adArrayTDs[9], 2);
169
	TextDrawTextSize(adArrayTDs[9], 471.0, 4.5);
170
	TextDrawLetterSize(adArrayTDs[9], 0.18, -0.8);
171
	TextDrawColor(adArrayTDs[9], AD_UP_DOWN_BUTTONS_COLOR);
172
	TextDrawSetShadow(adArrayTDs[9], 0);
173
	TextDrawSetSelectable(adArrayTDs[9], 1);
174
175
	adArrayTDs[10] = TextDrawCreate(462.3, 264.0, "v"); //Down button
176
	TextDrawFont(adArrayTDs[10], 2);
177
	TextDrawTextSize(adArrayTDs[10], 471.0, 4.5);
178
	TextDrawLetterSize(adArrayTDs[10], 0.18, 0.8);
179
	TextDrawColor(adArrayTDs[10], AD_UP_DOWN_BUTTONS_COLOR);
180
	#undef AD_UP_DOWN_BUTTONS_COLOR
181
	TextDrawSetShadow(adArrayTDs[10], 0);
182
	TextDrawSetSelectable(adArrayTDs[10], 1);
183
184
	printf("Alternative Dialogs v%s by Nexius loaded!\n", AD_VERSION);
185
	#if !defined _inc_y_hooks && !defined _INC_y_hooks\
186
		&& defined ad_OnGameModeInit
187
		return ad_OnGameModeInit();
188-
#if defined _ALS_OnGameModeInit
188+
189-
	#undef OnGameModeInit
189+
190
	#endif
191-
	#define _ALS_OnGameModeInit
191+
192
193-
#define OnGameModeInit ad_OnGameModeInit
193+
#if !defined _inc_y_hooks && !defined _INC_y_hooks
194-
#if defined ad_OnGameModeInit
194+
	#if defined _ALS_OnGameModeInit
195-
	forward ad_OnGameModeInit();
195+
		#undef OnGameModeInit
196
	#else
197
		#define _ALS_OnGameModeInit
198-
public OnGameModeExit()
198+
199
	#define OnGameModeInit ad_OnGameModeInit
200
	#if defined ad_OnGameModeInit
201
		forward ad_OnGameModeInit();
202
	#endif
203
#endif
204
205
#if defined _inc_y_hooks || defined _INC_y_hooks
206
	hook OnGameModeExit()
207
#else
208-
#if defined _ALS_OnGameModeExit
208+
	public OnGameModeExit()
209-
	#undef OnGameModeExit
209+
210
{
211-
	#define _ALS_OnGameModeExit
211+
212
	#if !defined _inc_y_hooks && !defined _INC_y_hooks\
213-
#define OnGameModeExit ad_OnGameModeExit
213+
		&& defined ad_OnGameModeExit
214-
#if defined ad_OnGameModeExit
214+
215-
	forward ad_OnGameModeExit();
215+
216
		return 1;
217
	#endif
218-
public OnPlayerConnect(playerid)
218+
219
220
#if !defined _inc_y_hooks && !defined _INC_y_hooks
221
	#if defined _ALS_OnGameModeExit
222
		#undef OnGameModeExit
223
	#else
224
		#define _ALS_OnGameModeExit
225
	#endif
226
	#define OnGameModeExit ad_OnGameModeExit
227
	#if defined ad_OnGameModeExit
228
		forward ad_OnGameModeExit();
229
	#endif
230-
#if defined _ALS_OnPlayerConnect
230+
231-
	#undef OnPlayerConnect
231+
232
#if defined _inc_y_hooks || defined _INC_y_hooks
233-
	#define _ALS_OnPlayerConnect
233+
	hook OnPlayerConnect(playerid)
234
#else
235-
#define OnPlayerConnect ad_OnPlayerConnect
235+
	public OnPlayerConnect(playerid)
236-
#if defined ad_OnPlayerConnect
236+
237-
	forward ad_OnPlayerConnect(playerid);
237+
238
	adIgnoreEsc[playerid] = false;
239
	adDialogID[playerid] = AD_INVALID_ID;
240-
public OnPlayerClickTextDraw(playerid, Text:clickedid)
240+
241
	#if !defined _inc_y_hooks && !defined _INC_y_hooks\
242
		&& defined ad_OnPlayerConnect
243
		return ad_OnPlayerConnect(playerid);
244
	#else
245
		return 1;
246
	#endif
247
}
248
249
#if !defined _inc_y_hooks && !defined _INC_y_hooks
250
	#if defined _ALS_OnPlayerConnect
251
		#undef OnPlayerConnect
252
	#else
253
		#define _ALS_OnPlayerConnect
254
	#endif
255
	#define OnPlayerConnect ad_OnPlayerConnect
256
	#if defined ad_OnPlayerConnect
257
		forward ad_OnPlayerConnect(playerid);
258
	#endif
259
#endif
260
261
#if defined _inc_y_hooks || defined _INC_y_hooks
262
	hook OnPlayerClickTextDraw(playerid, Text:clickedid)
263
#else
264
	public OnPlayerClickTextDraw(playerid, Text:clickedid)
265
#endif
266
{
267
	if(adIgnoreEsc[playerid] && clickedid == Text:65535) adIgnoreEsc[playerid] = false;
268
	else if(adDialogID[playerid] != AD_INVALID_ID)
269
	{
270
		if(clickedid == Text:65535 || clickedid == adArrayTDs[8])
271
		{
272
			new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
273
			ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
274
			CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 2, tmp_itemid);
275
		}
276
		else if(clickedid == adArrayTDs[9])
277
		{
278
			if(adPageID[playerid] > 0)
279
			{
280
				new i, Float:ssize, Float:spos;
281
				adPageID[playerid]--;
282
				adItemID[playerid] = adPageID[playerid] * 8;
283
				for(i = 11; i != 4; --i)
284
				{
285
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][i], AD_ITEMS_BOX_COLOR);
286
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][i]);
287
				}
288
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][4], AD_SELECTED_ITEM_BOX_COLOR);
289
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][4]);
290
				i = adPageID[playerid] * 8;
291
				for(new j = i + 8, c; i < j; i++)
292
				{
293
					PlayerTextDrawSetString(playerid, adArrayPTDs[playerid][12 + c], adItems[playerid][i]);
294
					if(!adItems[playerid][i][0]) PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12 + c], 0);
295
					else PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12 + c], 1);
296
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][12 + c]);
297
					c++;
298
				}
299
				PlayerTextDrawDestroy(playerid, adArrayPTDs[playerid][20]);
300
				ssize = 9.8 / (floatround(adMaxItems[playerid] / 8, floatround_tozero) + 1);
301
				spos = (ssize * 9) * adPageID[playerid];
302
				adArrayPTDs[playerid][20] = CreatePlayerTextDraw(playerid, 470.0, 170.3 + spos, "_"); //Scroll box
303
				PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][20], 460.0, 5.0);
304
				PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][20], 0.0, ssize);
305
				PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][20], 1);
306
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][20], AD_SCROLL_BOX_COLOR);
307
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][20]);
308
			}
309
		}
310
		else if(clickedid == adArrayTDs[10])
311
		{
312
			if(adPageID[playerid] < floatround(adMaxItems[playerid] / 8, floatround_tozero))
313
			{
314
				new i, Float:ssize, Float:spos;
315
				adPageID[playerid]++;
316
				adItemID[playerid] = adPageID[playerid] * 8;
317
				for(i = 11; i != 4; --i)
318
				{
319
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][i], AD_ITEMS_BOX_COLOR);
320
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][i]);
321
				}
322
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][4], AD_SELECTED_ITEM_BOX_COLOR);
323
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][4]);
324
				i = adPageID[playerid] * 8;
325
				for(new j = i + 8, c; i < j; i++)
326
				{
327-
#if defined _ALS_OnPlayerClickTextDraw
327+
328-
	#undef OnPlayerClickTextDraw
328+
329
					else PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12 + c], 1);
330-
	#define _ALS_OnPlayerClickTextDraw
330+
331
					c++;
332-
#define OnPlayerClickTextDraw ad_OnPlayerClickTextDraw
332+
333-
#if defined ad_OnPlayerClickTextDraw
333+
334-
	forward ad_OnPlayerClickTextDraw(playerid, Text:clickedid);
334+
335
				spos = (ssize * 9) * adPageID[playerid];
336
				adArrayPTDs[playerid][20] = CreatePlayerTextDraw(playerid, 470.0, 170.3 + spos, "_"); //Scroll box
337-
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
337+
338
				PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][20], 0.0, ssize);
339
				PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][20], 1);
340
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][20], AD_SCROLL_BOX_COLOR);
341
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][20]);
342
			}
343
		}
344
	}
345
	#if !defined _inc_y_hooks && !defined _INC_y_hooks\
346
		&& defined ad_OnPlayerClickTextDraw
347
		return ad_OnPlayerClickTextDraw(playerid, clickedid);
348
	#else
349
		return 1;
350
	#endif
351
}
352
353
#if !defined _inc_y_hooks && !defined _INC_y_hooks
354
	#if defined _ALS_OnPlayerClickTextDraw
355
		#undef OnPlayerClickTextDraw
356
	#else
357
		#define _ALS_OnPlayerClickTextDraw
358
	#endif
359
	#define OnPlayerClickTextDraw ad_OnPlayerClickTextDraw
360
	#if defined ad_OnPlayerClickTextDraw
361
		forward ad_OnPlayerClickTextDraw(playerid, Text:clickedid);
362
	#endif
363
#endif
364
365
#if defined _inc_y_hooks || defined _INC_y_hooks
366
	hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid)
367
#else
368
	public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
369
#endif
370
{
371
	if(adDialogID[playerid] != AD_INVALID_ID)
372
	{
373
		if(playertextid == adArrayPTDs[playerid][1] || playertextid == adArrayPTDs[playerid][2])
374
		{
375
			new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
376
			ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
377
			CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
378
		}
379
		else if(playertextid == adArrayPTDs[playerid][3])
380
		{
381
			new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
382
			ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
383
			CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 0, tmp_itemid);
384
		}
385
		else
386
		{
387
			#if defined FAST_DOUBLE_CLICK
388
				new gtc = GetTickCount();
389
			#endif
390
			if(playertextid == adArrayPTDs[playerid][12])
391
			{
392
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][4], AD_SELECTED_ITEM_BOX_COLOR);
393
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][4]);
394
				if(adItemID[playerid] == 0 + (adPageID[playerid] * 8))
395
				{
396
					#if defined FAST_DOUBLE_CLICK
397
						if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
398
						{
399
					#endif
400
					new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
401
					ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
402
					CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
403
					#if defined FAST_DOUBLE_CLICK
404
						}
405
					#endif
406
				}
407
				else
408
				{
409
					if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
410
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
411
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
412
				}
413
				adItemID[playerid] = 0 + (adPageID[playerid] * 8);
414
				#if defined FAST_DOUBLE_CLICK
415
					adLastClicked[playerid] = gtc;
416
				#endif
417
			}
418
			else if(playertextid == adArrayPTDs[playerid][13])
419
			{
420
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][5], AD_SELECTED_ITEM_BOX_COLOR);
421
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][5]);
422
				if(adItemID[playerid] == 1 + (adPageID[playerid] * 8))
423
				{
424
					#if defined FAST_DOUBLE_CLICK
425
						if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
426
						{
427
					#endif
428
					new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
429
					ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
430
					CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
431
					#if defined FAST_DOUBLE_CLICK
432
						}
433
					#endif
434
				}
435
				else
436
				{
437
					if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
438
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
439
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
440
				}
441
				adItemID[playerid] = 1 + (adPageID[playerid] * 8);
442
				#if defined FAST_DOUBLE_CLICK
443
					adLastClicked[playerid] = gtc;
444
				#endif
445
			}
446
			else if(playertextid == adArrayPTDs[playerid][14])
447
			{
448
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][6], AD_SELECTED_ITEM_BOX_COLOR);
449
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][6]);
450
				if(adItemID[playerid] == 2 + (adPageID[playerid] * 8))
451
				{
452
					#if defined FAST_DOUBLE_CLICK
453
						if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
454
						{
455
					#endif
456
					new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
457
					ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
458
					CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
459
					#if defined FAST_DOUBLE_CLICK
460
						}
461
					#endif
462
				}
463
				else
464
				{
465
					if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
466
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
467
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
468
				}
469
				adItemID[playerid] = 2 + (adPageID[playerid] * 8);
470
				#if defined FAST_DOUBLE_CLICK
471
					adLastClicked[playerid] = gtc;
472
				#endif
473
			}
474
			else if(playertextid == adArrayPTDs[playerid][15])
475
			{
476
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][7], AD_SELECTED_ITEM_BOX_COLOR);
477
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][7]);
478
				if(adItemID[playerid] == 3 + (adPageID[playerid] * 8))
479
				{
480
					#if defined FAST_DOUBLE_CLICK
481
						if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
482
						{
483
					#endif
484
					new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
485
					ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
486
					CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
487
					#if defined FAST_DOUBLE_CLICK
488
						}
489
					#endif
490
				}
491
				else
492
				{
493
					if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
494
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
495
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
496
				}
497
				adItemID[playerid] = 3 + (adPageID[playerid] * 8);
498
				#if defined FAST_DOUBLE_CLICK
499
					adLastClicked[playerid] = gtc;
500
				#endif
501
			}
502
			else if(playertextid == adArrayPTDs[playerid][16])
503
			{
504
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][8], AD_SELECTED_ITEM_BOX_COLOR);
505
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][8]);
506
				if(adItemID[playerid] == 4 + (adPageID[playerid] * 8))
507
				{
508
					#if defined FAST_DOUBLE_CLICK
509
						if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
510
						{
511
					#endif
512
					new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
513
					ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
514
					CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
515
					#if defined FAST_DOUBLE_CLICK
516
						}
517
					#endif
518
				}
519
				else
520
				{
521
					if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
522
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
523
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
524
				}
525
				adItemID[playerid] = 4 + (adPageID[playerid] * 8);
526
				#if defined FAST_DOUBLE_CLICK
527
					adLastClicked[playerid] = gtc;
528
				#endif
529
			}
530
			else if(playertextid == adArrayPTDs[playerid][17])
531
			{
532
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][9], AD_SELECTED_ITEM_BOX_COLOR);
533
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][9]);
534
				if(adItemID[playerid] == 5 + (adPageID[playerid] * 8))
535
				{
536
					#if defined FAST_DOUBLE_CLICK
537
						if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
538
						{
539
					#endif
540
					new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
541
					ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
542
					CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
543
					#if defined FAST_DOUBLE_CLICK
544
						}
545
					#endif
546
				}
547
				else
548
				{
549
					if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
550
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
551
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
552
				}
553
				adItemID[playerid] = 5 + (adPageID[playerid] * 8);
554
				#if defined FAST_DOUBLE_CLICK
555
					adLastClicked[playerid] = gtc;
556
				#endif
557
			}
558
			else if(playertextid == adArrayPTDs[playerid][18])
559
			{
560
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][10], AD_SELECTED_ITEM_BOX_COLOR);
561
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][10]);
562
				if(adItemID[playerid] == 6 + (adPageID[playerid] * 8))
563
				{
564
					#if defined FAST_DOUBLE_CLICK
565
						if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
566
						{
567
					#endif
568
					new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
569
					ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
570
					CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
571
					#if defined FAST_DOUBLE_CLICK
572
						}
573
					#endif
574
				}
575
				else
576
				{
577
					if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
578
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
579
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
580
				}
581
				adItemID[playerid] = 6 + (adPageID[playerid] * 8);
582
				#if defined FAST_DOUBLE_CLICK
583
					adLastClicked[playerid] = gtc;
584
				#endif
585
			}
586
			else if(playertextid == adArrayPTDs[playerid][19])
587
			{
588
				PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][11], AD_SELECTED_ITEM_BOX_COLOR);
589
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][11]);
590
				if(adItemID[playerid] == 7 + (adPageID[playerid] * 8))
591-
#if defined _ALS_OnPlayerClickPlayerTD || defined _ALS_OnPlayer\
591+
592-
	ClickPlayerTextDraw
592+
593-
	#undef OnPlayerClickPlayerTextDraw
593+
594
						{
595-
	#define _ALS_OnPlayerClickPlayerTD
595+
596
					new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
597-
#define OnPlayerClickPlayerTextDraw ad_OnPlayerClickPlayerTextDraw
597+
598-
#if defined ad_OnPlayerClickPlayerTextDraw
598+
599-
	forward ad_OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid);
599+
600
						}
601
					#endif
602
				}
603
				else
604
				{
605
					if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
606
					PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
607
					PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
608
				}
609
				adItemID[playerid] = 7 + (adPageID[playerid] * 8);
610
				#if defined FAST_DOUBLE_CLICK
611
					adLastClicked[playerid] = gtc;
612
				#endif
613
			}
614
		}
615
	}
616
	#if !defined _inc_y_hooks && !defined _INC_y_hooks\
617
		&& defined ad_OnPlayerClickPlayerTextDraw
618
		return ad_OnPlayerClickPlayerTextDraw(playerid, playertextid);
619
	#else
620
		return 1;
621
	#endif
622
}
623
624
#if !defined _inc_y_hooks && !defined _INC_y_hooks
625
	#if defined _ALS_OnPlayerClickPlayerTextDra\
626
		|| defined _ALS_OnPlayerClickPlayerTD || defined _ALS_OnPlayer\
627
		ClickPlayerTextDraw
628
		#undef OnPlayerClickPlayerTextDraw
629
	#else
630
		#define _ALS_OnPlayerClickPlayerTD
631
	#endif
632
	#define OnPlayerClickPlayerTextDraw ad_OnPlayerClickPlayerTextDraw
633
	#if defined ad_OnPlayerClickPlayerTextDraw
634
		forward ad_OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid);
635
	#endif
636
#endif
637
638
#if defined FAST_DOUBLE_CLICK
639
	#undef FAST_DOUBLE_CLICK
640
	#undef MAX_CLICK_INTERVAL
641
#endif
642
643
ShowPlayerAltDialog(playerid, dialogid, style, caption[], info[], button1[], button2[] = "")
644
{
645
	if(IsPlayerConnected(playerid))
646
	{
647
		new i;
648
		adDialogID[playerid] = AD_INVALID_ID;
649
		for(i = (AD_MAX_DIALOG_PAGES * 8) - 1; i != -1; --i) adItems[playerid][i][0] = EOS;
650
		#undef AD_MAX_DIALOG_PAGES
651
		for(i = sizeof(adArrayTDs) - 1; i != -1; --i) TextDrawHideForPlayer(playerid, adArrayTDs[i]);
652
		for(i = sizeof(adArrayPTDs[]) - 1; i != -1; --i)
653
		{
654
			PlayerTextDrawDestroy(playerid, adArrayPTDs[playerid][i]);
655
			adArrayPTDs[playerid][i] = PlayerText:65535;
656
		}
657
		if(dialogid <= AD_INVALID_ID)
658
		{
659
			adIgnoreEsc[playerid] = true;
660
			return CancelSelectTextDraw(playerid);
661
		}
662
		if(style == AD_STYLE_LIST)
663
		{
664
			adPageID[playerid] = 0;
665
			adItemID[playerid] = 0;
666
			adDialogID[playerid] = dialogid;
667
668
			adArrayPTDs[playerid][4] = CreatePlayerTextDraw(playerid, 464.0, 155.0, "_"); //Item 1 box
669
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][4], 181.0, 12.0);
670
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][4], 0.0, 1.3);
671
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][4], 1);
672
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][4], AD_SELECTED_ITEM_BOX_COLOR);
673
			#undef AD_SELECTED_ITEM_BOX_COLOR
674
675
			adArrayPTDs[playerid][5] = CreatePlayerTextDraw(playerid, 464.0, 170.5, "_"); //Item 2 box
676
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][5], 181.0, 12.0);
677
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][5], 0.0, 1.3);
678
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][5], 1);
679
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][5], AD_ITEMS_BOX_COLOR);
680
681
			adArrayPTDs[playerid][6] = CreatePlayerTextDraw(playerid, 464.0, 185.8, "_"); //Item 3 box
682
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][6], 181.0, 12.0);
683
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][6], 0.0, 1.3);
684
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][6], 1);
685
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][6], AD_ITEMS_BOX_COLOR);
686
687
			adArrayPTDs[playerid][7] = CreatePlayerTextDraw(playerid, 464.0, 201.0, "_"); //Item 4 box
688
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][7], 181.0, 12.0);
689
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][7], 0.0, 1.3);
690
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][7], 1);
691
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][7], AD_ITEMS_BOX_COLOR);
692
693
			adArrayPTDs[playerid][8] = CreatePlayerTextDraw(playerid, 464.0, 216.2, "_"); //Item 5 box
694
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][8], 181.0, 12.0);
695
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][8], 0.0, 1.3);
696
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][8], 1);
697
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][8], AD_ITEMS_BOX_COLOR);
698
699
			adArrayPTDs[playerid][9] = CreatePlayerTextDraw(playerid, 464.0, 231.2, "_"); //Item 6 box
700
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][9], 181.0, 12.0);
701
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][9], 0.0, 1.3);
702
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][9], 1);
703
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][9], AD_ITEMS_BOX_COLOR);
704
705
			adArrayPTDs[playerid][10] = CreatePlayerTextDraw(playerid, 464.0, 246.5, "_"); //Item 7 box
706
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][10], 181.0, 12.0);
707
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][10], 0.0, 1.3);
708
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][10], 1);
709
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][10], AD_ITEMS_BOX_COLOR);
710
711
			adArrayPTDs[playerid][11] = CreatePlayerTextDraw(playerid, 464.0, 261.8, "_"); //Item 8 box
712
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][11], 181.0, 12.0);
713
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][11], 0.0, 1.3);
714
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][11], 1);
715
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][11], AD_ITEMS_BOX_COLOR);
716
			#undef AD_ITEMS_BOX_COLOR
717
718
			adArrayPTDs[playerid][12] = CreatePlayerTextDraw(playerid, 191.0, 156.3, ""); //Item 1
719
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][12], 2);
720
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][12], 460.0, 13.6);
721
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][12], 0.27, 0.9);
722
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][12], AD_ITEMS_COLOR);
723
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][12], 0);
724
			PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12], 1);
725
726
			adArrayPTDs[playerid][13] = CreatePlayerTextDraw(playerid, 191.0, 171.8, ""); //Item 2
727
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][13], 2);
728
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][13], 460.0, 13.6);
729
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][13], 0.27, 0.9);
730
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][13], AD_ITEMS_COLOR);
731
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][13], 0);
732
			PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][13], 1);
733
734
			adArrayPTDs[playerid][14] = CreatePlayerTextDraw(playerid, 191.0, 187.3, ""); //Item 3
735
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][14], 2);
736
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][14], 460.0, 13.6);
737
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][14], 0.27, 0.9);
738
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][14], AD_ITEMS_COLOR);
739
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][14], 0);
740
			PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][14], 1);
741
742
			adArrayPTDs[playerid][15] = CreatePlayerTextDraw(playerid, 191.0, 202.6, ""); //Item 4
743
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][15], 2);
744
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][15], 460.0, 13.6);
745
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][15], 0.27, 0.9);
746
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][15], AD_ITEMS_COLOR);
747
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][15], 0);
748
			PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][15], 1);
749
750
			adArrayPTDs[playerid][16] = CreatePlayerTextDraw(playerid, 191.0, 217.6, ""); //Item 5
751
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][16], 2);
752
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][16], 460.0, 13.6);
753
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][16], 0.27, 0.9);
754
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][16], AD_ITEMS_COLOR);
755
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][16], 0);
756
			PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][16], 1);
757
758
			adArrayPTDs[playerid][17] = CreatePlayerTextDraw(playerid, 191.0, 232.7, ""); //Item 6
759
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][17], 2);
760
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][17], 460.0, 13.6);
761
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][17], 0.27, 0.9);
762
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][17], AD_ITEMS_COLOR);
763
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][17], 0);
764
			PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][17], 1);
765
766
			adArrayPTDs[playerid][18] = CreatePlayerTextDraw(playerid, 191.0, 247.9, ""); //Item 7
767
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][18], 2);
768
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][18], 460.0, 13.6);
769
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][18], 0.27, 0.9);
770
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][18], AD_ITEMS_COLOR);
771
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][18], 0);
772
			PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][18], 1);
773
774
			adArrayPTDs[playerid][19] = CreatePlayerTextDraw(playerid, 191.0, 263.0, ""); //Item 8
775
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][19], 2);
776
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][19], 460.0, 13.6);
777
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][19], 0.27, 0.9);
778
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][19], AD_ITEMS_COLOR);
779
			#undef AD_ITEMS_COLOR
780
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][19], 0);
781
			PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][19], 1);
782
783
			if(strlen(caption) >= AD_MAX_CAPTION_LENGTH)
784
			{
785
				caption[AD_MAX_CAPTION_LENGTH - 3] = '.';
786
				caption[AD_MAX_CAPTION_LENGTH - 2] = '.';
787
				caption[AD_MAX_CAPTION_LENGTH - 1] = '.';
788
				caption[AD_MAX_CAPTION_LENGTH] = EOS;
789
				#undef AD_MAX_CAPTION_LENGTH
790
			}
791
792
			adArrayPTDs[playerid][0] = CreatePlayerTextDraw(playerid, 188.0, 141.0, caption); //Title
793
			PlayerTextDrawFont(playerid, adArrayPTDs[playerid][0], 2);
794
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][0], 0.27, 0.9);
795
			PlayerTextDrawColor(playerid, adArrayPTDs[playerid][0], AD_TITLE_COLOR);
796
			#undef AD_TITLE_COLOR
797
			PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][0], 0);
798
799
			if(strlen(button1) >= AD_MAX_BUTTONS_LENGTH) button1[AD_MAX_BUTTONS_LENGTH] = EOS;
800
			new lb2 = strlen(button2);
801
			if(lb2)
802
			{
803
				adArrayPTDs[playerid][1] = CreatePlayerTextDraw(playerid, 289.0, 292.0, button1); //Button 1
804
				PlayerTextDrawAlignment(playerid, adArrayPTDs[playerid][1], 2);
805
				PlayerTextDrawFont(playerid, adArrayPTDs[playerid][1], 2);
806
				PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][1], 12.0, 38.0);
807
				PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][1], 0.27, 0.9);
808
				PlayerTextDrawColor(playerid, adArrayPTDs[playerid][1], AD_BUTTONS_COLOR);
809
				PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][1], 0);
810
				PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][1], 1);
811
812
				if(lb2 >= AD_MAX_BUTTONS_LENGTH) button2[AD_MAX_BUTTONS_LENGTH] = EOS;
813
				#undef AD_MAX_BUTTONS_LENGTH
814
815
				adArrayPTDs[playerid][3] = CreatePlayerTextDraw(playerid, 350.5, 292.0, button2); //Button 2
816
				PlayerTextDrawAlignment(playerid, adArrayPTDs[playerid][3], 2);
817
				PlayerTextDrawFont(playerid, adArrayPTDs[playerid][3], 2);
818
				PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][3], 12.0, 38.0);
819
				PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][3], 0.27, 0.9);
820
				PlayerTextDrawColor(playerid, adArrayPTDs[playerid][3], AD_BUTTONS_COLOR);
821
				PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][3], 0);
822
				PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][3], 1);
823
			}
824
			else
825
			{
826
				adArrayPTDs[playerid][2] = CreatePlayerTextDraw(playerid, 321.0, 292.0, button1); //Button 1 only
827
				PlayerTextDrawAlignment(playerid, adArrayPTDs[playerid][2], 2);
828
				PlayerTextDrawFont(playerid, adArrayPTDs[playerid][2], 2);
829
				PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][2], 12.0, 38.0);
830
				PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][2], 0.27, 0.9);
831
				PlayerTextDrawColor(playerid, adArrayPTDs[playerid][2], AD_BUTTONS_COLOR);
832
				#undef AD_BUTTONS_COLOR
833
				PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][2], 0);
834
				PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][2], 1);
835
			}
836
			new c = -1; i = 0;
837
			for(new j, s = strlen(info); i <= s; i++)
838
			{
839
				if(info[i] == '\n' || i == s)
840
				{
841
					if(c + 1 >= sizeof adItems[]) break;
842
					c++;
843
					strmid(adItems[playerid][c], info, j, i);
844
					if(i - j >= sizeof adItems[][])
845
					{
846
						adItems[playerid][c][sizeof(adItems[][]) - 3] = '.';
847
						adItems[playerid][c][sizeof(adItems[][]) - 2] = '.';
848
						adItems[playerid][c][sizeof(adItems[][]) - 1] = '.';
849
					}
850
					if(c < 8) PlayerTextDrawSetString(playerid, adArrayPTDs[playerid][12 + c], adItems[playerid][c]);
851
					j = i + 1;
852
				}
853
			}
854
			adMaxItems[playerid] = c;
855
856
			adArrayPTDs[playerid][20] = CreatePlayerTextDraw(playerid, 470.0, 170.3, "_"); //Scroll box
857
			PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][20], 460.0, 5.0);
858
			PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][20], 0.0, 9.8 / (floatround(c / 8, floatround_tozero) + 1));
859
			PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][20], 1);
860
			PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][20], AD_SCROLL_BOX_COLOR);
861
			#undef AD_SCROLL_BOX_COLOR
862
863
			for(i = sizeof(adArrayTDs) - 1; i != -1; --i)
864
			{
865
				if(c < 8 && (5 < i < 8 || 8 < i < 11)
866
				|| lb2 && i == 5 || !lb2 && 2 < i < 5) continue;
867
				TextDrawShowForPlayer(playerid, adArrayTDs[i]);
868
			}
869
			for(i = sizeof(adArrayPTDs[]) - 1; i != -1; --i)
870
			{
871
				if(c < 8 && i == 20) continue;
872
				PlayerTextDrawShow(playerid, adArrayPTDs[playerid][i]);
873
			}
874
			return SelectTextDraw(playerid, AD_SELECTION_COLOR);
875
			#undef AD_SELECTION_COLOR
876
		}
877
	}
878
	return 0;
879
}
880
881
stock GetPlayerAltDialog(playerid)
882
{
883
	if(!IsPlayerConnected(playerid)) return AD_INVALID_ID;
884
	return adDialogID[playerid];
885
}