+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 20 von 45
  1. #1
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard Reward_AI_SpawnAndAttackTerritory

    Ich habe den Befehl entsprechend Bild gesetzt. Bei "verwende bestehende Truppen" habe ich ein Plus gesetzt. Ich gehe jetzt davon aus, dass wirklich vorhandene Truppen verwendet werden.
    Trotzdem habe ich zu einem bestimmten Zeitpunkt eine unmenge Soldaten von diesem Spieler. Was läuft hier falsch?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Reward_AI_SpawnAndAttackTerritory-reward-ai-spawn.jpg  
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  2. #2
    Holzfäller Avatar von manuela1959
    Registriert seit
    15.03.2008
    Ort
    Sachsen
    Beiträge
    136

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Ich hoffe ich erzähle nichts falsches. Aber ich glaube, da muss ein minus rein. Sonst kann es zu Unmengen von Soldaten kommen. Ich hatte das mal bei einer Map und meine, das Saladin es mir so erklärt hat. Ich hoffe ich verwechsle jetzt nicht minus und plus??
    Grüsse

  3. #3
    Müller Avatar von LordFWD
    Registriert seit
    05.11.2007
    Beiträge
    571

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Zitat Zitat von mattizwo Beitrag anzeigen
    Ich habe den Befehl entsprechend Bild gesetzt. Bei "verwende bestehende Truppen" habe ich ein Plus gesetzt. Ich gehe jetzt davon aus, dass wirklich vorhandene Truppen verwendet werden.
    Trotzdem habe ich zu einem bestimmten Zeitpunkt eine unmenge Soldaten von diesem Spieler. Was läuft hier falsch?
    mit dem Script erschaffst du ja schon sechs Battalione zusätzlich...
    bei + werden alle Battalione des KI Spielers dazu gerechnet
    hast du denn schon probiert was bei - passiert?

  4. #4
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Zitat Zitat von LordFWD Beitrag anzeigen
    mit dem Script erschaffst du ja schon sechs Battalione zusätzlich...
    bei + werden alle Battalione des KI Spielers dazu gerechnet
    hast du denn schon probiert was bei - passiert?
    Das war mir neu. Ich dachte er nimmt bei Plus die Battalione von den vorhandenen Soldaten.
    Mit Deiner Aussage wird vieles klarer. Werde das mal probieren.
    Ed müsste ja nun reichen, wenn man jeweils ein Battalion nimmt und dann + - mal sehen.
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  5. #5
    Serf
    Registriert seit
    04.10.2007
    Beiträge
    78

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    "+" bedeutet "Ja/Aktivieren".
    Möglicherweise gibt es da einen Bug, oder die Unmengen von Soldaten kommen von einem anderen Spawn.

    Du kannst das mal mit einer einzigen Truppe Soldaten austesten.
    Einen kleinen Timer, der über den entsprechenden Quest einen Angriff mit einem bestehenden Bataillon aufs Nachbargebiet startet, und dann beide Quests resettet.

    Wenn das funktioniert, dann hast du je nach Wegstrecke ein oder zwei Grüppchen patrouillierender Soldaten. Danach kannst du dann die Anzahl der Einheiten erhöhen und austesten wann es anfängt schief zu laufen.

  6. #6
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Zitat Zitat von Chromix Beitrag anzeigen
    "+" bedeutet "Ja/Aktivieren".
    Möglicherweise gibt es da einen Bug, oder die Unmengen von Soldaten kommen von einem anderen Spawn.

    Du kannst das mal mit einer einzigen Truppe Soldaten austesten.
    Einen kleinen Timer, der über den entsprechenden Quest einen Angriff mit einem bestehenden Bataillon aufs Nachbargebiet startet, und dann beide Quests resettet.

    Wenn das funktioniert, dann hast du je nach Wegstrecke ein oder zwei Grüppchen patrouillierender Soldaten. Danach kannst du dann die Anzahl der Einheiten erhöhen und austesten wann es anfängt schief zu laufen.
    Jetzt bin ich ganz durcheinander. Sind die die Truppen in meinem Beispiel nun zusätzlich oder nicht - jedenfalls theoretisch?
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  7. #7
    Imker Avatar von Fidelio1958
    Registriert seit
    18.06.2008
    Ort
    Wien 1100 (Österreich)
    Beiträge
    726

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Zitat Zitat von mattizwo Beitrag anzeigen
    Jetzt bin ich ganz durcheinander. Sind die die Truppen in meinem Beispiel nun zusätzlich oder nicht - jedenfalls theoretisch?
    Also, ich mach das immer mit "-", da kommen genau die Soldaten, die man angibt, die werden zusätzlich erzeugt!
    Ich kann mich erinnern, dass da bei "+" mal von einem Bug gesprochen wurde, weiss aber auch nicht mehr genau, habs auch nicht probiert.

  8. #8
    Müller Avatar von LordFWD
    Registriert seit
    05.11.2007
    Beiträge
    571

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Zitat Zitat von Chromix Beitrag anzeigen
    "+" bedeutet "Ja/Aktivieren".
    Möglicherweise gibt es da einen Bug, oder die Unmengen von Soldaten kommen von einem anderen Spawn.

    Du kannst das mal mit einer einzigen Truppe Soldaten austesten.
    Einen kleinen Timer, der über den entsprechenden Quest einen Angriff mit einem bestehenden Bataillon aufs Nachbargebiet startet, und dann beide Quests resettet.

    Wenn das funktioniert, dann hast du je nach Wegstrecke ein oder zwei Grüppchen patrouillierender Soldaten. Danach kannst du dann die Anzahl der Einheiten erhöhen und austesten wann es anfängt schief zu laufen.
    hier bedeutet es wohl mehr wiederverwenden

    Code:
    function AIScript_SpawnAndCreateArmy(_AIPlayerID, _SpawnEntity, _Sword, _Bow, _Catapults, _SiegeTower, _Rams, _AmmoCarts, _UseRedPrinceTroops, _ReuseExistingMilitaryOnSameSector)
    
        local SpawnedTroops = {}
    
        local ArmyPositionID = AIScriptHelper_GetEntityID(_SpawnEntity)             
        local X,Y = Logic.GetEntityPosition(ArmyPositionID)
        if Logic.IsBuilding( ArmyPositionID ) == 1 then
            X, Y = Logic.GetBuildingApproachPosition( ArmyPositionID )
        end
        local ArmyID = AICore.CreateArmy(_AIPlayerID)
        
        -- Try to find idle military units on the same sector as the spawnpoint.
        -- If they are on the same sector, add them to the army and spawn the remaining amount of units at the spawnpoint
        -- Doesn't reuse ammo carts :-)
        -- If at least one unit isn't on the same sector forget about reusing units for simplicity reasons [ChMo]
        if _ReuseExistingMilitaryOnSameSector then
            local SectorSpawn = Logic.GetPlayerSectorAtPosition( _AIPlayerID, X, Y )
            local SwordNew = _Sword
            local BowNew = _Bow
            local CatapultsNew = _Catapults
            local SiegeTowerNew = _SiegeTower
            local RamsNew = _Rams
            
            if _Sword then
                for i = _Sword, 1, -1 do
                    if AICore.CheckFreeUnits( _AIPlayerID, i, 0, 0, 0, 0 ) then
                        AICore.AddSwordsmenToArmy( _AIPlayerID, ArmyID, i, i, i )
                        SwordNew = _Sword - i
                        break
                    end
                end
            end
            if _Bow then
                for i = _Bow, 1, -1 do
                    if AICore.CheckFreeUnits( _AIPlayerID, 0, i, 0, 0, 0 ) then
                        AICore.AddBowmenToArmy( _AIPlayerID, ArmyID, i, i, i )
                        BowNew = _Bow - i
                        break
                    end
                end
            end
            if _Catapults then
                for i = _Catapults, 1, -1 do
                    if AICore.CheckFreeUnits( _AIPlayerID, 0, 0, 0, 0, i ) then
                        AICore.AddCatapultToArmy( _AIPlayerID, ArmyID, i, i, i )
                        CatapultsNew = _Catapults - i
                        break
                    end
                end
            end
            if _SiegeTower then
                for i = _SiegeTower, 1, -1 do
                    if AICore.CheckFreeUnits( _AIPlayerID, 0, 0, 0, i, 0 ) then
                        AICore.AddTowerToArmy( _AIPlayerID, ArmyID, i, i, i )
                        SiegeTowerNew = _SiegeTower - i
                        break
                    end
                end
            end
            if _Rams then
                for i = _Rams, 1, -1 do
                    if AICore.CheckFreeUnits( _AIPlayerID, 0, 0, i, 0, 0 ) then
                        AICore.AddRamToArmy( _AIPlayerID, ArmyID, i, i, i )
                        RamsNew = _Rams - i
                        break
                    end
                end
            end
            
            local TroopIDs = AICore.ArmyGetEntities( _AIPlayerID, ArmyID )
            if TroopIDs then
                local AreOnSameSector = true
                for _, ID in ipairs( TroopIDs ) do
                    local XTroop, YTroop = Logic.GetEntityPosition( ID )
                    if SectorSpawn ~= Logic.GetPlayerSectorAtPosition( _AIPlayerID, XTroop, YTroop ) then
                        AreOnSameSector = false
                        break
                    end
                    table.insert( SpawnedTroops, ID )
                end
                
                if #SpawnedTroops > 0 then
                    if AreOnSameSector then
                        _Sword = SwordNew
                        _Bow = BowNew
                        _Catapults = CatapultsNew
                        _SiegeTower = SiegeTowerNew
                        _Rams = RamsNew
                    else
                        SpawnedTroops = {}
                        AICore.DisbandUnusedArmy(ArmyID)
                        ArmyID = AICore.CreateArmy(_AIPlayerID)
                    end
                end
            else
                SpawnedTroops = {}
            end
        end
        
        if (_Sword ~= nil) then
            for i=1, _Sword do
                
                local FighterType = AIScriptHelper_GetTroopTypeOverride( Entities.U_MilitarySword, _UseRedPrinceTroops )
                local EntityID = Logic.CreateBattalionOnUnblockedLand(FighterType, X, Y, 0, _AIPlayerID);
                AICore.AddEntityToArmy(_AIPlayerID, ArmyID, EntityID)
                table.insert(SpawnedTroops, EntityID)
            
            end
        end
    
        if (_Bow ~= nil) then
            for i=1, _Bow do
            
                local FighterType = AIScriptHelper_GetTroopTypeOverride( Entities.U_MilitaryBow, _UseRedPrinceTroops )
                local EntityID = Logic.CreateBattalionOnUnblockedLand(FighterType, X, Y, 0, _AIPlayerID);
                AICore.AddEntityToArmy(_AIPlayerID, ArmyID, EntityID)
                table.insert(SpawnedTroops, EntityID)
            
            end
        end
    
    
        if (_Rams ~= nil) then
            for i=1, _Rams do
                
                local EntityID = Logic.CreateEntityOnUnblockedLand(Entities.U_BatteringRamCart, X, Y, 0, _AIPlayerID);
                AICore.AddEntityToArmy(_AIPlayerID, ArmyID, EntityID)
                table.insert(SpawnedTroops, EntityID)
                
            end
        end
    
        if (_SiegeTower ~= nil) then
            for i=1, _SiegeTower do
                
                local EntityID = Logic.CreateEntityOnUnblockedLand(Entities.U_SiegeTowerCart, X, Y, 0, _AIPlayerID);
                AICore.AddEntityToArmy(_AIPlayerID, ArmyID, EntityID)    
                table.insert(SpawnedTroops, EntityID)
                
            end
        end
    
        if (_Catapults ~= nil) then
            for i=1, _Catapults do
                
                local EntityID = Logic.CreateEntityOnUnblockedLand(Entities.U_CatapultCart, X, Y, 0, _AIPlayerID);
                AICore.AddEntityToArmy(_AIPlayerID, ArmyID, EntityID)   
                table.insert(SpawnedTroops, EntityID)
            
            end
        end
    
        if (_AmmoCarts ~= nil) then
            for i=1, _AmmoCarts do
                
                local EntityID = Logic.CreateEntityOnUnblockedLand(Entities.U_AmmunitionCart, X, Y, 0, _AIPlayerID);
                AICore.AddEntityToArmy(_AIPlayerID, ArmyID, EntityID)   
                table.insert(SpawnedTroops, EntityID)
            
            end
        end
    
        return ArmyID, SpawnedTroops
    
    end

  9. #9
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Zitat Zitat von Fidelio1958 Beitrag anzeigen
    Also, ich mach das immer mit "-", da kommen genau die Soldaten, die man angibt, die werden zusätzlich erzeugt!
    Ich kann mich erinnern, dass da bei "+" mal von einem Bug gesprochen wurde, weiss aber auch nicht mehr genau, habs auch nicht probiert.
    Das ist ja das Problem. Bei einem periodischem Quest werden die Soldaten durch die Überlebenden immer mehr. Bei einer Map, die 3 Stunden dauert, wird das zum Problem.
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  10. #10
    Serf
    Registriert seit
    04.10.2007
    Beiträge
    78

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Aus dem Code oben wird denke ich das Problem ersichtlich.
    Du packst alle Einheitentypen in die gleiche Armee rein.
    Wenn jetzt beispielsweise kein Katapult mehr da steht, bzw zu weit weg ist, dann wird die komplette Armee neu erzeugt.
    Abgesehen davon werden Ammo Carts nicht wiederverwendet.

    Du könntest den Angriff aufteilen, also einmal schwerti, katapult, ammo cart, ram, und als zweite Armee die ganzen Bogis/Schwertis. Dadurch sollte zumindest durch letztere Armee sichergestellt sein, dass die Anzahl der Soldaten nicht ins Unendliche wächst.
    Rammen und Katapulte kommen (bei genügend Munition) meist eh nicht vom Angriff zurück... es sei denn in dem Gebiet ist nichts mehr was angegriffen werden kann.

  11. #11
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Zitat Zitat von Chromix Beitrag anzeigen
    Aus dem Code oben wird denke ich das Problem ersichtlich.
    Du packst alle Einheitentypen in die gleiche Armee rein.
    Wenn jetzt beispielsweise kein Katapult mehr da steht, bzw zu weit weg ist, dann wird die komplette Armee neu erzeugt.
    Abgesehen davon werden Ammo Carts nicht wiederverwendet.

    Du könntest den Angriff aufteilen, also einmal schwerti, katapult, ammo cart, ram, und als zweite Armee die ganzen Bogis/Schwertis. Dadurch sollte zumindest durch letztere Armee sichergestellt sein, dass die Anzahl der Soldaten nicht ins Unendliche wächst.
    Rammen und Katapulte kommen (bei genügend Munition) meist eh nicht vom Angriff zurück... es sei denn in dem Gebiet ist nichts mehr was angegriffen werden kann.
    Also mache ich aus einem Quest zwei so wie die Bilder zeigen.
    Warum muss das bei S6 immer so kompliziert sein?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Reward_AI_SpawnAndAttackTerritory-ai_spawnandattack-.jpg   Reward_AI_SpawnAndAttackTerritory-ai_spawnandattack-b.jpg  
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  12. #12
    Imker Avatar von Fidelio1958
    Registriert seit
    18.06.2008
    Ort
    Wien 1100 (Österreich)
    Beiträge
    726

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    irgendwie ist das schon komisch, bei dem Quest kann was nicht stimmen!

    Hab mit der Testkarte 3 Angriffe mit je einem Batt Schwerties gemacht. Die Soldaten werden jedesmal neu kreiert, egal ob man "+" oder "-" setzt.
    Beim zweiten Angriff ( mit + ) waren ja schon Soldaten da, trotzdem kamen neue!

  13. #13
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Auch hier gibt es leider bis jetzt kein zufriedenstellendes Ergebnis.
    Eina Frage an die Script-Größen - Liegt denn nun ein Bug vor?

    Ich habe vieles probiert, aber es bringt nicht viel.
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  14. #14
    Müller Avatar von LordFWD
    Registriert seit
    05.11.2007
    Beiträge
    571

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Zitat Zitat von mattizwo Beitrag anzeigen
    Auch hier gibt es leider bis jetzt kein zufriedenstellendes Ergebnis.
    Eina Frage an die Script-Größen - Liegt denn nun ein Bug vor?

    Ich habe vieles probiert, aber es bringt nicht viel.
    versuche mal Reward_MapSriptFunction "ErsterAngriff"
    Code:
    function  ErsterAngriff()
    
     AIScript_SpawnAndAttackCity(8, Logic.GetStoreHouse(1), Logic.GetEntityIDByName("MPKhana"), 3, 3, 1, 1, 1, 0)
    
    end

  15. #15
    Serf
    Registriert seit
    04.10.2007
    Beiträge
    78

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Auf meiner kleinen Testkarte funktioniert die Wiederverwendung mit einem einfachen Quest. Jetzt müsste man das mal auf größere Karten übertragen und nachsehen was da schief läuft.




  16. #16
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Ich werde das jetzt alles mal testen. Das kann aber dauern.
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  17. #17
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Die Kombination Goal_UnitsOnTerritory mit Reward_SpawnAndAttack...
    habe ich so noch nie gemacht Sieht jedenfalls interessant aus.
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  18. #18
    Serf
    Registriert seit
    04.10.2007
    Beiträge
    78

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Es war eigentlich ein Reward_AttackArea damit nur Holzfäller o.ä. angegriffen wird.
    Allerdings ist mir der Holzfäller im Test immer zu schnell abgefackelt.
    Deswegen habe ich fürs Video auf *Territory geändert damit Burg und Lagerhaus angegriffen werden.
    Und ja, mit so einem einfachen Trigger kann man einem Spieler viel "Freude" bereiten ;-)

    Du kannst ja mal etwas herumexperimentieren. Mehr Soldaten, unterschiedliche Soldaten, längere Laufwege, etc. Vielleicht lässt sich so herausfinden warum es auf der Testkarte klappt und auf deiner großen Karte nicht.

  19. #19
    Bannermacher Avatar von mattizwo
    Registriert seit
    01.10.2007
    Beiträge
    2,455

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    Also bei den Befehlen Reward_AI_SpawnAndAttackTerritory, Reward_AI_SpawnAndProtectArea und Reward_AI_SpawnAndAttackArea
    ist ein Bug drin. Obwohl ich überall bei verwende bestehende Einheiten ein Plus gesetzt habe, werden ständig neue Soldaten gebildet. Dann kommt es zu Unmengen von Soldaten im Spiel.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Reward_AI_SpawnAndAttackTerritory-angriff.jpg  
    Wäre der Editor eine SPS, würde sie sicherlich niemand kaufen.

    http://www.borussia.de/de/team-saiso...elerkader.html



  20. #20
    Brückenarchitekt Avatar von Annosiedler
    Registriert seit
    02.01.2009
    Ort
    Niedersachsen
    Beiträge
    2,826

    Standard AW: Reward_AI_SpawnAndAttackTerritory

    hmm, würd mich auch mal interessieren, da ich immer das + gesetzt habe damit ebend dieser bug NICHT passiert (unmengen von soldaten).

    ansonsten gebe es da noch den alternativweg die ki von BB zu benutzen, einfach mit R_AI_Agressiveness. allerdings ist diese ki wirlich grottenschlecht.

+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte

LinkBacks (?)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. Frage zu Reward_AI_SpawnAndAttackTerritory
    Von Annosiedler im Forum Siedler 6 AeK Mapperecke
    Antworten: 4
    Letzter Beitrag: 27.03.2009, 17:50
  2. Reward_AI_SpawnAndAttackTerritory
    Von mattizwo im Forum S6 Scriptecke
    Antworten: 3
    Letzter Beitrag: 13.12.2008, 22:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein