Guida a RunUO - Mono

Da Tomo della conoscenza - UOShards Wiki.

Jump to: navigation, search

Contents

Premessa

Questa guida richiede le seguenti conoscenze/prerequisiti:

  • Conoscenza dell'ambiente linux
  • Almeno Mono 1.9.1 ( è la versione più "indietro" trovabile sul sito. )
  • Un minimo di elasticità mentale nell'assegnare i parametri

Compilare il Core

  • Creiamo un file SH con il seguente contenuto
gmcs -optimize -unsafe -t:exe -out:RunUO.exe -win32icon:runuo.ico -d:MONO -r:System.Drawing -reference:Ultima.dll -recurse:*.cs
Analizziamo i parametri inseriti:
  • -optimize -> Ottimizza il codice (obbligatorio)
  • -unsafe -> Permette l'utilizzo di codice unsafe, di cui runuo fa uso. (obbligatorio)
  • -t:exe -> Specifica il tipo di compilazione che stiamo facendo (obbligatorio)
  • -out:RunUO.exe -> Nome e percorso che avrà il codice compilato. ( Esempio di altra configurazione: -out:/home/kons/uo_lnx/Server.exe )(obbligatorio)
  • -win32icon:runuo.ico -> L'icona che avrà l'eseguibile compilato
  • -d:MONO -> Stiamo usando Mono (obbligatorio)
  • -r:System.Drawing -> I namespace di windows che dobbiamo includere che MONO non ha integrato. In questo caso la richiesta di Drawing è dovuta all'utilizzo della dll Ultima, vedi passo successivo (opzionale)
  • -reference:Ultima.dll -> Aggiunge referenze al progetto, in questo caso la dll dell'espansione ML creata da Malganis.(opzionale)
  • -recurse:*.cs -> il tipo di files che dovranno essere compilati.(obbligatorio)

Impostare libz

Mono non ha bisogno delle due dll zlib32/zlib64 in quanto ha già integrato in sè le dll di compressione. Nelle ultime versioni queste dll han cambiato nome. Ecco un modo semplice e veloce per reindirizzare Runuo alle dll corrette:

  • Create (nella cartella dell'eseguibile) un file del tipo
RunUo.exe.config

dove RunUo è il nome che avete dato al vostro eseguibile ( vedi sezione -out, paragrafo precedente ) all'interno del file digitate:

<configuration>
  <dllmap dll="libz" target="//usr/lib/libz.so.1.2.3.3" />
</configuration>
Analizziamo il contenuto:
  • <configuration> </configuration> -> il codice contenuto fra questi statement è di configurazione.
  • <dllmap /> -> Vogliamo cambiare un indirizzamento dll
  • dll"libz" -> dll di origine, quella specificata in RunUO
  • target="//usr/lib/libz.so.1.2.3.3" -> Percorso della dll a cui vogliamo reindirizzarci (libz.so.1.2.3.3).
per trovare con comodità questo percorso digitate su terminale:
$ mono -V
$ locate libz

Come faccio a sapere se devo cambiare percorso alla dll?

  • Molto semplicemente se provate a fare qualsiasi cosa che non sia camminare in game il server andrà in crash.

Eseguire RunUO

Da terminale digitate

mono RunUO.exe
dove RunUO.exe è l'eseguibile compilato ( vedi -out primo paragrafo )
Personal tools