SetupExpedition übersteht speichern/laden nicht?

» Siedler Map Source Forum » Mapping » SetupExpedition übersteht speichern/laden nicht?

Seiten: 1

fritz_98
#1
27.05.2009 12:52
Beiträge: 472

SetupExpedition übersteht speichern/laden nicht?

Hi!
Dem Upload meiner neuen Map steht eigentlich nur noch eins im Wege, und zwar:
Nach dem man am Amfang speichert und später oder anschließend das Spiel wieder lädt, funktioniert ein Briefing nicht, das mit SetupExpedition() gestartet wird. Wie kann man dieses Problem beheben? Hatte schonmal jemand ein ähnliches Problem, wenn ja, in welchem speziellen Fall?

Danke im Voraus.

Gruß
Fritz

Flodder
#2
27.05.2009 14:16
Beiträge: 2608

Zitat von fritz_98:
Hi!
Dem Upload meiner neuen Map steht eigentlich nur noch eins im Wege, und zwar:
Nach dem man am Amfang speichert und später oder anschließend das Spiel wieder lädt, funktioniert ein Briefing nicht, das mit SetupExpedition() gestartet wird. Wie kann man dieses Problem beheben? Hatte schonmal jemand ein ähnliches Problem, wenn ja, in welchem speziellen Fall?
Danke im Voraus.
Gruß
Fritz


Moin fritz_98,
Du startest ein Briefing mit diesem Aufruf?

SetupExpedition()

??
Hab ich das jetzt richtig verstanden?
Kannst bitte mal den Block einstellen?
Den Aufruf auch?
Gruss
Flodder

____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.

fritz_98
#3
27.05.2009 14:38
Beiträge: 472

Mach ich:

function Briefing()
    EnableNpcMarker(GetEntityId("major1"))
	local random1 = math.random(1,7)
  if ritter == 1 then
  local npc = {
   EntityName = "ritter1",
   TargetName = "major1",
   Distance = 700,
   Callback = function()
   ... -- Die Briefing-Seiten
  	StartBriefing(briefing)
	Camera.RotSetAngle(-114)
	   end,
   }
   SetupExpedition(npc)
  end
end


Wenn jetzt Syntaxfehler aus Versehen reingekommen sind, macht das (hoffentlich) nichts, im Spiel bzw. Skript isses richtig und funktioniert, solang man nicht Abspeichert/Lädt (im Spiel)...

LG
Fritz

PS: Ich glaube, ich hab mich oben etwas undeutlich ausgedrückt... Gestartet wirds natürlich mit StartBriefing()
Aber SetupExpedition() ist aktiv, bis es so weit ist...

Flodder
#4
27.05.2009 14:59
Beiträge: 2608

Zitat von fritz_98:
Mach ich:

function Briefing()
    EnableNpcMarker(GetEntityId("major1"))
	local random1 = math.random(1,7)
  if ritter == 1 then
  local npc = {
   EntityName = "ritter1",
   TargetName = "major1",
   Distance = 700,
   Callback = function()
   ... -- Die Briefing-Seiten
  	StartBriefing(briefing)
	Camera.RotSetAngle(-114)
	   end,
   }
   SetupExpedition(npc)
  end
end


Wenn jetzt Syntaxfehler aus Versehen reingekommen sind, macht das (hoffentlich) nichts, im Spiel bzw. Skript isses richtig und funktioniert, solang man nicht Abspeichert/Lädt (im Spiel)...

LG
Fritz

PS: Ich glaube, ich hab mich oben etwas undeutlich ausgedrückt... Gestartet wirds natürlich mit StartBriefing()
Aber SetupExpedition() ist aktiv, bis es so weit ist...



Ok, so wie es aussieht, fehlt nach dem Speichern die locale Variable. Versuch mal einzukreisen: Wird nach Wiederaufruf des Speicherstandes wenigstens der Marker gesetzt? Also Schritt für Schritt rantasten.

____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.

fritz_98
#5
27.05.2009 15:03
Beiträge: 472

Ja, der Marker wird angezeigt. Das mit der lokalen Variable scheint ein guter Gedanke zu sein. Allerdings verwende ich schon in den letzten 2 'Baron'-Maps lokale Variablen und bis jetzt hat sich noch keiner über derartige Fehler beschwert...

Könnte man eigentlich... die locals einfach weglassen, sodass die Variable 'npc' immer wieder überschrieben wird? Oder würde das zu Problemen führen?

Fritz

Flodder
#6
27.05.2009 15:30
Beiträge: 2608

Zitat von fritz_98:
Ja, der Marker wird angezeigt. Das mit der lokalen Variable scheint ein guter Gedanke zu sein.
Fritz



Ok. Ich denke:
Du kannst definitiv davon ausgehen dass die locale Variable nicht mehr vorhanden ist.

Vorschlag:
Herauskristallisieren, wieweit die Funktion greift. Als Ausgabe kann eine einfache Message diehnen:

Abschnittsweise also z.B. so:

function Briefing()
   EnableNpcMarker(GetEntityId("major1"))
   local random1 = math.random(1,7)
   if ritter == 1 then
   Message("Bis hier klappt es")
   end
end



...und dann immer einen Schritt weiter.
PS
Ein Briefing liegt eigentlich immer local.

____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.

fritz_98
#7
27.05.2009 20:14
Beiträge: 472

Das 'local random...' hab ich raus, da sie wahrscheinlich sowieso nicht funktioniert hätte. Die Message kam (was irgendwie kein Wunder war...)

Ein Briefing liegt immer local, schon klar, aber wenn es sofort gestartet wird, bzw. über ein npc-Table, gibt das keine Probleme Aber auf die 'altmodische' Art ein npc-Table zu generieren, würde nichts bringen, da die Ansprechpartner ja normale Soldateneinheiten sind.

Aber anstatt die ganze Zeit herumzutasten, würde es doch eigentlich doch auch reichen (und es wäre viel einfacher) die locals weg, und dann die Tables durchnummerieren (npc1,npc2npc3...)

Fritz

PS: Ich probiers jetzt noch, wenn die 'local math.random' drin ist
Edit: Die Randomvariable hat's 'überlebt' die Message wurde ausgegeben... *verwirrtdiestirnrunzelunddaskomischfind*

Dieser Beitrag wurde von fritz_98 am 27.05.2009 um 20:24 editiert.

fritz_98
#8
28.05.2009 16:58
Beiträge: 472

Hab nu alles durch globale Variablen ersetzt und HURRA!, es funzt!
Allerdings erst, als ich die immer noch lokale Variable in die Callback-Function gepackt habe. Auch wenn ich nicht verstehe, wie das dann in der Testmap funktionieren konnte, merk ich mir einfach:

Wenn man lokale Varbis nimmt, das Spiel dann nach dem Speichern spinnt


Hab ich das nicht schön gesagt?
Also liebe Kinder: Lokale Varablen können böse werden, wenn man versucht, sie abzuspeichern
Das hat Flodder zwar schon vorher gewusst, aber ich hab mir den schönen Merksatz ausgedacht. Tja, Teamwork

LG
Fritz

Seiten: 1

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum