Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid == 222 )
{
case 1:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{DAA520}Graffiti","{FFFFFF}Enter text graffiti.\n\nMaximum number of characters: {ff0000}18","Ok","Cancel");
if(strlen(inputtext) > 18) { SendClientMessage(playerid,0xFF6800FF,"Forbidden to write more than 18 characters."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{DAA520}Graffiti","{FFFFFF}Enter text graffiti.\n\nMaximum number of characters: {ff0000}18","Ok","Cancel"); return 1; }
format(GraffitiText[playerid], 128, inputtext);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"{DAA520}Selects how to display color","{ffffff}Enter from list\nEnter HEX code manually","Ok","Go back");
}
else
{
SendClientMessage(playerid,0xFF6800FF,"Drawing graffiti canceled.");
ResetVariables(playerid);
}
}
case 2:
{
if(response)
{
switch(listitem)
{
case 0: ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"{DAA520}Enter color for graffiti","{ffffff}White\n{ff0000}Red\n{228B22}Green\n{FFFF00}Yellow\n{104E8B}Blue\n{009ACD}Lightblue\n{696969}Grey","Ok","Go back");
case 1: ShowPlayerDialog(playerid,4,DIALOG_STYLE_INPUT,"{DAA520}Enter HEX code for graffiti","{ffffff}Enter your HEX code for graffiti\n\nList of HEX codes - {DAA520}http://en.wikipedia.org/wiki/Help:Using_colours","Ok","Go back");
}
}
else
{
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{DAA520}Graffiti","{FFFFFF}Enter text graffiti.\n\nMaximum number of characters: {ff0000}18","Ok","Cancel");
}
}
case 3:
{
if(response)
{
if(listitem == 0) { Color = "FFFFFF"; }
else if(listitem == 1) { Color = "FF0000"; }
else if(listitem == 2) { Color = "228B22"; }
else if(listitem == 3) { Color = "FFFF00"; }
else if(listitem == 4) { Color = "104E8B"; }
else if(listitem == 5) { Color = "009ACD"; }
else if(listitem == 6) { Color = "696969"; }
format(GraffitiColor[playerid], 32, Color);
ShowPlayerDialog(playerid,5,DIALOG_STYLE_LIST,"{DAA520}Select the font for graffiti","{ffffff}Font 1 {4682B4}[Urban Riot]\n{ffffff}Font 2 {4682B4}[Bombing]\n{ffffff}Font 3 {4682B4}[Impact]\n{ffffff}Font 4 {4682B4}[Los Santos]\n{ffffff}Font 5 {4682B4}[Gangland Style]","Ok","Go back");
}
else
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"{DAA520}Selects how to display color","{ffffff}Enter from list\nEnter HEX code manually","Ok","Go back");
}
}
case 4:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"{DAA520}Selects how to display color","{ffffff}Enter from list\nEnter HEX code manually","Ok","Go back");
if(strlen(inputtext) != 6) { SendClientMessage(playerid,0xFF6800FF,"You entered incorrect HEX code."); ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"{DAA520}Selects how to display color","{ffffff}Enter from list\nEnter HEX code manually","Ok","Go back"); return 1; }
format(GraffitiColor[playerid], 32, inputtext);
ShowPlayerDialog(playerid,5,DIALOG_STYLE_LIST,"{DAA520}Select the font for graffiti","{ffffff}Font 1 {4682B4}[Urban Riot]\n{ffffff}Font 2 {4682B4}[Bombing]\n{ffffff}Font 3 {4682B4}[Impact]\n{ffffff}Font 4 {4682B4}[Los Santos]\n{ffffff}Font 5 {4682B4}[Gangland Style]","Ok","Go back");
}
else
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"{DAA520}Selects how to display color","{ffffff}Enter from list\nEnter HEX code manually","Ok","Go back");
}
}
case 5:
{
if(response)
{
if(listitem == 0) { Font = "Urban Riot"; GraffitiSize[playerid] = 40; }
else if(listitem == 1) { Font = "Bombing"; GraffitiSize[playerid] = 48; }
else if(listitem == 2) { Font = "Impact"; GraffitiSize[playerid] = 48; }
else if(listitem == 3) { Font = "Los Santos"; GraffitiSize[playerid] = 36; }
else if(listitem == 4) { Font = "Gangland Style"; GraffitiSize[playerid] = 18; }
format(GraffitiFont[playerid], 32, Font);
ShowPlayerDialog(playerid,6,DIALOG_STYLE_LIST,"{DAA520}Action font","View font\nSelect the font","Ok","Go back");
}
else
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"{DAA520}Selects how to display color","{ffffff}Enter from list\nEnter HEX code manually","Ok","Go back");
}
}
case 6:
{
switch(listitem)
{
case 0:
{
if(response)
{
new Float:x, Float:y, Float:z, string[64];
format(string, 128, "{%s}%s", GraffitiColor[playerid], GraffitiText[playerid]);
GetPlayerPos(playerid, x,y,z);
ShowFont[playerid] = CreateDynamicObject(19482, x+0.5, y, z, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), playerid, 200);
SetDynamicObjectMaterialText(ShowFont[playerid], 0, string, OBJECT_MATERIAL_SIZE_256x256, GraffitiFont[playerid], GraffitiSize[playerid], 0, 0xFFFFFFFF, 0, 1);
SendClientMessage(playerid,-1,"Near you set text with the selected settings, which will be seen for five seconds.");
SetPlayerPos(playerid, x+0.1,y,z);
DeleteObjectTimer[playerid] = SetTimerEx("DeleteObject",5000,false,"i",playerid);
}
else
{
ShowPlayerDialog(playerid,5,DIALOG_STYLE_LIST,"{DAA520}Select the font for graffiti","{ffffff}Font 1 {4682B4}[Urban Riot]\n{ffffff}Font 2 {4682B4}[Bombing]\n{ffffff}Font 3 {4682B4}[Impact]\n{ffffff}Font 4 {4682B4}[Los Santos]\n{ffffff}Font 5 {4682B4}[Gangland Style]","Ok","Go back");
}
}
case 1: { CreateGraffiti(playerid); }
}
}
}
return 1;
}
LO QUE PASA ES QUE SOLAMENTE COLOCO EL TEXTO y luego sigue lo de el color, cuando selecciono alguno no sigue mas se sale.