[Include] Dialogs include - Adding new styles to SAMP GUI
#61

Quote:
Originally Posted by LatinZ
Посмотреть сообщение
Lines of problem in the include:

return Dialog_OnPlayerClickTextDraw(playerid, _:clickedid);

return Dialog_OnPlayerClickPlayerTD(playerid, _layertextid);
Sorry, those errors only occurred when you declared them in your mode. Because of the mismatch i made with _: instead i should have added Text:.

Fixed in R5 for both dialogs.inc and dialogs2.inc
Reply
#62

Goob job.
Reply
#63

Quote:

TextDrawShowForPlayer(playerid, Spidometras[0]);
//TextDrawShowForPlayer(playerid, Spidometras[1]);
//TextDrawShowForPlayer(playerid, Spidometras[2]);
TextDrawSetPreviewRot(Spidometras[1], 0.000000, vehicleDB[vehicleid][Fuel]*3+10, 180.000000, 1.000000);
for(new lol=3; lol<16; lol++)
{
if(lol == 14)
{
continue;
}
if(lol == 5)
{
TextDrawShowForPlayer(playerid, Spidometras[1]);
}
if(lol == 12)
{
TextDrawShowForPlayer(playerid, Spidometras[14]);
}
TextDrawShowForPlayer(playerid, Spidometras[lol]);
}
PlayerTextDrawShow(playerid, Spidometras2[0][playerid]);
PlayerTextDrawShow(playerid, Spidometras2[1][playerid]);

When I delete this code, box isn't appearing when I enter vehicle(It's my speedometer textdraws).

And please, indent the code, because there are some warnings for loose indentation. I guess that's because this include was written with Notepad?

And shorten right side of the box to be exact as the left side, because there is unneeded gap between models and box(by shortening box textdraws by 10 points):



I'm doing all that by myself, but I have to do it again everytime new version comes out
Reply
#64

Quote:
Originally Posted by iWhite
Посмотреть сообщение
When I delete this code, box isn't appearing when I enter vehicle(It's my speedometer textdraws).
Make sure to define FILTERSCRIPT if used in filterscript and maybe you are not reseting the value of those textdraws to INVALID_TEXT_DRAW when destroying and declaring the vars.

You can also have a look at this.

Or else i'll try my best to fix that when i am clear to the problem causing this.

Quote:
Originally Posted by iWhite
Посмотреть сообщение
And please, indent the code, because there are some warnings for loose indentation. I guess that's because this include was written with Notepad?
No it was written in PAWNO and the indentation don't appear to be right because of Pastebin. Maybe use RAW option and copy the code or i'll move to Github.

Quote:
Originally Posted by iWhite
Посмотреть сообщение
And shorten right side of the box to be exact as the left side, because there is unneeded gap between models and box(by shortening box textdraws by 10 points):



I'm doing all that by myself, but I have to do it again everytime new version comes out
I'll fix that in another update.
Reply
#65

Quote:
Originally Posted by Gammix
Посмотреть сообщение
Make sure to define FILTERSCRIPT if used in filterscript and maybe you are not reseting the value of those textdraws to INVALID_TEXT_DRAW when destroying and declaring the vars.

You can also have a look at this.

Or else i'll try my best to fix that when i am clear to the problem causing this.
I'm not using any filterscripts. When I don't show speedometer textdraws, the box isn't showing either, but when I show any half of speedometer textdraws, the box is showing... Like when I don't show Textdraw[0], Textdraw[1] and Textdraw[2], box isn't showing either, but if I show anyone of these textdraws, box appears... It's somekind of mystery...
Reply
#66

Quote:
Originally Posted by iWhite
Посмотреть сообщение
I'm not using any filterscripts. When I don't show speedometer textdraws, the box isn't showing either, but when I show any half of speedometer textdraws, the box is showing... Like when I don't show Textdraw[0], Textdraw[1] and Textdraw[2], box isn't showing either, but if I show anyone of these textdraws, box appears... It's somekind of mystery...
The box isn't showing when you use ShowPlayerDialog or are you referring to your speedometer textdraws ?

Have you tried setting the textdraws to INVALID_TEXT_DRAW while destroying and setting the var value while declaring?

For example:
pawn Код:
new Text:textdraw = INVALID_TEXT_DRAW;
So in case your script trys to destroy the textdraw, it won't cause any trouble.

And do that when you destroy it once created.

And i rechecked the code, its working fine. I also performed a test with a gamemode and it worked, all fine.
Reply
#67

Quote:
Originally Posted by Gammix
Посмотреть сообщение
The box isn't showing when you use ShowPlayerDialog or are you referring to your speedometer textdraws ?

Have you tried setting the textdraws to INVALID_TEXT_DRAW while destroying and setting the var value while declaring?

For example:
pawn Код:
new Text:textdraw = INVALID_TEXT_DRAW;
So in case your script trys to destroy the textdraw, it won't cause any trouble.

And do that when you destroy it once created.

And i rechecked the code, its working fine. I also performed a test with a gamemode and it worked, all fine.
I'm so sorry, I found a bug in my code... I used number 3 in loop to show all textdraws, because I thought the loop will start from 4, but it started from number 3 and I don't have any textdraws with number 3, so gamemode showed Dialog box, because it's ID is 0...

I'm sorry, it's my mistake. I fixed it.

I've got an idea, how to optimize the script a little bit. You could put arrows < and > as one textdraw with spaces between them. Because I guess you're using button textures to get what textdraw player is pressing, so it would free one space for another textdraw
Reply
#68

Wow , this is realy awesome , i'am waiting something like that, thank you REP+
Reply
#69

[21:36:02] WARNING: Max dialog models limit reached, please increase "MAX_DIALOG_MODELS" to increase the index from <dialogs.inc>.

Update it, news skins 0.3.7... IDґs 300 - 311.
Reply
#70

Quote:
Originally Posted by LatinZ
Посмотреть сообщение
[21:36:02] WARNING: Max dialog models limit reached, please increase "MAX_DIALOG_MODELS" to increase the index from <dialogs.inc>.

Update it, news skins 0.3.7... IDґs 300 - 311.
GO to the include file and increase the value of the macro (MAX_DIALOG_MODELS).
Код:
#define MAX_DIALOG_MODELS 300
Increase that 300.
Reply
#71

New bug; press cancel and flooding the dialog.

SS:

Code:

Код:
public AprobadoONo(playerid)
{
    new skins_array[] =
	{
		1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,
		50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,
		97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,
		132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,
		167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,
		202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,
		237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,
		272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,
		307,308,309,310,311
	};
	ShowPlayerDialog(playerid, DSkins, DIALOG_STYLE_PREVMODEL, "Selecciona tu skin", skins_array, "Seleccionar", "Cancelar");
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DSkins:
		{
		    if(response)
		    {
		        if(PlayerInfo[playerid][jFaccion] == Civil)
			    {
			        SetPlayerSkin(playerid, listitem);
					playerskin = GetPlayerSkin(playerid);
					limpiarchat(playerid);
		 			ShowPlayerDialog(playerid, LugarSpawn, DIALOG_STYLE_LIST, "Los santos: їDуnde quieres Spawnear?", "Aereopuerto\nBahнa\nMotel abandonado", "Aceptar", "");
	            }
			}
			else
	  		{
				SendClientMessage(playerid, 0xFFFF00FF, "No puedes salir del catбlogo hasta seleccionar un skin.");
	         	new skins_array[] =
				{
					1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,
					50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,
					97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,
					132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,
					167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,
					202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,
					237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,
					272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,
					307,308,309,310,311
				};
				HidePlayerDialog(playerid);
				ShowPlayerDialog(playerid, DSkins, DIALOG_STYLE_PREVMODEL, "Selecciona tu skin", skins_array, "Seleccionar", "Cancelar");
				return 1;
			}
		}
	}
	return 1;
}
Reply
#72

Because, OnFilterScriptExit() does not destroy them so if you keep reloading a script over time it could fill all the player textdraw slots for a player unless that player reconnects.

So for the most part if you don't have a lot of player textdraws it probably would go unnoticed but say a server had a lot of player textdraws it could be very easy to reach the maximum.
Reply
#73

Gammix, I solved the problem by using a settimerex 50 milliseconds.
Thus was the code.

Код:
new skins_array[] =
{
	1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,
	50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,
	97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,
	132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,
	167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,
	202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,
	237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,
	272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,
	307,308,309,310,311
};

public AprobadoONo(playerid)
{
	ShowPlayerDialog(playerid, DSkins, DIALOG_STYLE_PREVMODEL, "Selecciona tu skin", skins_array, "Seleccionar", "Cancelar");
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DSkins:
		{
		    if(response)
		    {
		        if(PlayerInfo[playerid][jFaccion] == Civil)
			    {
			        SetPlayerSkin(playerid, listitem);
					playerskin = GetPlayerSkin(playerid);
					limpiarchat(playerid);
		 			ShowPlayerDialog(playerid, LugarSpawn, DIALOG_STYLE_LIST, "Los santos: їDуnde quieres Spawnear?", "Aereopuerto\nBahнa\nMotel abandonado", "Aceptar", "");
	            }
			}
			else
	  		{
				SendClientMessage(playerid, 0xFFFF00FF, "No puedes salir del catбlogo hasta seleccionar un skin.");
                SetTimerEx("MostrarDialog", 50, false, "i", playerid);
				return 1;
			}
		}
	}
	return 1;
}

public MostrarDialog(playerid)
{
	return ShowPlayerDialog(playerid, DSkins, DIALOG_STYLE_PREVMODEL, "Selecciona tu skin", skins_array, "Seleccionar", "Cancelar");
}
You should check the condition if (response), or well it works for you ?, I have all plugins and includes updated ...
Reply
#74

I also had that temporary method but in my include for solving this for all dialogs.

But the question is, why its not working in OnDialogResponse? But working when done in a timer?

I also found a fix or a bug identifier when you remove the HidePlayerDialog from the hooked callback OnDialogResponse in the include,your code worked pretty fine.

I'll try to find a good solution, just lacks of time.
Reply
#75

Well, you should put in the post as a temporary solution as the timer ...
Reply
#76

Gammix, SetupPrevModelDialog is not for each dialog?
Reply
#77

Quote:
Originally Posted by ExTaZZ69
Посмотреть сообщение
Gammix, SetupPrevModelDialog is not for each dialog?
No, Just use this before showing a Prev Model dialog.

Just to announce, i am working on a small update of this include.
Reply
#78

This may be in your plans, but why not make one main include, not two like now (I mean, put the description labels feature in the main include). Sorry if this was suggested before.
Reply
#79

Quote:
Originally Posted by b3nz
Посмотреть сообщение
This may be in your plans, but why not make one main include, not two like now (I mean, put the description labels feature in the main include). Sorry if this was suggested before.
Its already there. Dialogs2.inc have both types DIALOG_STYLE_PREVMODEL and A extra function for label version ShowPlayerPrevModelDialog.
Reply
#80

R6 - 27th June, 2015
  • Setting preview model dialogs now per player based
  • Now compatible version, get dialog ID and style ID from external scripts
  • Improved code for both versions dialogs.inc and dialogs2.inc
  • Fixed Dialog Flooding bug, now simultaneously show dialogs continuously.
Download available on GITHUB, link in thread.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)