Bild bleibt stehen

» Siedler Map Source Forum » Mapping » Bild bleibt stehen

Seiten: 1

xx1000
#1
04.06.2009 15:03
Beiträge: 143

Die Siedler DEdK: Bild bleibt stehen

Hallo zusamen
ich hab das Prblem das bei meiner Map ein Brifing is das wenn es zuende ist der Bildschirm an der Stele woich bin stehen Bleibt.
Hier is Das Briefing:

function createBriefingSchalei()  
 
  BriefingSchalei           =  {} 
  BriefingSchalei.restoreCamera      =  true 
  -- call on end of biefing 
  BriefingSchalei.finished       =   BriefingSchaleiFinished 

 function BriefingSchaleiFinished()
end

  local page = 0 

 
  -- page #1 
 
    page = page + 1 
 
   BriefingSchalei[page]         =   {} 
   BriefingSchalei[page].title      =   "Bürgermeister von Schalei" 
   BriefingSchalei[page].text      =  "Ihr seid also der der uns gewarnt hat." 
   BriefingSchalei[page].position     =   GetPosition("Schalei" ) 
    
  -- page #2 
 
    page = page + 1 
 
   BriefingSchalei[page]         =   {} 
   BriefingSchalei[page].title      =   "Bürgermeister von Schalei" 
   BriefingSchalei[page].text      =  "Alls Dank ernäne ich euch zum General. Diesen AUßENPOSTEN stell ich euch zur verfügung." 
   BriefingSchalei[page].position       =   GetPosition("hq1" ) 
	explore = 5000
    
 
  -- page #3 
 
    page = page + 1 
 
   BriefingSchalei[page]        =   {} 
   BriefingSchalei[page].title     =   "Bürgermeister von Schalei" 
   BriefingSchalei[page].text     =  "Ach ja. Alle Minen in der Gegend sollen bewacht werden. Deswegen könnt ihr jetzt schon Truppen auf der 2. Stufe rekrutieren ind hier ist auch etwas Eisen. Den Rest erklärt euch der Mentor beim Außenposten."
   BriefingSchalei[page].position    =   GetPosition("eisen" )
    dialogCamera = true
	explore = 1500
    
  -- setup table for npc 
 
    local npcSchalei        =  {} 
    npcSchalei.name         =  "Schalei" 
    npcSchalei.briefing        =  BriefingSchalei
 
  -- create npc 
 
   CreateNPC(npcSchalei) 
 
end
function BriefingSchaleiFinished()
	ChangePlayer ("hq1",1)
	ChangePlayer ("haus1",1)
	ChangePlayer ("haus2",1)
	ChangePlayer ("haus3",1)
	ChangePlayer ("haus4",1)
	ChangePlayer ("haus5",1)
	ChangePlayer ("arbeiter1",1)
	ChangePlayer ("arbeiter2",1)
	ChangePlayer ("arbeiter3",1)
	ChangePlayer ("arbeiter4",1)
	ChangePlayer ("arbeiter5",1)
	ChangePlayer ("arbeiter6",1)
	ChangePlayer ("arbeiter7",1)
	ChangePlayer ("arbeiter8",1)
	ChangePlayer ("arbeiter9",1)
	ChangePlayer ("arbeiter10",1)
	ChangePlayer ("arbeiter11",1)
	ChangePlayer ("arbeiter12",1)
	ReplaceEntity("hq1",Entities.PB_Headquarters1) -- Außenposten wird gegen Burg ausgetauscht
	SetHostile(1,3)
	SetHostile(7,2)
	SetHostile(7,3)
    SetFriendly(1,7)
	MapEditor_SetupAI(7, 0, 0, 2, "kaserne7", 0, 0)
        ActivateShareExploration(1,7,true)
kampf1()
end



Scon mal danke im voraus

xx1000

____________________
Die Kunst ist nichts Wahres ohne Aussicht auf Bares
Ich suche einen guten Scripter der für mich eine Funktion macht.
Bei Interesse mir bitte eine PN schreiben
MfG xx1000

Dieser Beitrag wurde von xx1000 am 04.06.2009 um 15:30 editiert.

fritz_98
#2
04.06.2009 15:14
Beiträge: 472

Hi xx1000,
erstmal isses schön, dass zurzeit wieder viele neue Mapper einsteigen wollen. Freut mich .

Nun zu deinem Fehler:

Unter dem

BriefingSchalei.finished = BriefingSchaleiFinished


...
Mach da mal das

function BriefingSchaleiFinished()
end


weg, das hat da ermal nix verloren .

Dann... hast du noch folgende Fehler gemacht:

explore = 5000,
dialogCamera = true,
explore = 1500


Die werden eigentlich nur falsch benutzt. Sie müssen nämlich in das Briefing-Table inegriert werden...
Also so wie folgend:

BriefingSchalei[page].explore = 5000,
BriefingSchalei[page].dialogCamera = true,
BriefingSchalei[page].explore = 1500,


Wie meinst du das eig. mit 'die Kamera bleibt stehten'? Etwa so ähmlich, wie wenn man bei mir nen Ritter wählen soll? Dann hat das meistens folgende Ursache:
In der Finished-Funktion wird etwas aufgerufen, das gar nicht existiert.
Schau nochmal nach, ob sich im Skript folgende Functionen befinden:

ActivateShareExploration()
kampf1()



Wenn das nicht weiter hilft, weiss ich allerdings nicht weiter...

Versuch mal die oben aufgelisteten Lösungsvorschläge .

LG
Fritz

xx1000
#3
04.06.2009 15:27
Beiträge: 143

Für deine hilfe schonmal danke aber
1.Alls ich das

function BriefingSchaleiFinished()
end


gelöscht habe hat bei : tst Script gestanden

LUA_ERRSYNTAX

und das ganze Scriot hat net Funkzionirt.
2.

ActivateShareExploration()
kampf1()


gibt es beide
3.Ja es ist so wie bei dir nen Ritter wälen

xx1000

____________________
Die Kunst ist nichts Wahres ohne Aussicht auf Bares
Ich suche einen guten Scripter der für mich eine Funktion macht.
Bei Interesse mir bitte eine PN schreiben
MfG xx1000

fritz_98
#4
04.06.2009 16:32
Beiträge: 472

Ich hab mir mal dein Skript in Notepad++ geladen und die von mir aufgelisteten Fehler korrigiert. Da steht jetzt nur noch "createBriefingSchalei" wurde gesetzt aber nicht verwendet.
Bedeutet soviel wie: nicht aufegrufen. Tut aber nichts zur Sache, da es der einzigste Fehler ist, den der Editor registriert. Und wenn ActivateShareExploration() und kampf1() wirklich existieren, dann mach doch einfach mal nur diese 2 Zeilen hier raus:

 function BriefingSchaleiFinished()
end


(Z. 8+9) mehr nicht, dann kommt auch keine Fehlermeldung .

Fritz

xx1000
#5
08.06.2009 06:39
Beiträge: 143

Danke
die Fehlermeldung is jetzt weg aber Das eingags und das Scalei Brifing werden irgenwie gar net gestartet
hab da sonst nichts gemacht
oder in den Brifings was anderes falsch?

xx1000

____________________
Die Kunst ist nichts Wahres ohne Aussicht auf Bares
Ich suche einen guten Scripter der für mich eine Funktion macht.
Bei Interesse mir bitte eine PN schreiben
MfG xx1000

Flodder
#6
08.06.2009 09:15
Beiträge: 2608

hi xx1000,
habe mal das ganze durcheinander in deinem Briefing logisch und funktionstüchtig in dem übersichtlicheren neuen briefingstil zusammengefasst.
Aufruf des Briefings:

EnableNpcMarker(GetEntityId("Johannes"))
JohannesBriefing1()


Das komplette Briefing mir aufruf der anschliessenden funktionen:

function JohannesBriefing1()
   local beiJohn = {
   EntityName = "Dario",
   TargetName = "Johannes",
   Distance = 600,
   Callback = function()
   LookAt("Johannes","Dario"); LookAt("Dario","Johannes")
   Camera.FollowEntity(GetEntityId("Johannes"))
   DisableNpcMarker(GetEntityId("Johannes"))
        local briefing = {}
	BRIEFING_TIMER_PER_CHAR = 1.0
	BRIEFING_ZOOMDISTANCE = 3000
	BRIEFING_ZOOMANGLE = 35
	local AP, ASP = AddPages(briefing);
	ASP("Johannes","Buergermeister von Schalei"," "..
	        "Ihr seid also der der uns gewarnt hat.")
	ASP("hq1","Buergermeister von Schalei"," "..
	        "Als Dank ernenne ich Euch zum General "..
	    "@cr und stelle Euch diesen AUSSENPOSTEN zur verfuegung.")
	AP{
        title = "Buergermeister von Schalei", 
        text = "Ach ja. Alle Minen in der Gegend sollen bewacht werden. Deswegen "..
 	    "@cr koennt ihr jetzt schon Truppen Stufe zwei rekrutieren. Hier ist auch "..
	    "@cr etwas Eisen. Den Rest erklaert Euch der Mentor beim Aussenposten.",
        position = GetPosition("eisen"),  
        action = function() 
	ChangePlayer("hq1",1)
	SetHostile(1,3)
	SetHostile(7,2)
	SetHostile(7,3)
        -- was nicht feindlich gesetzt ist, ist automatisch neutral! 
        -- SetFriendly(1,7) ist daher ueberfluessig! 
	end 
	}
	briefing.finished = function()
	for i = 1, 12 do ChangePlayer("arbeiter" ..i, 1) end 
	for i = 1,  5 do ChangePlayer("haus" ..i, 1) end 
	ReplaceEntity("hq1", Entities.PB_Headquarters1)
	MapEditor_SetupAI(7, 1, 100000, 2, "kaserne7", 0, 0)
	SetupPlayerAi( 7, {constructing = true, repairing = true, serfLimit = 10} )	
	Kampf1()
	end;
	StartBriefing(briefing);
    end	
	}
	SetupExpedition(beiJohn)
end


...das sieht doch schon mal viel übersichtlicher und geraffter aus, oder?

folgende comfort-funktionen irgendwo (...am besten am Skriptende) reinkopieren, damit AP´s und ASP´s laufen können:

function AddPages( _briefing )
    local AP = function(_page) table.insert(_briefing, _page); return _page; end
    local ASP = function(_entity, _title, _text, _dialog, _explore) return AP(CreateShortPage(_entity, _title, _text, _dialog, _explore)); end
    return AP, ASP;
end

function CreateShortPage( _entity, _title, _text, _dialog, _explore)
    local page = {
        title = _title,
        text = _text,
        position = GetPosition( _entity ),
		action = function ()Display.SetRenderFogOfWar(0) end
    };
    if _dialog then
            if type(_dialog) == "boolean" then
                  page.dialogCamera = true;
            elseif type(_dialog) == "number" then
                  page.explore = _dialog;
            end
      end
    if _explore then
            if type(_explore) == "boolean" then
                  page.dialogCamera = true;
            elseif type(_explore) == "number" then
                  page.explore = _explore;
            end
      end
    return page;
end


Vorausgesetzt die entity-namen stimmen mit den einträgen im briefing überein, müsste das jetzt laufen. Für die Umlaute brauchst du noch eine extrafunktion, daher hab ich das hier mal mit ue und ae geschrieben. für das muster ist das aber egal.
nochbesser:
arbeite mit notepad++ dann kannste umlaute umschalten und brauchst die umlautefunktion gar nicht!

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

Dieser Beitrag wurde von Flodder am 08.06.2009 um 09:27 editiert.

xx1000
#7
13.06.2009 10:39
Beiträge: 143

habs probiert aber funkzionirt rein gar nicht mehr was im

FirstMapAcsion()

steht


xx1000

____________________
Die Kunst ist nichts Wahres ohne Aussicht auf Bares
Ich suche einen guten Scripter der für mich eine Funktion macht.
Bei Interesse mir bitte eine PN schreiben
MfG xx1000

Dieser Beitrag wurde von xx1000 am 18.06.2009 um 18:55 editiert.

Seiten: 1

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

Impressum