Ich verzweifle gerade an einem Coding-Script Problem.
Ich möchte, dass ein Held ein Upgrade per scriptevents.xml zugewiesen bekommt, wenn er eine bestimmte ModelCondition erhält. Das sollte ja eigentlich kein Problem sein und ich habe es schon bei mehreren Helden funktionstüchtig umgesetzt, aber bei diesem bestimmten Helden funktioniert es seltsamerweise nicht.
Ich bin gestern abend 6 Stunden lang und heute den halben Tag an dem Problem dran, aber nichts was ich ausprobiere, funktioniert. Immerhin konnte ich den Fehler jetzt soweit eingrenzen, dass ich sicher sagen kann, dass der Held das Upgrade einfach nicht erhält, obwohl er auf die ModelCondition gesetzt wurde.
Hier die Codes:
Scriptevents.xml
<EventList Name="SubmodHeldFunctions" Inherit="BaseScriptFunctions">
<EventHandler EventName="ModelConditionUSER_11" ScriptFunctionName="OnSubmodHeldUser11" DebugSingleStep="false"/>
<EventHandler EventName="ModelConditionNOTUSER_11" ScriptFunctionName="OffSubmodHeldUser11" DebugSingleStep="false"/>
<EventHandler EventName="ModelConditionUSER_12" ScriptFunctionName="OnSubmodHeldUser12" DebugSingleStep="false"/>
<EventHandler EventName="ModelConditionNOTUSER_12" ScriptFunctionName="OffSubmodHeldUser12" DebugSingleStep="false"/>
<EventHandler EventName="OnCreated" ScriptFunctionName="OnEvilMenBlackRiderCreated" DebugSingleStep="false"/>
<EventHandler EventName="BeScary" ScriptFunctionName="RadiateTerrorEx" DebugSingleStep="false"/>
<EventHandler EventName="UsingSpecialOne" ScriptFunctionName="RadiateUncontrollableFear" DebugSingleStep="false"/>
</EventList>
scripts.lua:
function OnSubmodHeldUser11(self)
ObjectGrantUpgrade( self, "Upgrade_TestBuilding_2" )
end
function OffSubmodHeldUser11(self)
ObjectRemoveUpgrade( self, "Upgrade_TestBuilding_2" )
end
function OnSubmodHeldUser12(self)
ObjectGrantUpgrade( self, "Upgrade_TestBuilding" )
end
function OffSubmodHeldUser12(self)
ObjectRemoveUpgrade( self, "Upgrade_TestBuilding" )
end
Helden.ini
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
AILuaEventsList = SubmodHeldFunctions
BurningDeathTime = BURNINGDEATH_DURATION_INFANTRY
HoldGroundCloseRangeDistance = 41
MoodAttackCheckRate = 500
End
Weapon.ini
Weapon HeldSword_Submod
LeechRangeWeapon = Yes
AttackRange = STANDARD_MELEE_ATTACK_RANGE
MeleeWeapon = Yes
FireFX = FX_NazgulHit
DelayBetweenShots = EVILMEN_BLACKRIDER_DELAYBETWEENSHOTS
PreAttackDelay = EVILMEN_BLACKRIDER_PREATTACKDELAY ; 1467 is the prep time for archer.
PreAttackType = PER_SHOT ; Do the delay each time we attack a new target
FiringDuration = EVILMEN_BLACKRIDER_FIRINGDURATION ; Duration of the archer firing shot is 500ms.
DamageNugget ; A basic Nugget that just does damage
Damage = 400
Radius = 5.0
DelayTime = 0
DamageType = HERO
DamageFXType = SWORD_SLASH
DeathType = NORMAL
End
AttributeModifierNugget
AttributeModifier = HeldUser11Modifier
Radius = 50
SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
RequiredUpgradeNames = Upgrade_TestBuilding_2
DamageFXType = POISON
End
AttributeModifierNugget
AttributeModifier = HeldUser12Modifier
Radius = 50
SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
RequiredUpgradeNames = Upgrade_TestBuilding
DamageFXType = POISON
End
End
Die AttributeModifierNuggets in der Weapon.ini werden einfach nicht aktiviert. Entferne ich hier die benötigten Upgrades, funktionieren die Einträge.
Mir ist außerdem aufgefallen, dass der Held allgemein keine Upgrades per Scriptevents.xml bekommen kann.
Woran kann das liegen ?
Ich hoffe, einer von euch kann mir da weiterhelfen.
MfG CMG