====== Mostrando iconos de ayuda sobre los puntos calientes ======
Si quieres implementar una funcionalidad similar al resaltado de objetos activos, como en Tunguska, añade el siguiente código a game.script:
var ShowingHintIcons = false;
////////////////////////////////////////////////////////////////////////////////
function ShowHintIcons()
{
// Pequeño arreglo de metamorphium. Eres libre de ignorarlo.
if (Scene.GetLayer("hints") == null) ShowingHintIcons = false;
// Fin del arreglo
// Nos aseguramos de mostrar los iconos sólo una vez
if(!ShowingHintIcons)
{
ShowingHintIcons = true;
// creamos una nueva capa superior
var HintLayer = Scene.AddLayer("hints");
// recorremos todas las entidades de la escena
var MainLayer = Scene.MainLayer;
var i;
for(i = 0; i < MainLayer.NumNodes; i = i + 1)
{
var Node = MainLayer.GetNode(i);
AddHintIcon(HintLayer, Node);
}
// recorremos todas las entidades y actores libres
for(i = 0; i < Scene.NumFreeNodes; i = i + 1)
{
Node = Scene.GetFreeNode(i);
AddHintIcon(HintLayer, Node);
}
// rotamos los iconos para un momento
for(var t = 0; t <= 360; t = t + 15)
{
for(i = 0; i < HintLayer.NumNodes; i = i + 1)
{
var Icon = HintLayer.GetNode(i);
Icon.Rotate = t;
}
Sleep(50);
}
// eliminamos la capa
Scene.DeleteLayer(HintLayer);
ShowingHintIcons = false;
}
}
////////////////////////////////////////////////////////////////////////////////
function AddHintIcon(Layer, Node)
{
// sólo estamos interesados en las entidades visibles interactivas
if(Node.Type!="entity" || !Node.Interactive || !Node.Active==true) return;
// creamos el icono de ayuda
// puedes mejorar esto, por ejemplo, para mostrar diferentes iconos dependiendo de las capacidades del 'Nodo'
var Icon = Layer.AddEntity("icon");
Icon.SetSprite("sprites\system\cur_wait.sprite"); // Reemplaza esto con un sprite que marque el punto caliente
Icon.X = Node.X;
Icon.Y = Node.Y - (Node.Height / 2);
Icon.Active = true;
Icon.Interactive = false;
Icon.Scalable = false;
Icon.Rotatable = true;
}
Ahora sólo necesitas llamar a este código desde alguna parte. Por ejemplo, si quieres mostrar los iconos de ayuda cuando el jugador pulsa espacio, edita game.script, busca la función de evento **on “Keypress”**, y añade algo como:
if(Keyboard.KeyCode==VK_SPACE) ShowHintIcons();
Este script está basado en el código original escrito por Mac.