[[http://www.siedler-games.de|{{:sg-link.jpg|}}]]
====== Vergleich der Formen altes/neues 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
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\\ [[#vergleich_der_formen_altes_neues_briefing|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. \\ \\
[[#vergleich_der_formen_altes_neues_briefing|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 schreibenAP = 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
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[[#vergleich_der_formen_altes_neues_briefing|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. [[tutorials:briefings-erweiterungen#code|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
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[[#vergleich_der_formen_altes_neues_briefing|nach Oben]]
\\
==Siehe auch==
* [[reference:briefing]]
* [[tutorials:kurzbriefings|Kurzbriefings]]
* [[tutorials:normale_briefings]]
* [[tutorials:briefings-erweiterungen]]
* [[tutorials:briefings_mit_auswahlmoeglichkeit]]
* [[reference:createnpc|CreateNPC]]
\\
FIXME
\\
\\
[[:tutorials:index|Zur Tutorial-Übersicht]]