Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorials:schreibstile

Schreibstile Vergleich

Im Laufe der Zeit hat sich nicht nur der Umgang mit den Funktionen und die Vielfalt an Lösungsmöglichkeiten weiterentwickelt, sondern auch der Schreibstil. Dies ist einfach eine Folge der Tatsache das man bestimmte Dinge einfacher, kürzer und nicht so schreibintensiv gestalten wollte. Zudem war das Ziel es lesbarer zu machen damit man als Scripter leichter den Überblick behält/behalten kann. Jedoch sorgt der eine wie der andere Schreibstil auch oft für Verwirrung und Diskussion. Hier soll es nicht darum gehen welcher Schreibstil der bessere ist, sondern nur darum aufzuzeigen in welchen Bereichen er für Erleichterung sorgen kann und darum zu erklären wie man von dem sogenannten „Alten Schreibstil“ zu dem sogenannten „Neuen Schreibstil“ kommt.

Gegenüberstellung "Alter"/"Neuer" Schreibstil

Wir bedienen uns dabei zum einen des ScriptExamples das BB uns mit dem ersten wie zweiten AddOn mitgeliefert hat.
Ihr findet hier die Gegenüberstellung der einzelnen Funktionen im „alten“ wie „neuen“ Schreibstil als PDF-Dokument mit
einigen Erläuterungen dazu.

Vom "Alten" zum "Neuem" Briefing



Die neue Form ist nichts anderes wie die alte. Wenn man sich einmal damit auseinander gesetzt hat ist sie sogar besser zu handhaben und darüber hinaus auch viel platzsparender.

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function CreatePreludeBriefing()  -- wie das Kind heißt ist egal. Nur so weiß man welches Briefing das ist.
 
    preludeBriefing = {}  -- Das ist auch egal wie es heißt. Nur so geschrieben ist es eine globale Variable, 
                            -- die immer Speicherplatzt belegt besser : local preludeBriefing = {}
-- bis hier sind beide formen gleich    
 
    local page = 0 -- hier wird eine locale Variable angelegt, die page heißt
 
    page = page + 1  -- bei jeder neuen Seite müssen wir die Variable um eins erhöhen.
    preludeBriefing[page]              =  {} -- hier machen wir nichts anderes wie table.insert(preludeBriefing,{})
    preludeBriefing[page].title        =  "Dario"  -- ab hier kommen einige Variable zu dem table preludeBriefing[page]
    preludeBriefing[page].explore      =  1000
    preludeBriefing[page].text         =  "Dann schaun wir mal"
    preludeBriefing[page].position     =  GetPosition("Dario")
    preludeBriefing[page].dialogCamera =  true
    preludeBriefing[page].quest        =  {}  --hier wird eine Variable des tables wieder ein table
    preludeBriefing[page].quest.id     =  1   -- ab hier werden dem table preludeBriefing[page].quest neue Variable zugewiesen
    preludeBriefing[page].quest.type   =  MAINQUEST_OPEN
    preludeBriefing[page].quest.title  =  "1. Auftrag"
    preludeBriefing[page].quest.text   =  "Sucht euren Vater auf!"
    preludeBriefing[page].action       = function() StartDelayFunc( function() IrgendEine(); end ) end;  -- hier noch ne Action
 
    page = page + 1  -- Noch ne Seite.
    preludeBriefing[page]              =  {} 
    preludeBriefing[page].title        =  "Ottokar"  
    preludeBriefing[page].text         =  "Anna ick liebe dir"  
 
    StartBriefing(preludeBriefing)  -- Und jetzt ab die Post
 
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


nach Oben

Ein bischen überarbeitet sieht es so aus:


--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function CreatePreludeBriefing() 
    local preludeBriefing = {}  
    local page = 0 
 
    page = page + 1  
    preludeBriefing[page] =  {  -- hier habe ich das } geklaut
         title        =  "Dario",  -- hier kommen überall Kommas hin
         explore      =  1000,
         text         =  "Dann schaun wir mal",
         position     =  GetPosition("Dario"),
         dialogCamera =  true,
         quest        =  { -- hier habe auch ich das } geklaut
                          id     =  1, -- Kommas nicht vergessen
                          type   =  MAINQUEST_OPEN,
                          title  =  "1. Auftrag",
                          text   =  "Sucht euren Vater auf!", -- Das Komma muß nicht sein, weil es der Letzte Eintrag ist
						  }, -- hier ist das }, das ich bei Quest weggenommen habe
         action       = function() StartDelayFunc( function() IrgendEine(); end ) end;   
    }  -- hier ist es wieder von ganz oben
 
    page = page + 1  -- Noch ne Seite.
    preludeBriefing[page] =  { 
              title        =  "Ottokar",  
              text         =  "Anna ick liebe dir", 
                           } 
 
 
    StartBriefing(preludeBriefing)  -- Und jetzt ab die Post
 
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

==== Ist aber immer noch vollkommen identisch. ====

nach Oben

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function CreatePreludeBriefing() 
    local preludeBriefing = {}  
    table.insert(preludeBriefing , {  -- Hier hängen wir an das table PreludeBriefing die seite oben an
         title        =  "Dario",  
         explore      =  1000,
         text         =  "Dann schaun wir mal",
         position     =  GetPosition("Dario"),
         dialogCamera =  true,
         quest        =  { 
                          id     =  1, 
                          type   =  MAINQUEST_OPEN,
                          title  =  "1. Auftrag",
                          text   =  "Sucht euren Vater auf!", 
						  }, 
         action       = function() StartDelayFunc( function() IrgendEine(); end ) end;   
    } )
    table.insert(preludeBriefing , { 
              title        =  "Ottokar",  
              text         =  "Anna ick liebe dir", 
                           } )
 
    StartBriefing(preludeBriefing)  -- Und jetzt ab die Post
 
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Immer noch gleich nur jetzt fehlt schon die Variable **page**

Was macht diese Zeile:

AP = function(_page) 
         table.insert(briefing, _page); 
         return _page; 
     end

Das kann man auch so schreiben

AP = function(_page) table.insert(briefing, _page); return _page; end

Hier wird der Variablen AP eine Funktion zugewiesen. Jedes mal wenn AP{irgendwas drin} aufgerufen wird, so ist das Irgendwas die _page. Das wird mit table.insert an das vorhandene briefing angehängt. Dann wird das irgendwas nochmal mit return zurückgegeben. Also nichts anderes wie in der alten Form, nur viel eleganter.

Da wir jetzt eine schöne Funktion haben, lassen wir diese das table.insert machen.

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function CreatePreludeBriefing() 
    local preludeBriefing = {}  
    local AP = function(_page) table.insert(preludeBriefing, _page); return _page; end -- local gemacht
    AP{  -- jetzt übernimmt AP die Aufgabe mit dem table insert
         title        =  "Dario",  
         explore      =  1000,
         text         =  "Dann schaun wir mal",
         position     =  GetPosition("Dario"),
         dialogCamera =  true,
         quest        =  { 
                          id     =  1, 
                          type   =  MAINQUEST_OPEN,
                          title  =  "1. Auftrag",
                          text   =  "Sucht euren Vater auf!", 
						  }, 
         action       = function() StartDelayFunc( function() IrgendEine(); end ) end;   
    } 
	local variable = AP{  -- noch ne Seite
                        title        =  "Ottokar",  
                        text         =  "Anna ick liebe dir",
	                   }
    -- jetzt haben wir diese Seite zusätzlich in einer Variablen
    StartBriefing(preludeBriefing)  -- Und jetzt ab die Post
 
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

nach Oben

Und hier noch eine Vorlage zum Kopieren


Wenn man am Anschluß des Briefings nichts machen will, kann man die briefing.finished auch kompl. weg machen. Es schadet aber auch nichts, wenn man sie stehen läßt. Belegt dann nur Speicherplatz.

Einfach ausfüllen und wegschneiden, was nicht gebraucht wird. Hier der Code für Briefings mit allem drin, was gebraucht wird.

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function Briefing() -- Eindeutigen Namen geben
    local briefing = { noEscape = true };  -- hieru gehört noch der Code dazu siehe Briefings-Erweiterungen
    local AP = function(_page) table.insert(briefing, _page); return _page; end 
    AP{  title        =  "",  
         text         =  "",
         position     =  GetPosition(""),
         explore      =  ,
         dialogCamera =  true,
         quest        =  { 
                          id     =  , 
                          type   =  ,
                          title  =  "",
                          text   =  "", 
						  }, 
         action       = function() end,   
    } 
 
    AP{  title        =  "",  
         text         =  "",
         position     =  GetPosition(""),
         explore      =  ,
         dialogCamera =  true,
         quest        =  { 
                          id     =  , 
                          type   =  ,
                          title  =  "",
                          text   =  "", 
						  }, 
         action       = function() end,   
    } 
    briefing.finished = function()
 
                        end; 
    StartBriefing(briefing)  
end
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

nach Oben

Siehe Scriptverwendungen
tutorials/schreibstile.txt · Zuletzt geändert: 2021/09/18 19:16 (Externe Bearbeitung)