Truppen per Script

» Siedler Map Source Forum » Siedler DEdK Script Forum » Truppen per Script

Seiten: 1

andre111
#1
29.01.2010 14:11
Beiträge: 220

Truppen per Script

hallo,

ich habe versucht mit:

function createTrupA()

local troopDescription	= {
	maxNumberofSoldiers	= 5,
	minNumberOfSoldiers	= 0,
	experiencePoints	= HIGH_EXPERIENCE,
	leaderType		= Entities.PU_LeaderSword2,
	position		= GetPosition("nahkampf"),
	}
	local army	= {}
	CreateTroop(army,troopDescription)

end


einen Trupp Schwertkämpfer zu erstellen, aber es erscheint immer nur ein Hauptmann ohne Truppen.
Was ist hier falsch?

FG
andre111

Wladimir
#2
29.01.2010 14:14
Beiträge: 489

Zitat von andre111:
hallo,

ich habe versucht mit:

function createTrupA()

local troopDescription	= {
	maxNumberofSoldiers	= 5,
	minNumberOfSoldiers	= 0,
	experiencePoints	= HIGH_EXPERIENCE,
	leaderType		= Entities.PU_LeaderSword2,
	position		= GetPosition("nahkampf"),
	}
	local army	= {}
	CreateTroop(army,troopDescription)

end


einen Trupp Schwertkämpfer zu erstellen, aber es erscheint immer nur ein Hauptmann ohne Truppen.
Was ist hier falsch?

FG
andre111



Hallo andre111,
du hast das ScriptEntity wahrscheinlich auf unbegehbarem Terrain platziert.
Bei sowas erscheint immer nur der Hauptmann; die Soldaten werden sofort tot gemacht!

Wladimir.

PS: Welchem Spieler werden die Truppen denn hier zugeordnet?

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

aCid
#3
29.01.2010 14:16
Beiträge: 275

fehlt (vlt.) noch

EnlargeArmy(_army,_troop)


bzw.

Tools.AttachSoldiersToLeader(_army,_troop)



_army = name der armee
_troop = anzahl der soldaten, die hinzugefügt werden sollen.

bei dir wäre es dann:

EnlargeArmy(army, maxNumberofSoldiers)


bzw.

Tools.AttachSoldiersToLeader(army, maxNumberofSoldiers)



____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Wladimir
#4
29.01.2010 14:18
Beiträge: 489

Zitat von aCid:
fehlt (vlt.) noch

EnlargeArmy(_army,_troop)



Dafür sorgt bereits:

CreateTroop(army,troopDescription)



Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

andre111
#5
29.01.2010 14:18
Beiträge: 220

Zitat von Wladimir:
PS: Welchem Spieler werden die Truppen denn hier zugeordnet?



@Wladimir: Dem Spieler, so wies werden soll.

FG
andre111

Wladimir
#6
29.01.2010 14:21
Beiträge: 489

Ergänzung

Zitat von andre111:

Zitat von Wladimir:
PS: Welchem Spieler werden die Truppen denn hier zugeordnet?



@Wladimir: Dem Spieler, so wies werden soll.

FG
andre111



So kannst du sie (glaube mal) an den Spieler 2 geben.

function createTrupA()

local troopDescription	= {
	maxNumberofSoldiers	= 5,
	minNumberOfSoldiers	= 0,
	experiencePoints	= HIGH_EXPERIENCE,
	leaderType		= Entities.PU_LeaderSword2,
	position		= GetPosition("nahkampf"),
	}
	local army	= {}
	trupp1 = CreateTroop(army,troopDescription)
        ChangePlayer(trupp1,2)

end



____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

aCid
#7
29.01.2010 14:23
Beiträge: 275

Zitat von andre111:

maxNumberofSoldiers = 5,



Mach da mal ne 4, weil LeaderSword2 ja nur 4 Soldaten haben kann.

____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Wladimir
#8
29.01.2010 14:24
Beiträge: 489

Zitat von aCid:

Zitat von andre111:

maxNumberofSoldiers = 5,



Mach da mal ne 4, weil LeaderSword2 ja nur 4 Soldaten haben kann.



Für gewöhnlich werden, falls die Zahl zu groß ist, doch die maximale Anzahl an Soldaten erzeugt und zugeordnet, oder nicht?

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

aCid
#9
29.01.2010 14:28
Beiträge: 275

hier werden armeen erstellt: http://www.siedler-games.de/si...php/tutorials:armeen_erstellen

CreateTroop kenn ich auch nicht. In den Logic und Toolstable im Wiki sehe ich nichts dazu.

Denke es liegt daran.

____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Wladimir
#10
29.01.2010 14:30
Beiträge: 489

Zitat von aCid:
http://www.siedler-games.de/siedler5scriptwiki/dokuwiki/doku.php/tutorials:armeen_erstellen

hier werden armeen erstellt.

CreateTroop kenn ich auch nicht. In den Logic und Toolstable im Wiki sehe ich nichts dazu.

Denke es liegt daran.



Diese Function ist in den ganz normalen Codes für Armeen (CreateArmy1 o.Ä.) enthalten, wenn du genau hinsiehst.

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

aCid
#11
29.01.2010 14:32
Beiträge: 275

Zitat von Wladimir:
Diese Function ist in den ganz normalen Codes für Armeen (CreateArmy1 o.Ä.) enthalten, wenn du genau hinsiehst.



mit sicherheit nicht. zeig mal wo "CreateTroop" stehen soll.

@andre111: guck mal bei dem lick nach. bei deinem code, fehlen noch angaben. im wiki ist das sehr gut beschrieben.

____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Wladimir
#12
29.01.2010 14:36
Beiträge: 489

Zitat von aCid:

Zitat von Wladimir:
Diese Function ist in den ganz normalen Codes für Armeen (CreateArmy1 o.Ä.) enthalten, wenn du genau hinsiehst.



mit sicherheit nicht. zeig mal wo "CreateTroop" stehen soll.

@andre111: guck mal bei dem lick nach. bei deinem code, fehlen noch angaben. im wiki ist das sehr gut beschrieben.



Indirekt ist es drin!

local troopDescription	= {
	maxNumberofSoldiers	= 5,
	minNumberOfSoldiers	= 0,
	experiencePoints	= HIGH_EXPERIENCE,
	leaderType		= Entities.PU_LeaderSword2,
	position		= GetPosition("nahkampf"),
	}



Genauso wie bei den normalen Armeen wird dieser Abschnitt benutzt. Nur der Createbefehl (Create Troop) wurde für das Controlling verfeinert und durch nen anderen (EnlargeArmy) ersetzt.

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

andre111
#13
29.01.2010 14:41
Beiträge: 220

@aCid und Wladimir:
danke für die vielen Tipps hab es jetzt mit:

CreateMilitaryGroup(1, Entitis.PU_LeaderSword1, 4, GetPosition("nahkampf"))



gelöst.

FG
andre111

Wladimir
#14
29.01.2010 14:43
Beiträge: 489

Zitat von andre111:
@aCid und Wladimir:
danke für die vielen Tipps hab es jetzt mit:

CreateMilitaryGroup(1, Entitis.PU_LeaderSword1, 4, GetPosition("nahkampf"))



gelöst.

FG
andre111



Schön, dass es geklappt hat.
Nur musst du so leider auf die Erfahrung der Trupps verzichten.

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

andre111
#15
29.01.2010 14:46
Beiträge: 220

Zitat von Wladimir:

Zitat von andre111:
@aCid und Wladimir:
danke für die vielen Tipps hab es jetzt mit:

CreateMilitaryGroup(1, Entitis.PU_LeaderSword1, 4, GetPosition("nahkampf"))



gelöst.

FG
andre111



Schön, dass es geklappt hat.
Nur musst du so leider auf die Erfahrung der Trupps verzichten.

Wladimir.



@Wladimir:
Stimmt leider

andre111

Wladimir
#16
29.01.2010 14:51
Beiträge: 489

Zitat von andre111:

Zitat von Wladimir:

Zitat von andre111:
@aCid und Wladimir:
danke für die vielen Tipps hab es jetzt mit:

CreateMilitaryGroup(1, Entitis.PU_LeaderSword1, 4, GetPosition("nahkampf"))



gelöst.

FG
andre111



Schön, dass es geklappt hat.
Nur musst du so leider auf die Erfahrung der Trupps verzichten.

Wladimir.



@Wladimir:
Stimmt leider

andre111



Nur mal so:
Es gibt eine Lösung:
Folgende Comfortfunction, entnommen aus Burgbauscript von fritz_98:

function CreateArmyTroops( _player, _position, _leaderType, _numberOfSoldiers, _troops, _experience, _move )
    local army = {
        player     = _player,
    }
    local tD  = {
        maxNumberOfSoldiers = _numberOfSoldiers,
        minNumberOfSoldiers = 0,
        experiencePoints    = _experience,
        leaderType          = _leaderType,
        position            = _position,
    }
    for i = 1,_troops do
        army[i] = CreateTroop( army , tD )
    end
    if _move ~= nil then
        for i = 1,_troops do
            Move( army[i], _move)
        end
    end
end 



Aufruf:

local pos = GetPosition("pos")
CreateArmyTroops( 1, pos, Entities.CU_BlackKnight_LeaderMace2, 4, 1, 0, pos )



Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

aCid
#17
29.01.2010 14:57
Beiträge: 275

local troopDescription	= {
	maxNumberofSoldiers	= 5,
	minNumberOfSoldiers	= 0,
	experiencePoints	= HIGH_EXPERIENCE,
	leaderType		= Entities.PU_LeaderSword2,
	position		= GetPosition("nahkampf"),
	}
_army_name = CreateTroop(_playerId, troopDescription) -- _playerId hier dann auf 1 setzen
end



Probier das auch mal. Dann sind auch die Erfahrungspunkte mit drin.
Schade, dass man dazu nicht sofort ne Synatc findet.

Edit: Da sind wir ja fast beide gleich schnell.

____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Wladimir
#18
29.01.2010 14:59
Beiträge: 489

Zitat von aCid:

local troopDescription	= {
	maxNumberofSoldiers	= 5,
	minNumberOfSoldiers	= 0,
	experiencePoints	= HIGH_EXPERIENCE,
	leaderType		= Entities.PU_LeaderSword2,
	position		= GetPosition("nahkampf"),
	}
_army_name = CreateTroop(_playerId, troopDescription) -- _playerId hier dann auf 1 setzen
end



Probier das auch mal. Dann sind auch die Erfahrungspunkte mit drin.
Schade, dass man dazu nicht sofort ne Synatc findet.

Edit: Da sind wir ja fast beide gleich schnell.



Danke auch von mir! So muss ich keine fremden Comfortfunktionen verwenden.

Sowas hätte ich schon öfter mal benötigt, wo ich dann mit CreateMilitaryGroup klarkommen musste.

Wladimir.

PS: Von wo hast du das?

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

aCid
#19
29.01.2010 15:14
Beiträge: 275

Zitat von Wladimir:
PS: Von wo hast du das?



Mir überlegt warum mich das army in der funktion gestört hat.

Einfach CreateTroop() bzw. CreateTroop(troopDescription)in einer Testmap aufgerufen. Dann kam Fehlermeldung. Aber für AI Lua.

Dann hier http://www.siedler-games.de/si...reference:ai:functions-summary gesucht und nichts gefunden.
Dann einfach mit ner ID probiert. Da die bei den Befehlen immer dabei steht.

Glück gehabt.

____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Wladimir
#20
29.01.2010 15:15
Beiträge: 489

Zitat von aCid:

Zitat von Wladimir:
PS: Von wo hast du das?



Mir überlegt warum mich das arm in der funktion gestört hat.

Einfach CreateTroop() in einer Testmap aufgerufen. Dann kam Fehlermeldung. Aber für AI Lua.

Dann hier http://www.siedler-games.de/si...reference:ai:functions-summary gesucht und nichts gefunden.
Dann einfach mit ner ID probiert. Da die bei den Befehlen immer dabei steht.

Glück gehabt.



Na, da hast du ja eine klasse Funktion entdeckt. Wird sicher vielen helfen.

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

aCid
#21
29.01.2010 15:18
Beiträge: 275

das wird bestimmt schon jemand vor mir entdeckt haben. keine sorge.
würde bloss nicht ins wiki geschrieben oder generell erklärt.

dank an ubisoft.

____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Wladimir
#22
29.01.2010 15:20
Beiträge: 489

Zitat von aCid:
das wird bestimmt schon jemand vor mir entdeckt haben. keine sorge.
würde bloss nicht ins wiki geschrieben oder generell erklärt.

dank an ubisoft.



Da kannste gleich für alles am Editor danken. Ist ja von denen!

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

Seiten: 1

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

Impressum