Ankündigung

Einklappen
Keine Ankündigung bisher.

Event Erdbeben mehrmals auslösen ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    AW: Event Erdbeben mehrmals auslösen ?

    Ich hatte es ausprobiert, es müsste funktionieren.

    Kommentar


    • #17
      AW: Event Erdbeben mehrmals auslösen ?

      Haste das mal mit meiner Testmap getestet ?
      Interesant ist die normale Erdbebenfunktion funktioniert.
      Danach mit dem Trigger_Time bei Aufruf der mapscriptfunktion sogar eine zusätzlicher Reward CreateBtl nicht mehr funktioniert..
      Löscht man die Mapscriptfunktionsaufrufe geht das wieder..
      Map ist auch dabei.

      Hier mal das Script

      Code:
      ----------------------------------------------------------------------------------------------------------------------
      function Mission_InitPlayers()
       
      end
      ----------------------------------------------------------------------------------------------------------------------
      function Mission_SetStartingMonth()
          Logic.SetMonthOffset(3)
      end
      ----------------------------------------------------------------------------------------------------------------------
      function Mission_InitMerchants()
       
      end
       
      function Mission_FirstMapAction()
          -- init players in singleplayer games only
          if Framework.IsNetworkGame() ~= true then
              Startup_Player()
              Startup_StartGoods()
              Startup_Diplomacy()
       
          end        
          -- create quests
          do
              local MapName = Framework.GetCurrentMapName()
              local ScriptName = "Maps\\ExternalMap\\"..MapName.."\\QuestSystemBehavior.lua"
              Script.Load(ScriptName)
              CreateQuests()
          end
       
      end
      function Event_ResetEarthquakeForPlayer(_player, _duration, _doNotDestroyCompletely, _affectedBuildings)
          if not Earthquake.Players[_player] then
              Earthquake.Players[_player] = {};
              Table_Copy(Earthquake.Players[_player], Earthquake.Data);
              Earthquake.Players[_player].PlayerID = _player;
          end
       
          Earthquake.Players[_player].State = EventState.Waiting;
          MusicStarted = false; -- fix a bug
          Earthquake.Players[_player].SoundPlayed = false;
          if _doNotDestroyCompletely ~= nil then
              Earthquake.Players[_player].DoNotDestroyCompletely = _doNotDestroyCompletely;
          end
          if _duration then
              Earthquake.Players[_player].Duration = _duration;
          end
          if _affectedBuildings and #_affectedBuildings > 0 then
              if not Earthquake.Data.ListAffectedEntities then
                  Earthquake.Data.ListAffectedEntities = {};
                  for i = 1, 8, 1 do
                      if Earthquake.Players[i] then
                          Earthquake.Players[i].ListAffectedEntities = Earthquake.Data.ListAffectedEntities;
                      end
                  end
              end
              Earthquake.Data.ListAffectedEntities[_player] = {}
              for _, v in ipairs(_affectedBuildings) do
                  Earthquake.Data.ListAffectedEntities[_player][GetEntityId(v)] = true;
              end
          elseif Earthquake.Data.ListAffectedEntities then
              Earthquake.Data.ListAffectedEntities[_player] = nil;
          end
      end
      function Erdbeben_01()
       Event_AddEarthquake( {1}, 2, {[1]=true}, {[1]={"homestore","homecastle","homechurch"}} )
      end
      function Erdbeben_02()
       Earthquake_ResetEarthquakeForPlayer( 1, 10, true, {"homestore","homecastle","homechurch"})
      end
      function Erdbeben_03()
       Earthquake_ResetEarthquakeForPlayer( 1, 10, true, { "homestore","homecastle","homechurch" })
      end
      Angehängte Dateien
      Zuletzt geändert von SpiderFive; 22.05.2008, 14:02.
      «Wenn Sie in sieben von zehn Fragen mit mir übereinstimmen, sind Sie nicht teilweise mein Feind, sondern mehrheitlich mein Freund.»(Ronald Reagan)
      «Wenn Tyrannen behaupten, sie würden zu Opfern gemacht, bringen sie in Wirklichkeit zum Ausdruck, dass sie anderen das antun wollen, was sie angeblich selbst erleiden..»(Erich Fromm)

      Siedele lang und erfolgreich

      Kommentar


      • #18
        AW: Event Erdbeben mehrmals auslösen ?

        Das Problem ist, dass Du Earthquake_ResetEarthquakeForPlayer() aufrufst, die Funktion heißt aber Event_ResetEarthquakeForPlayer().

        Kommentar


        • #19
          AW: Event Erdbeben mehrmals auslösen ?

          Habe das Script abgeändert.
          Nach der ersten Beförderung, beginnt das Erdbeben.
          Zwischen Beförderung und Erdbeben stehen die Solsen
          in der Burg.


          trabbi
          trabbi
          Was ist Theorie, - Wenns klappen soll und es klappt nie
          Was ist Praxis, - Frag nicht so dumm, wenns klappt und Du weißt nicht warum

          Kommentar


          • #20
            Zitat von Old McDonald Beitrag anzeigen
            Das Problem ist, dass Du Earthquake_ResetEarthquakeForPlayer() aufrufst, die Funktion heißt aber Event_ResetEarthquakeForPlayer().
            manchmal sieht man den Wald....
            Aber irgendwoher muß ich die Funktion haben *gggg

            Zitat von Old McDonald Beitrag anzeigen
            Der Aufruf ist fast gleich.
            Zum Beispiel so:
            Code:
            Earthquake_ResetEarthquakeForPlayer(1, 10, true, { "Dieses Gebäude soll nur beschädigt werden" }).
            Das funktioniert aber nur, wenn vorher einmal Event_AddEarthquake() verwendet wurde.
            ah daher

            Ist doch schön wenn sich Dinge so einfach auflösen
            Zuletzt geändert von SpiderFive; 23.05.2008, 23:31.
            «Wenn Sie in sieben von zehn Fragen mit mir übereinstimmen, sind Sie nicht teilweise mein Feind, sondern mehrheitlich mein Freund.»(Ronald Reagan)
            «Wenn Tyrannen behaupten, sie würden zu Opfern gemacht, bringen sie in Wirklichkeit zum Ausdruck, dass sie anderen das antun wollen, was sie angeblich selbst erleiden..»(Erich Fromm)

            Siedele lang und erfolgreich

            Kommentar


            • #21
              AW: Event Erdbeben mehrmals auslösen ?

              Es gibt auch noch eine alternative (einfachere?) Möglichkeit.

              Dazu muss in das globale Script folgende Funktion eingefügt werden:
              Code:
              function completetablecopy(object)
                  local lookup_table = {}
                  local function _copy(object)
                      if type(object) ~= "table" then
                          return object
                      elseif lookup_table[object] then
                          return lookup_table[object]
                      end
                      local new_table = {}
                      lookup_table[object] = new_table
                      for index, value in pairs(object) do
                          new_table[_copy(index)] = _copy(value)
                      end
                      return setmetatable(new_table, getmetatable(object))
                  end
                  return _copy(object)
              end
              In die Mission_FirstMapAction() muss folgende Zeile eingefügt werden:
              Code:
              Earthquake_Orig = completetablecopy(Earthquake)
              Danach kann man das Erdbeben-Event beleibig oft immer mit dem ursprünglichen Aufruf starten, dem immer die Zeile
              Code:
              Earthquake = completetablecopy(Earthquake_Orig)
              vorangestellt sein muss. Also so:
              Code:
              Earthquake = completetablecopy(Earthquake_Orig)
              Event_AddEarthquake([hier wie gehabt eure Parameter für den Aufruf])
              Gruß
              Gunther
              Zuletzt geändert von Netsurfer; 24.05.2008, 18:21.
              ___________________________

              sigpic
              ___________________________

              Kommentar


              • #22
                AW: Event Erdbeben mehrmals auslösen ?

                jedenfalls Danke nochmal
                «Wenn Sie in sieben von zehn Fragen mit mir übereinstimmen, sind Sie nicht teilweise mein Feind, sondern mehrheitlich mein Freund.»(Ronald Reagan)
                «Wenn Tyrannen behaupten, sie würden zu Opfern gemacht, bringen sie in Wirklichkeit zum Ausdruck, dass sie anderen das antun wollen, was sie angeblich selbst erleiden..»(Erich Fromm)

                Siedele lang und erfolgreich

                Kommentar


                • #23
                  AW: Event Erdbeben mehrmals auslösen ?

                  Gerade in der easy Version meiner 2. Map getestet, hihi recht lustig , jetzt wo es klappt ......


                  Was aber fetstellbar ist es werden nicht alle Gebäude wieder instandgesetzt..
                  «Wenn Sie in sieben von zehn Fragen mit mir übereinstimmen, sind Sie nicht teilweise mein Feind, sondern mehrheitlich mein Freund.»(Ronald Reagan)
                  «Wenn Tyrannen behaupten, sie würden zu Opfern gemacht, bringen sie in Wirklichkeit zum Ausdruck, dass sie anderen das antun wollen, was sie angeblich selbst erleiden..»(Erich Fromm)

                  Siedele lang und erfolgreich

                  Kommentar


                  • #24
                    AW: Event Erdbeben mehrmals auslösen ?

                    Zitat von SpiderFive Beitrag anzeigen
                    Was aber fetstellbar ist es werden nicht alle Gebäude wieder instandgesetzt..
                    Kannst du das bitte mal etwas genauer & ausführlicher beschreiben.

                    Mit welcher Variante löst du die Beben denn jetzt mehrfach aus?

                    Das Erdbeben-Event ist imho nicht ganz perfekt. Ich überlege sowieso, ob man nicht am besten ein ganz neues Event-System schreibt, und dann das Erdbeben noch komfortabler gestaltet. Ich denke da bspw. an die Möglichkeit, anstatt benannte Entities angeben zu müssen, Gebäudetypen angeben zu können, etc.

                    Zumindest für die Asia Klimazone habe ich auch noch 2 weitere Events in Arbeit.
                    1. Heuschreckenplage
                    2. Blitzeinschlag im Lagerhaus mit anschließendem Brand

                    Gruß
                    Gunther
                    ___________________________

                    sigpic
                    ___________________________

                    Kommentar


                    • #25
                      AW: Event Erdbeben mehrmals auslösen ?

                      Die Hauptgebäude werden nicht automatisch repariert (nur, wenn sie angezündet werden, bei NPCs).
                      Das lässt sich mit Logic.SetRepairAlarm(_building, true) verm. einschalten, oder vielleicht auch mit Logic.BuildingSetAutoRepairDisable(_building, false) dauerhaft für das Gebäude. Ist aber nur eine Vermutung.

                      Kommentar


                      • #26
                        AW: Event Erdbeben mehrmals auslösen ?

                        Natürlich habe ich es mit der OMCD Variante , nach all den Mühen gemacht...
                        Ich werde Deine Variante aber auch mal testen ..
                        Ich werde zwei versionen der Testmap vorbereiten..

                        Geht nicht um die Hauptgebäude, sondern um Stadtgebäude, einige da werden instandgesetzt, ein paar bleiben mit angekohlten Dachstuhl, man kann sie trotzdem wieder ausbauen, aber sie haben weiterhin einen angekokelten Dachstuhl...
                        Ich setze heute Abend mal noch einen Screenshot hier rein.


                        Nachtrag: Es scheint auch später das Problem zu geben, das man nicht mehr alle Mauern repariert bekommt...
                        Zuletzt geändert von SpiderFive; 24.05.2008, 16:05.
                        «Wenn Sie in sieben von zehn Fragen mit mir übereinstimmen, sind Sie nicht teilweise mein Feind, sondern mehrheitlich mein Freund.»(Ronald Reagan)
                        «Wenn Tyrannen behaupten, sie würden zu Opfern gemacht, bringen sie in Wirklichkeit zum Ausdruck, dass sie anderen das antun wollen, was sie angeblich selbst erleiden..»(Erich Fromm)

                        Siedele lang und erfolgreich

                        Kommentar


                        • #27
                          AW: Event Erdbeben mehrmals auslösen ?

                          Zitat von SpiderFive Beitrag anzeigen
                          Ich werde Deine Variante aber auch mal testen ..
                          Habe die Scriptteile gemäß Netsurfer ausgetauscht.

                          Keine Reaktion. Keine Solsen. Kein Beben.

                          Die Functionsnamen hab ich allerdings gelassen,
                          da die ja vom Questsytem aufgerufen werden.
                          ------------------------------

                          Edit: Funktioniert doch !!
                          Hatte vergessen die Werte einzutragen.
                          Code:
                           {1}, 2, {[1]=true}, {[1]={"homestore","homecastle","homechurch"}}
                          trabbi
                          Zuletzt geändert von trabbi; 24.05.2008, 17:05.
                          trabbi
                          Was ist Theorie, - Wenns klappen soll und es klappt nie
                          Was ist Praxis, - Frag nicht so dumm, wenns klappt und Du weißt nicht warum

                          Kommentar


                          • #28
                            AW: Event Erdbeben mehrmals auslösen ?

                            Hoffentlich kriege ich das auch hin.
                            Meine Maps für "Die Siedler - Aufstieg eines Königreichs", nur auf Siedelwood und Siedler-Maps.

                            Kommentar

                            Lädt...
                            X