Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Version 1.5 fixed version
- aCMenu
- Circular Menus by adri1 ( http://forum.sa-mp.com/member.php?u=106967 )
- ADRI1 INCLUDE
- FUNC:
- ShowCircularMenu(
- playerid, = Player ID
- circularmenuid, = Circular Menu ID
- off[], = Button OFF text
- txd1[]="", line1[]="", = Line 1 sprite & text
- txd2[]="", line2[]="", = Line 2 sprite & text
- txd3[]="", line3[]="", = Line 3 sprite & text
- txd4[]="", line4[]="", = Line 4 sprite & text
- txd5[]="", line5[]="", = Line 5 sprite & text
- txd6[]="", line6[]="", = Line 6 sprite & text
- txd7[]="", line7[]="", = Line 7 sprite & text
- txd8[]="", line8[]="" = Line 8 sprite & text
- );
- FORWARD:
- OnCircularMenuResponse(
- playerid, = Player ID
- response, = false = clicked on off button
- circularmenuid, = Circular Menu ID
- listitem = Listitem ... in the direction of clockwise >right>
- );
- WARNING:
- By default the limit is 10 circular menus per player
- You can change this option....
- #define MAX_CM_DIALOGS x
- */
- /* START */
- #define MAX_CM_DIALOGS 10
- new
- PlayerText:CircularMenu_Lines[MAX_PLAYERS][MAX_CM_DIALOGS][17],
- Text:CircularMenu_Base[7]
- ;
- forward OnCircularMenuResponse(playerid, response, circularmenuid, listitem);
- stock ShowCircularMenu(playerid, circularmenuid, off[], txd1[]="", line1[]="", txd2[]="", line2[]="", txd3[]="", line3[]="", txd4[]="", line4[]="", txd5[]="", line5[]="", txd6[]="", line6[]="", txd7[]="", line7[]="", txd8[]="", line8[]="")
- {
- if(GetPVarInt(playerid, "circularmenu_active") >= 0) return 0;
- SetPVarInt(playerid, "circularmenu_active", circularmenuid);
- new str1[24], str2[24], str3[24], str4[24], str5[24], str6[24], str7[24], str8[24], str9[24];
- format(str1, 24, "_~n~%s", line1);
- format(str2, 24, "_~n~%s", line2);
- format(str3, 24, "_~n~%s", line3);
- format(str4, 24, "_~n~%s", line4);
- format(str5, 24, "_~n~%s", line5);
- format(str6, 24, "_~n~%s", line6);
- format(str7, 24, "_~n~%s", line7);
- format(str8, 24, "_~n~%s", line8);
- format(str9, 24, "_~n~_~n~%s", off);
- CircularMenu_Lines[playerid][circularmenuid][0] = CreatePlayerTextDraw(playerid, 318.594940, 128.333297, str1);
- CircularMenu_Lines[playerid][circularmenuid][1] = CreatePlayerTextDraw(playerid, 368.321472, 158.499969, str2);
- CircularMenu_Lines[playerid][circularmenuid][2] = CreatePlayerTextDraw(playerid, 387.593963, 216.666610, str3);
- CircularMenu_Lines[playerid][circularmenuid][3] = CreatePlayerTextDraw(playerid, 367.978881, 279.499938, str4);
- CircularMenu_Lines[playerid][circularmenuid][4] = CreatePlayerTextDraw(playerid, 316.972747, 305.583251, str5);
- CircularMenu_Lines[playerid][circularmenuid][5] = CreatePlayerTextDraw(playerid, 262.687164, 279.166534, str6);
- CircularMenu_Lines[playerid][circularmenuid][6] = CreatePlayerTextDraw(playerid, 245.414825, 215.999923, str7);
- CircularMenu_Lines[playerid][circularmenuid][7] = CreatePlayerTextDraw(playerid, 261.876098, 155.749923, str8);
- CircularMenu_Lines[playerid][circularmenuid][8] = CreatePlayerTextDraw(playerid, 320.504364, 213.333221, str9);
- CircularMenu_Lines[playerid][circularmenuid][9] = CreatePlayerTextDraw(playerid, 303.133666, 114.333343, txd1);
- CircularMenu_Lines[playerid][circularmenuid][10] = CreatePlayerTextDraw(playerid, 353.797363, 144.499923, txd2);
- CircularMenu_Lines[playerid][circularmenuid][11] = CreatePlayerTextDraw(playerid, 373.538146, 203.249771, txd3);
- CircularMenu_Lines[playerid][circularmenuid][12] = CreatePlayerTextDraw(playerid, 353.922851, 267.249816, txd4);
- CircularMenu_Lines[playerid][circularmenuid][13] = CreatePlayerTextDraw(playerid, 303.385620, 293.916442, txd5);
- CircularMenu_Lines[playerid][circularmenuid][14] = CreatePlayerTextDraw(playerid, 248.163009, 268.082946, txd6);
- CircularMenu_Lines[playerid][circularmenuid][15] = CreatePlayerTextDraw(playerid, 229.953643, 201.999679, txd7);
- CircularMenu_Lines[playerid][circularmenuid][16] = CreatePlayerTextDraw(playerid, 249.694488, 142.333053, txd8);
- for(new i = 0; i != 8; i++)
- {
- PlayerTextDrawLetterSize(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 0.384406, 1.553331);
- PlayerTextDrawAlignment(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 2);
- PlayerTextDrawColor(playerid, CircularMenu_Lines[playerid][circularmenuid][i], -256);
- PlayerTextDrawSetShadow(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 0);
- PlayerTextDrawSetOutline(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 0);
- PlayerTextDrawBackgroundColor(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 51);
- PlayerTextDrawFont(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 3);
- PlayerTextDrawSetProportional(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 1);
- PlayerTextDrawTextSize(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 10, 25);
- PlayerTextDrawSetSelectable(playerid, CircularMenu_Lines[playerid][circularmenuid][i], true);
- }
- for(new i = 9; i != 17; i++)
- {
- PlayerTextDrawLetterSize(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 0.000000, 0.000000);
- PlayerTextDrawTextSize(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 28.579788, 28.583330);
- PlayerTextDrawAlignment(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 1);
- PlayerTextDrawColor(playerid, CircularMenu_Lines[playerid][circularmenuid][i], -1);
- PlayerTextDrawSetShadow(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 0);
- PlayerTextDrawSetOutline(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 0);
- PlayerTextDrawFont(playerid, CircularMenu_Lines[playerid][circularmenuid][i], 4);
- }
- PlayerTextDrawLetterSize(playerid, CircularMenu_Lines[playerid][circularmenuid][8], 0.384406, 1.553331);
- PlayerTextDrawAlignment(playerid, CircularMenu_Lines[playerid][circularmenuid][8], 2);
- PlayerTextDrawColor(playerid, CircularMenu_Lines[playerid][circularmenuid][8], -256);
- PlayerTextDrawSetShadow(playerid, CircularMenu_Lines[playerid][circularmenuid][8], 0);
- PlayerTextDrawSetOutline(playerid, CircularMenu_Lines[playerid][circularmenuid][8], 0);
- PlayerTextDrawBackgroundColor(playerid, CircularMenu_Lines[playerid][circularmenuid][8], 51);
- PlayerTextDrawFont(playerid, CircularMenu_Lines[playerid][circularmenuid][8], 3);
- PlayerTextDrawSetProportional(playerid, CircularMenu_Lines[playerid][circularmenuid][8], 1);
- PlayerTextDrawTextSize(playerid, CircularMenu_Lines[playerid][circularmenuid][8], 10, 25);
- PlayerTextDrawSetSelectable(playerid, CircularMenu_Lines[playerid][circularmenuid][8], true);
- for(new i = 0; i != 7; i++) TextDrawShowForPlayer(playerid, CircularMenu_Base[i]);
- for(new x = 0; x != 17; x++) PlayerTextDrawShow(playerid, CircularMenu_Lines[playerid][circularmenuid][x]);
- SelectTextDraw(playerid, -1);
- return 1;
- }
- stock DestroyCircularMenu(playerid, dialogid)
- {
- for(new i = 0; i != 7; i++) TextDrawHideForPlayer(playerid, CircularMenu_Base[i]);
- for(new x = 0; x != 17; x++) PlayerTextDrawDestroy(playerid, CircularMenu_Lines[playerid][dialogid][x]);
- CancelSelectTextDraw(playerid);
- return 1;
- }
- public OnGameModeInit()
- {
- CircularMenu_Base[0] = TextDrawCreate(239.882873, 123.666664, "hud:radardisc");
- TextDrawLetterSize(CircularMenu_Base[0], 0.000000, 0.000000);
- TextDrawTextSize(CircularMenu_Base[0], 79.180084, 97.416824);
- TextDrawAlignment(CircularMenu_Base[0], 1);
- TextDrawColor(CircularMenu_Base[0], -65436);
- TextDrawSetShadow(CircularMenu_Base[0], 0);
- TextDrawSetOutline(CircularMenu_Base[0], 0);
- TextDrawFont(CircularMenu_Base[0], 4);
- TextDrawSetProportional(CircularMenu_Base[0], 1);
- CircularMenu_Base[1] = TextDrawCreate(239.477310, 314.833221, "hud:radardisc");
- TextDrawLetterSize(CircularMenu_Base[1], 0.000000, 0.000000);
- TextDrawTextSize(CircularMenu_Base[1], 77.774520, -97.999885);
- TextDrawAlignment(CircularMenu_Base[1], 1);
- TextDrawColor(CircularMenu_Base[1], -156);
- TextDrawSetShadow(CircularMenu_Base[1], 0);
- TextDrawSetOutline(CircularMenu_Base[1], 0);
- TextDrawFont(CircularMenu_Base[1], 4);
- CircularMenu_Base[2] = TextDrawCreate(392.746978, 315.249847, "hud:radardisc");
- TextDrawLetterSize(CircularMenu_Base[2], 0.000000, 0.000000);
- TextDrawTextSize(CircularMenu_Base[2], -78.243026, -97.999839);
- TextDrawAlignment(CircularMenu_Base[2], 1);
- TextDrawColor(CircularMenu_Base[2], -156);
- TextDrawSetShadow(CircularMenu_Base[2], 0);
- TextDrawSetOutline(CircularMenu_Base[2], 0);
- TextDrawFont(CircularMenu_Base[2], 4);
- CircularMenu_Base[3] = TextDrawCreate(392.341339, 123.749847, "hud:radardisc");
- TextDrawLetterSize(CircularMenu_Base[3], 0.000000, 0.000000);
- TextDrawTextSize(CircularMenu_Base[3], -74.026344, 96.250259);
- TextDrawAlignment(CircularMenu_Base[3], 1);
- TextDrawColor(CircularMenu_Base[3], -156);
- TextDrawSetShadow(CircularMenu_Base[3], 0);
- TextDrawSetOutline(CircularMenu_Base[3], 0);
- TextDrawFont(CircularMenu_Base[3], 4);
- CircularMenu_Base[4] = TextDrawCreate(292.825469, 184.916641, "LD_BEAT:chit");
- TextDrawLetterSize(CircularMenu_Base[4], 0.000000, -6.184477);
- TextDrawTextSize(CircularMenu_Base[4], 54.816955, 68.250015);
- TextDrawAlignment(CircularMenu_Base[4], 1);
- TextDrawColor(CircularMenu_Base[4], -16777016);
- TextDrawUseBox(CircularMenu_Base[4], true);
- TextDrawBoxColor(CircularMenu_Base[4], 255);
- TextDrawSetShadow(CircularMenu_Base[4], 0);
- TextDrawSetOutline(CircularMenu_Base[4], 0);
- TextDrawFont(CircularMenu_Base[4], 4);
- CircularMenu_Base[5] = TextDrawCreate(320.468566, 190.750000, "O");
- TextDrawLetterSize(CircularMenu_Base[5], 1.182299, 5.531667);
- TextDrawAlignment(CircularMenu_Base[5], 2);
- TextDrawColor(CircularMenu_Base[5], -1);
- TextDrawSetShadow(CircularMenu_Base[5], 0);
- TextDrawSetOutline(CircularMenu_Base[5], 0);
- TextDrawBackgroundColor(CircularMenu_Base[5], 51);
- TextDrawFont(CircularMenu_Base[5], 1);
- TextDrawSetProportional(CircularMenu_Base[5], 1);
- CircularMenu_Base[6] = TextDrawCreate(319.594696, 189.999969, "I");
- TextDrawLetterSize(CircularMenu_Base[6], 1.100307, 3.169169);
- TextDrawAlignment(CircularMenu_Base[6], 2);
- TextDrawColor(CircularMenu_Base[6], -1);
- TextDrawSetShadow(CircularMenu_Base[6], 0);
- TextDrawSetOutline(CircularMenu_Base[6], 0);
- TextDrawBackgroundColor(CircularMenu_Base[6], 51);
- TextDrawFont(CircularMenu_Base[6], 1);
- TextDrawSetProportional(CircularMenu_Base[6], 1);
- return CallLocalFunction("AC_OGMI_ACM", "");
- }
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit AC_OGMI_ACM
- forward AC_OGMI_ACM();
- public OnPlayerClickTextDraw(playerid, Text:clickedid)
- {
- if(GetPVarInt(playerid, "circularmenu_active") >= 0)
- {
- //Escape
- if(clickedid == Text:INVALID_TEXT_DRAW)
- {
- CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, false, GetPVarInt(playerid, "circularmenu_active"), -1);
- DestroyCircularMenu(playerid, GetPVarInt(playerid, "circularmenu_active"));
- SetPVarInt(playerid, "circularmenu_active", -1);
- }
- }
- return CallLocalFunction("AC_OPCTD_ACM", "ii", playerid, _:clickedid);
- }
- #if defined _ALS_OnPlayerClickTextDraw
- #undef OnPlayerClickTextDraw
- #else
- #define _ALS_OnPlayerClickTextDraw
- #endif
- #define OnPlayerClickTextDraw AC_OPCTD_ACM
- forward AC_OPCTD_ACM(playerid, Text:clickedid);
- public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
- {
- if(GetPVarInt(playerid, "circularmenu_active") >= 0)
- {
- new circularmenuid = GetPVarInt(playerid, "circularmenu_active");
- if(playertextid == CircularMenu_Lines[playerid][circularmenuid][0]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 0);
- else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][1]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 1);
- else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][2]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 2);
- else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][3]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 3);
- else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][4]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 4);
- else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][5]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 5);
- else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][6]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 6);
- else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][7]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 7);
- //else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][8]) CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, true, circularmenuid, 8);
- else if(playertextid == CircularMenu_Lines[playerid][circularmenuid][8])
- {
- CallLocalFunction("OnCircularMenuResponse", "dddd", playerid, false, circularmenuid, -1);
- DestroyCircularMenu(playerid, circularmenuid);
- SetPVarInt(playerid, "circularmenu_active", -1);
- }
- }
- return CallLocalFunction("AC_OPCPTD_ACM", "ii", playerid, _:playertextid);
- }
- #if defined _ALS_OnPlayerClickPlayerTD
- #undef OnPlayerClickPlayerTextDraw
- #else
- #define _ALS_OnPlayerClickPlayerTD
- #endif
- #define OnPlayerClickPlayerTextDraw AC_OPCPTD_ACM
- forward AC_OPCPTD_ACM(playerid, PlayerText:playertextid);
- public OnPlayerConnect(playerid){
- SetPVarInt(playerid, "circularmenu_active", -1);
- return CallLocalFunction("AC_OPC_ACM", "i", playerid);
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect AC_OPC_ACM
- forward AC_OPC_ACM(playerid);
- public OnPlayerDisconnect(playerid, reason)
- {
- DeletePVar(playerid, "circularmenu_active");
- return CallLocalFunction("AC_OPDC_ACM", "ii", playerid, reason);
- }
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect AC_OPDC_ACM
- forward AC_OPDC_ACM(playerid, reason);
Advertisement
Add Comment
Please, Sign In to add comment