new Text:teleportBox; // Definimos la caja como un textdraw
new Text:teleportLS; // Definimos la primera opcion como un textdraw
new Text:teleportSF; // Definimos la segunda opcion como un textdraw
new Text:teleportLV; // Definimos la tercera opcion como un textdraw
public OnGameModeInit()
{
SetGameModeText("SP:RP");
teleportBox = TextDrawCreate(320.000000, 143.000000, "~n~Destinaciones~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~_"); // Creamos el textdraw
TextDrawAlignment(teleportBox, 2);
TextDrawBackgroundColor(teleportBox, 255);
TextDrawFont(teleportBox, 2);
TextDrawLetterSize(teleportBox, 0.500000, 1.000000);
TextDrawColor(teleportBox, -1);
TextDrawSetOutline(teleportBox, 0);
TextDrawSetProportional(teleportBox, 1);
TextDrawSetShadow(teleportBox, 1);
TextDrawUseBox(teleportBox, 1);
TextDrawBoxColor(teleportBox, 255);
TextDrawTextSize(teleportBox, 45.000000, 115.000000);
teleportLS = TextDrawCreate(320.000000, 180.000000, "Aeropuerto~n~Los Santos"); // Creamos primera opcion
TextDrawAlignment(teleportLS, 2);
TextDrawBackgroundColor(teleportLS, 255);
TextDrawFont(teleportLS, 2);
TextDrawLetterSize(teleportLS, 0.260000, 0.799999);
TextDrawColor(teleportLS, -1);
TextDrawSetOutline(teleportLS, 0);
TextDrawSetProportional(teleportLS, 1);
TextDrawSetShadow(teleportLS, 1);
teleportSF = TextDrawCreate(320.000000, 205.000000, "Aeropuerto~n~San Fierro"); // Creamos segunda opcion
TextDrawAlignment(teleportSF, 2);
TextDrawBackgroundColor(teleportSF, 255);
TextDrawFont(teleportSF, 2);
TextDrawLetterSize(teleportSF, 0.260000, 0.799999);
TextDrawColor(teleportSF, -1);
TextDrawSetOutline(teleportSF, 0);
TextDrawSetProportional(teleportSF, 1);
TextDrawSetShadow(teleportSF, 1);
teleportLV = TextDrawCreate(320.000000, 230.000000, "Aeropuerto~n~Las Venturas"); // Creamos tercera opcion
TextDrawAlignment(teleportLV, 2);
TextDrawBackgroundColor(teleportLV, 255);
TextDrawFont(teleportLV, 2);
TextDrawLetterSize(teleportLV, 0.260000, 0.799999);
TextDrawColor(teleportLV, -1);
TextDrawSetOutline(teleportLV, 0);
TextDrawSetProportional(teleportLV, 1);
TextDrawSetShadow(teleportLV, 1);
TextDrawSetSelectable(teleportBox, false); // No se puede clickear el textdraw
TextDrawSetSelectable(teleportLS, true); // Se puede clickear
TextDrawSetSelectable(teleportSF, true); // Se puede clickear
TextDrawSetSelectable(teleportLV, true); // Se puede clickear
return 1;
}
public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid, teleportBox); // Muestra la caja
TextDrawShowForPlayer(playerid, teleportLS); // Muestra la primera opciуn (LS)
TextDrawShowForPlayer(playerid, teleportSF); // Muestra la segunda opciуn (SF)
TextDrawShowForPlayer(playerid, teleportLV); // Muestra la tercera opciуn (LV)
SelectTextDraw(playerid, 0xA3B4C5FF); // Le da permiso para clickear al jugador
return 1;
}
public OnPlayerClickTextDraw(playerid,Text:clickedid)
{
if(clickedid == teleportLS) return Texto(playerid, COLOR_BLANCO, "1");
if(clickedid == teleportSF) return Texto(playerid, COLOR_BLANCO, "2");
if(clickedid == teleportLV) return Texto(playerid, COLOR_BLANCO, "3");
return 1;
}
public OnPlayerClickTextDraw(playerid, Text:clickedid){
if(Text:INVALID_TEXT_DRAW==clickedid) {SelectTextDraw(playerid, color);}
//TU CODE
return 1;
}
//recuerda que este metodo solo funciona para los textdraw globales.
pawn Код:
|
//Arriba de todo, abajo de los includes
new bool:IsPlayerSelectingTextDraw[MAX_PLAYERS char], TextDrawSelectColor[MAX_PLAYERS];
stock SelectTextDrawEx(playerid, color)
{
IsPlayerSelectingTextDraw{playerid} = true;
TextDrawSelectColor[playerid] = color;
SelectTextDraw(playerid, color);
}
stock OriginalSelectTextDraw(playerid, color) return SelectTextDraw(playerid, color);
#define SelectTextDraw SelectTextDrawEx
stock CancelSelectTextDrawEx(playerid)
{
IsPlayerSelectingTextDraw{playerid} = false;
TextDrawSelectColor[playerid] = 0;
CancelSelectTextDraw(playerid);
}
#define CancelSelectTextDraw CancelSelectTextDrawEx
//Callback
public OnPlayerClickTextDraw(playerid, Text:clickedid){
if(_:clickedid == INVALID_TEXT_DRAW && IsPlayerSelectingTextDraw{playerid}) {
OriginalSelectTextDraw(playerid, TextDrawSelectColor[playerid]);
return 1;
}
//Todo el resto de la callback
return 1;
}
Eso harнa que una vez que se muestre no se pueda sacar, este cуdigo supongo que es mejor:
pawn Код:
|