Modding Union
Modderecke => Coding => Thema gestartet von: Souls of Black am 12. Dez 2010, 10:41
-
Morgen,
da ich nicht glaube das es bei einer Frage bleiben wird, mach ich gleich mal einen Fragen-Thread auf.
Momentan geht es um folgendes: Ich würde gerne ein Schiff coden. Es sollte ein normales Transportschiff sein, nur mit dem Unterschied, das eine Einheit im Schiff ist.
Bis jetzt hab ich das Schiff, aber keine Ahnung wie ich da eine Einheit reinbekomme.
Danke schon mal im voraus. :)
-
Das Transporterschiff müsste einen Container haben, damit es Einheiten aufnehmen kann. Meines Wissens kannst du noch einen "Initial"-Filter einbauen, der besagt, dass eine Einheit bereits zu Beginn enthalten ist. Schaue dir dafür den HordeContainBehaviour der Mumakhil aus SuMI an, diese haben diese besagten Einträge, oder der Battelwagon der Zwerge. Ob der Code mit diesem Transportcontain vereinbar ist, weiß ich nicht, das müsstest du erst austesten.
-
Ok, danke für die schnelle Hilfe, werde es gleich mal testen.
Edit: Ja es ging. Man musste nur "InitialPayload" beim "HordeTransportContain ModuleTag_Contain" Behavior des Transportschiffes hinzufügen. Danke noch mal.
-
Ich hab mal wieder eine Frage. Es geht um die Morgulklinge. Ich hab die Codes der Morgulklinge einem anderen Helden gegeben und es funktioniert auch. Wenn ich jetzt aber eine andere Weapon angebe
SpecialWeapon = VerwirrungWeapon
ist der Button im Spiel nicht mehr anwählbar. Ich hab auch schon alle Änderungen der Weapon rückgängig gemacht (also es ist die selbe Weapon wie die Morgulklinge, mit einem anderen Namen), aber der Button ist nicht wählbar.
Weapon.ini
Weapon VerwirrungWeapon
LeechRangeWeapon = Yes
AttackRange = 30.0
MeleeWeapon = Yes
;FireFX = FX_BlackRiderMorgulBladeTempAudio ;FX_BlackRiderMorgulBlade
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 = EVILMEN_BLACKRIDER_MORGULBLADE_DAMAGE
Radius = 0.0
DelayTime = 0
DamageType = MAGIC
; DamageSubType = BECOME_UNDEAD
DamageFXType = MAGIC
DeathType = NORMAL
End
DOTNugget ; A basic Nugget that just does damage
Damage = DEFAULT_POISON_DAMAGE
AcceptDamageAdd = No
Radius = 0.0
DelayTime = 0
DamageType = POISON
DamageSubType = BECOME_UNDEAD
DamageFXType = POISON
DeathType = NORMAL
DamageInterval = 1000
DamageDuration = 10000
SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
End
AttributeModifierNugget
AttributeModifier = BlackRiderMorgulBlade
DamageFXType = SWORD_SLASH
SpecialObjectFilter = MORGULBLADE_OBJECT_FILTER
End
End
Held
;--------- MORGUL BLADE -----------------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_BlackRiderMorgulBlade
SpecialPowerTemplate = SpecialAbilityBlackRiderMorgulBlade
TriggeredBy = Level1
End
Behavior = SpecialPowerModule ModuleTag_BlackRiderMorgulBladeStarter
SpecialPowerTemplate = SpecialAbilityBlackRiderMorgulBlade
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = FellBeastVoiceAttack ;LurtzVoiceAttackCripplingStrike
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_BlackRiderMorgulBladeUpdate
SpecialPowerTemplate = SpecialAbilityBlackRiderMorgulBlade
SkipContinue = Yes
UnpackTime = 250
PreparationTime = 1
PersistentPrepTime = 500
PackTime = 100
AwardXPForTriggering = 0
StartAbilityRange = 15.0
SpecialWeapon = VerwirrungWeapon
WhichSpecialWeapon = 1
End
Behavior = AutoAbilityBehavior ModuleTag_MorgulBladeAutoAbility
SpecialAbility = SpecialAbilityBlackRiderMorgulBlade
ForbiddenStatus = INSIDE_GARRISON
AllowSelf = No
Query = 1 MORGULBLADE_OBJECT_FILTER
End
Hoffe mir kann jemand helfen :)
mfg Sweeney Todd
-
Ist die Weapon "VerwirrungWeapon" überhaupt definiert?
Weil sowas bewirkt meist, dass die Fähigkeit nicht anwählbar ist.^^
-
:o Reicht der Eintrag in der Weapon.ini dafür nicht aus?
-
TriggeredBy = Level1
Das muss eigentlich das Upgrade für Level1 sein, oder?
Er wartet also ein nie definiertes Upgrade, kein wunder, warum es nicht geht. :P
Schließlich wird das Upgrade auch nicht vergeben.^^
@Sweeney: Doch, reicht.
-
Ich bin mir recht sicher das es daran auch nicht liegt. Ich hab dieses Upgrad ebenfalls definiert. Zudem ging es ja als ich die Ursprungsweapon angegeben hatte.
Edit: -.- Ich wusste das es irgendwas banales ist. *Auf die Stirn hau* Die Include war irgendwie nicht richtig definiert. Ab jetzt geht alles ohne Probleme. Trotzdem danke für die Hilfe
-
Tschuldigung für den Doppelpost, aber ich will sicher gehen das das jemand liest.
Es geht um folgendes: Ich würde gerne einer Einheiten einen Palantirswitch geben. Das ganze geht auch ganz gut, nur leider nicht dann wenn die Einheit andere Einheiten transportiert. Ist es möglich trotzdem einen Switch einzubauen? Ach ja, es handelt sich um einen Switch der Baumeisterleiste.
Danke im vorraus. Bei Unklarheiten bitte Fragen, danke ;)
EDIT: Ist es möglich das manche Spells nicht aufs Land eingesetzt werden? Ich versuche mich grade an einem Summon für Schiffe, diese können auch aufs Wasser gerufen werden, leider aber auch aufs Land.
-
Du musst mal bei den Flags nachsehen, ob es vll einen speziellen gibt.
Meines Wissens gibt es WATER_OK, was heißt, dass es auf jeden Fall im Wasser angewendet werden kann. PATHABLE_ONLY besagt, dass es nur auf Betretbarem Gebiet angewendet werden kann.
Ich kenne die Tags jetzt nicht alle auswendig, arbeite dich hierbei doch einfach einmal durch.
Das mit dem Palantirswitch ist so eine Sache. Du müsstest es über einen anderen Weg anlegen, denn Contain-Behaviour beißen sich mit Waffenswitches, egal in welcher Form. Du müsstest also einen palantirchange über Upgrades anlegen (Remove- Grantupgrades, über Lua-Script).
-
Hmm bei den Flags hab ich nichts passendes gefunden (gibt es wirklich nur: LIMIT_DISTANCE, WATER_OK, NO_FORBIDDEN_OBJECTS, PATHABLE_ONLY, NEEDS_OBJECT_FILTER, RESPECT_RECHARGE_TIME_DI SCOUNT). Das mit dem Palaswitch ist blöd, wenn ich mich mit den Scripts besser auskenne werde ich das mal probieren. Trotzdem danke.
-
zu einen gibt es nur die flags, die du aufgezählt hast, zum anderen um was für einen palaswitch geht es? es gibt shcließlich mehrere möglichkeiten den palantir zu wechseln
-
Es geht um einen Palaswitch für eine Baumeisterleiste. Einmal soll angezeigt werden, welche Einheiten grade einquartiert sind und einmal welche Einheiten gekauft werden können. Wie dieser Wechsel geht ist eigendlich egal, jedenfalls geht es nicht mit Waffenswitch. Das geht nämlich nur, wenn niemand einquartiert ist.
-
könntest du mir mal den code schicken? ohne einen direkten bezug kann ich dir glaub ich nicht helfen. aber wenn du einen anderen switch als über waffen haben möchtest (war mir neu dass das geht) kannst du auch über attributemodifier, modelconditionflags oder wie ea schon sagte über upgrades switchen. über das commandset (so wie bei festungen) gehts aber leider nicht
-
Ok also hier die Codes.
Pearl
Object Pearl_Interface
; *** ART Parameters ***
SelectPortrait = UPEvil_Battleship
Draw = W3DScriptedModelDraw ModuleTag_HullDraw
OkToChangeModelColor = Yes ; temporarily commented out to remove the house color
StaticModelLODMode = Yes ; Will append M or L to the skin name depending on GameLOD
ExtraPublicBone = ARROW
DefaultModelConditionState
Model = AUCorShip
WeaponLaunchBone = PRIMARY ARROW
End
ModelConditionState = DAMAGED ARMORSET_PLAYER_UPGRADE
Model = AUCorShip
Texture = AUCorShip.tga AUCorShip_D_update.tga
ParticleSysBone = FireBeam01 FireBoatBeam FollowBone:Yes ; front mast
ParticleSysBone = FireBeam01 FireBoatBeamSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmall FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmall FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmall FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireLeft FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireRight FireBoatLargeEmbers FollowBone:Yes
End
ModelConditionState = WEAPONSET_TOGGLE_1
Model = AUCorShip
End
ModelConditionState = WEAPONSET_TOGGLE_2
Model = AUCorShip
End
ModelConditionState = REALLYDAMAGED ARMORSET_PLAYER_UPGRADE
Model = AUCorShip
Texture = AUCorShip.tga AUCorShip_D_update.tga
ParticleSysBone = FireBeam01 FireBoatBeam FollowBone:Yes ; front mast
ParticleSysBone = FireBeam01 FireBoatBeamSmoke FollowBone:Yes
ParticleSysBone = FireBeam02 FireBoatBeam FollowBone:Yes ; rear mast
ParticleSysBone = FireBeam02 FireBoatSmallEmbers FollowBone:Yes
ParticleSysBone = FireBeam02 FireBoatBeamSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmall FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmall FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmall FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireLeft FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireRight FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireBack FireBoatLarge FollowBone:Yes
ParticleSysBone = FireBack FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireBack FireBoatLargeSmoke FollowBone:Yes
End
ModelConditionState = DYING ARMORSET_PLAYER_UPGRADE
Model = AUCorShip
Texture = AUCorShip.tga AUCorShip_D_update.tga
End
ModelConditionState = ARMORSET_PLAYER_UPGRADE
Model = AUCorShip
Texture = AUCorShip.tga AUCorShip_update.tga
End
ModelConditionState = DAMAGED
Model = AUCorShip
Texture = AUCorShip.tga AUCorShip_D.tga
ParticleSysBone = FireBeam01 FireBoatBeam FollowBone:Yes ; front mast
ParticleSysBone = FireBeam01 FireBoatBeamSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmall FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmall FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmall FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireLeft FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireRight FireBoatLargeEmbers FollowBone:Yes
End
ModelConditionState = REALLYDAMAGED
Model = AUCorShip
Texture = AUCorShip.tga AUCorShip_D.tga
ParticleSysBone = FireBeam01 FireBoatBeam FollowBone:Yes ; front mast
ParticleSysBone = FireBeam01 FireBoatBeamSmoke FollowBone:Yes
ParticleSysBone = FireBeam02 FireBoatBeam FollowBone:Yes ; rear mast
ParticleSysBone = FireBeam02 FireBoatSmallEmbers FollowBone:Yes
ParticleSysBone = FireBeam02 FireBoatBeamSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmall FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmall FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmall FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireLeft FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireRight FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireBack FireBoatLarge FollowBone:Yes
ParticleSysBone = FireBack FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireBack FireBoatLargeSmoke FollowBone:Yes
End
ModelConditionState = DYING
Model = AUCorShip
Texture = AUCorShip.tga AUCorShip_D.tga
End
ModelConditionState =JUST_BUILT
Model = AUCorShip_A
End
IdleAnimationState
StateName = State_NotDamaged
End
AnimationState = JUST_BUILT
StateName = State_NotDamaged
Animation = Being_Built
AnimationName = AUCorShip_A.AUCorShip_A
AnimationMode = ONCE
End
ParticleSysBone = FireFront BoatFrontDust FollowBone:Yes
ParticleSysBone = FireBack BoatBackDust FollowBone:Yes
ParticleSysBone = FireLeft BoatSideDust FollowBone:Yes
ParticleSysBone = FireBack BoatSideDust FollowBone:Yes
FXEvent = Frame:265 Name: FX_BoatWaterBlast
End
AnimationState = DYING
StateName = State_NotDamaged
EnteringStateFX = FX_BuildingReallyDamaged
;FXEvent = Name: FX_BoatWaterDeath
ParticleSysBone = FireBeam01 FireBoatBeam FollowBone:Yes ; front mast
ParticleSysBone = FireBeam01 FireBoatBeamSmoke FollowBone:Yes
ParticleSysBone = FireBeam02 FireBoatBeam FollowBone:Yes ; rear mast
ParticleSysBone = FireBeam02 FireBoatBeamSmoke FollowBone:Yes
ParticleSysBone = FireBeam02 FireBoatSmallEmbers FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmall FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmall FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmall FollowBone:Yes
ParticleSysBone = FireFront FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireRight FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireLeft FireBoatSmallSmoke FollowBone:Yes
ParticleSysBone = FireFront FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireLeft FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireRight FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireBack FireBoatLarge FollowBone:Yes
ParticleSysBone = FireBack FireBoatLargeEmbers FollowBone:Yes
ParticleSysBone = FireBack FireBoatLargeSmoke FollowBone:Yes
End
AnimationState = DAMAGED
StateName = State_Damaged
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "State_NotDamaged"
then CurDrawableSetTransitionAnimState("TRANS_ToDamaged") end
EndScript
End
AnimationState = REALLYDAMAGED
StateName = State_ReallyDamaged
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "State_NotDamaged" or Prev == "State_Damaged"
then CurDrawableSetTransitionAnimState("TRANS_ToReallyDamaged") end
EndScript
End
AnimationState = MOVING
StateName = State_NotDamaged
ParticleSysBone = WakeFront WakeBack2 FollowBone:Yes
ParticleSysBone = WakeFront Wake
End
TransitionState = TRANS_ToReallyDamaged
StateName = TRANS_ToReallyDamaged
EnteringStateFX = FX_BuildingReallyDamaged
End
TransitionState = TRANS_ToDamaged
StateName = TRANS_ToDamaged
EnteringStateFX = FX_BuildingReallyDamaged
End
End
Draw = W3DSailModelDraw ModuleTag_Sail01Draw
AttachToBoneInAnotherModule = SAIL_BONE01
MaxRotationDegrees = 45
BlowingThresholdDegrees = 15
AboutDamping = 0.1
DefaultModelConditionState
Model = EUBSHP_S1_SKN
Texture = AUCorShipW.tga pusegelnormal
End
;--------- USER_1 Pirate flag states ---------------------------------------------------------------
ModelConditionState = USER_1 REALLYDAMAGED
Model = AUCrShp_S1_SKN
Texture = AUCorShipW.tga AUCorShipW_D_Update.tga
End
ModelConditionState = USER_1 DYING
Model = AUCrShp_S1_SKN
Texture = AUCorShipW.tga AUCorShipW_D_Update.tga
End
ModelConditionState = USER_1
Model = AUCrShp_S1_SKN
Texture = AUCorShipW.tga AUCorShipW_Update.tga
End
;--------- Standard damaged states --------------------------------------------------------------------
ModelConditionState = REALLYDAMAGED
Model = EUBSHP_S1_SKN
Texture = AUCorShipW.tga pusegelnormal
End
ModelConditionState = DYING
Model = EUBSHP_S1_SKN
Texture = AUCorShipW.tga pusegelnormal
End
ModelConditionState = JUST_BUILT
Model = EUBSHP_S1_SKN
End
AnimationState = JUST_BUILT
StateName = JustBuilt
Animation
AnimationName = AUCrShp_S1_A.AUCrShp_S1_A
AnimationMode = ONCE
End
End
IdleAnimationState
Animation
AnimationName = EUBSHP_S1_SKL.EUBSHP_S1_IDLA
AnimationMode = LOOP
AnimationBlendTime = 20
End
End
AnimationState = MOVING SAIL_BLOWN_LEFT
Animation
AnimationName = EUBSHP_S1_SKL.EUBSHP_S1_WNDL
AnimationMode = LOOP
AnimationBlendTime = 15
End
End
AnimationState = MOVING SAIL_BLOWN_RIGHT
Animation
AnimationName = EUBSHP_S1_SKL.EUBSHP_S1_WNDR
AnimationMode = LOOP
AnimationBlendTime = 15
End
End
AnimationState = MOVING
Animation
AnimationName = EUBSHP_S1_SKL.EUBSHP_S1_WNDF
AnimationMode = LOOP
AnimationBlendTime = 20
End
End
End
Draw = W3DSailModelDraw ModuleTag_Sail02Draw
AttachToBoneInAnotherModule = SAIL_BONE02
MaxRotationDegrees = 45
BlowingThresholdDegrees = 15
AboutDamping = 0.1
DefaultModelConditionState
Model = EUBSHP_S2_SKN
Texture = AUCorShipW.tga pusegelnormal
End
;--------- USER_1 Pirate flag states ---------------------------------------------------------------
ModelConditionState = USER_1 REALLYDAMAGED
Model = AUCrShp_S2_SKN
Texture = AUCorShipW.tga AUCorShipW_D_Update.tga
End
ModelConditionState = USER_1 DYING
Model = AUCrShp_S2_SKN
Texture = AUCorShipW.tga AUCorShipW_D_Update.tga
End
ModelConditionState = USER_1
Model = AUCrShp_S2_SKN
Texture = AUCorShipW.tga AUCorShipW_Update.tga
End
;--------- Standard damaged states --------------------------------------------------------------------
ModelConditionState = REALLYDAMAGED
Model = EUBSHP_S2_SKN
Texture = AUCorShipW.tga pusegelnormal
End
ModelConditionState = DYING
Model = EUBSHP_S2_SKN
Texture = AUCorShipW.tga pusegelnormal
End
ModelConditionState = JUST_BUILT
Model = EUBSHP_S2_SKN
End
AnimationState = JUST_BUILT
StateName = JustBuilt
Animation = Being_Built
AnimationName = AUCrShp_S2_A.AUCrShp_S2_A
AnimationMode = ONCE
End
End
IdleAnimationState
Animation
AnimationName = EUBSHP_S2_SKL.EUBSHP_S2_IDLA
AnimationMode = LOOP
AnimationBlendTime = 20
End
End
AnimationState = MOVING SAIL_BLOWN_LEFT
Animation
AnimationName = EUBSHP_S2_SKL.EUBSHP_S2_WNDL
AnimationMode = LOOP
AnimationBlendTime = 15
End
End
AnimationState = MOVING SAIL_BLOWN_RIGHT
Animation
AnimationName = EUBSHP_S2_SKL.EUBSHP_S2_WNDR
AnimationMode = LOOP
AnimationBlendTime = 15
End
End
AnimationState = MOVING
Animation
AnimationName = EUBSHP_S2_SKL.EUBSHP_S2_WNDF
AnimationMode = LOOP
AnimationBlendTime = 20
End
End
End
Draw = W3DBoatWakeModelDraw ModuleTag_BoatWakeDraw
ModelName = CorsairWakeFX
Offset = X:73.76 Y:2.35 Z:1
End
; ***DESIGN parameters ***
Side = Mordor
EditorSorting = UNIT
ThreatLevel = CORSAIRSHIP_THREAT_LEVEL
TransportSlotCount = TRANSPORTSLOTCOUNT_NOT_TRANSPORTABLE
HealthBoxScale = 0.5
HealthBoxHeightOffset = -20
Scale = 1.75
BountyValue = EVILMEN_BLACKRIDER_BOUNTY_VALUE
VisionRange = EVILMEN_SHIP_VISION_RANGE
ShroudClearingRange = SHROUD_CLEAR_BATTLESHIP
BountyValue = ELVEN_MALLORN_TREE_BOUNTY_VALUE
CommandPointBonus = GENERIC_ECONOMY_COMMAND_POINT_BONUS
; This is required so that the build phase lasts as long as the anim.
BuildFadeInOnCreateTime = 2
CrushableLevel = 3 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 1
CommandPoints = 50
CommandSet = BlackPearlWasser1_CommandSet
BuildTime = EVIL_BATTLESHIP_BUILDTIME
BuildCost = EVIL_BATTLESHIP_BUILDCOST
ShockwaveResistance = SHOCKWAVE_RESISTANCE_ALWAYS ; No reacting to meta impacting for us
; *** AUDIO Parameters ***;
VoiceAttack = EvilMenCorsairShipAttack
VoiceAttackCharge = EvilMenCorsairShipAttack
VoiceAttackStructure = EvilMenCorsairShipAttack
VoiceAttackMachine = EvilMenCorsairShipAttack
VoiceCreated = EvilMenCorsairShipAttack
VoiceCreated = ShipSalute
VoiceFullyCreated = ShipSalute
VoiceGuard = EvilMenCorsairShipMove
VoiceMove = EvilMenCorsairShipMove
VoiceMoveToCamp = EvilMenCorsairShipMove
VoiceMoveWhileAttacking = EvilMenCorsairShipMove
VoiceRetreatToCastle = EvilMenCorsairShipMove
VoiceSelect = EvilMenCorsairShipSelect
VoiceSelectBattle = EvilMenCorsairShipSelect
SoundAmbient = EvilMenCorsairShipAmbienceMS
SoundAmbientDamaged = GenericFireMediumLoop
SoundAmbientReallyDamaged = GenericFireLargeLoop
SoundImpact = ImpactHorse
SoundMoveLoop = EvilMenCorsairShipMoveLoopMS
#include "..\..\..\includes\StandardUnitEvaEvents.inc"
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
ThingClass = CAVALRY_UNIT
KindOf = SELECTABLE CAN_SEE_THROUGH_STRUCTURE LIVING_WORLD_BUILDING_MIRROR CAN_ATTACK SHIP HAS_HEALTH_BAR LARGE_RECTANGLE_PATHFIND DOZER
Body = ActiveBody ModuleTag_02
MaxHealth = EVIL_BATTLESHIP_HEALTH
End
Behavior = AIUpdateInterface ModuleTag_AI
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
AILuaEventsList = FortressFunctions
End
ArmorSet
Conditions = None
Armor = FortressArmor
DamageFX = None
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = LargeShipHeavyArmor
DamageFX = None
End
LocomotorSet
Locomotor = TransportShipLocomotor
Condition = SET_NORMAL
Speed = 150
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = ArcherHorde
End
Behavior = PhysicsBehavior ModuleTag_04
End
Behavior = SquishCollide ModuleTag_06
End
Behavior = NotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
End
Behavior = ShipSlowDeathBehavior ModuleTag_Death
DeathTypes = ALL
SinkDelay = 0
SinkRate = 12.0 ; in Dist/Sec
DestructionDelay = 10000
;Sound = INITIAL EvilShipBattleSinkMS
End
Behavior = CreateObjectDie ModuleTag_SplashFX
CreationList = OCL_BoatDeathSplashBack
End
Behavior = CreateObjectDie ModuleTag_SplashFX2
CreationList = OCL_BoatDeathSplashFront
End
Behavior = CreateObjectDie ModuleTag_JacksChance
CreationList = OCL_Niederlage
End
Behavior = ProductionUpdate ModuleTag_UpgradeProducer
GiveNoXP = Yes
End
Behavior = FlammableUpdate FlammableModuleTag_FireUpdate
AflameDuration = 0 ; Burn until expressly put out.
AflameDamageDelay = EVIL_SHIP_FIRE_DAMAGE_TIMEOUT ; How often do I take damage from being on fire?
AflameDamageAmount = EVIL_SHIP_FIRE_DAMAGE_AMOUNT ; How much damage to I take per delay?
FlameDamageLimit = EVIL_SHIP_FIRE_DAMAGE_HEALTH ; How much flame damage do I need to take before starting on fire?
FlameDamageExpiration = 100000 ; The time before resetting the health
SetBurnedStatus = No
DamageType = FORCE ; FORCE means 'any'; all damage makes ships burn. They're fragile.
End
Behavior = AutoDepositUpdate AutoDepositModuleTag
DepositTiming = GENERIC_KEEP_MONEY_TIME
DepositAmount = GENERIC_KEEP_MONEY_AMOUNT
InitialCaptureBonus = 0 ;// no initial bonus
End
Behavior = SpawnBehavior ModuleTag_SpawnFighters
SpawnNumber = 1
InitialBurst = 1
SpawnTemplateName = PearlZerstörung
SpawnReplaceDelay = 999999999
FadeInTime = 1000
SpawnInsideBuilding = Yes
End
Behavior = SpawnBehavior ModuleTag_SpawnLeben
SpawnNumber = 1
InitialBurst = 1
SpawnTemplateName = Leben
SpawnReplaceDelay = 999999999
FadeInTime = 1000
SpawnInsideBuilding = Yes
End
;------------------- HEAVY ARMOR ----------------------------------------------------------
;Behavior = ArmorUpgrade ModuleTag_PirateArmor
; TriggeredBy = Upgrade_ShipArmor
; End
; ;------------------ PIRATE FLAG - more damage --------------------------------------------
; Behavior = AttributeModifierUpgrade ModuleTag_PirateAttributes
; TriggeredBy = Upgrade_PirateFlag
; AttributeModifier = EvilShipPirateBonus
; CustomAnimAndDuration = AnimState:USER_1 AnimTime:0 TriggerTime:0
; End
Behavior = HordeTransportContain ModuleTag_Contain2
ObjectStatusOfContained = UNSELECTABLE UNATTACKABLE CAN_ATTACK
;PassengersTestCollisionHeight = 80
Slots = 5
EnterSound = GarrisonEnter
ExitSound = GarrisonExit
DamagePercentToUnits = 0%
PassengerFilter = TRANSPORTSHIP_PASSENGER_OBJECTFILTER
AllowOwnPlayerInsideOverride = Yes ; Normally, the Allies check encompasses OwnPlayer. but we reeeeally only want our own guys.
AllowAlliesInside = No
AllowEnemiesInside = No
AllowNeutralInside = No
ExitDelay = 0
NumberOfExitPaths = 0 ; Defaults to 1. Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
ForceOrientationContainer = No ; otherwise contained units can't orient themselves towards their targets...
PassengerBonePrefix = PassengerBone:SAIL_BONE01 KindOf:HERO
PassengerBonePrefix = PassengerBone:Arrow KindOf:BANNER
PassengerBonePrefix = PassengerBone:Arrow KindOf:INFANTRY
ShowPips = Yes
EjectPassengersOnDeath = Yes
FadeFilter = ALL
FadePassengerOnEnter = Yes
EnterFadeTime = 6000
FadePassengerOnExit = Yes
ExitFadeTime = 1000
InitialPayload = PearlKanonen 2
InitialPayload = PearlArcher 2
End
;//////////////////////
;// AISpecialPowers
;//////////////////////
Behavior = AISpecialPowerUpdate GondorFighterHordeStanceBattle
CommandButtonName = Command_SetStanceBattle
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEBATTLE
End
Behavior = AISpecialPowerUpdate GondorFighterHordeStanceAggressive
CommandButtonName = Command_SetStanceAggressive
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEAGGRESSIVE
End
Behavior = AISpecialPowerUpdate GondorFighterHordeHoldGround
CommandButtonName = Command_SetStanceHoldGround
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEHOLDGROUND
End
GeometryIsSmall = No
Geometry = BOX
GeometryMajorRadius = 90.0 ; A little larger than the art, to try and improve the collisions with other ships.
GeometryMinorRadius = 30.0
GeometryHeight = 60.0
AdditionalGeometry = BOX
GeometryMajorRadius = 0.9
GeometryMinorRadius = 0.9
GeometryHeight = 0.9
GeometryOffset = X:-200 Y:0 Z:-200
; Contact point corners are slightly smaller than the geometry, as this
; fits the mesh better.
GeometryContactPoint = X:-65.0 Y:20.0 Z:60 ; 1
GeometryContactPoint = X:65.0 Y:20.0 Z:0 ; 8
GeometryContactPoint = X:65.0 Y:20.0 Z:60 ; 5
GeometryContactPoint = X:-65.0 Y:-20.0 Z:0 ; 3
GeometryContactPoint = X:65.0 Y:-20.0 Z:60 ; 6
GeometryContactPoint = X:65.0 Y:-20.0 Z:0 ; 7
GeometryContactPoint = X:-65.0 Y:-20.0 Z:60 ; 2
GeometryContactPoint = X:-65.0 Y:20.0 Z:0 ; 4
Shadow = SHADOW_VOLUME
End
;----------------------------------------------
ChildObject BlackPearlWasser Pearl_Interface
WeaponSet
Conditions = None
Weapon = PRIMARY ShipMissileRangefinder
End
ThreatBreakdown ElvenShoreBombardShip_DetailedThreat
AIKindOf = SHIP_BATTLESHIP
End
DisplayName = OBJECT:EvilArrowShip
; *** AUDIO Parameters ***;
VoicePriority = 50
SoundOnDamaged = EvilShipBattleDamageSmallMS
SoundOnReallyDamaged = EvilShipBattleDamageMediumMS
;---------------------
Behavior = ShipSlowDeathBehavior ModuleTag_Death
DeathTypes = ALL
SinkDelay = 0
SinkRate = 12.0 ; in Dist/Sec
DestructionDelay = 10000
Sound = INITIAL EvilShipBattleSinkMS
End
Behavior = CastleMemberBehavior ModuleTag_CMB
BeingBuiltSound = BuildingBigConstructionLoop
End
Behavior = MonitorConditionUpdate ModuleTag_CommandSetNew
ModelConditionFlags = WEAPONSET_TOGGLE_1
ModelConditionCommandSet = BlackPearlWasser2_CommandSet
End
Behavior = MonitorConditionUpdate ModuleTag_CommandSetOld
ModelConditionFlags = WEAPONSET_TOGGLE_2
ModelConditionCommandSet = BlackPearlWasser1_CommandSet
End
;-----------------------------------------------
;Used for hero revival and initial construction
Behavior = ProductionUpdate ProductionUpdateModuleTag
End
Behavior = QueueProductionExitUpdate QueueProductionModuleTag
UnitCreatePoint = X:140.3 Y:0.0 Z:0.0
NaturalRallyPoint = X:250.0 Y:0.0 Z:0.0
PlacementViewAngle = 0
End
Behavior = AIUpdateInterface ModuleTag_AI
AILuaEventsList = FortressFunctions
End
End
CommandSet
CommandSet BlackPearlWasser1_CommandSet
1 = Command_ToggleStance
2 = Command_CommandSetChange1
3 = Command_ExitGarrisonBlackPearl
4 = Command_ExitGarrisonBlackPearl
5 = Command_ExitGarrisonBlackPearl
6 = Command_ExitGarrisonBlackPearl
7 = Command_ExitGarrisonBlackPearl
8 = Command_ExitGarrisonBlackPearl
9 = Command_ExitGarrisonBlackPearl
10 = Command_ExitGarrisonBlackPearl
11 = Command_ExitGarrisonBlackPearl
12 = Command_RadialBack
13 = Command_AttackMove
14 = Command_Stop
15 = Command_SetStanceBattle
16 = Command_SetStanceAggressive
17 = Command_SetStanceHoldGround
End
CommandSet BlackPearlWasser2_CommandSet
1 = Command_ToggleStance
2 = Command_CommandSetChangeHero
3 = Command_GenericReviveSlotPearl1
4 = Command_GenericReviveSlotPearl2
5 = Command_GenericReviveSlotPearl3
6 = Command_GenericReviveSlotPearl4
7 = Command_GenericReviveSlotPearl5
8 = Command_GenericReviveSlotPearl6
9 = Command_GenericReviveSlotPearl7
10 = Command_GenericReviveSlotPearl8
13 = Command_AttackMove
14 = Command_Stop
16 = Command_SetStanceBattle
17 = Command_SetStanceAggressive
18 = Command_SetStanceHoldGround
End
CommandButton
CommandButton Command_CommandSetChange1
Command = TOGGLE_WEAPONSET
Options = TOGGLE_IMAGE_ON_WEAPONSET
FlagsUsedForToggle = WEAPONSET_TOGGLE_1
TextLabel = CONTROLBAR:TogglePalantir2
ButtonImage = RestoreCommandSet
ButtonBorderType = SYSTEM
DescriptLabel = CONTROLBAR:ToolTipTogglePalantir2
Radial = No
InPalantir = Yes
End
CommandButton Command_CommandSetChangeHero
Command = TOGGLE_WEAPONSET
Options = TOGGLE_IMAGE_ON_WEAPONSET
FlagsUsedForToggle = WEAPONSET_TOGGLE_1
TextLabel = CONTROLBAR:TogglePalantir2
ButtonImage = RestoreCommandSet
ButtonBorderType = SYSTEM
DescriptLabel = CONTROLBAR:ToolTipTogglePalantir2
Radial = No
InPalantir = Yes
End
Wenn ich wüsste wie das mit den Upgrades geht, würde ich das auch machen, aber ich kenn mich leider mit den Scripts nicht aus.
mfg Sweeney Todd
-
als erstes fällt mir ein, dass du mal versuchen kannst, deine commandbuttons zu SPECIAL_POWER zu machen, da man auch über specialpower flags setzen kann. über weiteres muss ich noch nachdenken
-
So ich melde mich mal wieder. Diesmal keine wirklich über Codes, sondern eine Frage über einen bekannten Bug und zwar der CP-Bug. Es heißt er passiert durch passive Rohstoffproduktionserhöh ung. Jetzt meine Frage, tritt der Bug auch dann auf, wenn das Rohstoffgebäude keine CP gibt? Danke schon mal im voraus.
Mit vielen Grüßen Souls of Black
Edit: Jetzt noch eine normale Frage. Wie schaff ich es das der Spieler Geld verliert, wenn eine gewisse Einheit stirbt. Also Einheit A fällt der besitzende Spieler verliert 500Rohstoffe. hoffe ihr könnt mir helfen :)
-
Antwort zu B: Nur über libraries umsetzbar
Antwort zu A: Jegliche Fähigkeiten, die Rohstoffgebäude betreffen und dort die Rohstoffe erhöhen (mit Ausnahme des normalen Industry-Spells) sorgen für diesen Bug.
-
Ok danke Ea, ich hab zwar keine ahnung wie die Libraries aufgebaut sind, aber ich denke irgendwann wird das dan auch klappen, scheinen ja normale Scripts zu sein.
-
Morgen,
Ich hab mal wieder eine kleine Frage. Ist es möglich, Modelle über Codes auf der Z-Achse zu bewegen? Wenn ja wie?
Danke schon mal im vorraus
Souls of Black
-
Hallo, wie ihr sicher noch nicht bemerkt habt, wurde der Thread zu einem FdK Team Codingfragen Thread umgebaut, also fang ich gleich mal an:
Meine Einheit hat 2 Waffen: Eine die in 90° feuern kann, und eine die in 270° feuern kann. Beide sind bis auf den Eintrag, der den Winkel ändert identisch und jeweils als PRIMARY und SECONDARY im Weaponset drinnen. Wenn ich nun einen gegner angreife, schießt zuerst die erste Waffe, dann dreht sich die Einheit und feuert die 2te, dan dreht sie sich wieder und es beginnt von Vorne.
Meine Frage ist nun also, wie bring ich die Einheit dazu, immer die Waffe (auch wenn sie noch nicht nachgeladen ist) zu benützen, mit der sie sich am wenigsten bewegen (Drehen) muss?
Die Weapons:
Weapon Weapon1
AttackRange = ISENGARD_BALLISTA_RANGE
RangeBonusMinHeight = 30 ; = 10
RangeBonus = 1
RangeBonusPerFoot = #MULTIPLY( ISENGARD_BALLISTA_RANGE .003 )
FireFX = FX_GondorSwordHit
;MinimumAttackRange = 100.0
WeaponSpeed = 401 ; dist/sec
MinWeaponSpeed = 401
FXTrigger = CATAPULT_ROCK
PreAttackType = PER_SHOT ; Do the delay each time we attack a new target
PreAttackDelay = ISENGARD_BALLISTA_PREATTACKDELAY
FiringDuration = ISENGARD_BALLISTA_FIRINGDURATION
DelayBetweenShots = ISENGARD_BALLISTA_DELAYBETWEENSHOTS
RequireFollowThru = Yes
NoVictimNeeded = Yes ; Need no target
LeechRangeWeapon = Yes
ClipSize = 1
AutoReloadsClip = Yes
ClipReloadTime = ISENGARD_BALLISTA_FIRINGDURATION
HitPercentage = 70 ; Hit percentage must be 100% to allow it to target units on walls. Otherwise becomes useless. .
ScatterRadius = 50.0 ;When this weapon misses it can randomly miss by as much as this distance.
AimDirection = 90
CanFireWhileMoving = Yes
HordeAttackNugget
End
ProjectileNugget ; A Nugget that creates an Object and sends it to the target with a Warhead
ProjectileTemplateName = ProjectileTemplateName
WarheadTemplateName = WarheadTemplateName
End
End
Weapon Weapon2
AttackRange = ISENGARD_BALLISTA_RANGE
RangeBonusMinHeight = 30 ; = 10
RangeBonus = 1
RangeBonusPerFoot = #MULTIPLY( ISENGARD_BALLISTA_RANGE .003 )
FireFX = FX_GondorSwordHit
;MinimumAttackRange = 100.0
WeaponSpeed = 401 ; dist/sec
MinWeaponSpeed = 401
FXTrigger = CATAPULT_ROCK
PreAttackType = PER_SHOT ; Do the delay each time we attack a new target
PreAttackDelay = ISENGARD_BALLISTA_PREATTACKDELAY
FiringDuration = ISENGARD_BALLISTA_FIRINGDURATION
DelayBetweenShots = ISENGARD_BALLISTA_DELAYBETWEENSHOTS
RequireFollowThru = Yes
NoVictimNeeded = Yes ; Need no target
LeechRangeWeapon = Yes
ClipSize = 1
AutoReloadsClip = Yes
ClipReloadTime = ISENGARD_BALLISTA_FIRINGDURATION
HitPercentage = 70 ; Hit percentage must be 100% to allow it to target units on walls. Otherwise becomes useless. .
ScatterRadius = 50.0 ;When this weapon misses it can randomly miss by as much as this distance.
AimDirection = 270
CanFireWhileMoving = Yes
HordeAttackNugget
End
ProjectileNugget ; A Nugget that creates an Object and sends it to the target with a Warhead
ProjectileTemplateName = ProjectileTemplateName
WarheadTemplateName = WarheadTemplateName
End
End