Modding Union
Modderecke => Coding => Thema gestartet von: Reshef am 30. Mär 2010, 18:13
-
hi, ich versuche momentan schon länger vergebens den Angmarturm 2 Upgrades zu geben:
Einmal das normale Eispfeilupgrade mit geänderten werten und dann ein Upgrade welches erst kaufbar sein soll, nachdem eispfeile im Turm erforscht wurde.
Dieses soll dann als Projektil den Eisball von der FinalFähigkeit der Angmarfestung als Standartangriff nutzen.
Jetzt gibt es allerdings 2 Probleme:
Die buttons haben beide kein Bild, warum?
Und anklickbar sind sie auch nicht, daher nichts mit Upgrade kaufen, auch da weiss ich nicht wieso.
Hier der bisherige falsche code der map.ini:
Upgrade Upgrade_Eispfeil
Type = OBJECT
BuildCost = 500
BuildTime = 5
DisplayName = CONTROLBAR:Eisschuss
End
Upgrade Upgrade_Eisball
Type = OBJECT
BuildCost = 2000
BuildTime = 5
DisplayName = CONTROLBAR:IceBall
End
Object AngmarSentryTower
CommandSet = Angmarkampfturm
AddModule
Behavior = WeaponSetUpgrade ModuleTag_Eispfeil
TriggeredBy = Upgrade_Eispfeil
End
End
AddModule
Behavior = WeaponSetUpgrade ModuleTag_Eisball
TriggeredBy = Upgrade_Eisball
End
End
End
CommandButton Command_PurchaseAngmarBattleTowerEisschussUpgrade
Command = OBJECT_UPGRADE
Options = CANCELABLE
Upgrade = Upgrade_Eispfeil
TextLabel = CONTROLBAR:PurchaseTechnologyAngmarIceArrows
ButtonImage = KUTIceArrowUpgradeIcon
ButtonBorderType = UPGRADE
DescriptLabel = CONTROLBAR:ToolTipPurchaseTowerUpgradeAngmarIceArrows
Radial = Yes
InPalantir = Yes
End
CommandButton Command_PurchaseAngmarBattleTowerEisballUpgrade
Command = OBJECT_UPGRADE
Options = NEED_UPGRADE CANCELABLE
Upgrade = Upgrade_Eisball
NeededUpgrade = Upgrade_Eispfeil
TextLabel = CONTROLBAR:Eisball
ButtonImage = KUAngBannerCarrierUpgradeIcon
ButtonBorderType = UPGRADE
DescriptLabel = CONTROLBAR:ToolTipPurchaseUpgradeDwarvenTraining
Radial = Yes
InPalantir = Yes
LacksPrerequisiteLabel = TOOLTIP:LackAngmarBasicTraining
End
Weapon Angmarkampfturm ; BALANCE Archer Weapon
AttackRange = GONDOR_STRUCTURE_ARCHER_RANGE
WeaponSpeed = 321 ; dist/sec
MinWeaponSpeed = 241
MaxWeaponSpeed = 481 ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
FireFX = FX_RohanArcherBowWeapon
ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
HitPercentage = 100 ;When this weapon is used it will hit exactly 50% of the time.
ScatterRadius = 16.0 ;When this weapon misses it can randomly miss by as much as this distance.
DelayBetweenShots = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
PreAttackDelay = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY ; 1467 is the prep time for archer.
PreAttackType = PER_SHOT ; Do the delay each time we attack a new target
FiringDuration = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX ; Duration of the archer firing shot is 500ms.
IsAimingWeapon = Yes
AntiAirborneVehicle = Yes
AntiAirborneMonster = Yes
HitPassengerPercentage = 20%
AcceptableAimDelta = 360.0 ; We want to be able to shoot all round, as we canit move.
CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
ProjectileNugget ; Default arrow
ProjectileTemplateName = EvilFactionArrow
WarheadTemplateName = AngmarPfeil
ForbiddenUpgradeNames = Upgrade_Eispfeil
End
ProjectileNugget ; Upgraded arrow
ProjectileTemplateName = EvilFactionIceArrow
WarheadTemplateName = AngmarEispfeil
RequiredUpgradeNames = Upgrade_Eispfeil
End
ProjectileNugget ; Upgraded arrow
ProjectileTemplateName = AngmarSanctumProjectile
WarheadTemplateName = AngmarEisball
RequiredUpgradeNames = Upgrade_Eisball
End
End
Weapon AngmarEisball
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
DamageNugget
Damage = 600
Radius = 100.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
End
Weapon AngmarEispfeil
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
DamageNugget
Damage = 200
Radius = 5.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
DamageNugget
Damage = 100
Radius = 0.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
Weapon AngmarPfeil
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
HitStoredTarget = Yes ; Always hits initial target.
DamageNugget ; A basic Nugget that just does damage
Damage = 100
Radius = 0.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
CommandSet Angmarkampfturm
1 = Command_PurchaseAngmarBattleTowerEisschussUpgrade
2 = Command_PurchaseAngmarBattleTowerEisballUpgrade
6 = Command_Sell
End
-
Falsche Reihenfolge der Codes, glaube ich.
SUM läd von oben nach unten, dh. wenn du auf etwas (Commandset, Commandbutton etc.) zugreifst, muss das über dem Code sein, der auf sie zugreift.
Kann es sein, das die Commandset, die am Ende steht, normalerweise ganz oben steht und du sie nur für den Post hier andersrum hingeschrieben hast?
-
Ich denke auch, dass es das ist. Die Weapons müssen dann ebenfalls vor die ProjectileNuggets, weil letzere ja auf die Weapons verweisen.
Ansonsten konnte ich (mit meinen noch recht bescheidenen Kenntnissen) aber keine Fehler entdecken.
RDJ
-
Sry, aber dann gibt es einen Game-Crash.
-
Also nicht ganz nach vorne.
Object AngmarSentryTower
CommandSet = Angmarkampfturm
Davor würde ich sagen.
-
Und davor die Commandbuttons. Sonst dürfte es auch nicht funktionieren.
RDJ
-
Funktioniert auch so nicht, da steht weiterhin: Einheit kann upgrade nicht benutzen.
-
Die Buttons werden aber immerhin richtig angezeigt, oder? Wäre schonmal ein Fortschritt. Könntest du vielleicht die aktuelle Version der map.ini noch hochladen, nur um auf dem aktuellsten Stand zu sein.
Bei der Upgradedefinition steht CONTROLBAR:IceBall, sonst sind die aber alle auf deutsch. Im Commandbutton hast du auch CONTROLBAR:Eisball stehen. Sind das zwei verschiedene Sachen, die auch zweimal definiert sind? Das hat zwar nichts mit dem Problem zu tun, ist mir aber halt aufgefallen.
Ansonsten hab ich keine Fehler gefunden. Bin grade überfragt. Das einzige, woran es liegen könnte, wäre die Reihenfolge. Kurze Frage: In den Behaviorn steht "WeaponSetUpgrade ModuleTag_Eispfeil;/Eisball". Braucht das WeaponSetUpgrade die einzelnen Weapons, weil bisher sind die drunter definiert. Wenn ja müsste die Reihenfolge so aussehen: Upgrades > Commandbuttons > Commandset > Weapons > Object.
Wenn nein, schadet die Reihenfolge trotzdem nicht und es liegt an was anderem.
RDJ
-
Du Buttons wurden erst angezeigt nachdem ich die Buttons so gemacht habe wie in diesen map.ini tutorial beschrieben (danke an mcm für den link ;) )
http://www.the3rdage.net/item-215?addview (http://www.the3rdage.net/item-215?addview)
Momentan sieht der teil so aus:
Upgrade Upgrade_EispfeilTrigger
Type = OBJECT
BuildCost = 500
BuildTime = 5
DisplayName = CONTROLBAR:Eisschuss
End
Upgrade Upgrade_Eispfeil
Type = OBJECT
End
Upgrade Upgrade_EisballTrigger
Type = OBJECT
BuildCost = 2000
BuildTime = 5
DisplayName = CONTROLBAR:IceBall
End
Upgrade Upgrade_Eisball
Type = OBJECT
End
CommandButton Command_PurchaseUpgradeAngmarFortressIceMunitions
Command = OBJECT_UPGRADE
Options = CANCELABLE
Upgrade = Upgrade_EispfeilTrigger
TextLabel = CONTROLBAR:PurchaseTechnologyAngmarIceArrows
ButtonImage = KUTIceArrowUpgradeIcon
ButtonBorderType = UPGRADE
DescriptLabel = CONTROLBAR:ToolTipPurchaseTowerUpgradeAngmarIceArrows
Radial = Yes
InPalantir = Yes
End
CommandButton Command_PurchaseUpgradeAngmarFortressSanctum
Command = OBJECT_UPGRADE
Options = NEED_UPGRADE CANCELABLE
Upgrade = Upgrade_EisballTrigger
NeededUpgrade = Upgrade_Eispfeil
TextLabel = CONTROLBAR:Eisball
ButtonImage = KUAngBannerCarrierUpgradeIcon
ButtonBorderType = UPGRADE
DescriptLabel = CONTROLBAR:ToolTipPurchaseUpgradeDwarvenTraining
Radial = Yes
InPalantir = Yes
LacksPrerequisiteLabel = TOOLTIP:LackAngmarBasicTraining
End
Weapon AngmarEisball
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
DamageNugget
Damage = 600
Radius = 100.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
End
Weapon AngmarEispfeil
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
DamageNugget
Damage = 200
Radius = 5.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
DamageNugget
Damage = 100
Radius = 0.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
Weapon AngmarPfeil
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
HitStoredTarget = Yes ; Always hits initial target.
DamageNugget ; A basic Nugget that just does damage
Damage = 100
Radius = 0.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
Object AngmarSentryTower
CommandSet = Angmarkampfturm
AddModule
Behavior = WeaponSetUpgrade ModuleTag_Eispfeil
TriggeredBy = Upgrade_Eispfeil
End
End
AddModule
Behavior = WeaponSetUpgrade ModuleTag_Eisball
TriggeredBy = Upgrade_Eisball
End
End
End
Weapon Angmarkampfturm ; BALANCE Archer Weapon
AttackRange = GONDOR_STRUCTURE_ARCHER_RANGE
WeaponSpeed = 321 ; dist/sec
MinWeaponSpeed = 241
MaxWeaponSpeed = 481 ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
FireFX = FX_RohanArcherBowWeapon
ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
HitPercentage = 100 ;When this weapon is used it will hit exactly 50% of the time.
ScatterRadius = 16.0 ;When this weapon misses it can randomly miss by as much as this distance.
DelayBetweenShots = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
PreAttackDelay = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY ; 1467 is the prep time for archer.
PreAttackType = PER_SHOT ; Do the delay each time we attack a new target
FiringDuration = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX ; Duration of the archer firing shot is 500ms.
IsAimingWeapon = Yes
AntiAirborneVehicle = Yes
AntiAirborneMonster = Yes
HitPassengerPercentage = 20%
AcceptableAimDelta = 360.0 ; We want to be able to shoot all round, as we canit move.
CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
ProjectileNugget ; Default arrow
ProjectileTemplateName = EvilFactionArrow
WarheadTemplateName = AngmarPfeil
ForbiddenUpgradeNames = Upgrade_Eispfeil
End
ProjectileNugget ; Upgraded arrow
ProjectileTemplateName = EvilFactionIceArrow
WarheadTemplateName = AngmarEispfeil
RequiredUpgradeNames = Upgrade_Eispfeil
End
ProjectileNugget ; Upgraded arrow
ProjectileTemplateName = AngmarSanctumProjectile
WarheadTemplateName = AngmarEisball
RequiredUpgradeNames = Upgrade_Eisball
End
End
Weapon AngmarEisball
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
DamageNugget
Damage = 600
Radius = 100.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
End
Weapon AngmarEispfeil
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
DamageNugget
Damage = 200
Radius = 5.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
DamageNugget
Damage = 100
Radius = 0.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
Weapon AngmarPfeil
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
HitStoredTarget = Yes ; Always hits initial target.
DamageNugget ; A basic Nugget that just does damage
Damage = 100
Radius = 0.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
CommandSet Angmarkampfturm
1 = Command_PurchaseUpgradeAngmarFortressIceMunitions
2 = Command_PurchaseUpgradeAngmarFortressSanctum
6 = Command_Sell
End
-
So, hab das ganze nun auf big umgestellt:
Ergebnis ich kann hoffentlih mehr machen und buttons sind sichtbar.
Allerings kann man immer noch nicht die Upgrades kaufen.
Hier die Codes:
map.ini:
Object AngmarSentryTower
CommandSet = AngmarTurmTWCommandSet
WeaponSet
Conditions = None
Weapon = PRIMARY AngmarTurmTW
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
AddModule
Behavior = HordeGarrisonContain ModuleTag_Weg
ObjectStatusOfContained = UNSELECTABLE ENCLOSED CAN_ATTACK
ContainMax = 0
DamagePercentToUnits = 0%
PassengerFilter = GENERIC_FACTION_GARRISONABLE
AllowEnemiesInside = No
AllowAlliesInside = No
AllowNeutralInside = No
AllowOwnPlayerInsideOverride = Yes
NumberOfExitPaths = 1 ; Defaults to 1. Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
PassengerBonePrefix = PassengerBone:ARROW_ KindOf:INFANTRY
EntryPosition = X:0.0 Y:0.0 Z:0.0
EntryOffset = X:75.0 Y:-25.0 Z:0.0
ExitOffset = X:75.0 Y:-25.0 Z:0.0
EnterSound = RuinedTowerEnterSound
KillPassengersOnDeath = No
ShowPips = No
End
End
End
commandset.ini
CommandSet AngmarTurmTWCommandSet
InitialVisible = 2
//Main Menu
1 = Command_AngmarMoreRadiusTW
2 = Command_AngmarFasterShootingTW
//Radius
3 = Command_PurchaseUpgradeEispfeilTW
4 = Command_PurchaseUpgradeEisgeschosseTW
5 = Command_PurchaseUpgradeEisballTW
6 = Command_RadialBack
//Schneller
; 7 = Command_PurchaseUpgradeEisspeed1TW
; 8 = Command_PurchaseUpgradeEisspeed2TW
; 9 = Command_RadialBack
End
commandbutton
CommandButton Command_AngmarMoreRadiusTW
Command = PUSH_VISIBLE_COMMAND_RANGE
TextLabel = Angmarmenu1
ButtonImage = KUBattleTowerIcon
ButtonBorderType = SYSTEM
DescriptLabel = Angmarmenu1desc
Radial = Yes
CommandRangeStart = 2
CommandRangeCount = 4
End
CommandButton Command_AngmarFasterShootingTW
Command = PUSH_VISIBLE_COMMAND_RANGE
TextLabel = Angmarmenu2
ButtonImage = KUBattleTowerIcon
ButtonBorderType = SYSTEM
DescriptLabel = Angmarmenu2desc
Radial = Yes
CommandRangeStart = 6
CommandRangeCount = 3
End
CommandButton Command_PurchaseUpgradeEispfeilTW
Command = OBJECT_UPGRADE
Upgrade = Upgrade_EispfeilTW
Options = CANCELABLE
TextLabel = Eispfeil
ButtonImage = KUTIceArrowUpgradeIcon
ButtonBorderType = UPGRADE
DescriptLabel = Eispfeildesc
Radial = Yes
InPalantir = No
End
CommandButton Command_PurchaseUpgradeEisgeschosseTW
Command = OBJECT_UPGRADE
Options = NEED_UPGRADE CANCELABLE
Upgrade = Upgrade_EisgeschossTW
NeededUpgrade = UpgradeEispfeilTW
TextLabel = Eisschuss
ButtonImage = KUIceShotIcon
ButtonBorderType = UPGRADE
DescriptLabel = Eisschussdesc
Radial = Yes
InPalantir = No
LacksPrerequisiteLabel = Eisschussvor
End
CommandButton Command_PurchaseUpgradeEisballTW
Command = OBJECT_UPGRADE
Options = NEED_UPGRADE CANCELABLE
Upgrade = Upgrade_EisballTW
NeededUpgrade = UpgradeEisgeschossTW
TextLabel = Eisball
ButtonImage = KUWinterWrathIcon
ButtonBorderType = UPGRADE
DescriptLabel = Eisballdesc
Radial = Yes
InPalantir = No
LacksPrerequisiteLabel = Eisballvor
End
upgrade.ini
Upgrade Upgrade_EispfeilTW
DisplayName = UPGRADE:Abgeschlossen
Type = OBJECT
BuildCost = 200
BuildTime = 5
End
Upgrade Upgrade_EisgeschossTW
DisplayName = UPGRADE:Abgeschlossen
Type = OBJECT
BuildCost = 1000
BuildTime = 5
End
Upgrade Upgrade_EisballTW
DisplayName = UPGRADE:Abgeschlossen
Type = OBJECT
BuildCost = 2500
BuildTime = 5
End
weapon.ini
Weapon TWAngmarEispfeilWarhead
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
HitStoredTarget = Yes ; Always hits initial target.
DamageNugget
Damage = 200
Radius = 5.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
DamageNugget
Damage = 200
Radius = 5.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
Weapon TWAngmarEisgeschossWarhead
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
HitStoredTarget = Yes ; Always hits initial target.
DamageNugget
Damage = 200
Radius = 30.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
DamageNugget
Damage = 200
Radius = 30.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
Weapon TWAngmarEisballWarhead
ProjectileCollidesWith = ENEMIES
RadiusDamageAffects = ENEMIES NOT_SIMILAR
HitStoredTarget = Yes ; Always hits initial target.
DamageNugget
Damage = 200
Radius = 100.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = FROST
DamageFXType = EVIL_ARROW_PIERCE
DeathType = BURNED
AcceptDamageAdd = No
DamageScalar = 25% NONE +STRUCTURE
DamageScalar = 0% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
End
DamageNugget
Damage = 200
Radius = 100.0 ; HitStoredTarget means we hurt the person we launched at. And nobody else. So a miss hurts nobody.
DelayTime = 0
DamageType = PIERCE
DamageFXType = EVIL_ARROW_PIERCE
DeathType = NORMAL
End
End
Weapon AngmarTurmTW ; BALANCE Archer Weapon
AttackRange = GONDOR_STRUCTURE_ARCHER_RANGE
WeaponSpeed = 321 ; dist/sec
MinWeaponSpeed = 241
MaxWeaponSpeed = 481 ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
FireFX = FX_RohanArcherBowWeapon
ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
HitPercentage = 100 ;When this weapon is used it will hit exactly 50% of the time.
ScatterRadius = 16.0 ;When this weapon misses it can randomly miss by as much as this distance.
DelayBetweenShots = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
PreAttackDelay = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY ; 1467 is the prep time for archer.
PreAttackType = PER_SHOT ; Do the delay each time we attack a new target
FiringDuration = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX ; Duration of the archer firing shot is 500ms.
IsAimingWeapon = Yes
AntiAirborneVehicle = Yes
AntiAirborneMonster = Yes
HitPassengerPercentage = 20%
AcceptableAimDelta = 360.0 ; We want to be able to shoot all round, as we canit move.
CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
ProjectileNugget ; Default arrow
ProjectileTemplateName = EvilFactionArrow
WarheadTemplateName = AngmarArcherBowWarhead
ForbiddenUpgradeNames = Upgrade_EispfeilTW Upgrade_EisgeschossTW Upgrade_EisballTW
End
ProjectileNugget ; Upgraded arrow
ProjectileTemplateName = EvilFactionIceArrow
WarheadTemplateName = TWAngmarEispfeilWarhead
ForbiddenUpgradeNames = Upgrade_EisgeschossTW Upgrade_EisballTW
RequiredUpgradeNames = Upgrade_EispfeilTW
End
ProjectileNugget ; Upgraded arrow
ProjectileTemplateName = AngmarStoneThrowerIceProjectile
WarheadTemplateName = TWAngmarEisgeschossWarhead
ForbiddenUpgradeNames = Upgrade_EisballTW
RequiredUpgradeNames = Upgrade_EisgeschossTW
End
ProjectileNugget ; Upgraded arrow
ProjectileTemplateName = AngmarSanctumProjectile
WarheadTemplateName = TWAngmarEisballWarhead
RequiredUpgradeNames = Upgrade_EisballTW
End
End
Eingefügter teil beim Angmar turm:
Behavior = WeaponSetUpgrade ModuleTag_ForgedBlades1
TriggeredBy = Upgrade_EispfeilTW
End
Behavior = WeaponSetUpgrade ModuleTag_ForgedBlades2
TriggeredBy = Upgrade_EisgeschossTW
End
Behavior = WeaponSetUpgrade ModuleTag_ForgedBlades3
TriggeredBy = Upgrade_EisballTW
End
gelöscht wurden keine teile.
-
Mir ist gerade aufgefallen das es anscheinend nicht am button zu liegen scheint, denn im Worldbuilder wird mir auch nur IceArrows als Upgrade angezeigt.
Daher es scheint so das der Turm nicht erkennt das die Upgrades auf ihm bezogen sind.
Allerdings wüsste ich nicht was bei andern Upgrades anders ist als bei meinen...
-
Ok, weiter gehts:
Ich habs hinbekommen das man die Upgrades kaufen kann, und sie auch die gewünschte weaponänderung mit sich bringen :)
Das einzigste was dafür nötig war, war die einträge in der *.inc reinzuschreiben.
So weiter gehts: Was muss ich in der attributemodifier.inc angeben um die schussgeschwindigkeit zu erhöhen?
Ich habe bisjetzt
Modifier = RATE_OF_FIRE 500%
ausprobiert mit einer extra hohen zahl, allerdings merke ich keinen unterschied in der schussgeschwindigkeit.
-
Ich würde sagen das kommt drauf an ob es ne Fx ist oder ein Model.
Bei der Fx musst du das in der fxparticlesystem.ini verändern.
Außerdem gibts da auch noch ne angabe in der Weapon.ini ->heißt glaubich Weaponspeed.
Hoffe ich konnte helfen.
Flinkbaum
-
Nein, ich meine nicht das dass Projectil schneller sein soll, sondern das der interval zwischen den abfeuern zweier projectile kürzer wird.
-
Allein von der englischen Bedeutung her klingt dieser Eintrag nach dem Passenden:
DelayBetweenShots = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
-
Ja klar, aber ich will später per fähigkeit die man kauft die schussgeschwindigkeit erhöhen.
Daher müsste ich ein modifier in der attributemodifier.inc erstellen.
Das ganze sähe dann so aus:
ModifierList AngmarTurmSpeed1
Category = BUFF
Modifier = RATE_OF_FIRE 500%
Duration = 0
End
Nur anscheinend bewirkt das garnichts beim Turm.
-
Geht Duration = 0 überhaupt?
Ich glaub da muss was anderes hin.
Oder ne andere Idee:
Du machst ne neue Weapon mit kürzerer Zeit, sonst natürlich gleich.
Wenn das Upgrade gekauft wurde, wechselt der Turm zu Weaponset2 mit der neuen
Weapon.
Flinkbaum
-
Das wäre natürlich auch eine schöne möglichkeit :)
Wie müsste den dann das behavior in der ini des turmes aussehen?
-
Also, ich würd sagen(sind alles Beispiele, das musst du noch verändern):
Model Condition:
ModelConditionState = WEAPONSET_PLAYER_UPGRADE
Model = eulindonwar
Skeleton = ruelfwar_skl
WeaponLaunchBone = PRIMARY ARROW
WeaponLaunchBone = SECONDARY ARROWNOCK ; when upgraded to
End
Die Weaponset:
;bow upgrade
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY ElvenLindonBow ; RohanElvenBowFireArrow
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
Der Behavior:
;Heavy Armor
Behavior = ArmorUpgrade ArmorUpgradeModuleTag
TriggeredBy = Upgrade_
ArmorSetFlag = PLAYER_UPGRADE
End
-
Habs ein bischen weiter rumprobiert, und plötzlich gings :o
Keine ahnung wo der fehler jetzt lag, aber es geht, trotzdem danke für deine Hilfe ;)
-
Hallo,
kannst du mir mal die Codes schicken?
Das würde mich allerdings interessieren....