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