Click Textdraw
#1

Heyy .com I have a problem.
This is the textdraw:


OnGameModeInit:
Код:
... Other TD;
        BACK = TextDrawCreate(320.625, 233.916, "BACK");
	TextDrawSetSelectable(BACK, 1);
	TextDrawLetterSize(BACK, 0.449, 1.600);
	TextDrawTextSize(BACK, 2.500, -57.166);
	TextDrawAlignment(BACK, 2);
	TextDrawColor(BACK, -1);
	TextDrawUseBox(BACK, 1);
	TextDrawBoxColor(BACK, 102);
	TextDrawSetOutline(BACK, 1);
	TextDrawBackgroundColor(BACK, 51);
	TextDrawFont(BACK, 1);
	TextDrawSetProportional(BACK, 1);
AFK Command:
Код:
CMD:afk(playerid, params[])
{
    new string[500], AFKNAME[MAX_PLAYER_NAME];
    GetPlayerName(playerid,AFKNAME,MAX_PLAYER_NAME);
    if(AFK[playerid] == 1)
	{
	    GameTextForPlayer(playerid, "~r~You are ~w~already ~b~afk~w~.", 2000, 3);
	}
	if(AFK[playerid] == 0)
	{
	    AFK[playerid] = 1;
	    TogglePlayerControllable(playerid, 0);
		SPH(playerid, 999999);
     	format(string, sizeof(string), "~r~%s ~w~= ~b~AFK", AFKNAME);
      	GameTextForAll(string,4000,3);
      	ShowTD(playerid, BACK);
      	ShowTD(playerid, YOUAFK);
      	ShowTD(playerid, STARAFK);
      	ShowTD(playerid, CLICKBRB);
	}
	return 1;
}
OnPlayerClickTextdraw:
Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == BACK) //I tried to put Text:BACK, but no any change :(
    {
		HideTD(playerid, BACK);
		HideTD(playerid, YOUAFK);
		HideTD(playerid, STARAFK);
 		HideTD(playerid, CLICKBRB);
        new string[500], AFKNAME[MAX_PLAYER_NAME];
    	GetPlayerName(playerid,AFKNAME,MAX_PLAYER_NAME);
    	format(string, sizeof(string), "~r~%s ~w~= ~b~NO AFK", AFKNAME);
    	GameTextForAll(string,4000,3);
    	TogglePlayerControllable(playerid, 1);
    	SPH(playerid, 100);
    }
    return 1;
}
OnPlayerKeyStateChange:
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == KEY_SUBMISSION)
	{
	    SelectTextDraw(playerid, 0xFF4040AA);
		if (IsPlayerInAnyVehicle(playerid))
    	{
       		new Float:health;
       		new vehicleid = GetPlayerVehicleID(playerid);
       		GetVehicleHealth(vehicleid, health);
       		if (health < 995)
    		{
       			RepairVehicle(GetPlayerVehicleID(playerid));
    		}
		}
	}
What's wrong? When i click on BACK this don't do anything
Reply
#2

Help me pleasee 3
Reply
#3

Please don't bump so fast wait 2 days or more
Reply
#4

Quote:
Originally Posted by [Bios]Marcel
Посмотреть сообщение
Please don't bump so fast wait 2 days or more
Oke how say you )
Reply
#5

Try it now.
Код:
CMD:afk(playerid, params[])
{
    new string[500], AFKNAME[MAX_PLAYER_NAME];
    GetPlayerName(playerid,AFKNAME,MAX_PLAYER_NAME);
    if(AFK[playerid] == 1)
	{
	    GameTextForPlayer(playerid, "~r~You are ~w~already ~b~afk~w~.", 2000, 3);
	}
	if(AFK[playerid] == 0)
	{
	    AFK[playerid] = 1;
	    TogglePlayerControllable(playerid, 0);
		SPH(playerid, 999999);
     	format(string, sizeof(string), "~r~%s ~w~= ~b~AFK", AFKNAME);
      	GameTextForAll(string,4000,3);
      	ShowTD(playerid, BACK);
      	ShowTD(playerid, YOUAFK);
      	ShowTD(playerid, STARAFK);
      	ShowTD(playerid, CLICKBRB);
        SelectTextDraw(playerid, 0xFF4040AA);
	}
	return 1;
}
Reply
#6

dont work
Reply
#7

Try this:
PHP код:
// OnGameModeINit
    
BACK TextDrawCreate(320.625233.916"BACK");
    
TextDrawSetSelectable(BACK1);
    
TextDrawLetterSize(BACK0.4491.600);
    
TextDrawTextSize(BACK2.500, -57.166);
    
TextDrawAlignment(BACK2);
    
TextDrawColor(BACK, -1);
    
TextDrawUseBox(BACK1);
    
TextDrawBoxColor(BACK102);
    
TextDrawSetOutline(BACK1);
    
TextDrawBackgroundColor(BACK51);
    
TextDrawFont(BACK1);
    
TextDrawSetProportional(BACK1);
    
TextDrawSetSelectable(BACK1);
    
    
    
// ON COMMAND
CMD:afk(playeridparams[])
{
    if(
AFK[playerid] == 1
        return 
GameTextForPlayer(playerid"~r~You are ~w~already ~b~afk~w~."20003);
        
        
    
// Create static arrays
    
static
        
string[50],
        
Name[24]
    ;
    
    
// Reseting arrays
    
string[0]   = EOS;
    
Name[0]        = EOS;
    
    
// Formating arrays
    
format(stringsizeof(string), "~r~%s ~w~= ~b~AFK", (GetPlayerName(playeridName24), Name));
    
GameTextForAll(string,4000,3);

    
// Setting player in AFK
    
AFK[playerid] = 1;
    
    
// Set player health
    
SPH(playerid999999);
    
    
// Show textdraws
    
ShowTD(playeridBACK);
    
ShowTD(playeridYOUAFK);
    
ShowTD(playeridSTARAFK);
    
ShowTD(playeridCLICKBRB);
    
    
// Select textdraw
    
SelectTextDraw(playerid0xFF0000FF);
    
    
// Freeze player
    
TogglePlayerControllable(playerid0);
    return 
1;
}



//
public OnPlayerClickTextDraw(playeridText:clickedid)
{
    if(
clickedid == BACK){
    
        
// DEBUGG:
        
printf("Clicked!");
        
        
        
// Hide textdraws
        
HideTD(playeridBACK);
        
HideTD(playeridYOUAFK);
        
HideTD(playeridSTARAFK);
         
HideTD(playeridCLICKBRB);
        
        
        
// Creating variables arrays
        
static
            
string[50],
            
Name[24]
        ;
        
        
// Formating message
        
format(stringsizeof(string), "~r~%s ~w~= ~b~NO AFK", ((GetPlayerName(playeridName24), Name));
        
GameTextForAll(string,4000,3);
        
        
// Unfreeze player
        
TogglePlayerControllable(playerid1);
        
        
// Reset player heath.
        
SPH(playerid100);
    }
    return 
1;

Reply
#8

AFK[playerid] = 1; the player is still afk AFK[playerid] = 0; in the onplayerclicktextdraw line (y)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)