Advertisement
Guest User

Dynamic Board System v2 - MySql - Fix

a guest
May 29th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 18.07 KB | None | 0 0
  1. /*
  2.     Filterscript Credits:
  3.    
  4.     Pembuat Script: Agus Syahputra
  5.     Tanggal pembuatan: 22/05/2016 - 19:19
  6.     Nama Script: Dynamic Board System (board.pwn)
  7.    
  8.     BlueG & maddinat0r untuk plugin MySql
  9.     Zeex untuk include ZCMD
  10.     Incognito untuk plugin streamer
  11.     Y_Less untuk plugin sscanf
  12.  
  13. */
  14.  
  15. #include    <a_samp>
  16. #include    <a_mysql>
  17. #include    <streamer>
  18. #include    <sscanf2>
  19. #include    <ZCMD>
  20.  
  21. #define     MYSQL_HOST      "" //Isi host databasenya, seperti: 127.0.0.1.
  22. #define     MYSQL_USER      "" //Isi user yang ada di database MySql.
  23. #define     MYSQL_DATABASE  "" //Masukkan nama database yang di buat.
  24. #define     MYSQL_PASSWORD  "" //Password database
  25.  
  26. #define COLOR_GREY  (0xAFAFAFFF)
  27.  
  28. #define MAX_BOARD 200
  29.  
  30. #define DIALOG_MATERIAL_SIZE    2080
  31. #define DIALOG_OBJECT_MODEL     2081
  32. #define DIALOG_FONT_TEXT        2082
  33.  
  34. #define SendErrorMessage(%0,%1) \
  35.     SendClientMessage(%0, COLOR_GREY, "ERROR: {FFFFFF}"%1)
  36.    
  37. #define SendSyntaxMessage(%0,%1) \
  38.     SendClientMessage(%0, COLOR_GREY, "SYNTAX: {FFFFFF}"%1)
  39.    
  40. stock const FontSizes[][] = {
  41.     {OBJECT_MATERIAL_SIZE_32x32, "32x32" },
  42.     {OBJECT_MATERIAL_SIZE_64x32, "64x32" },
  43.     {OBJECT_MATERIAL_SIZE_64x64, "64x64" },
  44.     {OBJECT_MATERIAL_SIZE_128x32, "128x32" },
  45.     {OBJECT_MATERIAL_SIZE_128x64, "128x64" },
  46.     {OBJECT_MATERIAL_SIZE_128x128, "128x128" },
  47.     {OBJECT_MATERIAL_SIZE_256x32, "256x32" },
  48.     {OBJECT_MATERIAL_SIZE_256x64, "256x64" },
  49.     {OBJECT_MATERIAL_SIZE_256x128 ,"256x128" },
  50.     {OBJECT_MATERIAL_SIZE_256x256 ,"256x256" },
  51.     {OBJECT_MATERIAL_SIZE_512x64, "512x64" },
  52.     {OBJECT_MATERIAL_SIZE_512x128, "512x128" },
  53.     {OBJECT_MATERIAL_SIZE_512x256, "512x256" },
  54.     {OBJECT_MATERIAL_SIZE_512x512, "512x512" }
  55. };
  56.  
  57. stock const Font[][] = {
  58.     "Ariel",
  59.     "Courier",
  60.     "Calibri",
  61.     "Fixedsys",
  62.     "Times New Roman",
  63.     "Comic Sans MS"
  64. };
  65.  
  66. stock const ObjectList[][] = {
  67.     {18244, "cuntw_stwnmotsign1"},
  68.     {9314, "advert01_sfn"},
  69.     {19475, "Plane001"},
  70.     {19475, "Plane001"},
  71.     {19476, "Plane002"},
  72.     {19477, "Plane003"},
  73.     {19478, "Plane004"},
  74.     {19479, "Plane005"},
  75.     {19480, "Plane006"},
  76.     {19481, "Plane007"},
  77.     {19482, "Plane008"},
  78.     {19483, "Plane009"}
  79. };
  80.    
  81. enum board
  82. {
  83.     bID,
  84.     bName[128],
  85.     bExists,
  86.     Float:bX,
  87.     Float:bY,
  88.     Float:bZ,
  89.     Float:bRX,
  90.     Float:bRY,
  91.     Float:bRZ,
  92.     bObject,
  93.     bFontColor,
  94.     bBackColor,
  95.     bFontSize,
  96.     bMaterialSize,
  97.     bObjectModel,
  98.     bFontText[28]
  99. };
  100.  
  101. new
  102.     database = -1,
  103.     EditBoard[MAX_PLAYERS] = {-1, ...};
  104.  
  105. new
  106.     BoardData[MAX_BOARD][board];
  107.  
  108. public OnFilterScriptInit()
  109. {
  110.     database = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);
  111.     if (mysql_errno())
  112.         printf("Board Text database can't loaded. (Error #%d)", mysql_errno());
  113.     else
  114.         print("Board Text system loaded.");
  115.  
  116.     mysql_tquery(database, "SELECT * FROM `board`", "Board_Load");
  117.    
  118.     mysql_tquery(database, "CREATE TABLE IF NOT EXISTS `board` ( \
  119.       `ID` int(11) NOT NULL, \
  120.       `posX` float NOT NULL, \
  121.       `posY` float NOT NULL, \
  122.       `posZ` float NOT NULL, \
  123.       `posRX` float NOT NULL, \
  124.       `posRY` float NOT NULL, \
  125.       `posRZ` float NOT NULL, \
  126.       `name` varchar(128) NOT NULL, \
  127.       `fontsize` int(11) NOT NULL, \
  128.       `materialsize` int(11) NOT NULL, \
  129.       `fontcolor` int(11) NOT NULL, \
  130.       `backcolor` int(11) NOT NULL, \
  131.       `objectmodel` int(11) NOT NULL, \
  132.       `fonttext` varchar(28) NOT NULL \
  133.     ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1;");
  134.  
  135.     mysql_tquery(database, "ALTER TABLE `board` \
  136.     ADD PRIMARY KEY (`ID`);");
  137.  
  138.     return 1;
  139. }
  140.  
  141. public OnFilterScriptExit()
  142. {
  143.     for (new i=0; i != MAX_BOARD; i++) if (BoardData[i][bExists]) {
  144.         Board_Save(i);
  145.     }
  146.     return 1;
  147. }
  148.  
  149. forward Board_Load();
  150. public Board_Load()
  151. {
  152.     new rows = cache_num_rows();
  153.     if (rows)
  154.     {
  155.         for (new i; i < rows; i++)
  156.         {
  157.             BoardData[i][bExists] = true;
  158.            
  159.             BoardData[i][bID] = cache_get_field_content_int(i, "ID", database);
  160.            
  161.             cache_get_field_content(i, "name", BoardData[i][bName], database, 128);
  162.             cache_get_field_content(i, "fonttext", BoardData[i][bFontText], database, 28);
  163.            
  164.             BoardData[i][bX] = cache_get_field_content_float(i, "posX", database);
  165.             BoardData[i][bY] = cache_get_field_content_float(i, "posY", database);
  166.             BoardData[i][bZ] = cache_get_field_content_float(i, "posZ", database);
  167.  
  168.             BoardData[i][bRX] = cache_get_field_content_float(i, "posRX", database);
  169.             BoardData[i][bRY] = cache_get_field_content_float(i, "posRY", database);
  170.             BoardData[i][bRZ] = cache_get_field_content_float(i, "posRZ", database);
  171.            
  172.             BoardData[i][bFontSize] = cache_get_field_content_int(i, "fontsize", database);
  173.             BoardData[i][bMaterialSize] = cache_get_field_content_int(i, "materialsize", database);
  174.  
  175.             BoardData[i][bFontColor] = cache_get_field_content_int(i, "fontcolor", database);
  176.             BoardData[i][bBackColor] = cache_get_field_content_int(i, "backcolor", database);
  177.  
  178.             BoardData[i][bObjectModel] = cache_get_field_content_int(i, "objectmodel", database);
  179.  
  180.             Board_Refresh(i);
  181.         }
  182.     }
  183.     return 1;
  184. }
  185.  
  186. Board_Save(id)
  187. {
  188.     new string[1024];
  189.    
  190.     format(string, sizeof(string),"UPDATE `board` SET `posX`='%f',`posY`='%f',`posZ`='%f',`posRX`='%f',`posRY`='%f',`posRZ`='%f',`name`='%s',`fontcolor`='%d',`backcolor`='%d',`fontsize`='%d', `materialsize`='%d', `objectmodel` = '%d', `fonttext`='%s' WHERE `ID` = '%d'",
  191.         BoardData[id][bX],
  192.         BoardData[id][bY],
  193.         BoardData[id][bZ],
  194.         BoardData[id][bRX],
  195.         BoardData[id][bRY],
  196.         BoardData[id][bRZ],
  197.         BoardData[id][bName],
  198.         BoardData[id][bFontColor],
  199.         BoardData[id][bBackColor],
  200.         BoardData[id][bFontSize],
  201.         BoardData[id][bMaterialSize],
  202.         BoardData[id][bObjectModel],
  203.         BoardData[id][bFontText],
  204.         BoardData[id][bID]);
  205.        
  206.     return mysql_tquery(database, string);
  207. }
  208.  
  209. static Board_Refresh(id)
  210. {
  211.     if (id != -1 && BoardData[id][bExists])
  212.     {
  213.         if (IsValidDynamicObject(BoardData[id][bObject]))
  214.             DestroyDynamicObject(BoardData[id][bObject]);
  215.  
  216.         BoardData[id][bObject] = CreateDynamicObject(BoardData[id][bObjectModel], BoardData[id][bX], BoardData[id][bY], BoardData[id][bZ], BoardData[id][bRX], BoardData[id][bRY], BoardData[id][bRZ]);
  217.         SetDynamicObjectMaterial(BoardData[id][bObject], 1, 18646, "matcolours", "grey-80-percent", 0);
  218.         SetDynamicObjectMaterialText(BoardData[id][bObject], 0, BoardData[id][bName], BoardData[id][bMaterialSize], BoardData[id][bFontText], BoardData[id][bFontSize], 1, BoardData[id][bFontColor], BoardData[id][bBackColor], 1);
  219.     }
  220.     return 1;
  221. }
  222.  
  223. static Board_FreeID()
  224. {
  225.     for (new i; i != MAX_BOARD; i++) if (!BoardData[i][bExists]) {
  226.         return i;
  227.     }
  228.     return -1;
  229. }
  230.  
  231. static Board_Nearest(playerid)
  232. {
  233.     for (new id; id != MAX_BOARD; id++) if (BoardData[id][bExists] && IsPlayerInRangeOfPoint(playerid, 5, BoardData[id][bX], BoardData[id][bY], BoardData[id][bZ])) {
  234.         return id;
  235.     }
  236.     return -1;
  237. }
  238.  
  239. static Board_Create(name[], Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, font[] = "Arial", fontsize = 30, fontcolor = 0xFFFFFFFF, backcolor = 0xFF000000, model = 9314, materialsize = 130)
  240. {
  241.     new i = -1;
  242.  
  243.     if ((i = Board_FreeID()) != -1)
  244.     {
  245.  
  246.         FixText(name);
  247.  
  248.         BoardData[i][bExists] = true;
  249.         format(BoardData[i][bName], 128, "%s", ColouredText(name));
  250.         format(BoardData[i][bFontText], 28, font);
  251.  
  252.         BoardData[i][bX] = x;
  253.         BoardData[i][bY] = y;
  254.         BoardData[i][bZ] = z;
  255.        
  256.         BoardData[i][bFontColor] = fontcolor;
  257.         BoardData[i][bBackColor] = backcolor;
  258.         BoardData[i][bFontSize] = fontsize;
  259.         BoardData[i][bMaterialSize] = materialsize;
  260.         BoardData[i][bObjectModel] = model;
  261.  
  262.         BoardData[i][bObject] = CreateDynamicObject(BoardData[i][bObjectModel], x, y, z, rx, ry, rz);
  263.         SetDynamicObjectMaterial(BoardData[i][bObject], 1, 18646, "matcolours", "grey-80-percent", 0);
  264.         SetDynamicObjectMaterialText(BoardData[i][bObject], 0, BoardData[i][bName], BoardData[i][bMaterialSize], BoardData[i][bFontText], BoardData[i][bFontSize], 1, BoardData[i][bFontColor], BoardData[i][bBackColor], 1);
  265.  
  266.         mysql_tquery(database, "INSERT INTO `board`(`fontsize`) VALUES (30)", "BoardCreated", "d", i);
  267.         return i;
  268.     }
  269.     return 1;
  270. }
  271.  
  272. FixText(text[])
  273. {
  274.     //Credits from Texture Studio Filterscript (Pottus)
  275.    
  276.     new len = strlen(text);
  277.     if (len > 1)
  278.     {
  279.         for(new i = 0; i < len; i++)
  280.         {
  281.             if (text[i] == 92)
  282.             {
  283.                 if (text[i+1] == 'n')
  284.                 {
  285.                     text[i] = '\n';
  286.                     for(new j = i+1; j < len; j++) text[j] = text[j+1], text[j+1] = 0;
  287.                     continue;
  288.                 }
  289.             }
  290.         }
  291.     }
  292.     return 1;
  293. }
  294.  
  295. ColouredText(text[])
  296. {
  297.     //Credits to RyDeR`
  298.     new
  299.         pos = -1,
  300.         string[(128 + 16)]
  301.     ;
  302.     strmid(string, text, 0, 128, (sizeof(string) - 16));
  303.  
  304.     while((pos = strfind(string, "#", true, (pos + 1))) != -1)
  305.     {
  306.         new
  307.             i = (pos + 1),
  308.             hexCount
  309.         ;
  310.         for( ; ((string[i] != 0) && (hexCount < 6)); ++i, ++hexCount)
  311.         {
  312.             if (!(('a' <= string[i] <= 'f') || ('A' <= string[i] <= 'F') || ('0' <= string[i] <= '9')))
  313.             {
  314.                 break;
  315.             }
  316.         }
  317.         if ((hexCount == 6) && !(hexCount < 6))
  318.         {
  319.             string[pos] = '{';
  320.             strins(string, "}", i);
  321.         }
  322.     }
  323.     return string;
  324. }
  325.  
  326. forward BoardCreated(id);
  327. public BoardCreated(id)
  328. {
  329.     BoardData[id][bID] = cache_insert_id(database);
  330.     Board_Save(id);
  331.     return 1;
  332. }
  333.  
  334. CMD:near(playerid, params[])
  335. {
  336.     new
  337.         id,
  338.         string[128];
  339.  
  340.     if (!IsPlayerAdmin(playerid))
  341.         return SendErrorMessage(playerid, "Kamu harus login sebagai admin untuk menggunakan perintah ini (RCON Login).");
  342.    
  343.     if ((id = Board_Nearest(playerid)) != -1)
  344.     {
  345.         format(string, sizeof(string), "Kamu berada di sekitar board ID: %d.", id);
  346.         SendClientMessage(playerid, -1, string);
  347.     }
  348.     return 1;
  349. }
  350.  
  351. CMD:createboard(playerid, params[])
  352. {
  353.     new
  354.         name[128],
  355.         id,
  356.         string[128],
  357.         Float:x,
  358.         Float:y,
  359.         Float:z,
  360.         Float:angle;
  361.        
  362.     GetPlayerPos(playerid, x, y, z);
  363.     GetPlayerFacingAngle(playerid, angle);
  364.        
  365.     x += 5.0 * floatsin(-angle, degrees);
  366.     y += 5.0 * floatcos(-angle, degrees);
  367.        
  368.     if (!IsPlayerAdmin(playerid))
  369.         return SendErrorMessage(playerid, "Kamu harus login sebagai admin untuk menggunakan perintah ini (RCON Login).");
  370.  
  371.     if (sscanf(params, "s[128]", name))
  372.         return SendSyntaxMessage(playerid, "/createboard [name]");
  373.        
  374.     if (strlen(name) > 128)
  375.         return SendErrorMessage(playerid, "Text untuk board terlalu panjang.");
  376.            
  377.     id = Board_Create(name, x, y, z, 0, 0, angle);
  378.  
  379.     if (id == -1)
  380.         return SendErrorMessage(playerid, "Board telah membatasi batas yang di tentukan.");
  381.  
  382.     EditDynamicObject(playerid, BoardData[id][bObject]);
  383.     EditBoard[playerid] = id;
  384.    
  385.     format(string,sizeof(string),"( ! ) {FFFFFF}Board telah berhasi di buat. (ID: %d)",id);
  386.     SendClientMessage(playerid, 0xC0C0C0FF, string);
  387.     return 1;
  388. }
  389.  
  390. CMD:editboard(playerid, params[])
  391. {
  392.     new string[128],
  393.         options[32],
  394.         notice[128],
  395.         id;
  396.        
  397.     if (!IsPlayerAdmin(playerid))
  398.         return SendErrorMessage(playerid, "Kamu harus login sebagai admin untuk menggunakan perintah ini (RCON Login).");
  399.        
  400.     if (sscanf(params, "ds[32]S()[128]", id, options, string))
  401.         return SendSyntaxMessage(playerid, "/editboard [id] [move/text/fontcolor/backcolor/refresh/destroy/fontsize/materialsize/font/model/duplicate]");
  402.        
  403.     if ((id < 0 && id >= MAX_BOARD) || !BoardData[id][bExists])
  404.         return SendErrorMessage(playerid, "ID Yang kamu masukkan salah atau tidak terdaftar.");
  405.        
  406.     if (!strcmp(options, "move"))
  407.     {
  408.         EditBoard[playerid] = id;
  409.         EditDynamicObject(playerid, BoardData[id][bObject]);
  410.        
  411.         SendClientMessage(playerid, -1, "Geser kursor untuk memindahkan object yang di seleksi.");
  412.     }
  413.     else if (!strcmp(options, "text"))
  414.     {
  415.         new text[128];
  416.        
  417.         if (sscanf(string,"s[128]", text))
  418.             return SendSyntaxMessage(playerid, "/editboard [id] [text] 'text'");
  419.            
  420.         if (strlen(text) > 128)
  421.             return SendErrorMessage(playerid, "Text untuk board terlalu panjang.");
  422.            
  423.         FixText(text);
  424.         format(BoardData[id][bName], 128, "%s", ColouredText(text));
  425.         Board_Refresh(id);
  426.        
  427.         format(notice,sizeof(notice),"( ! ) {FFFFFF}Board Text ID: %d telah di ubah. (%s)",id, BoardData[id][bName]);
  428.         SendClientMessage(playerid, 0xC0C0C0FF, notice);
  429.     }
  430.     else if (!strcmp(options, "fontcolor"))
  431.     {
  432.         new hax;
  433.        
  434.         if (sscanf(string,"h", hax))
  435.             return SendSyntaxMessage(playerid, "/editboard [id] [fontcolor] 'hax'");
  436.  
  437.         BoardData[id][bFontColor] = hax;
  438.  
  439.         Board_Refresh(id);
  440.        
  441.         format(notice,sizeof(notice),"( ! ) {FFFFFF}Warna font untuk ID: %d telah di ubah.",id);
  442.         SendClientMessage(playerid, 0xC0C0C0FF, notice);
  443.     }
  444.     else if (!strcmp(options, "backcolor"))
  445.     {
  446.         new hax;
  447.        
  448.         if (sscanf(string,"h", hax))
  449.             return SendSyntaxMessage(playerid, "/editboard [id] [backcolor] 'hax'");
  450.  
  451.         BoardData[id][bBackColor] = hax;
  452.         Board_Refresh(id);
  453.        
  454.         format(notice,sizeof(notice),"( ! ) {FFFFFF}Warna background untuk ID: %d telah di ubah.",id);
  455.         SendClientMessage(playerid, 0xC0C0C0FF, notice);
  456.     }
  457.     else if (!strcmp(options, "refresh"))
  458.     {
  459.         Board_Refresh(id);
  460.        
  461.         format(notice,sizeof(notice),"( ! ) {FFFFFF}Refresh Success (ID: %d).",id);
  462.         SendClientMessage(playerid, 0xC0C0C0FF, notice);
  463.     }
  464.     else if (!strcmp(options, "destroy"))
  465.     {
  466.         new query[64];
  467.        
  468.         format(query,sizeof(query), "DELETE FROM `board` WHERE `ID` = '%d'", BoardData[id][bID]);
  469.         mysql_tquery(database, query);
  470.        
  471.         BoardData[id][bExists] = false;
  472.         BoardData[id][bID] = 0;
  473.         DestroyDynamicObject(BoardData[id][bObject]);
  474.        
  475.         format(notice,sizeof(notice),"( ! ) {FFFFFF}Board (ID: %d) telah di hilangkan.",id);
  476.         SendClientMessage(playerid, 0xC0C0C0FF, notice);
  477.     }
  478.     else if (!strcmp(options, "fontsize"))
  479.     {
  480.         new size;
  481.  
  482.         if (sscanf(string,"d", size))
  483.             return SendSyntaxMessage(playerid, "/editboard [id] [fontsize]");
  484.  
  485.         if (size < 0 && size > 200)
  486.             return SendErrorMessage(playerid, "Ukuran harus 0 sampai 50.");
  487.  
  488.         BoardData[id][bFontSize] = size;
  489.         Board_Refresh(id);
  490.        
  491.         format(notice,sizeof(notice),"( ! ) {FFFFFF}Ukuran font (ID: %d) di ubah ke angka %d.",id, size);
  492.         SendClientMessage(playerid, 0xC0C0C0FF, notice);
  493.     }
  494.     else if (!strcmp(options, "materialsize"))
  495.     {
  496.         new dialogstr[128];
  497.         SetPVarInt(playerid, "p_Board", id);
  498.         for (new i = 0, j = sizeof(FontSizes); i < j; i++)
  499.         {
  500.             format(dialogstr,sizeof(dialogstr),"%s%s\n",dialogstr,FontSizes[i][1]);
  501.         }
  502.         ShowPlayerDialog(playerid, DIALOG_MATERIAL_SIZE, DIALOG_STYLE_LIST, "Material Size",dialogstr, "Select","Close");
  503.     }
  504.     else if (!strcmp(options, "model"))
  505.     {
  506.         new dialogstr[225];
  507.         SetPVarInt(playerid, "p_Board", id);
  508.         for (new i = 0, j = sizeof(ObjectList); i < j; i++)
  509.         {
  510.             format(dialogstr,sizeof(dialogstr),"%s%d\t\t%s\n",dialogstr,ObjectList[i][0],ObjectList[i][1]);
  511.         }
  512.         ShowPlayerDialog(playerid, DIALOG_OBJECT_MODEL, DIALOG_STYLE_LIST, "Object Model",dialogstr, "Change","Close");
  513.     }
  514.     else if (!strcmp(options, "font"))
  515.     {
  516.         new dialogstr[128];
  517.         SetPVarInt(playerid, "p_Board", id);
  518.         for (new i = 0, j = sizeof(Font); i < j; i++)
  519.         {
  520.             format(dialogstr,sizeof(dialogstr),"%s%s\n",dialogstr,Font[i][0]);
  521.         }
  522.         ShowPlayerDialog(playerid, DIALOG_FONT_TEXT, DIALOG_STYLE_LIST, "Font Text",dialogstr, "Change","Close");
  523.     }
  524.     else if (!strcmp(options, "duplicate"))
  525.     {
  526.         new duplicate = -1;
  527.  
  528.         duplicate = Board_Create(BoardData[id][bName], BoardData[id][bX], BoardData[id][bY],
  529.             BoardData[id][bZ], BoardData[id][bRX], BoardData[id][bRY], BoardData[id][bRZ], BoardData[id][bFontText],
  530.             BoardData[id][bFontSize], BoardData[id][bFontColor], BoardData[id][bBackColor], BoardData[id][bObjectModel],
  531.             BoardData[id][bMaterialSize]);
  532.        
  533.         if (duplicate == -1)
  534.             return SendErrorMessage(playerid, "Board telah membatasi batas yang di tentukan.");
  535.            
  536.         EditDynamicObject(playerid, BoardData[duplicate][bObject]);
  537.         EditBoard[playerid] = duplicate;
  538.  
  539.         format(notice,sizeof(notice),"( ! ) {FFFFFF}Board telah berhasi di buat. (ID: %d)",duplicate);
  540.         SendClientMessage(playerid, 0xC0C0C0FF, notice);
  541.     }
  542.     return 1;
  543. }
  544.  
  545. public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  546. {
  547.     if (response == EDIT_RESPONSE_FINAL)
  548.     {
  549.         if (EditBoard[playerid] != -1 && BoardData[EditBoard[playerid]][bExists])
  550.         {
  551.             BoardData[EditBoard[playerid]][bX] = x;
  552.             BoardData[EditBoard[playerid]][bY] = y;
  553.             BoardData[EditBoard[playerid]][bZ] = z;
  554.             BoardData[EditBoard[playerid]][bRX] = rx;
  555.             BoardData[EditBoard[playerid]][bRY] = ry;
  556.             BoardData[EditBoard[playerid]][bRZ] = rz;
  557.            
  558.             Board_Refresh(EditBoard[playerid]);
  559.            
  560.             Board_Save(EditBoard[playerid]);
  561.         }
  562.     }
  563.     if (response == EDIT_RESPONSE_FINAL || response == EDIT_RESPONSE_CANCEL)
  564.     {
  565.         if (EditBoard[playerid] != -1)
  566.         {
  567.             Board_Refresh(EditBoard[playerid]);
  568.             EditBoard[playerid] = -1;
  569.         }
  570.     }
  571.     return 1;
  572. }
  573.  
  574. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  575. {
  576.     if (dialogid == DIALOG_MATERIAL_SIZE)
  577.     {
  578.         if (response)
  579.         {
  580.             new id = GetPVarInt(playerid, "p_Board"),
  581.                 notice[128];
  582.                
  583.             BoardData[id][bMaterialSize] = FontSizes[listitem][0];
  584.             format(notice,sizeof(notice),"( ! ) {FFFFFF}Ukuran materialsize (ID: %d) telah di ubah (%s).",id, FontSizes[listitem][1]);
  585.             SendClientMessage(playerid, 0xC0C0C0FF, notice);
  586.             Board_Refresh(id);
  587.         }
  588.     }
  589.     if (dialogid == DIALOG_OBJECT_MODEL)
  590.     {
  591.         if(response)
  592.         {
  593.             new id = GetPVarInt(playerid, "p_Board"),
  594.                 notice[128];
  595.  
  596.             BoardData[id][bObjectModel] = ObjectList[listitem][0];
  597.             format(notice,sizeof(notice),"( ! ) {FFFFFF}Object Model (ID: %d) telah di ubah (%s).",id, ObjectList[listitem][1]);
  598.             SendClientMessage(playerid, 0xC0C0C0FF, notice);
  599.             Board_Refresh(id);
  600.         }
  601.     }
  602.     if (dialogid == DIALOG_FONT_TEXT)
  603.     {
  604.         if(response)
  605.         {
  606.             new id = GetPVarInt(playerid, "p_Board"),
  607.                 notice[128];
  608.  
  609.             format(BoardData[id][bFontText], 28, "%s", Font[listitem][0]);
  610.             format(notice,sizeof(notice),"( ! ) {FFFFFF}Font text (ID: %d) telah di ubah (%s).",id, Font[listitem][0]);
  611.             SendClientMessage(playerid, 0xC0C0C0FF, notice);
  612.             Board_Refresh(id);
  613.         }
  614.     }
  615.     return 1;
  616. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement