Ho scritto questo script per un numero infinito di ragioni che non sto qui ad elencare. Tra le altre (e vi assicuro che ce ne sono molte, prima fra tutte il fatto ke, giocando in emulazione da linux, molte opzioni di razor non funzionano) c'era la necessità di liberare un pò di spazio fra le hotkey della mia tastiera. Non pensavo che questo script si rivelasse COSI' utile... ora non posso più farne a meno...
Ecco l'idea: scrivendo una frase in uo (come se si parlasse normalmente), questa verrà analizzata dallo script, che poi richiamerà una sub con lo stesso nome, se esiste. Tutte le frasi di comando devono cominciare con un punto (.), per distinguerle dal parlato normale.
Troppo complesso? Ecco degli esempi per farvi intuire le potenzialità dello script:
- Si potrebbe collegare al comando ".food" la spell create food, a ".lich" la spell lich form, perfino ".night" a nightside! Io ho mappato un sacco di incantesimi per i quali preferivo risparmiarmi hotkeys (tutte le magie di evocazione, tutte quelle di morph, diverse di utilità, alcune di "cura intelligente", nonkè un sacco di combo tipo exploflame, anche se lo script nn è proprio l'ideale in pvp per via di piccoli delay...)
- Si potrebbero collegare a diversi comandi tutti vari gump di UO. Ad esempio: ".paperdoll" (apre il paperdoll), ".backpack" (apre il backpack), ".journal" (apre il journal), eccetera.
- Si potrebbe collegare a ".lumberscorna" lo script di lumberscorna (occorrono piccole modifiche a lumberscorna stesso, ma nulla di eccezionale). Similmente si può impostare ".minerscorna".
- Si potrebbe collegare ".recall 10" a "recall alla decima runa del runebook", se sapete come scriptarlo, o se avete già uno script che lo fa (notare come lo script interpreti correttamente anche il passaggio di argomenti alle sub).
Insomma, non c'è davvero limite a ciò che ci si può inventare! Se sapete scriptare anche solo un pochettino, apprezzerete moltissimo questo script! Chi, invece, non sa scriptare, troverà estremamente semplice fare del buon sano "copia e incolla".
Ecco come funziona.
Lo script si divide in due parti:
- CommandServer.txt: fa tutto il "lavoro sporco" dietro le quinte. E' il file che dovete avviare da EasyUO per far funzionare la magia.
- Commands.txt: contiene tutte le sub da collegare al parlato di UO.
Entrambi i file vanno scaricati nella cartella di EasyUO.
Supponiamo, ad esempio, di voler collegare create food al comando ".food". Inseriamo il seguente codice in un punto qualsiasi del file "Commands.txt":
Supponiamo di voler aggiungere anche Lich Form, apri paperdoll e LumberScorna. Il file risultante sarà:
Questo codice è *davvero* banale! Chiunque sa scriptare lo sa! Chi non sa scriptare, può comunque dare un'occhiata alla documentazione di "event macro", per rendersi conto di quali codici utilizzare per altri incantesimi.
A questo punto, per far funzionare tutto, aprite da EasyUO il file "CommandServer.txt" ed avviatelo ("Commands.txt" non va avviato: viene richiamato automaticamente). Vedrete comparire il messaggio "UO Command Server started".
Ora vi basterà scrivere ".food" in UO per osservare il vostro pg che crea del cibo (o che, quantomeno, ci prova).
Subito dopo scrivete ".lich", e lo vedrete provare a trasformarsi in Lich!
Una volta avviato, CommandServer resterà in background fino a quando non lo interromperete. Sarà un supporto costante per il vostro gioco.
Qui di seguito vi fornisco il codice di "CommandServer.txt", assieme ad una semplice versione di "Commands.txt", che ha alcuni incantesimi già mappati.
Nota: Ho fatto alcune modifiche (soprattutto a "Commands.txt") perché le mie versioni degli script sono fortemente personalizzate. Se riscontrate errori, vi prego di comunicarmelo.
Bug conosciuti:
- A volte un comando viene eseguito due volte anzikè una. Non capisco il perché, ma ci sto lavorando...
- Se una sub va in loop, l'intero server va in loop. Questo non è un bug dovuto al CommandServer, ma alle singole sub!!! Attenzione a non scrivere sub che si bloccano! Mettete sempre dei timeout, se sapete farlo!
Ecco l'idea: scrivendo una frase in uo (come se si parlasse normalmente), questa verrà analizzata dallo script, che poi richiamerà una sub con lo stesso nome, se esiste. Tutte le frasi di comando devono cominciare con un punto (.), per distinguerle dal parlato normale.
Troppo complesso? Ecco degli esempi per farvi intuire le potenzialità dello script:
- Si potrebbe collegare al comando ".food" la spell create food, a ".lich" la spell lich form, perfino ".night" a nightside! Io ho mappato un sacco di incantesimi per i quali preferivo risparmiarmi hotkeys (tutte le magie di evocazione, tutte quelle di morph, diverse di utilità, alcune di "cura intelligente", nonkè un sacco di combo tipo exploflame, anche se lo script nn è proprio l'ideale in pvp per via di piccoli delay...)
- Si potrebbero collegare a diversi comandi tutti vari gump di UO. Ad esempio: ".paperdoll" (apre il paperdoll), ".backpack" (apre il backpack), ".journal" (apre il journal), eccetera.
- Si potrebbe collegare a ".lumberscorna" lo script di lumberscorna (occorrono piccole modifiche a lumberscorna stesso, ma nulla di eccezionale). Similmente si può impostare ".minerscorna".
- Si potrebbe collegare ".recall 10" a "recall alla decima runa del runebook", se sapete come scriptarlo, o se avete già uno script che lo fa (notare come lo script interpreti correttamente anche il passaggio di argomenti alle sub).
Insomma, non c'è davvero limite a ciò che ci si può inventare! Se sapete scriptare anche solo un pochettino, apprezzerete moltissimo questo script! Chi, invece, non sa scriptare, troverà estremamente semplice fare del buon sano "copia e incolla".
Ecco come funziona.
Lo script si divide in due parti:
- CommandServer.txt: fa tutto il "lavoro sporco" dietro le quinte. E' il file che dovete avviare da EasyUO per far funzionare la magia.
- Commands.txt: contiene tutte le sub da collegare al parlato di UO.
Entrambi i file vanno scaricati nella cartella di EasyUO.
Supponiamo, ad esempio, di voler collegare create food al comando ".food". Inseriamo il seguente codice in un punto qualsiasi del file "Commands.txt":
codice:
sub food ; Il nome della sub va scritto senza il punto - "sub .food" è errato. event macro 15 1 ; corrisponde a "CastSpell Create Food". return
codice:
sub food ; Il nome della sub va scritto senza il punto - "sub .food" è errato. event macro 15 1 ; corrisponde a "CastSpell Create Food". return sub lich event macro 15 107 ; corrisponde a "CastSpell Create Lich Form". return sub paperdoll event macro 8 1 ; corrisponde a "Open Paperdoll". return sub lumberscorna call LumberScorna.txt return
A questo punto, per far funzionare tutto, aprite da EasyUO il file "CommandServer.txt" ed avviatelo ("Commands.txt" non va avviato: viene richiamato automaticamente). Vedrete comparire il messaggio "UO Command Server started".
Ora vi basterà scrivere ".food" in UO per osservare il vostro pg che crea del cibo (o che, quantomeno, ci prova).
Subito dopo scrivete ".lich", e lo vedrete provare a trasformarsi in Lich!
Una volta avviato, CommandServer resterà in background fino a quando non lo interromperete. Sarà un supporto costante per il vostro gioco.
Qui di seguito vi fornisco il codice di "CommandServer.txt", assieme ad una semplice versione di "Commands.txt", che ha alcuni incantesimi già mappati.
Nota: Ho fatto alcune modifiche (soprattutto a "Commands.txt") perché le mie versioni degli script sono fortemente personalizzate. Se riscontrate errori, vi prego di comunicarmelo.
Bug conosciuti:
- A volte un comando viene eseguito due volte anzikè una. Non capisco il perché, ma ci sto lavorando...
- Se una sub va in loop, l'intero server va in loop. Questo non è un bug dovuto al CommandServer, ma alle singole sub!!! Attenzione a non scrivere sub che si bloccano! Mettete sempre dei timeout, se sapete farlo!
Commenta