Probleme mit CreateArmy
» Siedler Map Source Forum » Mapping » Probleme mit CreateArmy
Seiten: 1
unstoppened
|
#1 26.05.2008 18:25 Beiträge: 112 |
Probleme mit CreateArmy
Das alte Leid...man will Truppen erstellen,die nich gleich wegrennen und dann kommt iein kleiner Fehler rein un man sieht ihn nich. ich bitte um hilfe bei dem folgenden:
function HeldenDa() if IsNear("dario","BotenPos2",500)then CreateArmyOne() return true end end function CreateArmyOne() armyOne = { player = 3, id = 1, strength = 1, position = GetPosition("Untoter1" ), rodeLength = 1000 } SetupArmy(armyOne) local troopDescription = { maxNumberOfSoldiers = 0, minNumberOfSoldiers = 0, experiencePoints = LOW_EXPERIENCE, leaderType = Entities.CU_Evil_LeaderSkirmisher1 } EnlargeArmy(armyOne, troopDescription) StartSimpleJob("ControlArmyOne" ) end function ControlArmyOne() if Counter.Tick2("ControlArmyOne", 10) then if IsDead(armyOne) then return true end Defend(armyOne) end end
wobei ich sagen muss,dass alles aufgerufen wird,sonst könnte er mir nich sagen dass das "armyOne" in IsDead ein fehler is...bitte um hilfe.schonmal danke für die hilfe
gruß unstoppened
____________________
You become what you hate or you hate what you become!
Dieser Beitrag wurde von nevermind am 26.05.2008 um 18:55 editiert.
nevermind
Siedler Map Source Admin (Web) |
#2 26.05.2008 19:01 Beiträge: 483 |
Was ist die Fehlermeldung?
____________________
LUA_ERRSYNTAX: [string "?"]:1: `=' expected near `<eof>'
unstoppened
|
#3 27.05.2008 13:52 Beiträge: 112 |
Der Fehler lautet:
[ 2008/05/27 13:50:12 ] ERROR: DEBUG ERROR!
Error: LUA_ERRRUN: [string "Data\Script\MapTools\Comfort.lua"]:255: attempt to index local `_army' (a nil value)
Additional info: Game turn 999 (1:39)
steht da so...ich kann daraus nur lesen,dass der name ffür army falsch sein muss,aber mehr seh ich nicht
____________________
You become what you hate or you hate what you become!
nevermind
Siedler Map Source Admin (Web) |
#4 27.05.2008 19:00 Beiträge: 483 |
Mag sein, dass ich etwas blind auf den Augen bin, aber in deinem geposteten Code sehe ich keinen Fehler.
Der Fehler wird aber definitiv durch einen Aufruf von SetupArmy() verursacht, bei dem der Parameter nil ist. Eventuell an anderer Stelle?
____________________
LUA_ERRSYNTAX: [string "?"]:1: `=' expected near `<eof>'
unstoppened
|
#5 27.05.2008 21:06 Beiträge: 112 |
mh,also ich muss zugeben das ich das ganze 3x gemacht hab ich stell das jetz einfach mal so rein und gebe Z.255 an ich hoffe das hilft...
function HeldenDa() if IsNear("dario","BotenPos2",500)then CreateArmyOne() CreateArmyTwo() CreateArmyThree() UntotenFlehen() return true end end function CreateArmyOne() armyOne = { player = 3, id = 1, strength = 1, position = GetPosition("Untoter1" ), rodeLength = 1000 } SetupArmy(armyOne) local troopDescription = { maxNumberOfSoldiers = 0, minNumberOfSoldiers = 0, experiencePoints = LOW_EXPERIENCE, leaderType = Entities.CU_Evil_LeaderSkirmisher1 } EnlargeArmy(armyOne, troopDescription) StartSimpleJob("ControlArmyOne" ) end function ControlArmyOne() if Counter.Tick2("ControlArmyOne", 10) then if IsDead(armyOne) then return true end Defend(armyOne) end end function CreateArmyTwo() armyOne = { player = 3, id = 2, strength = 1, position = GetPosition("Untoter2" ), rodeLength = 1000 } SetupArmy(armyTwo) local troopDescription = { maxNumberOfSoldiers = 0, minNumberOfSoldiers = 0, experiencePoints = LOW_EXPERIENCE, leaderType = Entities.CU_Evil_LeaderBearman1 } EnlargeArmy(armyTwo, troopDescription) StartSimpleJob("ControlArmyTwo" ) end function ControlArmytwo() if Counter.Tick2("ControlArmyTwo", 10) then if IsDead(armyTwo) then return true end Defend(armyTwo) end end function CreateArmyThree() armyOne = { player = 3, id = 3, strength = 1, position = GetPosition("Untoter3" ), rodeLength = 1000 } SetupArmy(armyThree) local troopDescription = { maxNumberOfSoldiers = 0, minNumberOfSoldiers = 0, experiencePoints = LOW_EXPERIENCE, leaderType = Entities.CU_Evil_LeaderSkirmisher1 } EnlargeArmy(armyThree, troopDescription) StartSimpleJob("ControlArmyThree" ) end function ControlThree() if Counter.Tick2("ControlThree", 10) then if IsDead(armyThree) then return true [b] <--Das ist Zeile 255 [/b] end Defend(armyThree) end end
____________________
You become what you hate or you hate what you become!
Dieser Beitrag wurde von nevermind am 27.05.2008 um 22:11 editiert.
Peermanent
|
#6 27.05.2008 21:14 Beiträge: 168 |
Du machst den Fehler
function CreateArmyTwo()
armyOne = {.... -- Hier sollte armyTwo stehen
function ControlArmytwo()
if Counter.Tick2("ControlArmyTwo", 10) then
if IsDead(armyTwo) then
return true
end
genauso bei CreateArmyThree
unstoppened
|
#7 28.05.2008 13:32 Beiträge: 112 |
ich werde es ausprobieren...ich danke dir
gruß unstoppened
____________________
You become what you hate or you hate what you become!
trabbi
DAS Auto... |
#8 30.05.2008 00:48 Beiträge: 183 |
Ich sehe den Fehler hier:
maxNumberOfSoldiers = 0,
minNumberOfSoldiers = 0,
Dadurch werden ja nur 0 Soldaten erzeugt.
------------------------------------
function Createarmee1() armee1 = { player = 4, id = 1, strength = 8, position = GetPosition("dovbararmee1"), rodeLength = 6000 } SetupArmy(armee1) local troopDescription = { maxNumberOfSoldiers = 6, minNumberOfSoldiers = 0, experiencePoints = MEDIUM_EXPERIENCE, leaderType = Entities.PU_LeaderSword1 } for i = 1, 5 do EnlargeArmy(armee1, troopDescription) end StartSimpleJob("Controlarmee1") end function Controlarmee1() if Counter.Tick2("Controlarmee1", 10) then if IsDead(armee1) then FrontalAttack(armee1) return true end Defend(armee1) end end
Das stammt nun aus einer älteren Map
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
Dieser Beitrag wurde von trabbi am 30.05.2008 um 00:58 editiert.
trabbi
DAS Auto... |
#9 31.05.2008 00:38 Beiträge: 183 |
function HeldenDa() if IsNear("dario","BotenPos2",500)then CreateArmyOne() CreateArmyTwo() CreateArmyThree() UntotenFlehen() return true end end function CreateArmyOne() armyOne = { player = 3, id = 1, strength = 1, position = GetPosition("Untoter1" ), rodeLength = 1000 } SetupArmy(armyOne) local troopDescription = { maxNumberOfSoldiers = 6, minNumberOfSoldiers = 2, experiencePoints = LOW_EXPERIENCE, leaderType = Entities.CU_Evil_LeaderSkirmisher1 } EnlargeArmy(armyOne, troopDescription) StartSimpleJob("ControlarmyOne" ) end function ControlArmyOne() if Counter.Tick2("ControlarmyOne", 10) then if IsDead(armyOne) then return true end Defend(armyOne) end end function CreateArmyTwo() armyTwo = { player = 3, id = 2, strength = 1, position = GetPosition("Untoter2" ), rodeLength = 1000 } SetupArmy(armyTwo) local troopDescription = { maxNumberOfSoldiers = 8, minNumberOfSoldiers = 4, experiencePoints = LOW_EXPERIENCE, leaderType = Entities.CU_Evil_LeaderBearman1 } EnlargeArmy(armyTwo, troopDescription) StartSimpleJob("ControlarmyTwo" ) end function ControlarmyTwo() if Counter.Tick2("ControlarmyTwo", 10) then if IsDead(armyTwo) then return true end Defend(armyTwo) end end function CreateArmyThree() armyThree = { player = 3, id = 3, strength = 1, position = GetPosition("Untoter3" ), rodeLength = 1000 } SetupArmy(armyThree) local troopDescription = { maxNumberOfSoldiers = 5, minNumberOfSoldiers = 1, experiencePoints = LOW_EXPERIENCE, leaderType = Entities.CU_Evil_LeaderSkirmisher1 } EnlargeArmy(armyThree, troopDescription) StartSimpleJob("ControlarmyThree" ) end function ControlarmyThree() if Counter.Tick2("ControlarmyThree", 10) then if IsDead(armyThree) then return true end Defend(armyThree) end end
____________________
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
unstoppened
|
#10 31.05.2008 08:04 Beiträge: 112 |
aufjeden fall funktionierts auch mit 0...ich will jau auch keine soldaten sondern nur anführer
gruß un
____________________
You become what you hate or you hate what you become!
Seiten: 1