Ausrufezeichen, aber nicht ansprechbar

» Siedler Map Source Forum » Siedler DEdK Script Forum » Ausrufezeichen, aber nicht ansprechbar

Seiten: 1

noacape
#1
28.05.2020 10:45
Beiträge: 10

Ausrufezeichen, aber nicht ansprechbar

Bei meiner Quest Map die ich momentan scripte, funktioniert das Einstiegsbriefing wie gewollt. Danach wiederholt sich die Musik jedoch nach ca. 3 Sekunden immer wieder und obwohl die Siedler ein Ausrufezeichen über dem Kopf haben, kann man sie nicht ansprechen. (Da ich Siedler vor einiger Zeit per lan auf meinen neuen Computer übertragen habe, funktioniert der lua.debugger nicht (vermute ich zumindest)
Hier noch mein Script (ist an einigen Stellen noch nicht komplett fertig) :
Ich freue mich auf Hilfe
--------------------------------------------------------------------------------
-- MapName: XXX
--
-- Author: XXX
--
--------------------------------------------------------------------------------

-- Include main function
Script.Load( Folders.MapTools.."Main.lua" )
IncludeGlobals("MapEditorTools"

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called from main script to initialize the diplomacy states
function InitDiplomacy()

SetNeutral(1,2)
SetNeutral(1,3)
SetNeutral(1,4)
SetNeutral(1,5)
SetNeutral(1,6)
SetNeutral(1,7)
SetNeutral(1,

SetHostile(2,6)
SetHostile(3,6)
SetHostile(4,6)

SetPlayerName(2,"Sir Friedrich "
SetPlayerName(3,"Sir Leopold "
SetPlayerName(4,"Sir Ferdinant "
SetPlayerName(5,"Ulrichstein"
SetPlayerName(6,"Celle"
SetPlayerName(7,"Wismar"
SetPlayerName(8,"Neutrale Bewohner"



end



--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called from main script to init all resources for player(s)
function InitResources()
-- set some resources
AddGold (1000)
AddSulfur(0)
AddIron (1000)
AddWood (1000)
AddStone (1000)
AddClay (1000)
end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called to setup Technology states on mission start
function InitTechnologies()

ForbidTechnology( Technologies.T_ThiefSabotage , 1 );
ForbidTechnology( Technologies.UP1_Market , 1);

end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start and after save game is loaded, setup your weather gfx
-- sets here
function InitWeatherGfxSets()
SetupNormalWeatherGfxSet()
end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start you should setup your weather periods here
function InitWeather()
AddPeriodicSummer(10)
end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start and after save game to initialize player colors
function InitPlayerColorMapping()
end

--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start after all initialization is done


function FirstMapAction()

ActivateBriefingsExpansion()
ColorNamen()
CreateArmyOne()
CreateArmyTwo()
CreateArmyThree()
CreateArmyFive()
PreludeBriefing()
AuftandQuest()
RenameBruecke1()
RenameBruecke2()
RenameBruecke3()
StartSimpleJob("Wehrpflicht"
StartSimpleJob("Gewonnen"
StartSimpleJob("Verloren"





-- Level 0 is deactivated...ignore
MapEditor_SetupAI(2, 3, 768, 2, "platz", 3, 0)
MapEditor_SetupAI(3, 3, 768, 3, "platz2", 3, 0)
MapEditor_SetupAI(4, 3, 768, 3, "platz3", 3, 0)
MapEditor_SetupAI(5, 0, 0, 0, "", 0, 0)
MapEditor_SetupAI(6, 3, 768, 3, "platz5", 3, 0)
MapEditor_SetupAI(7, 0, 0, 0, "", 0, 0)
MapEditor_SetupAI(8, 0, 0, 0, "", 0, 0)




SetNeutral(1,2)
SetNeutral(1,3)
SetNeutral(1,4)
SetNeutral(1,5)
SetNeutral(1,6)
SetNeutral(1,7)
SetNeutral(1,

SetHostile(2,6)
SetHostile(3,6)
SetHostile(4,6)





end

function RenameBruecke1()
local pos = GetPosition("posofbridge1"
Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge2, pos.X, pos.Y, 44108.3, 23071.2)};
if Data[1]>0 then
SetEntityName(Data[2],"bridge1"
end
end


function RenameBruecke2()
local pos = GetPosition("posofbridge2"
Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge1, pos.X, pos.Y, 64391.8, 39874.0)};
if Data[1]>0 then
SetEntityName(Data[2],"bridge2"
end
end


function RenameBruecke3()
local pos = GetPosition("posofbridge1"
Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge2, pos.X, pos.Y, 70108.3, 46371.2)};
if Data[1]>0 then
SetEntityName(Data[2],"bridge3"
end
end


function ColorNamen()
weiss = "@color:255,255,255"
orange = "@color:255,127,0"
hGruen = "@color:173,255,47"
hGelb = "@color:238,221,130"

nErz = ""..orange.." ERZÄHLER "..weiss..""
nHin = ""..orange.." HINWEIS "..weiss..""
nEin = ""..orange.." Einsiedler "..weiss..""
nEre = ""..orange.." Erec "..weiss..""
nDie = ""..orange.." Dieb "..weiss..""
nTW = ""..orange.." Torwache "..weiss..""

nWan = ""..orange.." Wanderer "..weiss..""
nLeo = ""..orange.." Leonardo "..weiss..""
nBg = ""..orange.." Bürgermeister "..weiss..""
nDor = ""..orange.." Dorfbewohner "..weiss..""
nDra = ""..orange.." Drake "..weiss..""
nAnf = ""..orange.." Anführer "..weiss..""


end

function PreludeBriefing()
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("pos1",nErz,"Die drei mächtigen Herrscher SirFriedrich von Falkenberg, SirLeopold von Degenfeld und SirFerdinant Landgraf unterdrücken schon lange die Bevölkerung.", false)
ASP("pos2",nErz," Und wer sich wiedersetzt wird dem Erdboden gleich gemacht. Der Bürgermeister von Wismar hat aus diesem Grund Drake (den er kannte) um Hilfe gebeten.", false)
ASP("posstart",nErz,"Da die Herrscher jedoch so ein großes Gebiet in ihrem Einfluss haben, hätten sie eine angreifende Armee schnell bemerkt. Und dann würden sie sich bei der Bevölkerung rächen und wären gut auf einen Kampf vorbereitet.", false)
ASP("Erec",nErz,"Deshalb war Drake ohne Armee gekommen, doch von ihm war seither nichts mehr zu hören. Also hat sich Erec auf den Weg gemacht.", false)
ASP("Erec",nErz,"Ich wünsche euch viel Glück!", true)

briefing.finished = function()

EnableNpcMarker(GetEntityId("einsiedler")
EnableNpcMarker(GetEntityId("tw1")
EnableNpcMarker(GetEntityId("leonardo")
EnableNpcMarker(GetEntityId("bürgermeister2")
EnableNpcMarker(GetEntityId("dorfbewohner")
EnableNpcMarker(GetEntityId("drake")

EinsiedlerBrief()
TorwacheBrief()
LeonardoBrief()
Buergermeister2Brief()
DorfbewohnerBrief()
DrakeBrief()





end;
StartBriefing(briefing);
end


-------------------------------------------------------Briefing----------------------------------

function DorfbewohnerBrief()
local beidorfbewohner = {
EntityName = "Erec",
TargetName = "dorfbewohner",
Distance = 500,
Callback = function()
LookAt("Erec","dorfbewohner"; LookAt("dorfbewohner","Erec"
Camera.FollowEntity(GetEntityId("dorfbewohner")
DisableNpcMarker(GetEntityId("dorfbewohner")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("dorfbewohner",nDor,"Fremder, ihr seht so aus als ob ihr das Abenteuer sucht. Genau so einer wie ihr kam vor einigen Tagen auch mal vorbei. Gestern hab ich ihn wieder gesehen: da ist er über die Brücke im Osten gelaufen", true)
ASP("Erec",nEre,"Danke, ich werde ihn mal suchen.", true)


briefing.finished = function()
DrakeQuest()
end;
StartBriefing(briefing);
end
}
SetupExpedition(beidorfbewohner)
end


function TorwacheBrief()
local beitw1 = {
EntityName = "Erec",
TargetName = "tw1",
Distance = 500,
Callback = function()
LookAt("Erec","tw1"; LookAt("tw1","Erec"
Camera.FollowEntity(GetEntityId("tw1")
DisableNpcMarker(GetEntityId("tw1")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("tw1",nTW,"Darf ich euch das Kampaner Tal und seine Prächtigen Herrscher vorstellen bevor ihr eintretet?", true)
ASP("Erec",nEre,"Ich habe nicht sonderlich viel Zeit, also...", true)
ASP("tw1",nTW,"Gut, dann sag ich euch eben nur die wichtigste Regel: Ihr seht zwar nicht so aus, aber Krieger sind hier verboten! Schon das Erforschen der Wehrpflicht wird mit dem Tod bestraft!Hahaha ", true)


briefing.finished = function()



end;
StartBriefing(briefing);
end
}
SetupExpedition(beitw1)
end



function DrakeBrief()
local beidrake = {
EntityName = "Erec",
TargetName = "drake",
Distance = 500,
Callback = function()
LookAt("Erec","drake"; LookAt("drake","Erec"
Camera.FollowEntity(GetEntityId("drake")
DisableNpcMarker(GetEntityId("drake")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("Erec",nEre, "Hey Drake mein Freund, da bist du ja! Ich habe schon länger nichts mehr von dir gehört. Was ist passiert?", true)
ASP("drake",nDra, "Erec! Es ist gut, dass du gekommen bist. Du bist meine Rettung!", true)
ASP("Erec",nEre, "Gut, aber warum bin ich deine Rettung?", false)
ASP("drake",nDra, "Ich habe einen von den Wachen abgeknallt, da hat SirFerdinant seine halbe Armee auf mich gehetzt, aber ich konnte mich glücklicherweise auf dieser Insel verstecken und hier sollte ich auch sicherheitshalber erstmal bleiben. Du solltest jedoch unbedingt schonmal mit dem Aufbau der Stadt beginnen und mit dem Bürgermeister von Wismar sprechen.", false)

briefing.finished = function()


EnableNpcMarker(GetEntityId("bürgermeister1")
Buergermeiseter1Brief()


ChangePlayer("wechsel1", 1)
ChangePlayer("wechsel2", 1)
ChangePlayer("wechsel3", 1)
ChangePlayer("wechsel4", 1)
ChangePlayer("wechsel5", 1)




end;
StartBriefing(briefing);
end
}
SetupExpedition(beidrake)
end



function Buergermeister1Brief()
local beimayor = {
EntityName = "Erec",
TargetName = "mayor",
Distance = 500,
Callback = function()
LookAt("Erec","mayor"; LookAt("mayor","Erec"
Camera.FollowEntity(GetEntityId("mayor")
DisableNpcMarker(GetEntityId("mayor")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("mayor",nBg, "Hallo, du musst Erec, der Freund von Drake sein. Ich bin der Bürgermeister von Wismar. Wie du sehen kannst brauchen wir hier dringend Hilfe. Es ist, wie du sicherlich bereits weisst, strengstens verboten, eine Armee aufzustellen - Celle hat es trotzdem gemacht - Sie werden genau wie die kleine, jetzt zerstörte Stadt im Westen, angegriffen", true)
ASP("pos3",nBg, "Wir müssen Celle helfen, aber wenn wir das tun, werden wir auch angegriffen! Und darauf habe ich keine Lust. Um ihnen aber irgendwie ungeschadet helfen zu können, haben Drake und ich diese kleine Insel auf der sich Drake momentan befindet, gefunden. Sie bietet zwar keine großen Eisen und Schwefelvorkommen, aber wenn man die Brücke hochsprengt, ist man geschützt und hätte genügend Zeit, um sich gut auf einen Kampf vorzubereiten. - und Celle wäre dann auch geschützt wenn man ihre beiden Brücken hochsprengt. Ihnen wäre damit sicherlich gut geholfen ", true)
ASP("mayor",nBg, "Dazu habe ich mir auch schon überlegt, dass man ja mit unserem Sprengmeister reden könnte. Vielleicht kann er ja helfen.", false)
ASP("Erec",nEre, "Klingt gut, ich werde ihn direkt suchen!", false)
ASP("mayor",nBg, "Ach ehe ich es vergesse noch etwas. Du solltest dich beeilen, denn wie du (links oben) siehst, dauert es nicht mehr lange bis Celle zerstört wird und alles verloren ist. Außerdem solltest du dich immer gut umsehen. Möglicherweise gibt es einige Leute, die uns helfen können!", false)

briefing.finished = function()

SetFriendly(1,7)
ActivateShareExploration(1,7, true)


EnableNpcMarker(GetEntityId("dieb")
EnableNpcMarker(GetEntityId("wanderer")

DiebBrief()
WandererBrief()

BrueckenQuest()

StartSimpleJob("BridgeDead"

end;
StartBriefing(briefing);
end
}
SetupExpedition(beimayor)


end


function DiebBrief()

local beidieb = {
EntityName = "Erec",
TargetName = "dieb",
Distance = 500,
Callback = function()
LookAt("Erec","dieb"; LookAt("dieb","Erec"
Camera.FollowEntity(GetEntityId("dieb")
DisableNpcMarker(GetEntityId("dieb")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("dieb",nDie, "Haha! Das hätte ich schon lange gemacht, aber die vermaledeiten Krieger haben mir den Sprengstoff weggenommen!", true)
ASP("dieb",nDie, "Gebt mir 5000 Schwefel und es macht mal wieder kawumm!!! ", true)

briefing.finished = function()


TW_1Tribute()




end;
StartBriefing(briefing);
end
}
SetupExpedition(beidieb)

end



function Buergermeister2Brief()
local beimayor = {
EntityName = "Erec",
TargetName = "mayor2",
Distance = 500,
Callback = function()
LookAt("Erec","mayor2"; LookAt("mayor2","Erec"
Camera.FollowEntity(GetEntityId("mayor2")
DisableNpcMarker(GetEntityId("mayor2")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("mayor2",nBg, "Hmm lass mich überlegen...nein dich kennne ich tatsächlich nicht. Darf ich dich trotzdem nach einen Gefallen fragen?", true)
ASP("Erec",nEre, "Natürlich, deswegen bin ich ja quasi gekommen.", true)
ASP("mayor2",nBg, "Super! Könntest du mir die Lehmmine und die Steinmine wieder aufbauen und einmal verbessern? Das würde mir ennorm beim Aufbau der Stadt helfen und ich könnte endlich wieder handeln. ", false)
ASP("mayor2",nBg, "Da uns die Unterdrückung nun schon so lange zermürbt, würde ich euch gerne helfen, wenn ihr einen großen Aufstand startet. Wie - muss ich mir noch überlegen, aber geht nun weiter mein Herr. Ich setzte große Hoffnungen auf euch.", false)

briefing.finished = function()

MinenQuest()
StartSimpleJob("Minen"

end;
StartBriefing(briefing);
end
}
SetupExpedition(beimayor2)


end



function LeonardoBrief()

local beileonardo = {
EntityName = "Erec",
TargetName = "leonardo",
Distance = 500,
Callback = function()
LookAt("Erec","leonardo"; LookAt("leonardo","Erec"
Camera.FollowEntity(GetEntityId("leonardo")
DisableNpcMarker(GetEntityId("leonardo")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("leonardo",nLeo, "Aaah Hallo Erec, lange ist es her seit wir uns gesehen haben. Jajaja... Ich forsche hier viel mit Schwefel, aber weil ich jetzt Eisen benötige komme ich einfach nicht weiter.", true)
ASP("leonardo",nLeo, "Es ist wie verhext, man kommt nirgendwo an Eisenverkäufer. Und das obwohl ich für die kleine Menge an Eisen gleich 10000 Schwefel geben würde!", true)

briefing.finished = function()


TW_2Tribute()




end;
StartBriefing(briefing);
end
}
SetupExpedition(beileonardo)

end


function WandererBrief()


local beiwanderer = {
EntityName = "Erec",
TargetName = "wanderer",
Distance = 500,
Callback = function()
LookAt("Erec","wanderer"; LookAt("wanderer","Erec"
Camera.FollowEntity(GetEntityId("wanderer")
DisableNpcMarker(GetEntityId("wanderer")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("wanderer",nWan, "Halt! Ich habe von eurem Plan mit den Brücken gehört! Doch was soll das bringen? Gegen drei starke Armeen könnt ihr doch niemals bestehen!", true)
ASP("wanderer",nWan, "Knöpft euch Sir Ferdinant Landgraf lieber später vor! Wenn er nichts davon mitbekommt, wird er auch nichts machen! ", true)
ASP("wanderer",nWan, "Gegen eine gewisse Bezahlung könnte ich versuchen, die Boten von Sir Ferdinant mit meinen Neffen etwas aufzuhalten. ", false)

briefing.finished = function()


TW_3Tribute()




end;
StartBriefing(briefing);
end
}
SetupExpedition(beiwanderer)

end



function EinsiedlerBrief()


local beieinsiedler = {
EntityName = "Erec",
TargetName = "einsiedler",
Distance = 500,
Callback = function()
LookAt("Erec","einsiedler"; LookAt("einsiedler","Erec"
Camera.FollowEntity(GetEntityId("einsiedler")
DisableNpcMarker(GetEntityId("einsiedler")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("einsiedler",nEin, "Im Osten gibt es ein Dorfzentrum und eine Eisenmine, aber wer will schon Eisen, wenn man keine Armee ausbilden darf?", true)
ASP("einsiedler",nEin, "Deshalb sind die Bergarbeiter hier komplett gegangen! Und das obwohl Ulrichstein unbedingt Bergarbeiter braucht ", true)


briefing.finished = function()







end;
StartBriefing(briefing);
end
}
SetupExpedition(beieinsiedler)

end


function Buergermeister3Brief()


local beimayor3 = {
EntityName = "Erec",
TargetName = "mayor3",
Distance = 500,
Callback = function()
LookAt("Erec","mayor3"; LookAt("mayor3","Erec"
Camera.FollowEntity(GetEntityId("mayor3")
DisableNpcMarker(GetEntityId("mayor3")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("mayor3",nBg, "Puh das war knapp, aber ihr habt uns gerettet. Also stehe ich in eurer Schuld. Ich werde euch beim Kampf militärisch unterstützen", true)


briefing.finished = function()

SetFriendly(1,6)
ActivateShareExploration(1,6, true)

EnableNpcMarker(GetEntityId("drake")
DrakeBrief_2()



end;
StartBriefing(briefing);
end
}
SetupExpedition(beimayor3)

end



function DrakeBrief_2()


local beidrake = {
EntityName = "Erec",
TargetName = "drake",
Distance = 500,
Callback = function()
LookAt("Erec","drake"; LookAt("drake","Erec"
Camera.FollowEntity(GetEntityId("drake")
DisableNpcMarker(GetEntityId("drake")
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("drake",nDra, "Jetzt wissen sie sowieso von uns und werden uns bekämpfen, da kann ich ja jetzt endlich helfen. ", true)


briefing.finished = function()

ChangePlayer("drake",1)

end;
StartBriefing(briefing);
end
}
SetupExpedition(beidrake)

end

------------------------------------------Quests----------------------------------------------
function AuftandQuest()

quest = {
id = GetQuestId(),
type = SUBQUEST_OPEN,
title =""..hGelb.."Unterdr\195\188ckung beenden",
text ="Besiegt die drei Herrscher vom Kampaner Tal, um die Unterdr\195\188ckung zu beenden @cr "..
"Doch bedenkt, dass sie euch ab dem Zeitpunkt ab dem ihr Wehrpflicht erforcht habt, als Feinde sehen werden und ihr euch deshalb gut vorbereiten solltet @cr ",

}
Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
QuestAufstand = quest.id
end

function BrueckenQuest()

quest = {
id = GetQuestId(),
type = SUBQUEST_OPEN,
title =""..hGelb.."Br\195\

____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...

noacape
#2
28.05.2020 10:50
Beiträge: 10

function AuftandQuest()

quest = {
id = GetQuestId(),
type = SUBQUEST_OPEN,
title =""..hGelb.."Unterdr\195\188ckung beenden",
text ="Besiegt die drei Herrscher vom Kampaner Tal, um die Unterdr\195\188ckung zu beenden @cr "..
"Doch bedenkt, dass sie euch ab dem Zeitpunkt ab dem ihr Wehrpflicht erforcht habt, als Feinde sehen werden und ihr euch deshalb gut vorbereiten solltet @cr ",

}
Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
QuestAufstand = quest.id
end

function BrueckenQuest()

quest = {
id = GetQuestId(),
type = SUBQUEST_OPEN,
title =""..hGelb.."Br\195\188cken zerstören",
text ="Zerst\195\182rt eure Br\195\188cke und die beiden Br\195\188cken von Celle, bevor Celle das Dorfzentrum verliert @cr "..
"Ihr solltet es schaffen bevor die Zeit abläuft @cr ",

}
Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
QuestBruecken = quest.id
end

function MinenQuest()

quest = {
id = GetQuestId(),
type = SUBQUEST_OPEN,
title =""..hGelb.."Minen bauen",
text ="Baut die Stein- und die Lehmmine von Ulrichstein auf und verbessert sie auf Stufe 2, um ihnen beim Aufbau der Stadt zu helfen @cr "..
"Der Bürgermeister wird sich revanchieren @cr ",

}
Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
QuestMinen = quest.id
end


-------------------------------------SimpleJobs------------------------------------------------


function BridgeDead()

if IsDead("bridge1" and IsDead("bridge2" and IsDead("bridge3" then
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 0.8
local AP, ASP = AddPages(briefing);
ASP("bridge1",nErz,
"Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
"Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
briefing.finished = function()

EnableNpcMarker(GetEntityId("mayor3")
Buergermeister3Brief()

SetHostile(1,2)
SetHostile(1,3)
SetHostile(1,4)



Logic.RemoveQuest(1, QuestBruecken)

end;
StartBriefing(briefing);
return true
end
end

function Wandererbridge()


if IsDead("bridge1" and IsDead("bridge2" and IsDead("bridge3" then
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 0.8
local AP, ASP = AddPages(briefing);
ASP("bridge1",nErz,
"Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
"Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
briefing.finished = function()

EnableNpcMarker(GetEntityId("mayor3")
Buergermeister3Brief()

SetHostile(1,2)
SetHostile(1,3)
SetHostile(1,4)

StartSimpleJob("WandererBridge1"
StartSimpleJob("WandererBridge2"
StartSimpleJob("WandererBridge3"



Logic.RemoveQuest(1, QuestBruecken)

end;
StartBriefing(briefing);
return true
end
end

function WandererBridge1()



end




function Minenbridge()
if IsDead("bridge1" and IsDead("bridge2" and IsDead("bridge3" then
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 0.8
local AP, ASP = AddPages(briefing);
ASP("bridge1",nErz,
"Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
"Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
briefing.finished = function()

EnableNpcMarker(GetEntityId("mayor3")
Buergermeister3Brief()

SetHostile(1,2)
SetHostile(1,3)
SetHostile(1,4)

StartSimpleJob("MinenBridge1"
StartSimpleJob("MinenBridge2"
StartSimpleJob("MinenBridge3"



Logic.RemoveQuest(1, QuestBruecken)

end;
StartBriefing(briefing);
return true
end
end



function Verloren()
if IsDead("wechsel5" then
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 0.8
local AP, ASP = AddPages(briefing);
ASP("wechsel5",nErz,
"Warum hast du Dein Hauptquartier nicht beschützt ? Jetzt ist es verloren und Du hast damit auch "..
"das Spiel verloren.", false)
briefing.finished = function()
Defeat()
end;
StartBriefing(briefing);
return true
end
end


function Minen()
local t = {Logic.GetPlayerEntitiesInArea( GUI.GetPlayerID(), Entities.PB_ClayMine1, pos.X, pos.Y, 42725.0, 74550.0 );Logic.GetPlayerEntitiesInArea( GUI.GetPlayerID(), Entities.PB_StoneMine1, pos.X, pos.Y, 39800.0, 74900.0 )};
if t[2] then
ChangePlayer(t[2], 5);

Logic.RemoveQuest(1, QuestMinen);
StartSimpleJob("Minenbridge"
Logic.RemoveSimpeJob("BridgeDead"

return true;
end
end



function Gewonnen()
if IsDead("P2_AI_HQ" and IsDead("P3_AI_HQ" and IsDead("P4_AI_HQ" then
Victory();
return true;
end
end



----------------------------------Tribute-----------------------------------------------

function TW_1Tribute()
local tributeTW_1 = {}
tributeTW_1.playerId = 1;
tributeTW_1.text = "Wenn ihr dem Dieb 5000 Schwefel zahlt, wird er sich euch anschließen. @cr ";

tributeTW_1.cost = {Sulfur = 5000};
tributeTW_1.Callback = OnTributeTW_1;
AddTribute( tributeTW_1 )
end
function OnTributeTW_1()
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("dieb",nDie,"Danke für das Schwefel!", true)

briefing.finished = function()

ChangePlayer("dieb", 1)

end;
StartBriefing(briefing);
end


function TW_2Tribute()
local tributeTW_2 = {}
tributeTW_2.playerId = 1;
tributeTW_2.text = "Für 2500 Eisen gibt euch Leonardo 10000 Schwefel. @cr ";

tributeTW_2.cost = {Iron = 2500};
tributeTW_2.Callback = OnTributeTW_2;
AddTribute( tributeTW_2 )
end
function OnTributeTW_2()
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("leonardo",nLeo,"Ahhh super! Ihr habt das Eisen für mich! Dann kann es ja endlich weiter gehen... ahhh stimmt...hier habt ihr noch das Schwefel. ", true)
briefing.finished = function()

AddSulfur(10000)


end;
StartBriefing(briefing);
end



function TW_3Tribute()
local tributeTW_3 = {}
tributeTW_3.playerId = 1;
tributeTW_3.text = "Wenn ihr dem Wanderer 5000 Gold zahlt, wird er mit seinen vier Neffen versuchen, die Boten von Sir Ferdinant aufzuhalten, wenn ihr die Brücken wiederaufbaut, damit er erst später in das Kampfgeschehen mit eingreift. @cr ";

tributeTW_3.cost = {Gold = 5000};
tributeTW_3.Callback = OnTributeTW_3;
AddTribute( tributeTW_3 )
end
function OnTributeTW_3()
local briefing = {}
BRIEFING_TIMER_PER_CHAR = 1.0
local AP, ASP = AddPages(briefing);
ASP("wanderer",nWan,"Danke für das Gold heh...ist ne gute Investition von euch! Ich werd machen, was ich kann.", true)
briefing.finished = function()

StartSimpleJob("Wandererbridge"
Logic.RemoveSimpleJob("BridgeDead"

end;
StartBriefing(briefing);
end













----------------------------------------Armeen---------------------------------------------



function CreateArmyOne()
armyOne = {
player = 4,
id = 1,
strength = 8,
position = GetPosition("armyOne",
rodeLength = 4000
}
SetupArmy(armyOne)

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = MEDIUM_EXPERIENCE,
leaderType = Entities.PU_LeaderSword4
}

for i = 1, 10 do
EnlargeArmy(armyOne, troopDescription)
end

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = LOW_EXPERIENCE,
leaderType = Entities.PU_LeaderBow4
}

for i = 1, 10 do
EnlargeArmy(armyOne, troopDescription)
end

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = LOW_EXPERIENCE,
leaderType = Entities.PU_LeaderPoleArm4
}

for i = 1, 10 do
EnlargeArmy(armyOne, troopDescription)
end



StartSimpleJob("ControlArmyOne"
end



function CreateArmyTwo()
armyTwo = {
player = 2,
id = 2,
strength = 3,
position = GetPosition("armyTwo",
rodeLength = 4000
}
SetupArmy(armyTwo)

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = MEDIUM_EXPERIENCE,
leaderType = Entities.PU_LeaderSword3
}

for i = 1, 3 do
EnlargeArmy(armyTwo, troopDescription)
end

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = LOW_EXPERIENCE,
leaderType = Entities.PU_LeaderBow3
}

for i = 1, 3 do
EnlargeArmy(armyTwo, troopDescription)
end

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = LOW_EXPERIENCE,
leaderType = Entities.PU_LeaderPoleArm3
}

for i = 1, 3 do
EnlargeArmy(armyTwo, troopDescription)
end



StartSimpleJob("ControlArmyTwo"
end



function CreateArmyThree()
armyThree = {
player = 3,
id = 3,
strength = 5,
position = GetPosition("armyThree",
rodeLength = 4000
}
SetupArmy(armyThree)

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = MEDIUM_EXPERIENCE,
leaderType = Entities.PU_LeaderSword4
}

for i = 1, 5 do
EnlargeArmy(armyThree, troopDescription)
end

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = LOW_EXPERIENCE,
leaderType = Entities.PU_LeaderBow4
}

for i = 1, 5 do
EnlargeArmy(armyThree, troopDescription)
end

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = LOW_EXPERIENCE,
leaderType = Entities.PU_LeaderPoleArm4
}

for i = 1, 5 do
EnlargeArmy(armyThree, troopDescription)
end



StartSimpleJob("ControlArmyThree"
end



function CreateArmyFive()
armyFive = {
player = 6,
id = 5,
strength = 5,
position = GetPosition("armyFive",
rodeLength = 4000
}
SetupArmy(armyFive)

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = MEDIUM_EXPERIENCE,
leaderType = Entities.PU_LeaderSword4
}

for i = 1, 5 do
EnlargeArmy(armyFive, troopDescription)
end

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = LOW_EXPERIENCE,
leaderType = Entities.PU_LeaderBow4
}

for i = 1, 5 do
EnlargeArmy(armyFive, troopDescription)
end

local troopDescription = {
maxNumberOfSoldiers = 8,
minNumberOfSoldiers = 0,
experiencePoints = LOW_EXPERIENCE,
leaderType = Entities.PU_LeaderPoleArm4
}

for i = 1, 5 do
EnlargeArmy(armyFive, troopDescription)
end

StartSimpleJob("ControlArmyFive"
end

-------------------------------------Countdown----------------------------------------------------------






---------------------------------ComfortFunktionen-----------------------------------------------


function AddPages( _briefing )
local AP = function(_page) table.insert(_briefing, _page); return _page; end
local ASP = function(_entity, _title, _text, _dialog) return AP(CreateShortPage(_entity, _title, _text, _dialog)); end
return AP, ASP;
end
function CreateShortPage( _entity, _title, _text, _dialog)
local page = {
title = _title,
text = _text,
position = GetPosition( _entity ),
dialogCamera = _dialog
};
return page;
end



function ActivateBriefingsExpansion()
if not unpack{true} then
local unpack2;
unpack2 = function( _table, i )
i = i or 1;
assert(type(_table) == "table";
if i <= table.getn(_table) then
return _table, unpack2(_table, i);
end
end
unpack = unpack2;
end

Briefing_ExtraOrig = Briefing_Extra;

Briefing_Extra = function( _v1, _v2 )
for i = 1, 2 do
local theButton = "CinematicMC_Button" .. i;
XGUIEng.DisableButton(theButton, 1);
XGUIEng.DisableButton(theButton, 0);
end

if _v1.action then
assert( type(_v1.action) == "function" );
if type(_v1.parameters) == "table" then
_v1.action(unpack(_v1.parameters));
else
_v1.action(_v1.parameters);
end
end

Briefing_ExtraOrig( _v1, _v2 );
end;

GameCallback_EscapeOrig = GameCallback_Escape;
StartBriefingOrig = StartBriefing;
EndBriefingOrig = EndBriefing;
MessageOrig = Message;
CreateNPCOrig = CreateNPC;

StartBriefing = function(_briefing)
assert(type(_briefing) == "table";
if _briefing.noEscape then
GameCallback_Escape = function() end;
briefingState.noEscape = true;
end

StartBriefingOrig(Umlaute(_briefing));
end

EndBriefing = function()
if briefingState.noEscape then
GameCallback_Escape = GameCallback_EscapeOrig;
briefingState.noEscape = nil;
end

EndBriefingOrig();
end;

Message = function(_text)
MessageOrig(Umlaute(tostring(_text)));
end;

BugUmlaut = function(_text)
local texttype = type(_text);
if texttype == "string" then
_text = string.gsub( _text, "ä", "ae" );
_text = string.gsub( _text, "ö", "oe" );
_text = string.gsub( _text, "ü", "ue" );
_text = string.gsub( _text, "ß", "ss" );
_text = string.gsub( _text, "Ä", "Ae" );
_text = string.gsub( _text, "Ö", "Oe" );
_text = string.gsub( _text, "Ü", "Ue" );
return _text;
elseif texttype == "table" then
for k, v in _text do
_text[k] = Umlaute( v );
end
return _text;
else return _text;
end
end;

CreateNPC = function(_npc)
CreateNPCOrig(Umlaute(_npc));
end;

Umlaute = function(_text)
local texttype = type(_text);
if texttype == "string" then
_text = string.gsub( _text, "ä", "\195\164" );
_text = string.gsub( _text, "ö", "\195\182" );
_text = string.gsub( _text, "ü", "\195\188" );
_text = string.gsub( _text, "ß", "\195\159" );
_text = string.gsub( _text, "Ä", "\195\132" );
_text = string.gsub( _text, "Ö", "\195\150" );
_text = string.gsub( _text, "Ü", "\195\156" );
return _text;
elseif texttype == "table" then
for k, v in _text do
_text[k] = Umlaute( v );
end
return _text;
else return _text;
end
end;
end



function GetQuestId()
gvMission.QuestId = (gvMission.QuestId or 0) + 1
return gvMission.QuestId
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



function AddTribute( _tribute )
uniqueTributeCounter = uniqueTributeCounter or 1;
_tribute.Tribute = uniqueTributeCounter;
uniqueTributeCounter = uniqueTributeCounter + 1;
local tResCost = {};
for k, v in pairs( _tribute.cost ) do
assert( ResourceType[k] );
assert( type( v ) == "number" );
table.insert( tResCost, ResourceType[k] );
table.insert( tResCost, v );
end
Logic.AddTribute( _tribute.playerId, _tribute.Tribute, 0, 0, _tribute.text, unpack( tResCost ) );
SetupTributePaid( _tribute );
return _tribute.Tribute;
end






function ActivateShareExploration(_player1, _player2, _both)
assert(type(_player1) == "number" and type(_player2) == "number" and _player1 <= 8 and _player2 <= 8 and _player1 >= 1 and _player2 >= 1);
if _both == false then
Logic.SetShareExplorationWithPlayerFlag(_player1, _player2, 1);
else
Logic.SetShareExplorationWithPlayerFlag(_player1, _player2, 1);
Logic.SetShareExplorationWithPlayerFlag(_player2, _player1, 1);
end

end

____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...

Zedeg
#3
28.05.2020 11:54
Beiträge: 428

Bitte setze dein Skript in eine [code](hier dein Skript)[/code]-Umgebung, damit er besser lesbar ist. Zur Not können wir ihn dann auch kopieren und somit selbst ausführen. Das sähe dann so aus:

(hier dein Skript)


Oder verwende eine Seite wie pastebin.com.

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

noacape
#4
29.05.2020 12:23
Beiträge: 10

Hier ist mein Script in pastebin:

https://pastebin.com/E1nSd8Vw

____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...

mcb
#5
29.05.2020 19:50
Beiträge: 1472

Du kannst den LuaDebugger manuell ans laufen bekommen: Einfach die dlls https://github.com/mcb5637/SettlersLuaDebugger/files/4466653/DebugS5.zip in die 3 bin Verzeichnisse kopieren (bin/ , extra1/bin/ , extra2/bin/)

noacape
#6
30.05.2020 00:18
Beiträge: 10

Danke für den Tipp mit dem debugger - hat funktioniert

____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...

noacape
#7
30.05.2020 10:56
Beiträge: 10

Ich konnte jetzt schon ein paar Fehler beheben. Da meine Kenntnisse im scripten jedoch eher gering sind, schreibe ich nochmal wenn ich was nicht hinbekomme


Danke an alle die bisher geholfen haben und an alle die (hoffentlich) noch helfen.

____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...

Dieser Beitrag wurde von noacape am 30.05.2020 um 15:23 editiert.

totalwarANGEL
#8
14.06.2020 16:12
Beiträge: 2123

Du könntest dich auch hier mal einlesen:
Anleitung
Anwendung

Ist ein Nachbau des Skriptassistenten von Siedler 6 für Siedler 5. Richtet sich an Leute, die nicht programmieren können.

Mit dem Assistenten wurde schon die Map Die sieben Todsünden erstellt.

____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.

Seiten: 1

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

Impressum