PBeM-Spiele
http://www.pbem-spiele.de/forum/

allgemeine Fragen zu Vorlage
http://www.pbem-spiele.de/forum/viewtopic.php?f=16&t=3321
Seite 3 von 3

Autor:  Thoran1 [ 07.08.2016 16:15 ]
Betreff des Beitrags:  Re: allgemeine Fragen zu Vorlage

Hai!

Ich mache das in meinen Skripten wie folgt (z.B. in einer Funktion, die automatisch einen Text als Regionsbotschaft erzeugt):

Code:
#func BotschaftAnRegion $text
{
   ; Sendet $text als Regionsbotschaft. Zeilenumbrüche werden automatisch
   ; erzeugt und der Text wird korrekt nach Eressearegeln umgebrochen.
   ;
   ; Parameter:
   ;  $text  : ANY
   ;  RETURN : BOOLEAN

   #var $bef
   #var $result

   ; Parameter überprüfen und im Fehlerfall FALSE zurückgeben
   #if ''==$text
   {
      #call Fehler 'Regionsbotschaft: Kein Text angegeben' TRUE
      #return FALSE
   }

   ; Befehl generieren
   $bef='BOTSCHAFT AN REGION '+QUOTE+$text+QUOTE
   $result=BefehlEintragen(UNIT.Nummer,$bef)

   ; Ergebnis zurückgeben
   #return $result
}


Die Konstante QUOTE ist dabei wie folgt zu definieren (ich habe dafür ein eigenes vms-Modul, das alle notwendigen Konstanten enthält):
Zitat:
#const QUOTE '\34'
#const SINGLEQUOTE '\39'
#const DOUBLEBACKSLASH '\\'
#const AT '\64'


Gruß,
Thorsten

Autor:  Andunier [ 12.08.2016 22:16 ]
Betreff des Beitrags:  Re: allgemeine Fragen zu Vorlage

Danke für den schnellen Hinweis. Das werde ich direkt bei mir mal versuchen. Und die Idee, die Konstanten auszulagern finde ich auch elegant.

Autor:  Andunier [ 13.08.2016 21:47 ]
Betreff des Beitrags:  Re: allgemeine Fragen zu Vorlage

Der "Umweg" über die Konstante mit der ASCII Nummer klappt wunderbar. Habe es diese Woche aber auch nochmal mit "|" versucht, allerdings gedreht:
Code:
#forever { BOTSCHAFT REGION '|Willkommen in '+region.Name+', wir grüßen Euch!|' }
Der Unterschied ist also, dass der Pipe diesmal innerhalb der einfachen Hochkommas steht.
Das Ergebnis:
Code:
BOTSCHAFT REGION  Willkommen~in~Sovengarde,~wir~grüßen~Euch!
8)

Autor:  Erchamion [ 11.04.2017 12:07 ]
Betreff des Beitrags:  Re: allgemeine Fragen zu Vorlage

Hiho,

ich habe in diesem Zusammenhang auch eine Frage, da ich auch die Skripte von Roman Benesch noch verwende, wenn auch mittlerweile in leicht abgewandelter Form. :wink:

Thoran1 hat geschrieben:
Ich mache das in meinen Skripten wie folgt (z.B. in einer Funktion, die automatisch einen Text als Regionsbotschaft erzeugt):

Code:
#func BotschaftAnRegion $text
{
   ; Sendet $text als Regionsbotschaft. Zeilenumbrüche werden automatisch
   ; erzeugt und der Text wird korrekt nach Eressearegeln umgebrochen.
   ;
   ; Parameter:
   ;  $text  : ANY
   ;  RETURN : BOOLEAN

   #var $bef
   #var $result

   ; Parameter überprüfen und im Fehlerfall FALSE zurückgeben
   #if ''==$text
   {
      #call Fehler 'Regionsbotschaft: Kein Text angegeben' TRUE
      #return FALSE
   }

   ; Befehl generieren
   $bef='BOTSCHAFT AN REGION '+QUOTE+$text+QUOTE
   $result=BefehlEintragen(UNIT.Nummer,$bef)

   ; Ergebnis zurückgeben
   #return $result
}


Die Konstante QUOTE ist dabei wie folgt zu definieren (ich habe dafür ein eigenes vms-Modul, das alle notwendigen Konstanten enthält):
Zitat:
#const QUOTE '\34'
#const SINGLEQUOTE '\39'
#const DOUBLEBACKSLASH '\\'
#const AT '\64'



Welche Ausgabeform nutzt Du? Ich verwende Vorlage, um meinen CR zu bearbeiten und einen neuen CR auszuspucken. Doch da funktioniert das leider nicht mit den Anführungszeichen. Jedes Mal werden die bei der CR-Erzeugung von Vorlage durch Leerzeichen ersetzt. Lasse ich Vorlage eine reine Befehlsdatei erstellen, funktioniert das mit den Anführungszeichen. Aber bei der Befehlsdatei habe ich den Nachteil, dass ich da wieder Hand anlegen muss, um die Zugvorlage zum CR hinzuzufügen. Außerdem geht mir die automatische Einheitenbestätigung über den #tag-Befehl verloren.

Weiß da jemand Rat für mich und meine CRs?

Beste Grüße und vielen Dank im Voraus
Martin

Autor:  Erchamion [ 16.04.2017 00:24 ]
Betreff des Beitrags:  Re: allgemeine Fragen zu Vorlage

So, aus Zufall habe ich entdeckt, dass der Eressea-Server auch mit Hochkommata als Textbegrenzern klar kommt.

Soll heißen:
Wenn man Vorlage verwendet, um einen CR zu erzeugen, so kann man auch Hochkommata als Ersatz für Anführungszeichen verwenden und somit automatische Benennungen durchführen:

Code:
BENENNE EINHEIT '\''+$Name+'\''


Allerdings dürfte es schwierig werden, in diesem Beispiel $Name noch ein Hochkomma enthalten zu lassen. Aber das lässt sich für automatische Befehle sicher vermeiden. Und somit ist Vorlage weiterhin auch als CR-Exporteur ohne zusätzliches Handanlegen brauchbar.

Beste Grüße
Martin

Seite 3 von 3 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/