TruppenSpawnGenerator

» Siedler Map Source Forum » Technische Hilfe » TruppenSpawnGenerator

Seiten: 1

Pirategamer
#1
02.02.2014 16:27
Beiträge: 195

TruppenSpawnGenerator

Ich brauche nochmal Hilfe: Ich habe dies im Script:

Army = {}
Army.player = 4
Army.id = 1
Army.strength = 3
Army.position = GetPosition("EnemySpawn")
Army.rodeLength = 1000
 
SetupArmy(Army)
Army.spawnTypes = {
{Entities.PU_LeaderPoleArm4, 8},
{Entities.PU_LeaderPoleArm4, 8},
{Entities.PU_LeaderPoleArm4, 8}, 
{Entities.PU_LeaderSword4,   8},
{Entities.PU_LeaderSword4,   8},
{Entities.PU_LeaderSword4,   8}  
}
Army.endless = true
Army.spawnPos = GetPosition("EnemySpawn")
Army.spawnGenerator = "EnemyHQ1"
Army.respawnTime = 1
Army.refresh = true
Army.maxSpawnAmount = 3
Army.noEnemy = true
Army.noEnemyDistance = 500
SetupAITroopSpawnGenerator("EnemyArmy", Army)



Ich habe dann das eingefügt, aber es kamen nur die Steitlanzträger! Ich glaube , das die 1 für Stunden ist! Kann mir irgend jemand sagen, was ich falsch geacht habe?

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

mcb
#2
02.02.2014 17:30
Beiträge: 1472

Deine Armee hat die Stärke 3. Das heißt 3 Leader. Sind die voll, spawnt nix mehr. Wenn du allerdings jetzt die Hellebardiere killst, spawnen Bastardschwertkämpfer. (Du kannst natürlich auch einfach die Stärke auf 6 setzen...)

PS: nachstes Mal ins Scriptforum

Pirategamer
#3
02.02.2014 17:49
Beiträge: 195

Ich habe die alle gekillt aber nichts passiert!

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

mcb
#4
02.02.2014 18:16
Beiträge: 1472

Lebt der Spawn-Generator noch?
Stehen deine Soldaten noch in der Nähe?

Pirategamer
#5
02.02.2014 18:26
Beiträge: 195

Ja und ja!

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

mcb
#6
02.02.2014 18:32
Beiträge: 1472

Hast du die KI aktiviert? Wenn ja, poste bitte den Code dazu.

Pirategamer
#7
02.02.2014 18:37
Beiträge: 195

Ja habe ich:

function CreatePlayer4() 
player4 = {} 
player4.id = 4 
local description = {serfLimit = 10} 
SetupPlayerAi(player4.id,description) 
end 


Ich habe das im Script, wenn ich dich richtig verstanden habe!

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

mcb
#8
02.02.2014 19:13
Beiträge: 1472

Sieht eigentlich korrekt aus... Poste mal das komplette Script, wenns nicht zu lang ist. Und prüfe die Script-Namen.

Pirategamer
#9
02.02.2014 19:35
Beiträge: 195

Mach ich morgen! Hab keine Zeit mehr!

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

Pirategamer
#10
03.02.2014 12:51
Beiträge: 195

Was meinst du mit "komplett"?

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

Flodder
#11
03.02.2014 13:28
Beiträge: 2608

Versuch`s mal damit (...Muster):

function CreateTroops()
	TroopOne = {
		player 		    = 2,
		id 		    = 3,
		strength 	    = 8,
		position 	    = GetPosition("spawn1"),
		rodeLength 	    = 1500,	
		spawnTypes 	    = {
		{Entities.CU_BanditLeaderBow1, 8},
		{Entities.CU_BanditLeaderSword2, 8},
		},
		endless 	    = true, --oder false,
		spawnPos 	    = GetPosition("spawn1"),
		spawnGenerator 	    = "tower1",
		respawnTime 	    = 180, --Angabe in Sekunden
		refresh 	    = false, --oder true,
		maxSpawnAmount 	    = 4,
		noEnemy 	    = true, --oder false,
		noEnemyDistance     = 500,
		retreatStrength     = 5,
		baseDefenseRange    = 1000,
		outerDefenseRange   = 3000,
		AttackAllowed       = false, --oder true,

	}
	SetupArmy( TroopOne )
	SetupAITroopSpawnGenerator("SpawnTroopOne", TroopOne)
	ControlTroopOne = StartSimpleJob("ControlTroopOne")
end
--**
function ControlTroopOne()
	if Counter.Tick2("ControlTroopOne", 10) then
		if IsAlive(TroopOne) then
            TickOffensiveAIController(TroopOne)
        elseif IsAITroopGeneratorDead(TroopOne) then
            return true
        end
    end
end


Sollte klappen.
Kannst das spawnType-table und alle anderen Vorgaben gerne Deinen Wünschen entsprechend erweitern, bzw. anpassen.

Achte aber bitte darauf, dass in dem spawnType-table hinter jeder der zu generierenden Armeetypen ein Komma stehen muss.

____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.

Dieser Beitrag wurde von Flodder am 03.02.2014 um 13:39 editiert.

Pirategamer
#12
03.02.2014 18:20
Beiträge: 195

Hier ist es:

--------------------------------------------------------------------------------
-- MapName:Schlacht um Burg Amenstein
--
-- Author: Pirategamer
--
--------------------------------------------------------------------------------

-- 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(_playerId1,_playerId2) 
SetHostile(_playerId1,_playerId3)
SetFriendly(_playerId1,_playerId4)
SetPlayerName(1,"Burg Amenstein")
SetPlayerName(2,"???")
SetPlayerName(3,"Kerberos")
SetPlayerName(4,"Varg")
end


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

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

ResearchTechnology(Technologies.GT_Construction) 
ResearchTechnology(Technologies.GT_GearWheel)
ResearchTechnology(Technologies.GT_ChainBlock)
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(1,1)
	Display.SetPlayerColorMapping(2,5)
	Display.SetPlayerColorMapping(3,7)
Display.SetPlayerColorMapping(4,8)
end
	
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- This function is called on game start after all initialization is done
function FirstMapAction()

local troopDescription = { 
minNumberOfSoldiers = 0, 
maxNumberOfSoldiers = 3, 
experiencePoints = VERYHIGH_EXPERIENCE, 
leaderType = Entities.PU_LeaderHeavyCavalry2, 
position = GetPosition("support") 
} 
local army = {} 
local a1 = CreateTroop(army,troopDescription) 
local a2 = CreateTroop(army,troopDescription) 
local a3 = CreateTroop(army,troopDescription) 
local a4 = CreateTroop(army,troopDescription) 

local troopDescription = { 
minNumberOfSoldiers = 0, 
maxNumberOfSoldiers = 8, 
experiencePoints = VERYHIGH_EXPERIENCE, 
leaderType = Entities.PU_LeaderSword4, 
position = GetPosition("support2") 
} 
local army = {} 
local a1 = CreateTroop(army,troopDescription) 
local a2 = CreateTroop(army,troopDescription) 
local a3 = CreateTroop(army,troopDescription) 
local a4 = CreateTroop(army,troopDescription) 
local troopDescription = { 
minNumberOfSoldiers = 0, 
maxNumberOfSoldiers = 8, 
experiencePoints = VERYHIGH_EXPERIENCE, 
leaderType = Entities.PU_LeaderSword4, 
position = GetPosition("support3") 
} 
local army = {} 
local a1 = CreateTroop(army,troopDescription) 
local a2 = CreateTroop(army,troopDescription) 
local a3 = CreateTroop(army,troopDescription) 
local a4 = CreateTroop(army,troopDescription) 
local a5 = CreateTroop(army,troopDescription) 

local troopDescription = { 
minNumberOfSoldiers = 0, 
maxNumberOfSoldiers = 8, 
experiencePoints = VERYHIGH_EXPERIENCE, 
leaderType = Entities.PU_LeaderBow4, 
position = GetPosition("support4") 
} 
local army = {} 
local a1 = CreateTroop(army,troopDescription) 
local a2 = CreateTroop(army,troopDescription) 
local a3 = CreateTroop(army,troopDescription) 
local a4 = CreateTroop(army,troopDescription) 
local a5 = CreateTroop(army,troopDescription) 
local troopDescription = { 
minNumberOfSoldiers = 0, 
maxNumberOfSoldiers = 8, 
experiencePoints = VERYHIGH_EXPERIENCE, 
leaderType = Entities.PU_LeaderBow4, 
position = GetPosition("support5") 
} 
local army = {} 
local a1 = CreateTroop(army,troopDescription) 
local a2 = CreateTroop(army,troopDescription) 
local a3 = CreateTroop(army,troopDescription) 
local a4 = CreateTroop(army,troopDescription) 
local a5 = CreateTroop(army,troopDescription) 

function CreatePlayer2() 
player2 = {} 
player2.id = 2 
local description = {serfLimit = 10} 
SetupPlayerAi(player2.id,description) 
end 

function CreatePlayer3() 
player3 = {} 
player3.id = 3 
local description = {serfLimit = 10} 
SetupPlayerAi(player3.id,description) 
end 

function CreatePlayer4() 
player4 = {} 
player4.id = 4 
local description = {serfLimit = 10} 
SetupPlayerAi(player4.id,description) 
end 

Army = {}
Army.player = 4
Army.id = 1
Army.strength = 3
Army.position = GetPosition("EnemySpawn")
Army.rodeLength = 1000
 
SetupArmy(Army)
Army.spawnTypes = {
{Entities.PU_LeaderPoleArm4, 8},
{Entities.PU_LeaderPoleArm4, 8},
{Entities.PU_LeaderPoleArm4, 8}, 
{Entities.PU_LeaderSword4,   8},
{Entities.PU_LeaderSword4,   8},
{Entities.PU_LeaderSword4,   8}  
}
Army.endless = true
Army.spawnPos = GetPosition("EnemySpawn")
Army.spawnGenerator = "EnemyHQ1"
Army.respawnTime = 1
Army.refresh = true
Army.maxSpawnAmount = 3
Army.noEnemy = true
Army.noEnemyDistance = 500
SetupAITroopSpawnGenerator("EnemyArmy", Army)

function ControlDoorOne()
    local closed = "DoorOneClosed"  
    local opened = "DoorOneOpened"  
 
    if IsExisting( closed) and not AreEnemiesInArea( 1, GetPosition( closed), 2000) then
        Sound.PlayGUISound(Sounds.fanfare, 0)
        Message("Männer, öffnet das Tor!")
        local entityId = ReplaceEntity( closed, Entities.XD_WallStraightGate)
        SetEntityName( entityId, opened)
    elseif IsExisting( opened) and AreEnemiesInArea( 1, GetPosition( opened), 2000) then
        Sound.PlayGUISound(Sounds.fanfare, 0)
        Message("Männer, schließt das Tor!")
        local entityId = ReplaceEntity( opened, Entities.XD_WallStraightGate_Closed)
        SetEntityName( entityId, closed)
    end
end
	local VictoryConditionType = 2

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

	-- Level 0 is deactivated...ignore
	MapEditor_SetupAI(2, 2, 400000000, 3, "Kerberos", 3, 0)
	MapEditor_SetupAI(3, 2, 400000000, 2, "Varg", 3, 0)
	MapEditor_SetupAI(4, 3, 600000000, 2, "der Freund", 3, 0)
	MapEditor_SetupAI(5, 0, 0, 0, "", 0, 0)
	MapEditor_SetupAI(6, 0, 0, 0, "", 0, 0)
	MapEditor_SetupAI(7, 0, 0, 0, "", 0, 0)
	MapEditor_SetupAI(8, 0, 0, 0, "", 0, 0)

	-- HQ Defeat Condition
	MapEditor_CreateHQDefeatCondition()

end

-- Quest data
MapEditor_QuestTitle				= "Hauptaufgabe"
MapEditor_QuestDescription 	= "Besiegt die anderen Städte und Hauptquartiere um zu gewinnen."


Es ist das ganze Script!

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

mcb
#13
03.02.2014 18:34
Beiträge: 1472

Kein Wunder, das das nicht funktioniert
1) Du erstellst Funktionen, um die KI zu aktivieren, rufst diese aber auch nicht auf. (und auch noch an der falschen Stelle...)
2) Du verwendes CreateTroop, ohne zu wissen, was die macht. Besser wäre CreateMilitaryGroup.

Bringen wir das ganze mal auf Vordermann:

function FirstMapAction()
   function CreatePlayer2() -- ist da falsch!
      ...
   end

   --muss hier aufgerufen werden:
   CreatePlayer2()
end
-- muss hier hin:
function CreatePlayer2()
   ...
end



Und anstatt dem CreateTroop:

--CreateMilitaryGroup(_player,_entity,_soldiers,_position)
CreateMilitaryGroup(1, Entities.PU_LeaderSword4, 8, GetPosition("support"))

Pirategamer
#14
03.02.2014 18:41
Beiträge: 195

Bau mir das in Scriptsprache ganz auf und poste es hier, da ich Erstens kein Englisch verstehe und Zweitens ich es dann im meinem Script einfügen kann!

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

Fire_Bird
#15
03.02.2014 19:01
Beiträge: 719

Zitat von Pirategamer:
Bau mir das in Scriptsprache ganz auf und poste es hier, da ich Erstens kein Englisch verstehe und Zweitens ich es dann im meinem Script einfügen kann!



Vielleicht geht das ganze jetzt noch freundlicher?

Pirategamer
#16
03.02.2014 19:02
Beiträge: 195

OK!
Bitte poste das hier!

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

bobby
#17
03.02.2014 19:38
Beiträge: 393

Wie wärs wenn du es wenigstens einmal selbst versuchst?
Mach bitte nicht nach jedem Satz ein Rufezeichen, da fühlt man sich permanent angeschrien...

____________________
Tools und Verbesserungen für Siedler: settlers.pro

Neues:
Cutscene Editor
LuaDebugger v0.5.2

Flodder
#18
03.02.2014 19:47
Beiträge: 2608

Zitat von Pirategamer:
Bau mir das in Scriptsprache ganz auf und poste es hier, da ich Erstens kein Englisch verstehe und Zweitens ich es dann im meinem Script einfügen kann!


Glaube kaum, dass Dir jemand das komplette Skript erstellen wird und dann noch hier reinstellt. Wie soll`s dann mit Dir in Zukunft weitergehen? Wieder Skript erstellen lassen?

Wie willst Du daraus lernen?

Spezifische Fragen kannst Du hier jederzeit stellen. Da wird gerne geholfen, aber ein komplettes Skript? Dazu bräuchte man genau genommen auch noch die entsprechende Karte, weil viele Dinge im direkten Zusammenhang zwischen Map und Skript stehen.

Learning by doing, lieber Kollege.

Fast alle hier sind so angefangen und es hat mitunter Jahre gedauert.
Ein Blick in das Tutorial soll ebenfalls Wunder wirken.

____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.

Dieser Beitrag wurde von Flodder am 03.02.2014 um 20:01 editiert.

Pirategamer
#19
03.02.2014 19:50
Beiträge: 195

Ich meinte die Funktion(ich Dummi hab vergessen das zu schreiben).

____________________
Wenn man sich den ganzen Tag vornimmt, nichts zu erreichen und das dann auch schafft, hat man dann was erreicht oder nicht?

Wenn ich mich noch nicht revengiert habe für die netten Kommentare, werde ich das nachholen!
Besucht mich in meinem Profil.

LG Pirategamer Ahoi!

bobby
#20
03.02.2014 20:01
Beiträge: 393

Ich hab mir dein Skript mal angeschaut und habe jetzt 2 Fragen an dich:

1. Hast du das Editor Tutorial einmal durchgearbeitet?
2. Hast du in dem Skript irgend etwas selbstgeschrieben oder bloß kopiert?

Bei der Funktion würde es sich in deinem Fall nämlich um dein gesamtes Skript handeln

____________________
Tools und Verbesserungen für Siedler: settlers.pro

Neues:
Cutscene Editor
LuaDebugger v0.5.2

Seiten: 1

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

Impressum