Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Dynamic Material Text v3.0 System By BadyX
- Agradecimientos a Funky The Great por la versión v2.0
- */
- #define FILTERSCRIPT
- #include <a_samp>
- #include <a_mysql> // R41-4
- #include <zcmd>
- #include <streamer>
- #include <foreach>
- #include <sscanf2>
- // *** Defines *** ///
- #define CarpetaTextos "Textos/%d.txt" // Carpeta donde se guardarán los textos.
- #define MAX_FONT_NAME 30 // El tamaño máximo para la fuente !
- #define MAX_TEXT 50 // El máximo de texto que puede ser añadido !
- #define MAX_MATERIALS 69 // El máximo de materiales
- #define MAT_DEFAULT_OBJECT 19480 // El objeto por defecto del material. (cuando se crea)
- #define MATERIAL_DEFAULT_INDEX 0 // El índice predeterminado para configurar el texto del material. (cuando se crea)
- #define dValue 100 // Valor de dialog - a partir de este número.
- /// ******************** ///
- #define MYRED "{FF0000}"
- #define MYBLUE "{0000FF}"
- #define MYYELLOW "{FFFF00}"
- #define MYORANGE "{FFA500}"
- #define MYPURPLE "{800080}"
- #define MYGREEN "{008000}"
- #define MYLBLUE "{0080FF}"
- #define MYWHITE "{FFFFFF}"
- #define MYBLACK "{000000}"
- #define MYCYAN "{00FFFF}"
- #define MYPINK "{FF00FF}"
- #define MYBROWN "{6A0000}"
- #define MYLPURPLE "{8080C0}"
- #define MYLGREEN "{00FF00}"
- #define MYGREY "{676767}"
- #define MRED 0xFFFF0000
- #define MBLUE 0xFF0000FF
- #define MYELLOW 0xFFFFFF00
- #define MORANGE 0xFFFF8000
- #define MPURPLE 0xFF400080
- #define MGREEN 0xFF008000
- #define MLBLUE 0xFF0080FF
- #define MWHITE 0xFFFFFFFF
- #define MBLACK 0xFF000000
- #define MCYAN 0xFF00FFFF
- #define MPINK 0xFFFF00FF
- #define MBROWN 0xFF6A0000
- #define MLPURPLE 0xFF8080C0
- #define MLGREEN 0xFF00FF00
- #define MGRAY 0xFF676767
- enum MaterialInfo
- {
- TextoExiste,
- Float:MatX,
- Float:MatY,
- Float:MatZ,
- Float:MatRX,
- Float:MatRY,
- Float:MatRZ,
- MatText[MAX_TEXT],
- MatObj,
- MatSize,
- MatBGC,
- MatALG,
- MatFont[MAX_FONT_NAME],
- MatColor,
- MatBold,
- MatRes,
- MatObjectID,
- MatIndex,
- MatCreador[32]
- }
- new matInfo[MAX_MATERIALS][MaterialInfo];
- new Iterator:MatsItr<MAX_MATERIALS>;
- new SOID[MAX_PLAYERS];
- #define DIALOG_MATS dValue+2
- #define DIALOG_TEXT dValue+3
- #define DIALOG_FONT dValue+4
- #define DIALOG_DELETE dValue+5
- #define DIALOG_FONTCOLOR dValue+6
- #define DIALOG_FONTSIZE dValue+7
- #define DIALOG_BGCOLOR dValue+8
- #define DIALOG_ALLIGNMENT dValue+9
- #define DIALOG_RESOLUTION dValue+10
- #define DIALOG_CHANGEOBJECT dValue+11
- #define DIALOG_CHANGEINDEX dValue+12
- enum FontInformation
- {
- FontName[MAX_FONT_NAME],
- };
- new FontInfo[][FontInformation] = // Tipos de fuentes.
- {
- {"Lucida Console"},
- {"Verdana"},
- {"Webdings"},
- {"Wingdings"},
- {"Times New Roman"},
- {"Microsoft Sans Serif"},
- {"GTAWEAPON3"},
- {"Impact"},
- {"Georgia"},
- {"Arial"},
- {"Arial Black"},
- {"Comic Sans MS"},
- {"Trebuchet MS"}
- // {"YOUR FONT NAME"}
- };
- new MySQL: g_iHandle;
- #define SQL_HOSTNAMETEST "localhost"
- #define SQL_USERNAMETEST "root"
- #define SQL_DATABASETEST "db_gamemode"
- #define SQL_PASSWORDTEST ""
- public OnFilterScriptInit()
- {
- new MySQLOpt: option_id = mysql_init_options();
- mysql_set_option(option_id, AUTO_RECONNECT, true);
- g_iHandle = mysql_connect(SQL_HOSTNAMETEST, SQL_USERNAMETEST, SQL_PASSWORDTEST, SQL_DATABASETEST, option_id);
- if(g_iHandle == MYSQL_INVALID_HANDLE || mysql_errno(g_iHandle) != 0)
- {
- print("No se ha podido conectar al servidor mySQL. Se cierra el servidor.");
- SendRconCommand("exit");
- return 1;
- }
- print("Conexión mysql good");
- mysql_tquery(g_iHandle, "SELECT * FROM `TEXTOS`", "CargarTextos", "");
- return 1;
- }
- public OnFilterScriptExit()
- {
- mysql_close(g_iHandle);
- /* for(new i = 0; i < MAX_MATERIALS; i++)
- {
- if(Iter_Contains(MatsItr,i))
- {
- GuardarTextos(i);
- Destruir_Texto(i);
- }
- }*/
- return 1;
- }
- CMD:textocrear(playerid,params[])
- {
- new string[90];
- new Float:x, Float:y, Float:z, Float:a;
- GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, a);
- if(Iter_Count(MatsItr) > MAX_MATERIALS) return SendClientMessage(playerid, -1 , ""MYRED"[MATERIAL]"MYWHITE" El servidor alcanzó el máximo de textos posibles %d "#MAX_MATERIALS");
- new id = Iter_Free(MatsItr);
- format(string, sizeof(string), ""MYRED"[MATERIAL]"MYWHITE" El texto con ID %d fue creado con éxito.", id);
- SendClientMessage(playerid, -1 , string);
- SetPVarInt(playerid,"matID",id);
- format(matInfo[id][MatText],30,"Texto");
- format(matInfo[id][MatFont],30,"Arial");
- matInfo[id][MatColor] = MRED;
- matInfo[id][MatObjectID] = MAT_DEFAULT_OBJECT;
- CrearTexto(playerid, 1,id,x,y,z,0,0,a);
- EditDynamicObject(playerid,matInfo[id][MatObj]);
- return 1;
- }
- CMD:textoinfo(playerid, params[])
- {
- new string[128],count = 0;
- for(new i = 0; i < MAX_MATERIALS; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 15.0, matInfo[i][MatX], matInfo[i][MatY], matInfo[i][MatZ]))
- {
- count = 1;
- SendClientMessage(playerid,-1,""MYRED" _________________________________Textos Info _________________________________");
- format(string, sizeof(string), ""MYWHITE"ID: %d , Texto: %s , Tamaño de fuente: %d , Nombre de fuente: %s", i, matInfo[i][MatText] , matInfo[i][MatSize],matInfo[i][MatFont]);
- SendClientMessage(playerid,-1,string);
- SendClientMessage(playerid,-1,""MYRED"_________________________________________________________________________________");
- return 1;
- }
- }
- if(count == 0) return SendClientMessage(playerid,-1,""MYRED"[MATERIAL]"MYWHITE" No estás cerca de ningún texto.");
- return 1;
- }
- CMD:textoeditar(playerid, params[])
- {
- new ID;
- if(sscanf(params, "i",ID)) return SendClientMessage(playerid, -1, ""MYRED"[MATERIAL]"MYWHITE" /textoeditar [id]");
- if(!Iter_Contains(MatsItr,ID)) return SendClientMessage(playerid, -1, ""MYRED"[MATERIAL]"MYWHITE" La ID de texto introducida no existe.");
- ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Textos - v3.0", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- SOID[playerid] = ID;
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new string[356];
- new ID = SOID[playerid];
- if(dialogid == DIALOG_MATS)
- {
- if(!response) return 1;
- switch(listitem)
- {
- case 0: ShowPlayerDialog(playerid, DIALOG_TEXT , DIALOG_STYLE_INPUT, "Sistema de textos - Cambio de texto", "Introduzca el nuevo texto.", "Seleccionar", "Atrás");
- case 1:
- {
- for(new a=0; a<sizeof(FontInfo); a++)
- {
- format(string, sizeof(string), "%s%s\n", string, FontInfo[a][FontName]);
- }
- ShowPlayerDialog(playerid, DIALOG_FONT , DIALOG_STYLE_LIST, "Sistema de textos - Choose Font", string, "Seleccionar", "Atrás");
- }
- case 2: ShowPlayerDialog(playerid, DIALOG_FONTCOLOR , DIALOG_STYLE_LIST, "Sistema de textos - Choose Color", ""MYRED"Red\n"MYBLUE"Blue\n"MYYELLOW"Yellow\n"MYORANGE"Orange\n"MYPURPLE"Purple\n"MYGREEN"Green\n"MYLBLUE"Light Blue\n"MYWHITE"White\n"MYBLACK"Black\n"MYCYAN"Cyan\n"MYPINK"Pink\n"MYBROWN"Brown\n"MYLPURPLE"Light Purple\n"MYLGREEN"Light Green\n"MYGREY"Gray", "Seleccionar", "Atrás");
- case 3: ShowPlayerDialog(playerid, DIALOG_FONTSIZE , DIALOG_STYLE_INPUT, "Sistema de textos - Font Size","Please enter a font size for your Material\nMust be Numeric.", "Aceptar", "Atrás");
- case 4: ShowPlayerDialog(playerid, DIALOG_BGCOLOR , DIALOG_STYLE_LIST, "Sistema de textos - Background Color",""MYRED"Red\n"MYBLUE"Blue\n"MYYELLOW"Yellow\n"MYORANGE"Orange\n"MYPURPLE"Purple\n"MYGREEN"Green\n"MYLBLUE"Light Blue\n"MYWHITE"White\n"MYBLACK"Black\n"MYCYAN"Cyan\n"MYPINK"Pink\n"MYBROWN"Brown\n"MYLPURPLE"Light Purple\n"MYLGREEN"Light Green\n"MYGREY"Gray\nNo Background", "Seleccionar", "Atrás");
- case 5: ShowPlayerDialog(playerid, DIALOG_ALLIGNMENT , DIALOG_STYLE_LIST, "Sistema de textos - Choose Allignment", "Left Allignment\nCenter Allignment\nRight Allignment", "Seleccionar", "Atrás");
- case 6:
- {
- format(string, sizeof(string), ""MYRED"[MATERIAL]"MYWHITE" Material Text %s", (matInfo[ID][MatBold] == 1) ? ("Un-Bolded") : ("Bolded"));
- SendClientMessage(playerid,-1,string);
- matInfo[ID][MatBold] =! matInfo[ID][MatBold];
- SetDynamicObjectMaterialText(matInfo[ID][MatObj] , matInfo[ID][MatIndex] , matInfo[ID][MatText] , matInfo[ID][MatRes], matInfo[ID][MatFont], matInfo[ID][MatSize], matInfo[ID][MatBold], matInfo[ID][MatColor], matInfo[ID][MatBGC],matInfo[ID][MatALG]);
- ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- }
- case 7: ShowPlayerDialog(playerid, DIALOG_RESOLUTION , DIALOG_STYLE_LIST, "Sistema de textos - Choose Resolution", "32x32\n64x32\n64x64\n128x32\n128x64\n128x128\n256x32\n256x64\n256x128\n256x256\n512x64\n512x128\n512x256\n512x512", "Seleccionar", "Atrás");
- case 8:
- {
- EditDynamicObject(playerid,matInfo[ID][MatObj]);
- SetPVarInt(playerid,"matID",ID);
- }
- case 9:
- {
- new id = Iter_Free(MatsItr);
- matInfo[id][MatX] = matInfo[ID][MatX];
- matInfo[id][MatY] = matInfo[ID][MatY];
- matInfo[id][MatZ] = matInfo[ID][MatZ];
- matInfo[id][MatRX] = matInfo[ID][MatRX];
- matInfo[id][MatRY] = matInfo[ID][MatRY];
- matInfo[id][MatRZ] = matInfo[ID][MatRZ];
- matInfo[id][MatSize] = matInfo[ID][MatSize];
- matInfo[id][MatBGC] = matInfo[ID][MatBGC];
- matInfo[id][MatALG] = matInfo[ID][MatALG];
- matInfo[id][MatBold] = matInfo[ID][MatBold];
- matInfo[id][MatRes] = matInfo[ID][MatRes];
- matInfo[id][MatColor] = matInfo[ID][MatColor];
- matInfo[id][MatObjectID] = matInfo[ID][MatObjectID];
- matInfo[id][MatIndex] = matInfo[ID][MatIndex];
- SetPVarInt(playerid,"matID",id);
- format(matInfo[id][MatText],30,matInfo[ID][MatText]);
- format(matInfo[id][MatFont],30,matInfo[ID][MatFont]);
- CrearTexto(playerid, 2,id,matInfo[ID][MatX],matInfo[ID][MatY],matInfo[ID][MatZ],matInfo[ID][MatRX],matInfo[ID][MatY],matInfo[ID][MatZ]);
- EditDynamicObject(playerid,matInfo[id][MatObj]);
- format(string,sizeof(string),""MYRED"[MATERIAL]"MYWHITE" Material ID %d has been duplicated on ID: %d !",ID,id);
- SendClientMessage(playerid,-1,string);
- }
- case 10:
- {
- Destruir_Texto(ID);
- format(string,sizeof(string),""MYRED"[MATERIAL]"MYWHITE" Material ID: %d has been deleted !",ID);
- SendClientMessage(playerid,-1,string);
- format(string, sizeof(string), CarpetaTextos, ID);
- fremove(string);
- }
- case 11: ShowPlayerDialog(playerid, DIALOG_CHANGEOBJECT , DIALOG_STYLE_INPUT, "Sistema de textos - Object ID","Please enter an object ID to change!.", "Aceptar", "Atrás");
- case 12: ShowPlayerDialog(playerid, DIALOG_CHANGEINDEX , DIALOG_STYLE_INPUT, "Sistema de textos - Material Index","Please enter an material index to set the Text on, (0 to 15)!.", "Aceptar", "Atrás");
- }
- }
- if(dialogid == DIALOG_TEXT)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- if(strlen(inputtext) >= MAX_TEXT || strlen(inputtext) <= 0 ) return SendClientMessage(playerid, -1 ,""MYRED"[MATERIAL]"MYWHITE" Text may not be less than 0 or more than "#MAX_TEXT"!");
- SetDynamicObjectMaterialText(matInfo[ID][MatObj] , matInfo[ID][MatIndex] , inputtext , matInfo[ID][MatRes] , matInfo[ID][MatFont], matInfo[ID][MatSize], matInfo[ID][MatBold], matInfo[ID][MatColor], matInfo[ID][MatBGC],matInfo[ID][MatALG]);
- format(matInfo[ID][MatText],128,inputtext);
- ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- }
- if(dialogid == DIALOG_ALLIGNMENT)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- matInfo[ID][MatALG] = listitem;
- ShowPlayerDialog(playerid, DIALOG_ALLIGNMENT , DIALOG_STYLE_LIST, "Sistema de textos - Choose Allignment", "Left Allignment\nCenter Allignment\nRight Allignment", "Seleccionar", "Atrás");
- SetDynamicObjectMaterialText(matInfo[ID][MatObj] , matInfo[ID][MatIndex] , matInfo[ID][MatText] , matInfo[ID][MatRes], matInfo[ID][MatFont], matInfo[ID][MatSize], matInfo[ID][MatBold], matInfo[ID][MatColor], matInfo[ID][MatBGC],matInfo[ID][MatALG]);
- }
- if(dialogid == DIALOG_RESOLUTION)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- matInfo[ID][MatRes] = (listitem+1) * 10;
- ShowPlayerDialog(playerid, DIALOG_RESOLUTION , DIALOG_STYLE_LIST, "Sistema de textos - Choose Resolution", "32x32\n64x32\n64x64\n128x32\n128x64\n128x128\n256x32\n256x64\n256x128\n256x256\n512x64\n512x128\n512x256\n512x512", "Seleccionar", "Atrás");
- SetDynamicObjectMaterialText(matInfo[ID][MatObj] , matInfo[ID][MatIndex] , matInfo[ID][MatText] , matInfo[ID][MatRes], matInfo[ID][MatFont], matInfo[ID][MatSize], matInfo[ID][MatBold], matInfo[ID][MatColor], matInfo[ID][MatBGC],matInfo[ID][MatALG]);
- }
- if(dialogid == DIALOG_FONTSIZE)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, DIALOG_FONTSIZE , DIALOG_STYLE_INPUT, "Sistema de textos - Font Size","Enter a Font Size\nMust be numeric", "Aceptar", "Cerrar");
- matInfo[ID][MatSize] = strval(inputtext);
- SetDynamicObjectMaterialText(matInfo[ID][MatObj] , matInfo[ID][MatIndex] , matInfo[ID][MatText] , matInfo[ID][MatRes] ,matInfo[ID][MatFont], matInfo[ID][MatSize] , matInfo[ID][MatBold], matInfo[ID][MatColor], matInfo[ID][MatBGC],matInfo[ID][MatALG]);
- ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- }
- if(dialogid == DIALOG_FONT)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- SetDynamicObjectMaterialText(matInfo[ID][MatObj] , matInfo[ID][MatIndex] , matInfo[ID][MatText] , matInfo[ID][MatRes],inputtext, matInfo[ID][MatSize], matInfo[ID][MatBold], matInfo[ID][MatColor], matInfo[ID][MatBGC],matInfo[ID][MatALG]);
- format(matInfo[ID][MatFont],128,inputtext);
- for(new a=0; a<sizeof(FontInfo); a++)
- {
- format(string, sizeof(string), "%s%s\n", string, FontInfo[a][FontName]);
- }
- ShowPlayerDialog(playerid, DIALOG_FONT , DIALOG_STYLE_LIST, "Sistema de textos - Choose Font", string, "Seleccionar", "Atrás");
- }
- if(dialogid == DIALOG_FONTCOLOR)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- switch(listitem)
- {
- case 0: matInfo[ID][MatColor] = MRED;
- case 1: matInfo[ID][MatColor] = MBLUE;
- case 2: matInfo[ID][MatColor] = MYELLOW;
- case 3: matInfo[ID][MatColor] = MORANGE;
- case 4: matInfo[ID][MatColor] = MPURPLE;
- case 5: matInfo[ID][MatColor] = MGREEN;
- case 6: matInfo[ID][MatColor] = MLBLUE;
- case 7: matInfo[ID][MatColor] = MWHITE;
- case 8: matInfo[ID][MatColor] = MBLACK;
- case 9: matInfo[ID][MatColor] = MCYAN;
- case 10: matInfo[ID][MatColor] = MPINK;
- case 11: matInfo[ID][MatColor] = MBROWN;
- case 12: matInfo[ID][MatColor] = MLPURPLE;
- case 13: matInfo[ID][MatColor] = MLGREEN;
- case 14: matInfo[ID][MatColor] = MGRAY;
- }
- SetDynamicObjectMaterialText(matInfo[ID][MatObj] , matInfo[ID][MatIndex] , matInfo[ID][MatText] , matInfo[ID][MatRes],matInfo[ID][MatFont], matInfo[ID][MatSize], matInfo[ID][MatBold],matInfo[ID][MatColor], matInfo[ID][MatBGC],matInfo[ID][MatALG]);
- ShowPlayerDialog(playerid, DIALOG_FONTCOLOR , DIALOG_STYLE_LIST, "Sistema de textos - Choose Color", ""MYRED"Red\n"MYBLUE"Blue\n"MYYELLOW"Yellow\n"MYORANGE"Orange\n"MYPURPLE"Purple\n"MYGREEN"Green\n"MYLBLUE"Light Blue\n"MYWHITE"White\n"MYBLACK"Black\n"MYCYAN"Cyan\n"MYPINK"Pink\n"MYBROWN"Brown\n"MYLPURPLE"Light Purple\n"MYLGREEN"Light Green\n"MYGREY"Gray", "Seleccionar", "Atrás");
- }
- if(dialogid == DIALOG_BGCOLOR)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- switch(listitem)
- {
- case 0: matInfo[ID][MatBGC] = MRED;
- case 1: matInfo[ID][MatBGC] = MBLUE;
- case 2: matInfo[ID][MatBGC] = MYELLOW;
- case 3: matInfo[ID][MatBGC] = MORANGE;
- case 4: matInfo[ID][MatBGC] = MPURPLE;
- case 5: matInfo[ID][MatBGC] = MGREEN;
- case 6: matInfo[ID][MatBGC] = MLBLUE;
- case 7: matInfo[ID][MatBGC] = MWHITE;
- case 8: matInfo[ID][MatBGC] = MBLACK;
- case 9: matInfo[ID][MatBGC] = MCYAN;
- case 10: matInfo[ID][MatBGC] = MPINK;
- case 11: matInfo[ID][MatBGC] = MBROWN;
- case 12: matInfo[ID][MatBGC] = MLPURPLE;
- case 13: matInfo[ID][MatBGC] = MLGREEN;
- case 14: matInfo[ID][MatBGC] = MGRAY;
- case 15: matInfo[ID][MatBGC] = 0;
- }
- ShowPlayerDialog(playerid, DIALOG_BGCOLOR , DIALOG_STYLE_LIST, "Sistema de textos - Background Color",""MYRED"Red\n"MYBLUE"Blue\n"MYYELLOW"Yellow\n"MYORANGE"Orange\n"MYPURPLE"Purple\n"MYGREEN"Green\n"MYLBLUE"Light Blue\n"MYWHITE"White\n"MYBLACK"Black\n"MYCYAN"Cyan\n"MYPINK"Pink\n"MYBROWN"Brown\n"MYLPURPLE"Light Purple\n"MYLGREEN"Light Green\n"MYGREY"Gray\nNo Background", "Seleccionar", "Atrás");
- SetDynamicObjectMaterialText(matInfo[ID][MatObj] , matInfo[ID][MatIndex] , matInfo[ID][MatText] , matInfo[ID][MatRes],matInfo[ID][MatFont], matInfo[ID][MatSize], matInfo[ID][MatBold] ,matInfo[ID][MatColor], matInfo[ID][MatBGC] ,matInfo[ID][MatALG]);
- }
- if(dialogid == DIALOG_CHANGEOBJECT)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, DIALOG_CHANGEOBJECT , DIALOG_STYLE_INPUT, "Sistema de textos - Object ID","Please enter an object ID to change!\n{FF0000}ERROR: Must be numeric", "Aceptar", "Atrás");
- DestroyDynamicObject(matInfo[ID][MatObj]);
- matInfo[ID][MatObjectID] = strval(inputtext);
- CrearTexto(playerid, 0,ID,matInfo[ID][MatX],matInfo[ID][MatY],matInfo[ID][MatZ],matInfo[ID][MatRX],matInfo[ID][MatRY],matInfo[ID][MatRZ]);
- ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- }
- if(dialogid == DIALOG_CHANGEINDEX)
- {
- if(!response) return ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- if(!IsNumeric(inputtext)) return ShowPlayerDialog(playerid, DIALOG_CHANGEINDEX , DIALOG_STYLE_INPUT, "Sistema de textos - Material Index","Please enter an material index to set the Text on, (0 to 15)!\n{FF0000}ERROR: Must be numeric.", "Aceptar", "Atrás");
- if(strval(inputtext) > 15 || strval(inputtext) < 0) return ShowPlayerDialog(playerid, DIALOG_CHANGEINDEX , DIALOG_STYLE_INPUT, "Sistema de textos - Material Index","Please enter an material index to set the Text on, (0 to 15)!\n{FF0000}ERROR: Material index ranges from 0 to 15.", "Aceptar", "Atrás");
- DestroyDynamicObject(matInfo[ID][MatObj]);
- matInfo[ID][MatIndex] = strval(inputtext);
- CrearTexto(playerid, 0,ID,matInfo[ID][MatX],matInfo[ID][MatY],matInfo[ID][MatZ],matInfo[ID][MatRX],matInfo[ID][MatRY],matInfo[ID][MatRZ]);
- ShowPlayerDialog(playerid, DIALOG_MATS , DIALOG_STYLE_LIST, "Sistema de textos", "Cambiar texto\nCambiar fuente\nCambiar color\nCambiar tamaño fuete\nCambiar color de fondo\nCambiar alineación\nTexto en negrita\nCambiar resolución\nEditar posición de texto\nDuplicar texto\nEliminar texto\nCambiar ID objeto\nCambiar Material Index", "Seleccionar", "Cerrar");
- }
- return 0;
- }
- public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
- {
- new string[100];
- new editing = GetPVarInt(playerid,"matID");
- if(response == EDIT_RESPONSE_UPDATE)
- {
- SetDynamicObjectPos(objectid, x, y, z);
- SetDynamicObjectRot(objectid, rx, ry, rz);
- }
- if(response == EDIT_RESPONSE_CANCEL)
- {
- if(editing >= 0)
- {
- SendClientMessage(playerid, -1 , ""MYRED"[MATERIAL]"MYWHITE" Material editing canceled !");
- DeletePVar(playerid, "matID");
- }
- }
- if(response == EDIT_RESPONSE_FINAL)
- {
- SetDynamicObjectPos(objectid, x, y, z);
- SetDynamicObjectRot(objectid, rx, ry, rz);
- if(editing >= 0)
- {
- matInfo[editing][MatX] = x;
- matInfo[editing][MatY] = y;
- matInfo[editing][MatZ] = z;
- matInfo[editing][MatRX] = rx;
- matInfo[editing][MatRY] = ry;
- matInfo[editing][MatRZ] = rz;
- format(string, sizeof(string), ""MYRED"[MATERIAL]"MYWHITE" You have succesfully edited ID: %d's Material", editing);
- SendClientMessage(playerid, -1, string);
- DeletePVar(playerid, "matID");
- SetDynamicObjectPos(objectid, x, y, z);
- SetDynamicObjectRot(objectid, rx, ry, rz);
- }
- }
- return 1;
- }
- forward CrearTexto(Jugador, type,id,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz);
- public CrearTexto(Jugador, type,id,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz)
- {
- if(type == 1)
- {
- for (new i = 0; i != MAX_MATERIALS; i ++)
- {
- if(!matInfo[i][TextoExiste])
- {
- format(matInfo[id][MatCreador], 32, NombreEx(Jugador));
- matInfo[id][MatX] = x;
- matInfo[id][MatY] = y;
- matInfo[id][MatZ] = z;
- matInfo[id][MatRX] = rx;
- matInfo[id][MatRY] = ry;
- matInfo[id][MatRZ] = rz;
- matInfo[id][MatSize] = 25;
- matInfo[id][MatBGC] = MBLUE;
- matInfo[id][MatALG] = 1;
- matInfo[id][MatBold] = 0;
- matInfo[id][MatRes] = 90;
- matInfo[id][MatIndex] = MATERIAL_DEFAULT_INDEX;
- matInfo[id][MatObj] = CreateDynamicObject(matInfo[id][MatObjectID], matInfo[id][MatX] , matInfo[id][MatY], matInfo[id][MatZ], matInfo[id][MatRX], matInfo[id][MatRY], matInfo[id][MatRZ], -1);
- SetDynamicObjectMaterialText(matInfo[id][MatObj] , matInfo[id][MatIndex] , matInfo[id][MatText] , matInfo[id][MatRes],matInfo[id][MatFont], matInfo[id][MatSize], matInfo[id][MatBold] , matInfo[id][MatColor],matInfo[id][MatBGC],matInfo[id][MatALG]);
- mysql_tquery(g_iHandle, "INSERT INTO `TEXTOS` (`MatCreador`) VALUES(0)", "CrearTexto2", "ddd", i, Jugador, type);
- }
- }
- }
- }
- forward CrearTexto2(textoid, playerid, type);
- public CrearTexto2(textoid, playerid, type)
- {
- if(textoid == -1 || !matInfo[textoid][TextoExiste]) return 1;
- matInfo[textoid][MatObjectID] = cache_insert_id();
- GuardarTextos(textoid);
- return 1;
- }
- forward CargarTextos();
- public CargarTextos()
- {
- static rows;
- cache_get_row_count(rows);
- for (new i = 0; i < rows; i ++) if(i < MAX_MATERIALS)
- {
- matInfo[i][TextoExiste] = 1;
- cache_get_value_name_int(i, "MatObjectID",matInfo[i][MatObjectID]);
- cache_get_value_name_float(i, "MatX", matInfo[i][MatX]);
- cache_get_value_name_float(i, "MatY", matInfo[i][MatY]);
- cache_get_value_name_float(i, "MatZ", matInfo[i][MatZ]);
- cache_get_value_name_float(i, "MatRX", matInfo[i][MatRX]);
- cache_get_value_name_float(i, "MatRY", matInfo[i][MatRY]);
- cache_get_value_name_float(i, "MatRZ", matInfo[i][MatRZ]);
- cache_get_value(i, "MatText", matInfo[i][MatText], MAX_TEXT);
- cache_get_value(i, "MatFont", matInfo[i][MatFont], MAX_FONT_NAME);
- cache_get_value_name_int(i, "MatColor",matInfo[i][MatColor]);
- cache_get_value_name_int(i, "MatSize",matInfo[i][MatSize]);
- cache_get_value_name_int(i, "MatBGC",matInfo[i][MatBGC]);
- cache_get_value_name_int(i, "MatALG",matInfo[i][MatALG]);
- cache_get_value_name_int(i, "MatBold",matInfo[i][MatBold]);
- cache_get_value_name_int(i, "MatRes",matInfo[i][MatRes]);
- cache_get_value_name_int(i, "MatIndex",matInfo[i][MatIndex]);
- cache_get_value(i, "MatCreador", matInfo[i][MatCreador], 32);
- }
- }
- forward GuardarTextos(Texto);
- public GuardarTextos(Texto)
- {
- new query[255];
- format(query, sizeof(query), "UPDATE `TEXTOS` SET `MatCreador` = '%s', `MatX` = '%.4f', `MatY` = '%.4f', `MatZ` = '%.4f', `MatRX` = '%.4f', `MatRY` = '%.4f', `MatRZ` = '%.4f', `MatText` = '%d', `MatFont` = '%d', `MatColor` = '%d', `MatSize` = '%d', `MatBGC` = '%d', `MatALG` = '%d', `MatBold` = '%d',`MatRes` = '%d',`MatIndex` = '%d' WHERE `MatObjectID` = '%d'",
- matInfo[Texto][MatCreador],
- matInfo[Texto][MatX],
- matInfo[Texto][MatY],
- matInfo[Texto][MatZ],
- matInfo[Texto][MatRX],
- matInfo[Texto][MatRY],
- matInfo[Texto][MatRZ],
- matInfo[Texto][MatText],
- matInfo[Texto][MatFont],
- matInfo[Texto][MatColor],
- matInfo[Texto][MatSize],
- matInfo[Texto][MatBGC],
- matInfo[Texto][MatALG],
- matInfo[Texto][MatBold],
- matInfo[Texto][MatRes],
- matInfo[Texto][MatIndex],
- matInfo[Texto][MatObjectID]);
- return mysql_tquery(g_iHandle, query);
- }
- forward Destruir_Texto(textoid);
- public Destruir_Texto(textoid)
- {
- if(textoid != -1 && matInfo[textoid][TextoExiste])
- {
- new string[64];
- format(string, sizeof(string), "DELETE FROM `TEXTOS` WHERE `MatObjectID` = '%d'", matInfo[textoid][MatObjectID]);
- mysql_tquery(g_iHandle, string);
- matInfo[textoid][MatObjectID] = 0;
- matInfo[textoid][TextoExiste] = 0;
- DestroyDynamicObject(matInfo[textoid][MatObjectID]);
- matInfo[textoid][MatIndex] = MATERIAL_DEFAULT_INDEX;
- }
- return 1;
- }
- stock NombreEx(playerid)
- {
- new string[24];
- GetPlayerName(playerid,string,24);
- new str[24];
- strmid(str,string,0,strlen(string),24);
- for(new i = 0; i < MAX_PLAYER_NAME; i++)
- {
- if (str[i] == '_') str[i] = ' ';
- }
- return str;
- }
- IsNumeric(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- {
- if (string[i] > '9' || string[i] < '0') return 0;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment