[Ajuda] Abrir dialog com textdraw
#1

Boa noite. Gente alguйm ai pode me ajudar a abrir uma dialog apenas clicando na textdraw ? Vi algumas coisas atй tentei .... mas nгo tive sucesso. Se alguйm puder ajudar eu agradeзo !
Reply
#2

Tutorial: https://sampforum.blast.hk/showthread.php?tid=340781
Reply
#3

Alguйm pode me ajudar na parte da OnPlayerClickPlayer TextDraw, to usando uma base da BPS..
Reply
#4

Quote:

Alguйm pode me ajudar na parte da OnPlayerClickPlayer TextDraw, to usando uma base da BPS..

A callback chamada na hora de clicar no TextDraw й essa : https://sampwiki.blast.hk/wiki/OnPlayerClickTextDraw e nгo OnPlayerClickPlayer,sobre dialogs sу estudar : https://sampwiki.blast.hk/wiki/Dialog_Styles O sistema que estб pedindo й simples.
Na callback vocк ira fazer uma condiзгo verificando se o jogador clicou na textdraw que vocк definiu ai vocк usa a ShowPlayerDialog,se tiver alguma dъvida poste aqui que vou ajudar com prazer.
Reply
#5

Quote:
Originally Posted by Cycle
Посмотреть сообщение
Um simples exemplo de como se fazer, й da forma abaixo que desenvolvi.
PHP код:
new Text:str;
public 
OnGameModeInit(){
    
str TextDrawCreate(00"0");
    
TextDrawSetSelectable(strtrue);
    return 
true;
}
public 
OnPlayerConnect(playerid){
    
TextDrawShowForPlayer(playeridstr);
    return 
true;
}
public 
OnPlayerClickTextDraw(playeridText:clickedid){
    if(
clickedid == str){
        
ShowPlayerDialog(playerid1001DIALOG_STYLE_MSGBOX"Insert""Insert""Ok""Exit");
    }
    return 
true;

Lembrando, isso foi desenvolvido para ser exposto globalmente. (All players)
Lembrando que, para que o jogador possa selecionar a textdraw, deve-se usar SelectTextDraw, em algum momento.
Reply
#6

Obrigado pela ajuda pessoal, acredito que jб esteja resolvido. Irei tentar aplicar na game mode.
Reply
#7

Quote:
Originally Posted by Cycle
Посмотреть сообщение
Um simples exemplo de como se fazer, й da forma abaixo que desenvolvi.
PHP код:
new Text:str;
public 
OnGameModeInit(){
    
str TextDrawCreate(00"0");
    
TextDrawSetSelectable(strtrue);
    return 
true;
}
public 
OnPlayerConnect(playerid){
    
TextDrawShowForPlayer(playeridstr);
    return 
true;
}
public 
OnPlayerClickTextDraw(playeridText:clickedid){
    if(
clickedid == str){
        
ShowPlayerDialog(playerid1001DIALOG_STYLE_MSGBOX"Insert""Insert""Ok""Exit");
    }
    return 
true;

Lembrando, isso foi desenvolvido para ser exposto globalmente. (All players)
deu os seguintes erros na OnPlayerClickTextDraw

Код:
Linha 3005: if(clickedid == textdraw_1){
Linha 3008: 	return true;
toda a Public
Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid){
	if(clickedid == Text:INVALID_TEXT_DRAW){

		if(GetPVarInt(playerid, "vMochila") && !GetPVarInt(playerid, "guardando")){

			HideMochila(playerid);
		}
		if(GetPVarInt(playerid, "vportamala") && !GetPVarInt(playerid, "guardando")){

			HidePortaMala(playerid);
		}
	}

	if(GetPVarInt(playerid, "skinc_active") == 0) return 0;

	// Handle: They cancelled (with ESC)
	if(clickedid == Text:INVALID_TEXT_DRAW) {
		DestroySelectionMenu(playerid);
		SetPVarInt(playerid, "skinc_active", 0);
		PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
		return 1;
	}
	return 1;

}

if(clickedid == textdraw_1){
		ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Insert", "Insert", "Ok", "Exit");
	}
	return true;
}
(3005) : error 010: invalid function or declaration
(300 : error 010: invalid function or declaration
Reply
#8

PHP код:
public OnPlayerClickTextDraw(playeridText:clickedid){
    if(
clickedid == Text:INVALID_TEXT_DRAW){
        if(
GetPVarInt(playerid"vMochila") && !GetPVarInt(playerid"guardando")){
            
HideMochila(playerid);
        }
        if(
GetPVarInt(playerid"vportamala") && !GetPVarInt(playerid"guardando")){
            
HidePortaMala(playerid);
        }
    }
    else if(
clickedid == textdraw_1){
        
ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX"Insert""Insert""Ok""Exit");
    }
    
    if(
GetPVarInt(playerid"skinc_active") == 0) return 0;
    
// Handle: They cancelled (with ESC)
    
else if(clickedid == Text:INVALID_TEXT_DRAW) {
        
DestroySelectionMenu(playerid);
        
SetPVarInt(playerid"skinc_active"0);
        
PlayerPlaySound(playerid10850.00.00.0);
        return 
1;
    }
    return 
1;

Reply
#9

Quote:
Originally Posted by FerrariL
Посмотреть сообщение
PHP код:
public OnPlayerClickTextDraw(playeridText:clickedid){
    if(
clickedid == Text:INVALID_TEXT_DRAW){
        if(
GetPVarInt(playerid"vMochila") && !GetPVarInt(playerid"guardando")){
            
HideMochila(playerid);
        }
        if(
GetPVarInt(playerid"vportamala") && !GetPVarInt(playerid"guardando")){
            
HidePortaMala(playerid);
        }
    }
    else if(
clickedid == textdraw_1){
        
ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX"Insert""Insert""Ok""Exit");
    }
    
    if(
GetPVarInt(playerid"skinc_active") == 0) return 0;
    
// Handle: They cancelled (with ESC)
    
else if(clickedid == Text:INVALID_TEXT_DRAW) {
        
DestroySelectionMenu(playerid);
        
SetPVarInt(playerid"skinc_active"0);
        
PlayerPlaySound(playerid10850.00.00.0);
        return 
1;
    }
    return 
1;

irei testar
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)