Ankündigung

Einklappen
Keine Ankündigung bisher.

ActiveShareExploration und nichts tuende Gegner

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

  • [Frage] ActiveShareExploration und nichts tuende Gegner

    Hallo mal wieder!
    Ich tüftle schon wieder an meiner nächsten Map und habe sie schon fertig designt und alles doch beim Test greifen sich Spieler die Feindlichen Ki`s nicht an (4,3 und 4,2). Besser gesagt: Sie produzieren gar keine Truppen.
    Mein 2. Problem ist die Funktion ActiveShareExploration. Sie funktioniert nicht, obwohl sie im Skript erwähnt ist. Ne' Fehlermeldung kommt auch nicht.
    Ich hoffe mal wieder, dass mir hier jemand auf die Sprünge helfen kann.

    MFG Josebra


    Hier das Skript:

    --------------------------------------------------------------------------------
    -- MapName: 3 Mächte
    --
    -- Author: Josebra
    --
    --------------------------------------------------------------------------------


    -- 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()
    SetHostile(1,2)
    SetHostile(1,3)
    SetFriendly(1,4)
    SetFriendly(2,3)
    SetHostile(2,1)
    SetHostile(2,4)
    SetHostile(4,3)
    SetHostile(4,2)
    SetFriendly(4,1)
    SerHostile(3,1)
    SetHostile(3,4)
    SetFriendly(3,2)
    end




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


    AddGold (2, 100000)
    AddSulfur(2, 100000)
    AddIron (2, 100000)
    AddWood (2, 100000)
    AddStone (2, 100000)
    AddClay (2, 100000)


    AddGold (3, 100000)
    AddSulfur(3, 100000)
    AddIron (3, 100000)
    AddWood (3, 100000)
    AddStone (3, 100000)
    AddClay (3, 100000)


    AddGold (4, 100000)
    AddSulfur(4, 100000)
    AddIron (4, 100000)
    AddWood (4, 100000)
    AddStone (4, 100000)
    AddClay (4, 100000)

    end


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


    ResearchTechnology(Technologies.GT_Mercenaries)




    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(1800)
    AddPeriodicRain(500)
    AddPeriodicSummer(1400)
    AddPeriodicRain(500)
    AddPeriodicSummer(1000)
    AddPeriodicRain(500)
    AddPeriodicSummer(600)
    AddPeriodicRain(500)
    AddPeriodicSummer(400)
    AddPeriodicRain(500)
    AddPeriodicSummer(300)
    AddPeriodicRain(500)
    AddPeriodicSummer(150)
    AddPeriodicRain(500)
    AddPeriodicSummer(20)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicRain(30)
    AddPeriodicSummer(10000000)


    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()


    local VictoryConditionType = 2


    if VictoryConditionType == 1 then
    MapEditor_SetupResourceVictoryCondition(
    1000,
    1000,
    1000,
    1000,
    1000,
    1000 )
    elseif VictoryConditionType == 2 then
    MapEditor_SetupDestroyVictoryCondition(2)
    end


    --++++++++++++++++++++++++++++++++ FIRST MAP ACTION ++++++++++++++++++++++++++++++++++++++++++




    ActivateShareExploration(1,4)
    CreatePlayer2()
    CreatePlayer3()
    CreatePlayer4()






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


    end




    function CreatePlayer2()
    -- Hier wird die KI für Spieler 2 erstellt...
    local aiID = 2 -- mit der ID 2
    local strength = 3 -- mit einer "strenght" von 2; bezieht sich auf die maximale Größe des Heeres
    local range = 5000000 -- mit einem Verteidigungsradius von 5000 Siedler-Zentimetern
    local techlevel = 3 -- mit einem Technologie-Level von 0; es werden also vorerst nur Basiseinheiten ausgebildet
    local position = "player2" -- mit dem Gebäude "hq2" als Zentrum des Verteidigungsradius
    local aggressiveness = 3 -- mit der Aggressivität von 1
    local peacetime = 0 -- und ohne "Schonzeit" für den Spieler
    -- Setup der KI:
    MapEditor_SetupAI( aiID, strength, range, techlevel, position, aggressiveness, peacetime )
    SetupPlayerAi( aiID , { repairing = 1 } ) -- Die KI repariert eigene Gebäude; ist hier nicht wirklich wichtig
    SetupPlayerAi( aiID , { serfLimit = 4 } ) -- Die KI kauft Leibeigene bis zu diesem Limit; dito
    SetPlayerName( aiID , "Adventon" ) -- Name, der für die KI im Diplomatiefenster angezeigt wird; auch nur Kür
    -- Jetzt wird's wichtig! Die ersten zu bauenden Einheiten werden angegeben:
    SetAIUnitsToBuild( aiID, { UpgradeCategories.LeaderSword, UpgradeCategories.LeaderPoleArm, UpgradeCategories.LeaderBow } );
    end


    function CreatePlayer3()
    -- Hier wird die KI für Spieler 2 erstellt...
    local aiID = 3 -- mit der ID 2
    local strength = 3 -- mit einer "strenght" von 2; bezieht sich auf die maximale Größe des Heeres
    local range = 5000000 -- mit einem Verteidigungsradius von 5000 Siedler-Zentimetern
    local techlevel = 2 -- mit einem Technologie-Level von 0; es werden also vorerst nur Basiseinheiten ausgebildet
    local position = "player3" -- mit dem Gebäude "hq2" als Zentrum des Verteidigungsradius
    local aggressiveness = 2 -- mit der Aggressivität von 1
    local peacetime = 0 -- und ohne "Schonzeit" für den Spieler
    -- Setup der KI:
    MapEditor_SetupAI( aiID, strength, range, techlevel, position, aggressiveness, peacetime )
    SetupPlayerAi( aiID , { repairing = 1 } ) -- Die KI repariert eigene Gebäude; ist hier nicht wirklich wichtig
    SetupPlayerAi( aiID , { serfLimit = 4 } ) -- Die KI kauft Leibeigene bis zu diesem Limit; dito
    SetPlayerName( aiID , "Tana" ) -- Name, der für die KI im Diplomatiefenster angezeigt wird; auch nur Kür
    -- Jetzt wird's wichtig! Die ersten zu bauenden Einheiten werden angegeben:
    SetAIUnitsToBuild( aiID, { UpgradeCategories.LeaderSword, UpgradeCategories.LeaderPoleArm, UpgradeCategories.LeaderBow } );
    end


    function CreatePlayer4()
    -- Hier wird die KI für Spieler 2 erstellt...
    local aiID = 4 -- mit der ID 2
    local strength = 3 -- mit einer "strenght" von 2; bezieht sich auf die maximale Größe des Heeres
    local range = 50000 -- mit einem Verteidigungsradius von 5000 Siedler-Zentimetern
    local techlevel = 3 -- mit einem Technologie-Level von 0; es werden also vorerst nur Basiseinheiten ausgebildet
    local position = "player4" -- mit dem Gebäude "hq2" als Zentrum des Verteidigungsradius
    local aggressiveness = 3 -- mit der Aggressivität von 1
    local peacetime = 0 -- und ohne "Schonzeit" für den Spieler
    -- Setup der KI:
    MapEditor_SetupAI( aiID, strength, range, techlevel, position, aggressiveness, peacetime )
    SetupPlayerAi( aiID , { repairing = 1 } ) -- Die KI repariert eigene Gebäude; ist hier nicht wirklich wichtig
    SetupPlayerAi( aiID , { serfLimit = 4 } ) -- Die KI kauft Leibeigene bis zu diesem Limit; dito
    SetPlayerName( aiID , "Fianar" ) -- Name, der für die KI im Diplomatiefenster angezeigt wird; auch nur Kür
    -- Jetzt wird's wichtig! Die ersten zu bauenden Einheiten werden angegeben:
    SetAIUnitsToBuild( aiID, { UpgradeCategories.LeaderSword, UpgradeCategories.LeaderPoleArm, UpgradeCategories.LeaderBow } );
    end






    function ActivateShareExploration(_player1, _player2, _both) --_both auf false setzen, wenn nur einer sehen soll, was der andere treibt (Spion)
    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 SetAIUnitsToBuild( _aiID, _types )
    for i = table.getn(DataTable), 1, -1 do
    if DataTable[i].player == _aiID and DataTable[i].AllowedTypes then
    DataTable[i].AllowedTypes = _types;
    end
    end
    end


    -- Quest data
    MapEditor_QuestTitle = "Missionsziel"
    MapEditor_QuestDescription = "Hilf Fianar, sich zu verteidigen und vernichte Adventon!"

  • #2
    AW: ActiveShareExploration und nichts tuende Gegner

    Wie groß ist denn die Map ??
    local range = 5000000 ... kommt mir arg groß vor ??
    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


    • #3
      AW: ActiveShareExploration und nichts tuende Gegner

      Meine Map ist schon sehr groß, die größte Einstellung die möglich ist, doch spricht das den etwas zur Sache?

      Kommentar


      • #4
        AW: ActiveShareExploration und nichts tuende Gegner

        Ich kanns nicht wirklich einschätzen, weil ich mich nun schon die letzten Jahre nicht mehr damit beschäftige.
        Aber schau Dir doch mal Deinen Sciptsatz genauer an:
        local range = 5000000 -- mit einem Verteidigungsradius von 5000 Siedler-Zentimetern
        Da gehst Du doch von 5000 aus, gibst aber 5 millionen ein ????
        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


        • #5
          AW: ActiveShareExploration und nichts tuende Gegner

          Das ist ja soweit ich weiß, nur die Reichweite (Radius), in dem die KI nach Gegnern sucht und dann angreift. Das heißt doch, dass sie trotzdem Truppen produzieren könnte und mit der ActiveShareExploration sehe ich auch keinen Zusammenhang.

          - - - Aktualisiert - - -

          Diese nebenbemerkungen sind nicht zu beachten, das kommt daher, dass ich diese Funktion von der Wiki kopiert habe. Die Werte habe ich dann angepasst.

          Kommentar


          • #6
            AW: ActiveShareExploration und nichts tuende Gegner

            5 Millonen ist weit über die Grenzen der größten Map.
            Daraus resultiert eine 0.
            Es passiert also gar nix!

            Aber frag doch bei Siedelwood einmal nach.
            Kannst Dich dort ruhig anmelden ... tut auch gar nicht weh
            Die Mädels und Jungs helfen Dir bestimmt !
            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


            • #7
              AW: ActiveShareExploration und nichts tuende Gegner

              Mir ist gerade noch aufgefallen, dass das ganze Skript nicht "benutzt" wird. Und zwar daran, dass auch die Anfangsreccourcen nicht gegeben werden. Vieleicht fällt dir dann doch noch was auf?


              PS.: Ich habe mich auch Siedelwood angemeldet und meine Frage gepostet, doch dort sind wohl nur 2-4 User aktiv, die Siedler 5 skripten.

              Kommentar


              • #8
                AW: ActiveShareExploration und nichts tuende Gegner

                Zitat von Josebra01 Beitrag anzeigen
                PS.: Ich habe mich auch Siedelwood angemeldet und meine Frage gepostet, doch dort sind wohl nur 2-4 User aktiv, die Siedler 5 skripten.
                Sind auf jeden Fall mehr wie hier
                Hier gehts doch nur noch um Sport und bla bla bla.
                Ab und an mal Technik.

                Du hast doch bei Herr der Ringe jetzt ein funktionierndes Script ??
                Benutz das doch als Vorlage, und mach nur Änderungen da drinn.
                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


                • #9
                  AW: ActiveShareExploration und nichts tuende Gegner

                  Genau das habe ich ;D. Das muss wohl ein tiefgründiger Fehler sein, so ein Profi von der anderen Website hatte nach 2 Stunden Map überprüfung un Skript lesen auch keine Ahnung, die Anfangsrohstoffe gingen dann, ActiveShareExploration geht auch, aber wenn man in die Map reingeht, stürzt Siedler ab.

                  Kommentar


                  • #10
                    AW: ActiveShareExploration und nichts tuende Gegner

                    Nehm Dir noch mal das mit den 5 Millionen vor.
                    Das kann so nicht sein!
                    Da wird ein Overflow erzeugt, das Programm muss Abstürzen.
                    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

                    Lädt...
                    X