/* JS per le pagine del sito http://silmaril.novacomp.it */
/* Autore: Raffaele Toriaco */
/* e-mail: esteban@novacomp.it */

/* Help per il form dei client */

function popup(nome, helpmsg, h)
{
}

function help(termine)
{
 var alias = "Tramite questa funzione il client permette di assegnare un insieme " +
             "di comandi ad una sola parola, o abbreviazione, per permetterne " +
             "un'esecuzione pi&ugrave; veloce.<BR><BR>" +
             "Esempio<SUP><FONT color=\"#FF0000\">*</FONT></SUP><BR>" +
             "<KBD>alias ko {uccidi %1; calcia %1}</KBD><BR>" +
             "In questo caso digitando <KBD>ko goblin</KBD> il client invier&agrave " +
             "al mud i comandi<BR>" +
             "<KBD>uccidi goblin</KBD><BR>" +
             "e<BR>" +
             "<KBD>calcia goblin</KBD><BR>" +
             "<BR><SUP><FONT color=\"#FF0000\">*</FONT></SUP>&nbsp;&nbsp;L'esempio &egrave; " +
             "generico, cio&egrave; non fa riferimento alla sintassi di un particolare " +
             "client, ma vuole solo dare un'idea del funzionamento della propriet&agrave; " +
             "in esame.<BR>";
 var aliasheight = 40;

 var macro = "Questa funzione permette di associare uno o pi&ugrave; comandi ad un " +
             "tasto o ad una combinazione di tasti.<BR><BR>" +
             "Esempio<SUP><FONT color=\"#FF0000\">*</FONT></SUP><BR>" +
             "<KBD>macro CTRL-F1 {mangia panino}</KBD><BR>" +
             "In tal modo premendo la combinazione di tasti Control-F1 il client " +
             "invier&agrave; al mud il comando<BR>" +
             "<KBD>mangia panino</KBD><BR>" +
             "<BR><SUP><FONT color=\"#FF0000\">*</FONT></SUP>&nbsp;&nbsp;L'esempio &egrave; " +
             "generico, cio&egrave; non fa riferimento alla sintassi di un particolare " +
             "client, ma vuole solo dare un'idea del funzionamento della propriet&agrave; " +
             "in esame.<BR>";
 var macroheight = 380;

 var trigger = "Tramite questa caratteristica il client &egrave; in grado di analizzare " +
               "tutto il testo inviato dal mud alla ricerca di alcune stringhe definite " +
               "dall'utente (solitamente indicate col nome <FONT color=\"#FF0000\">pattern</FONT>) " +
               "e, al verificarsi delle condizioni, &egrave; in grado di eseguire una serie " +
               "di comandi.<BR><BR>" +
               "Esempio<SUP><FONT color=\"#FF0000\">*</FONT></SUP><BR>" +
               "<KBD>trigger {%1 ti saluta.} {saluta %1; sorridi}</KBD><BR>" +
               "Se il client analizzando l'output del mud ricever&agrave; la stringa " +
               "<I>Esteban ti saluta.</I>, eseguir&agrave i comandi<BR>" +
               "<KBD>saluta esteban</KBD><BR>" +
               "e<BR>" +
               "<KBD>sorridi</KBD><BR>" +
               "in modo tale da rispondere allegramente (tramite dei comandi \"sociali\"), " +
               "e soprattutto automaticamente, al saluto di qualcuno.<BR>" +
               "<BR><SUP><FONT color=\"#FF0000\">*</FONT></SUP>&nbsp;&nbsp;L'esempio &egrave; " +
               "generico, cio&egrave; non fa riferimento alla sintassi di un particolare " +
               "client, ma vuole solo dare un'idea del funzionamento della propriet&agrave; " +
               "in esame.<BR>";
 var triggerheight = 600;

 var variabili = "Un client che possiede questa caratteristica permette di memorizzare dei " +
                 "dati semplici in variabili che possono essere usate in seguito.<BR><BR>" +
                 "Esempio<SUP><FONT color=\"#FF0000\">*</FONT></SUP><BR>" +
                 "<KBD>var arma {alabarda}</KBD><BR>" +
                 "Questa dichiarazione permette di usare comandi tipo<BR>" +
                 "<KBD>impugna &lt;arma&gt;</KBD><BR>" +
                 "che viene \"espanso\" dal client ed inviato al mud in questo modo:<BR>" +
                 "<KBD>impugna alabarda</KBD><BR>" +
                 "<BR><SUP><FONT color=\"#FF0000\">*</FONT></SUP>&nbsp;&nbsp;L'esempio &egrave; " +
                 "generico, cio&egrave; non fa riferimento alla sintassi di un particolare " +
                 "client, ma vuole solo dare un'idea del funzionamento della propriet&agrave; " +
                 "in esame.<BR>";
 var variabiliheight = 400;

 var ansi = "Questa &egrave; una propriet&agrave; posseduta da quei client che sono in " +
            "grado di interpretare le sequenze ansi inviate dal mud (ed invisibili " +
            "all'utente) per ricevere un output a colori.<BR>" +
            "Ovviamente questo tipo di visualizzazione rende il gioco pi&ugrave; piacevole, " +
            "ma soprattutto permette di riconoscere i diversi tipi di output a colpo d'occhio.<BR>";
 var ansiheight = 400;

 var history = "Utilizzando un buffer di dimensione variabile il client &egrave; in grado " +
               "di memorizzare gli ultimi comandi inviati al mud (pi&ugrave; grande sar&agrave; " +
               "il buffer e maggiore il numero di comandi memorizzati), rendendoli " +
               "disponibili per essere richiamati in seguito pi&ugrave; rapidamente.<BR>" +
               "I metodi di accesso sono diversi: si possono usare semplicemente le frecce in " +
               "alto ed in basso per scorrere la lista di comandi, oppure tramite un comando " +
               "preciso si pu&ograve; ottenere la lista numerata, ed in seguito richiamare " +
               "il comando che interessa.<BR><BR>" +
               "Esempio<SUP><FONT color=\"#FF0000\">*</FONT></SUP><BR>" +
               "Utilizzando un ipotetico comando<BR>" +
               "<KBD>history</KBD><BR>" +
               "si potrebbe visualizzare una lista di questo tipo<BR>" +
               "<KBD>1: uccidi goblin</KBD><BR>" +
               "<KBD>2: mangia panino</KBD><BR>" +
               "<KBD>3: saluta esteban</KBD><BR>" +
               "e con un comando come<BR>" +
               "<KBD>history 2</KBD><BR>" +
               "si potrebbe inviare al mud il comando<BR>" +
               "<KBD>mangia panino</KBD><BR>" +
               "<BR><SUP><FONT color=\"#FF0000\">*</FONT></SUP>&nbsp;&nbsp;L'esempio &egrave; " +
               "generico, cio&egrave; non fa riferimento alla sintassi di un particolare " +
               "client, ma vuole solo dare un'idea del funzionamento della propriet&agrave; " +
               "in esame.<BR>";
 var historyheight = 400;

 var log = "\"Loggare\" significa registrare tutto ci&ograve; che scorre sullo schermo in un " +
           "file di testo. Un client che possegga questa funzionalit&agrave; &egrave; quindi " +
           "in grado di catturare l'output del mud per scriverlo in un file che possa " +
           "essere consultato in seguito. Naturalmente sar&agrave; l'utente a decidere quando " +
           "iniziare e quando terminare il \"log\".<BR>";
 var logheight = 400;

 var gui = "Con il termine GUI (Graphic User Interface) si indica l'interfaccia " +
           "grafica di un programma. Un client fornito di GUI sar&agrave; molto " +
           "pi&ugrave; intuitivo di uno testuale, ed inoltre la maggior parte " +
           "delle sue funzionalit&agrave; saranno accessibili tramite il mouse.<BR>";
 var guiheight = 400;

 var mapper = "Questa caratteristica soddisfa i giocatori pi&ugrave; esigenti, poich&egrave; " +
              "d&agrave; loro la possibilit&agrave; di costruire le mappe grafiche delle aree " +
              "senza troppi sforzi e con una buona precisione, semplicemente muovendosi tra le " +
              "varie stanze.<BR>" +
              "La difficolt&agrave; di configurazione del mapper dipende dal client, ma di " +
              "solito qualche piccolo sforzo iniziale viene abbondantemente premiato.<BR>";
 var mapperheight = 400;

 var programmazione = "Molti client sono dotati di un semplice linguaggio di programmazione " +
                      "dedicato, che permette, destreggiandosi tra alias, trigger, variabili " +
                      "e funzioni predefinite, di creare dei mini programmi per soddisfare " +
                      "le proprie esigenze.<BR>" +
                      "La complessit&agrave; del linguaggio varia enormemente tra i diversi " +
                      "tipi di client, ma in linea di massima il suo apprendimento non &egrave; " +
                      "difficile.<BR><BR>" +
                      "Esempio<SUP><FONT color=\"#FF0000\">*</FONT></SUP><BR>" +
                      "Supponiamo di voler controllare la durata dell'incantesimo \"sanctuary\" " +
                      "per evitare di rimanerne sprovvisti quando serve.<BR>" +
                      "Si potrebbe scrivere qualcosa di questo tipo:<BR>" +
                      "<KBD>durata=0<BR>" +
                      "trigger {Sei circondato da un'aura bianca.} {durata=5; stato=S}<BR>" +
                      "time 1:30 {durata=durata-1}<BR>" +
                      "if (durata=1) message {Attento! Il sanctuary sta per scadere}<BR>" +
                      "trigger {La tua aura bianca scompare.} {durata=0; stato=null}</KBD><BR>" +
                      "Premesso che questo programma cos&igrave; scritto non funzioner&agrave mai, " +
                      "vediamo di capire cosa significa.<BR>" +
                      "Innanzitutto si crea una variabile di nome \"durata\" a cui viene assegnato " +
                      "il valore 0, e si definisce un trigger che, quando riceve dal mud il testo " +
                      "<I>Sei circondato da un'aura bianca</I> assegna a \"durata\" il valore 5 " +
                      "(supponendo che l'incantesimo duri 5 ore), e " +
                      "ad una variabile chiamata \"stato\" (che potrebbe essere visualizzata sulla " +
                      "barra di stato del client) il valore \"S\", che indica che in questo momento " +
                      "siamo soggetti all'incantesimo Sanctuary. A questo punto parte un conteggio " +
                      "che diminuisce la durata dell'incantesimo di una unit&agrave; ogni minuto e " +
                      "mezzo (a cui equivale, ipoteticamente, la durata di un'ora nel gioco). Quando " +
                      "manca un'ora soltanto allo scadere dell'incantesimo, un messaggio ci informa " +
                      "per darci la possibilit&agrave; di prendere le giuste precauzioni. Un ulteriore " +
                      "trigger controlla lo scadere dell'incantesimo, e quando questo si verifica " +
                      "azzera la durata (visto che non si &egrave; pi&ugrave; sotto il suo effetto), " +
                      "e varia lo stato del giocatore.<BR>"
                      "<BR><SUP><FONT color=\"#FF0000\">*</FONT></SUP>&nbsp;&nbsp;L'esempio &egrave; " +
                      "generico, cio&egrave; non fa riferimento alla sintassi di un particolare " +
                      "client, ma vuole solo dare un'idea del funzionamento della propriet&agrave;" +
                      "in esame.<BR>";
 var programmazioneheight = 400;

 var msp = "Il Mud Sound Protocol &egrave; una caratteristica molto divertente, che " +
           "permette al client di interpretare delle stringhe particolari inviate dal " +
           "mud, ed associare ad alcune azioni di gioco dei suoni predefiniti.<BR>" +
           "E' importante ricordare due cose:<BR>" +
           "1. l'implementazione di questa possibilit&agrave; &egrave; pienamente " +
           "affidata ai programmatori del mud, al client spetta solo il compito di " +
           "interpretare i comandi;<BR>" +
           "2. affinch&egrave; i suoni vengano eseguiti correttamente &egrave; necessario " +
           "installare il set di suoni (messo a disposizione dallo staff del mud) sul " +
           "proprio computer.<BR>" +
           "Per avere ulteriori informazioni in merito si pu&ograve; dare un'occhiata al " +
           "sito della <A href=\"http://www.zuggsoft.com/zmud/msp.htm\" target=\"_new\">Zuggsoft</A>.<BR>" +
           "Nel caso in cui si voglia a tutti i costi rendere il gioco pi&ugrave; " +
           "realistico anche non avendo a disposizione l'MSP, ricorrendo ai trigger si " +
           "potrebbe associare un suono al pattern di ogni azione, sempre ammesso che " +
           "il client consenta l'utilizzo dei trigger e dei suoni.<BR>";
 var mspheight = 400;


 var nome=termine;
 var helpmsg=eval(termine);
 var h=eval(termine+"height");

 popup = window.open("", "popHelp", "width=500,height=400,toolbar=no,directories=no,status=no,scrollbars=yes,resizable=no");

 popup.document.writeln("<HTML><HEAD>");
 popup.document.writeln("<TITLE>Propriet&agrave; - " +nome.toUpperCase()+ "</TITLE>");
 popup.document.writeln("<LINK rel=\"stylesheet\" type=\"text/css\" href=\"stile.css\">");
 popup.document.writeln("</HEAD><BODY>");
 popup.document.writeln("<P align=\"center\" class=\"mtitolo\">" +nome.toUpperCase()+ "</P>");
 popup.document.writeln("<P align=\"justify\" class=\"commento\">");
 popup.document.writeln(helpmsg);
 popup.document.writeln("</P><BR><BR>");
 popup.document.writeln("<SMALL><CENTER><A href=\"javascript:self.close()\">Chiudi la finestra</A></CENTER></SMALL>");
 popup.document.writeln("</BODY></HTML>");
 popup.document.close();

 if (popup != null)
 {
  if (popup.opener == null)
    popup.opener = self
 }
 return;

}



