I need to understand clickable textdraws
#9

Quote:
Originally Posted by Death1300
Посмотреть сообщение
Good luck with that.. I suggest using that menu system instead of making things complicated for your self. If you do use the menu code there must a way to use the "mouse control option".
The old menu doesn't offer mouse control. Even if it did, I'd still take the text draw style, because it offers great flexibility with text fonts, shapes, colors, etc.
My attention is now towards BroZeus's code. I've tried to add it on my FS and filled in the gaps, but for some reason I get errors.
Here's what I've got (I have bolded the lines with problems):
Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
#define FILTERSCRIPT
#include <a_samp>

new PlayerText:Textdraw0[MAX_PLAYERS];
new PlayerText:Textdraw1[MAX_PLAYERS];
new PlayerText:Textdraw2[MAX_PLAYERS];

new bool:IsViewingMenu[MAX_PLAYERS];//on top
new current[MAX_PLAYERS] = -1;//specifies the current text draw on which player pointer is

Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 35.666641, 137.303726, "New Textdraw");
PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.449999, 1.600000);
PlayerTextDrawAlignment(playerid, Textdraw0[playerid], 1);
PlayerTextDrawColor(playerid, Textdraw0[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw0[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw0[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw0[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw0[playerid], true);

Textdraw1[playerid] = CreatePlayerTextDraw(playerid, 35.666645, 150.333389, "New Textdraw");
PlayerTextDrawLetterSize(playerid, Textdraw1[playerid], 0.449999, 1.600000);
PlayerTextDrawAlignment(playerid, Textdraw1[playerid], 1);
PlayerTextDrawColor(playerid, Textdraw1[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw1[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw1[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw1[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw1[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw1[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw1[playerid], true);

Textdraw2[playerid] = CreatePlayerTextDraw(playerid, 35.666645, 162.533340, "New Textdraw");
PlayerTextDrawLetterSize(playerid, Textdraw2[playerid], 0.449999, 1.600000);
PlayerTextDrawAlignment(playerid, Textdraw2[playerid], 1);
PlayerTextDrawColor(playerid, Textdraw2[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw2[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw2[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw2[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw2[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw2[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw2[playerid], true);

#if defined FILTERSCRIPT
#else
main()
{
	print("\n----------------------------------");
	print(" -----------------------------------");
	print("----------------------------------\n");
}
#endif


public OnPlayerUpdate(playerid)
{
	if(IsViewingMenu[playerid])
	{
		new Keys,ud,lr;
		GetPlayerKeys(playerid,Keys,ud,lr);//for getting player keys up and down you can read about this in wiki
		if(ud == KEY_DOWN && current[playerid] != 4)//to do nothing when the pointer is at last text draw,i.e., 4
		{

			current[playerid]++;
			switch(current[playerid])
			{
				case 0 : PlayerTextDrawColor(playerid, Textdraw0[playerid], 0xFF0000FF); //setting current text draw color to red
				case 1 : 
				{
					PlayerTextDrawColor(playerid, Textdraw0[playerid], -1);//setting old text draw color to back to white
					PlayerTextDrawColor(playerid, Textdraw1[playerid], 0xFF0000FF);
				}
				case 2 : 
				{
					PlayerTextDrawColor(playerid, Textdraw1[playerid], -1);//setting old text draw color to back to white
					PlayerTextDrawColor(playerid, Textdraw2[playerid], 0xFF0000FF);
				}
				case 3 : 
				{
					PlayerTextDrawColor(playerid, Textdraw2[playerid], -1);//setting old text draw color to back to white
				}
		}//end of switch
		else if(ud == KEY_UP && (current[playerid] != -1 || current[playerid] != 0))//to do nothing when pointer is nowhere or at first textdraw ,i.e, 0
		{
			current[playerid]--;
			switch(current[playerid])
			{
				case 0 : 
				{
					PlayerTextDrawColor(playerid, Textdraw0[playerid], 0xFF0000FF);//setting current pointer color to red
					PlayerTextDrawColor(playerid, Textdraw1[playerid], -1);//setting textdraw color where pointer "was" back to white
				}
				case 1 : 
				{
					PlayerTextDrawColor(playerid, Textdraw1[playerid], 0xFF0000FF);//setting current pointer color to red
					PlayerTextDrawColor(playerid, Textdraw2[playerid], -1);//setting textdraw color where pointer "was" back to white
				}
				case 3 : 
				{
					PlayerTextDrawColor(playerid, Textdraw2[playerid], 0xFF0000FF);//setting current pointer color to red
					PlayerTextDrawColor(playerid, Textdraw3[playerid], -1);//setting textdraw color where pointer "was" back to white
				}
				case 4 : 
				{
					PlayerTextDrawColor(playerid, Textdraw3[playerid], 0xFF0000FF);//setting current pointer color to red
				}
			}//end of switch

		}

	}
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	if(IsViewingMenu[playerid])
	{
		if ((newkeys & KEY_FIRE) && !(oldkeys & KEY_FIRE) && current[playerid] != -1)//change to key whatever u want
		{
			switch(current[playerid])
			{
				case 0://player is on menu item 1 do something
				case 1://player is on menu item 2

			}
		}
	}
return 1;
}

/*this all when u hide menu or player disconnects
current[playerid] = -1;
IsViewingMenu[playerid] = false;/*
and here are the errors:
Код:
TD_test.pwn(13) : error 010: invalid function or declaration
TD_test.pwn(24) : error 010: invalid function or declaration
TD_test.pwn(35) : error 010: invalid function or declaration

TD_test.pwn(85) : warning 217: loose indentation
TD_test.pwn(85) : error 029: invalid expression, assumed zero
TD_test.pwn(85) : warning 215: expression has no effect
TD_test.pwn(85) : error 001: expected token: ";", but found "if"

TD_test.pwn(103) : error 017: undefined symbol "Textdraw3"
TD_test.pwn(103) : warning 215: expression has no effect
TD_test.pwn(103) : error 001: expected token: ";", but found "]"
TD_test.pwn(103) : error 029: invalid expression, assumed zero
TD_test.pwn(103) : fatal error 107: too many error messages on one line

Compilation aborted.[Finished in 0.2s with exit code 1]
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)