Ewiger Anfang
» Siedler Map Source Forum » Siedler DEdK Script Forum » Ewiger Anfang
Seiten: 1
RitterLeo
|
#1 29.04.2018 19:32 Beiträge: 237 |
Ewiger Anfang
Zitat von RitterLeo:
Finde den Fehler nicht, das Anfangsbriefing wiederholt sich dauerhaft nach der Cutscene aber nur die 1. Seite.
-------------------------------------------------------------------------------- -- MapName: RitterLeo -- -- Author: RitterLeo -- -------------------------------------------------------------------------------- -- 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() SetPlayerName(3, "Zinndorf" ) SetFriendly(1,3) SetFriendly(1,5) SetFriendly(1,4) SetHostile(1,2) SetHostile(2,3) SetHostile(2,4) SetHostile(2,5) SetHostile(6,3) SetHostile(6,4) SetHostile(6,5) SetHostile(7,3) SetHostile(7,4) SetHostile(7,5) end --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- This function is called from main script to init all resources for player(s) function InitResources() -- set some resources AddGold (3,50000) AddSulfur(0) AddIron (3,50000) AddWood (3,50000) AddStone (0) AddClay (0) end --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- This function is called to setup Technology states on mission start function InitTechnologies() 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() Display.SetPlayerColorMapping(8,FRIENDLY_COLOR2) Display.SetPlayerColorMapping(4,FRIENDLY_COLOR2) Display.SetPlayerColorMapping(5,FRIENDLY_COLOR2) Display.SetPlayerColorMapping(7,NEPHILIM_COLOR) Display.SetPlayerColorMapping(6,NEPHILIM_COLOR) end --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- This function is called on game start after all initialization is done function FirstMapAction() ActivateBriefingsExpansion() MapEditor_SetupAI(3, 1, 2000, 1, "Zinndorf", 0, 0) MapEditor_SetupAI(4, 2, 2000, 2, "EastDef", 0, 0) MapEditor_SetupAI(5, 2, 2000, 2, "SouthDef", 0, 0) MapEditor_SetupAI(7, 2, 2000, 2, "BanditOst", 2, 0) MapEditor_SetupAI(6, 2, 2000, 2, "BanditLager", 2, 0) SetFriendly(1,3) SetFriendly(1,5) SetFriendly(1,4) MapEditor_CreateHQDefeatCondition() Logic.SetPlayerPaysLeaderFlag(1, 0) CreateWoodPile("holz1",10000) CreateWoodPile("holz2",10000) StartSimpleJob("GoldBaum") StartSimpleJob("GoldLehm") StartSimpleJob("GoldStein") StartSimpleJob("SchwefelEisen") Outro() end function Outro() local cutsceneTable = { StartPosition = { position = GetPosition("posOutro_Start"), angle = 10, zoom = 1000, rotation = 10}, Flights = { { position = GetPosition("posOutro_Middle1"), angle = 10, zoom = 1200, rotation = 130, duration = 13, action = function() end, title = "Mentor", text = "Willkommen in Zinndorf, einer wahrlich schönen Stadt.", }, { position = GetPosition("posOutro_Middle2"), angle = 20, zoom = 1200, rotation = 180, duration = 13, action = function() end, title = "Mentor", text = "Doch was hinter den Toren lauert weiss kaum Jemand.", }, { position = GetPosition("posOutro_end"), angle = 20, zoom = 1200, rotation = 270, duration = 13, action = function() end, title = "Mentor", text = "Deswegen wurde Dario um Hilfe gebeten.", }, }, Callback = function() Briefing_Anfang() SetPosition(Ari, Ari_pos) end } StartCutscene(Umlaute(cutsceneTable)) end function Briefing_Anfang() local briefing = {} local AP, ASP = AddPages(briefing); ASP("Dario","Dario", "Das ist also Zinndorf. Vor hier aus hat man einen schönen Ausblick.", true) ASP("Dario","Dario", "Leider muss ich schon weiter.", true) ASP("Dario","Dario","Was die wohl von mir wollen? @cr Und wo ist Helias?", true) StartBriefing( briefing) briefing.finished = function() Briefing_Bote() Move("Dario","MoveDario_pos") end end function Briefing_Bote() local briefing = {} local AP, ASP = AddPages(briefing); ASP("Bote","Bote","Dario zum Glück seit ihr da. @cr Es ist gut zu sehen das ihr wohlbehalten angekommen seit.", true) ASP("Bote","Bote","Helias wartet bereits da unten auf euch. @cr Aber beeilt euch, aus Sicherheitsgründen dürfen wir die Tore nicht zu lange offen lassen.", true) StartBriefing( briefing) briefing.finished = function() Move("Bote","Helias") CreateNpc_Helias() end end function CreateNpc_Helias() local npc = { name = "Helias", heroName = "Dario", marker = true, wrongHeroMessage = "Ich möchte gerne mit Dario sprechen", callback = function() Briefing_Helias() RemoveNpcFromTable("Helias") end } CreateNPC(npc) end function Briefing_Helias() local briefing = {} local AP, ASP = AddPages(briefing); ASP("Helias","Helias", "Ah Dario, da bist du ja. @cr Schön das du die Reise sicher überstanden hast.", true) ASP("Dario","Dario", "Auch schön dich zu sehen Helias, aber sag mir was ist denn hier los?.", true) ASP("Helias","Helias","Ich habe keine Ahnung, der Bürgermeister vom Süden schickte mich hierher um eine Armee aufzustellen.", true) ASP("Helias","Helias", "Er hatte es wohl sehr eilig. @cr Sprich mal mit dem Bürgermeister vom Norden.", true) ASP("Helias","Helias", "Er müsste sicher etwas über die Dinge hier wissen. @cr Gib mir bitte später bescheid was los ist.", true) ASP("Dario","Dario","Natürlich, bis bald.", true) StartBriefing( briefing) briefing.finished = function() CreateNpc_Regent() ChangePlayer("Helias",5) TorZu() end end function TorZu() MachAufOderZu("Palisade1",false,true) end function CreateNpc_Regent() local npc = { name = "Regent", heroName = "Dario", marker = true, wrongHeroMessage = "Ich möchte gerne mit Dario sprechen", callback = function() Briefing_Regent() RemoveNpcFromTable("Regent") end } CreateNPC(npc) end function Briefing_Regent() Briefing_SetParameter(true, 0.8, 2000, 10, 900,13) local briefing = {} local AP, ASP = AddPages(briefing); ASP("Regent","Dovbar", "Ah du musst Dario sein. @cr Helias sagte schon das du kommst.", true) ASP("Dario","Dario", "Sagt mir, was ist denn so wichtig das ich kommen sollte?", true) ASP("Regent","Dovbar","Das solltest du lieber mit dem Bürgermeister vom Süden der Stadt fragen.", true) ASP("Dario","Dario","Wieso das denn? @cr Wieso wisst ihr nicht was hier los ist?.", true) ASP("Regent","Dovbar", "Er warnte uns nur vor etwas, mehr auch nicht.", true) ASP("Regent","Dovbar","Er war es sicher der euch um Hilfe rief.", true) ASP("Regent","Dovbar", "Für den Anfang solltest du aber eine Basis haben. @cr Ich übergebe dir den Westlichen teil.", true) StartBriefing( briefing) briefing.finished = function() CreateNpc_Ritter() ChangePlayer("TowerSP1",1) ChangePlayer("TowerSP2",1) ChangePlayer("TowerSP3",1) ChangePlayer("TowerSP4",1) ChangePlayer("TurmSP1",1) ChangePlayer("Lager1",1) ChangePlayer("Haus",1) ChangePlayer("Farm",1) ChangePlayer("Bank",1) ChangePlayer("Zelt1",1) ChangePlayer("Zelt2",1) ChangePlayer("Zelt3",1) ChangePlayer("Kaserne1",1) ChangePlayer("Platz1",1) ChangePlayer("ZentrumSP1",1) end end function CreateNpc_Ritter() local npc = { name = "Ritter", heroName = "Dario", marker = true, wrongHeroMessage = "Ich möchte gerne mit Dario sprechen", callback = function() Briefing_Ritter() RemoveNpcFromTable("Ritter") end } CreateNPC(npc) end function Briefing_Ritter() Briefing_SetParameter(true, 0.8, 2000, 10, 900,13) local briefing = {} local AP, ASP = AddPages(briefing); ASP("Ritter","RitterLeo", "Da bist du ja Dario. @cr Wir brauchen dringend deine Hilfe.", true) ASP("Dario","Dario", "Sagt mir erstmal worum es geht.", true) ASP("Ritter","RitterLeo","Banditen, sie Rauben, Töten und zerstören unsere Stadt.", true) ASP("Dario","Dario","Banditen? Hier? @cr Was haben die denn vor?", true) ASP("Ritter","RitterLeo", "Keine Ahnung, aber wir werden nicht Kampflos aufgeben!", true) ASP("Ritter","RitterLeo","Außerdem habe ich gehört ihr übernehmt die westliche Verteidigung.", true) ASP("Ritter","Ritter","Geht so schnell wie es geht zu unserem alten Außenposten im Westen @cr Ich werde ihn euch überlassen.", true) ASP("Ritter","Ritter","Und noch etwas, wir werden den Sold eurer Truppen übernehmen @cr Das ist das mindeste was wir tuen können.", true) StartBriefing( briefing) briefing.finished = function() -- gibt es noch nicht, deshalb immer erst aktivieren wenn es vorhanden ist --Logic.RemoveQuest(1, StartQuest1) ActivateShareExploration(1, 3, true) ActivateShareExploration(1, 4, true) ActivateShareExploration(1, 5, true) Tor2() GUI.CreateMinimapMarker(40603, 72066, 0) Tools.ExploreArea( 41220, 38172, 190 ) CreateNpc_Siedler() end end function Tor2() MachAufOderZu("Palisade1",true,true) MachAufOderZu("Tor2",true,true) end function CreateNpc_Siedler() local npc = { name = "Siedler", heroName = "Dario", marker = true, wrongHeroMessage = "Ich möchte gerne mit Dario sprechen", callback = function() Briefing_Siedler() RemoveNpcFromTable("Siedler") end } CreateNPC(npc) end function Briefing_Siedler() Briefing_SetParameter(true, 0.8, 2000, 10, 900,13) local briefing = {} local AP, ASP = AddPages(briefing); ASP("Siedler","Siedler", "Du bist bestimmt Dario? @cr Mir wurde schon bescheid gesagt, nehmt ruhig alles.", true) ASP("Siedler","Siedler", "Ich habe schonmal ein paar Rohstoffe für euch zusammen gelegt.", true) ASP("Siedler","Siedler","Ach und außerdem habt ihr nun keinen Kontakt mehr zu Zinndorf.", true) ASP("Siedler","Siedler","Wir haben bereits die Tore geschlossen @cr Aber es gibt noch etwas das ihr Wissen solltet.", true) ASP("Siedler","Siedler","Anscheinend bereiten sich die Banditen auf einen Angriff vor @cr In etwa 50 Minuten werden sie kommen und uns töten!", true) ASP("Siedler","Siedler","Außerdem gibt es hier kaum Schwefel und es besteht keine Möglichkeit welchen durch Handel zu bekommen.", true) ASP("Siedler","Siedler","Doch da Zinndorf diesen Angriff alleine nicht übersteht werden auch wir dann die Tore öffnen @cr Also bereitet schonmal eine gute Verteidigung vor.", true) ASP("Siedler","Siedler","Nun ja, und da ich hier wohl der einzige bin der Bauen kann bin ich bereit euch zu Dienen.", true) StartBriefing( briefing) briefing.finished = function() ChangePlayer("Lager",1) ChangePlayer("Haus1",1) ChangePlayer("Village",1) ChangePlayer("Kaserne",1) ChangePlayer("Obelisk",1) ChangePlayer("Brunnen",1) ChangePlayer("Burg",1) ChangePlayer("Schmiede",1) ChangePlayer("Siedler",1) ChangePlayer("Archery1",1) ChangePlayer("Turm1",1) ChangePlayer("Turm2",1) ChangePlayer("Turm3",1) ChangePlayer("Turm4",1) ChangePlayer("Tower5",1) ChangePlayer("Farm2",1) ChangePlayer("Haus2",1) TorSchliessen() GUI.DestroyMinimapPulse(40603, 72066) AddGold (1000) AddSulfur(150) AddIron (270) AddWood (420) AddStone (300) AddClay (300) StartCountdown( 2*60,AngriffFeind,true) Message("Ich sagte fast 50 Minuten") end end function AngriffFeind() MachAufOderZu("Tor1",true,true) MachAufOderZu("Tor2",true,true) MachAufOderZu("Palisade1",true,true) MachAufOderZu("Palisade2",true,true) MachAufOderZu("Palisade3",true,true) MachAufOderZu("Palisade4",true,true) DestroyEntity("Stein1"); DestroyEntity("Stein2"); return true end function TorSchliessen() MachAufOderZu("Tor2",false,true) MachAufOderZu("Palisade1",false,true) end function GoldBaum() if IsDead("Gold_Baum") then Message("Nanu, in dem Baum war Gold versteckt") AddGold(1,"100") return true end end function GoldStein() if IsDead("Gold_Stein") then Message("Nanu, unter dieses Steinen war ja Gold") AddGold(1,"100") return true end end function GoldLehm() if IsDead("Gold_Lehm") then Message("Woow, in dem Lehm war Gold versteckt") AddGold(1,"100") return true end end function SchwefelEisen() if IsDead("Sulphur_Iron") then Message("Unglaublich, ein ganzer Vorrat Schwefel") AddSulphur(1,"3700") return true end end function Banditen() if IsDead("BanditLager") and IsDead("Platz_Army1") and IsDead("Kas_Bandit") and IsDead("Motte1") then CreateNpc_Ritter1() end end function CreateNpc_Ritter1() local npc = { name = "Ritter", heroName = "Dario", marker = true, wrongHeroMessage = "Ich möchte gerne mit Dario sprechen", callback = function() Briefing_Ritter1() RemoveNpcFromTable("Ritter") end } CreateNPC(npc) end function Briefing_Ritter1() Briefing_SetParameter(true, 0.8, 2000, 10, 900,13) local briefing = {} local AP, ASP = AddPages(briefing); ASP("Ritter","RitterLeo", "Wir haben es geschafft!. @cr Diese verfluchten Banditen werden sobald nicht wieder kommen.", true) ASP("Dario","Dario", "Bestimmt, aber wisst ihr nun warum sie angegriffen haben?", true) ASP("Ritter","RitterLeo","Nein, bis dahin habe ich allerdings andere Aufgaben für dich.", true) ASP("Ritter","RitterLeo","Unsere äußerer Stadtteil wurde nach Berichten zerstört. @cr Bitte seht nach ob es ein paar Überlebende gibt.", true) ASP("Ritter","RitterLeo", "Bis dahin werden wir die Gefangenen verhören.", true) StartBriefing( briefing) briefing.finished = function() CreateNpc_Hauptmann() DestroyEntity("Stein3") end end function CreateNpc_Hauptmann() local npc = { name = "Hauptmann", heroName = "Dario", marker = true, wrongHeroMessage = "Ich möchte gerne mit Dario sprechen", callback = function() Briefing_Hauptmann() RemoveNpcFromTable("Hauptmann") end } CreateNPC(npc) end function Briefing_Hauptmann() Briefing_SetParameter(true, 0.8, 2000, 10, 900,13) local briefing = {} local AP, ASP = AddPages(briefing); ASP("Hauptmann","Hauptmann", "ja sagtste mal, was machn der Typ hier. @cr Ich dachts wir wärn uns enesch das hier kene reinkommt.", true) ASP("Hauptmann","Hauptmann", "Nun was lod, bin grad beschäftscht.", true) ASP("Dario","Dario","Ich komme von Zinndorf um nachzusehen ob es euch gut geht.", true) ASP("Hauptmann","Hauptmann","Na se sehn ja dasch hier alles wesch ist. @cr Aber wir wolln hir net weg das is unscher heim.", true) ASP("Hauptmann","Hauptmann", "Wir könsch alleine für uns sorschken, all gudi hier.", true) ASP("Dario","Dario","Sehr schön, das werde ich dem Bürgermeister ausrichten, braucht ihr sonst noch irgendwelche hilfe?", true) ASP("Hauptmann","Hauptmann", "Tja, 10000 Holz wärn nett mehr nisch.", true) StartBriefing( briefing) briefing.finished = function() end end --LocalMusic.UseSet = EUROPEMUSIC LocalMusic.UseSet = HIGHLANDMUSIC --LocalMusic.UseSet = MEDITERANEANMUSIC --LocalMusic.UseSet = DARKMOORMUSIC --LocalMusic.UseSet = EVELANCEMUSIC function MachAufOderZu(name, auf, leise)-- by Holger local t = Logic.GetEntityType(GetEntityId(name)) local snd = false if auf then if t == Entities.XD_WallStraightGate_Closed then ReplaceEntity(name, Entities.XD_WallStraightGate) snd = true elseif t == Entities.XD_DarkWallStraightGate_Closed then ReplaceEntity(name, Entities.XD_DarkWallStraightGate) snd = true elseif t == Entities.XD_DrawBridgeOpen1 then ReplaceEntity(name, Entities.PB_DrawBridgeClosed1) snd = true elseif t == Entities.XD_DrawBridgeOpen2 then ReplaceEntity(name, Entities.PB_DrawBridgeClosed2) snd = true elseif t == Entities.XD_PalisadeGate1 then ReplaceEntity(name, Entities.XD_PalisadeGate2) snd = true elseif t == Entities.XD_ChestClose then ReplaceEntity(name, Entities.XD_ChestOpen) snd = true end else if t == Entities.XD_WallStraightGate then ReplaceEntity(name, Entities.XD_WallStraightGate_Closed) snd = true elseif t == Entities.XD_DarkWallStraightGate then ReplaceEntity(name, Entities.XD_DarkWallStraightGate_Closed) snd = true elseif t == Entities.PB_DrawBridgeClosed1 then ReplaceEntity(name, Entities.XD_DrawBridgeOpen1) snd = true elseif t == Entities.PB_DrawBridgeClosed2 then ReplaceEntity(name, Entities.XD_DrawBridgeOpen2) snd = true elseif t == Entities.XD_PalisadeGate2 then ReplaceEntity(name, Entities.XD_PalisadeGate1) snd = true elseif t == Entities.XD_ChestOpen or t == Entities.XD_ChestOrb then ReplaceEntity(name, Entities.XD_ChestClose) snd = true end end if snd and not leise == true then -- Sound.PlayGUISound(Sounds.Misc_SO_BuildWood_rnd_1, PosVolume(name)) end 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 function SucheAufDerWelt(_player, _entity, _groesse, _punkt) local punktX1, punktX2, punktY1, punktY2, data local gefunden = {} local rueck if not _groesse then _groesse = Logic.WorldGetSize() _groesse = math.floor(_groesse * 0.71) end if not _punkt then _punkt = {X = _groesse/2, Y = _groesse/2} end if _player == 0 then data ={Logic.GetEntitiesInArea(_entity, _punkt.X, _punkt.Y, _groesse, 16)} else data ={Logic.GetPlayerEntitiesInArea(_player,_entity, _punkt.X, _punkt.Y, _groesse, 16)} end if data[1] >= 16 then local _klgroesse = _groesse / 2 local punktX1 = _punkt.X - _groesse / 4 local punktX2 = _punkt.X + _groesse / 4 local punktY1 = _punkt.Y - _groesse / 4 local punkt
Schonmal danke im vorraus .
____________________
Die Gier eines Menschen kann man mit der einer Pflanze vergleichen:
Hat sie einmal genug Wasser und Sonne wächst sie um noch mehr zu bekommen.
Dieser Beitrag wurde von RitterLeo am 29.04.2018 um 19:38 editiert.
warrior1024
|
#2 01.05.2018 11:40 Beiträge: 345 |
Ich vermute, dass die Zeile
SetPosition(Ari, Ari_pos)
für den Fehler verantwortlich ist.
Der erste Parameter muss ein EntityName(z.B. "Dario" ) oder eine ID sein, der zweite Parameter ein Positiontable(z.B. {X = 1000, Y = 2000} oder GetPosition("TollerName" )) sein.
____________________
"Banken machen keine Fehlentscheidungen! Haben Euch das Eure Eltern nicht beigebracht?"
- Bankier Samael Silren, Enderal
RitterLeo
|
#3 01.05.2018 13:02 Beiträge: 237 |
Es funktioniert.
Nun würde ich gerne noch Darios fähigkeit den Falken zu schicken verbieten.
Weiss jemand wie das geht?
____________________
Die Gier eines Menschen kann man mit der einer Pflanze vergleichen:
Hat sie einmal genug Wasser und Sonne wächst sie um noch mehr zu bekommen.
Der_Deutsche
|
#4 01.05.2018 13:06 Beiträge: 349 |
Schau mal im Skript-Wiki, da gibt es jede Menge funktionen.
____________________
Nachbau von Siedler 5 Lobbys "Ubi.Com"
Updatelösungen Siedler 5 Patch 1.06
Creators Update Lösung Windows 10
Siedler 5
RitterLeo
|
#5 01.05.2018 13:32 Beiträge: 237 |
Habe gefunden wie die der Effekt heißt aber was muss ich machen um diese zu verbieten? Einfach wieder ForbidTechnologie oder was?
____________________
Die Gier eines Menschen kann man mit der einer Pflanze vergleichen:
Hat sie einmal genug Wasser und Sonne wächst sie um noch mehr zu bekommen.
warrior1024
|
#6 01.05.2018 17:08 Beiträge: 345 |
Der Button, der zum Falken schicken gehört, heißt "Hero1_SendHawk" und ruft die Funktion GUIAction_Hero1SendHawk auf.
Du könntest einfach den Button verschwinden lassen:
XGUIEng.ShowWidget("Hero1_SendHawk", 0)
oder ausgrauen:
XGUIEng.DisableButton("Hero1_SendHawk", 1)
oder die dahinter liegende Funktion überschreiben:
GUIAction_Hero1SendHawk = function() Message("Darios Falke sagt nein.") Sound.PlayGUISound( Sounds.VoicesHero1_HERO1_FunnyComment_rnd_01, 60 ) end
Die XGUIEng-Funktionen überleben ein Speichern&Laden vermutlich nicht, deswegen solltest du die in InitPlayerColorMapping packen.
____________________
"Banken machen keine Fehlentscheidungen! Haben Euch das Eure Eltern nicht beigebracht?"
- Bankier Samael Silren, Enderal
RitterLeo
|
#7 02.05.2018 18:43 Beiträge: 237 |
Danke dafür, langsam gehts vorran .
____________________
Die Gier eines Menschen kann man mit der einer Pflanze vergleichen:
Hat sie einmal genug Wasser und Sonne wächst sie um noch mehr zu bekommen.
Peter-FS
|
#8 03.05.2018 06:20 Beiträge: 1086 |
Falken löschen
Hi,
man kann den Falken auch ganz löschen, habe ich in meiner Map Zwillinge gemacht.
--Aufruf dazu: DeleteHawk("dario") -- ##Falken löschen: Flodder ############################################## function DeleteHawk(_EntityName) local darioPos=GetPosition(_EntityName) local Data = { Logic.GetEntitiesInArea( Entities.PU_Hero1_Hawk, darioPos.X, darioPos.Y, 5000, 20)}; if Data[1]>0 then DestroyEntity(Data[2]) end end --dazu dann die Funktionen zum Tooltip und den Aufruf verhindern GUIAction_Hero1SendHawkOrig = GUIAction_Hero1SendHawk GUIAction_Hero1SendHawk = function() end GUIAction_Hero1LookAtHawkOrig = GUIAction_Hero1LookAtHawk GUIAction_Hero1LookAtHawk = function() end GUITooltip_NormalButton_Orig = GUITooltip_NormalButton GUITooltip_NormalButton= function(_x) if string.find(_x,"command_sendhawk") ~= nil then XGUIEng.SetText( gvGUI_WidgetID.TooltipBottomText, "Dario hat seinen Falken zu Hause gelassen." ) elseif string.find(_x,"command_lookathawk") ~= nil then XGUIEng.SetText( gvGUI_WidgetID.TooltipBottomText, "Dario hat seinen Falken zu Hause gelassen." ) else GUITooltip_NormalButton_Orig(_x) end end --ein Problem, wenn Dario stirbt und wieder erwacht, wird der Falke neu erstellt. Dazu folgende Lösung, einmal in der FMA Setup_DestroyDario() aufrufen, damit wird das ableben und erwachen von Dario überwacht und der Falke wieder gelöscht. -- Die Falken erneut löschen, wenn der Held wieder erwacht ist. function Setup_DestroyDario() local quest = { Target = "dario", Callback = function() StartSimpleJob("CheckDarioLebt") end, } SetupDestroy( quest ) end function CheckDarioLebt() if not IsDead("dario") then DeleteHawk("dario") Setup_DestroyDario() return true end end
____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!
Seiten: 1