Modderecke > Coding
panzer in sum1
yogurt:
hallo alle zusammen:)
ich habe letztens mal wieder sum1 ausgegraben und ein bisschen dran rumgemoddet...
schließlich bin ich zu dem ergebnis gekommen, dass ich ein panzer aus C&C Generals in das spiel einfügen will :D, weil ich gemerkt habe, dass C&C relativ ähnlich aufgebaut ist und ein panzer in sum bestimmt ziemlich gut kommt:D
nun die frage: was muss ich alles tun?
meine codingskills sind mittelmäßig , aber mein wille ist groß^^
-bisher hab ich eine panzer.ini ( aus der default/object.ini und ein paar anderen zusammengebastelt)
;------------------------------------------------------------------------------
;
; Panzer.ini
;
;------------------------------------------------------------------------------
; *** ART Parameters ***
SelectPortrait = SNBattlemaster_L
ButtonImage = HIGandalfTheWhite
Draw = W3DTankDraw ModuleTag_01
; ***DESIGN parameters ***
Buildable = Yes
Side = Gondor
TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable)
WeaponSet
Conditions = None
Weapon = PRIMARY BattleMasterTankGun
End
ArmorSet
Conditions = None
Armor = SoldierArmor
DamageFX = NormalDamageFX
End
VisionRange = 100.0 ;How far we can see
BuildCost = 200 ;Cost to build
BuildTime = 5 ;Time to build in seconds
RefundValue = 0 ;Sell value (0 = use default)
EnergyProduction = 0 ;Energy required, below 0 values produce energy
IsForbidden = No ;Forbidden on this map
IsBridge = No ;Not a landmark bridge object.
IsPrerequisite = No ;Is this object a prereq to any other object
; *** AUDIO Parameters ***
;; This is a complete list of all the sounds you can give for to an Object. All of these
;; are potentially playable in the game, though some may not actually be reachable any more
VoiceSelect = NoSound ; Played when selected
VoiceSelectGroup = NoSound
VoiceSelectBattle = NoSound ; Played when selected and ENGAGED
VoiceSelectBattleGroup = NoSound
VoiceMove = NoSound ; Given a move order
VoiceMoveGroup = NoSound
VoiceAttack = NoSound ; Given an attack order
VoiceAttackGroup = NoSound
VoiceAttackCharge = NoSound ; Given an attack order, not attacking, been a while since given an attack order
VoiceAttackChargeGroup = NoSound
VoiceFear = NoSound ; Played when object gets into "red" health zone
VoiceCreated = NoSound ; Played when first created (First unit created, if entire group is created at once)
VoiceTaskComplete = NoSound ; Generic task complete
VoiceDefect = NoSound ; Unit defects to another player
VoiceAttackAir = NoSound ; Given an order to attack an air unit. Defaults to VoiceAttack
VoiceAttackAirGroup = NoSound
VoiceGuard = NoSound ; Ordered to guard area
VoiceGuardGroup = NoSound
VoiceAlert = NoSound ; Object is entering EMOTION_ALERT
VoiceFullyCreated = NoSound ; Object is part of a horde, and the horde just had its last member produced (from factory)
VoiceRetreatToCastle = NoSound ; Object is (a) in battle (ENGAGED), (b) losing the battle, (c) outside the owner's camps/castles, and (d) given an order to move into one of the owner's camps / castle
VoiceRetreatToCastleGrou p = NoSound
VoiceMoveToCamp = NoSound ; Object is outside of the owner's camp / castles, and is ordered to move into one the owner's camps / castles
VoiceMoveToCampGroup = NoSound
VoiceAttackStructure = NoSound ; Object is ordered to attack an object with KindOf = STRUCTURE
VoiceAttackStructureGrou p = NoSound
VoiceAttackMachine = NoSound ; Object is ordered to attack an object with KindOf = MACHINE
VoiceAttackMachineGroup = NoSound
VoiceMoveWhileAttacking = NoSound ; Object is given a move order while ENGAGED
VoiceMoveWhileAttackingG roup = NoSound
VoiceAmbushed = NoSound ; Object is not ATTACKING or ENGAGED, and takes damage from an enemy who is invisible due to stealth
VoiceCombineWithHorde = NoSound ; Unit is not a member of a horde, and is being told to combine with a horde
VoiceEnterStateAttack = NoSound ; AI is actually entering an attack state
VoiceEnterStateAttackCha rge = NoSound ; AI is actually entering an attack state for first time in n seconds
VoiceEnterStateAttackAir = NoSound ; AI is actually entering an attack state for an airborn target
VoiceEnterStateAttackStr ucture = NoSound ; AI is actually entering an attack state for a structure
VoiceEnterStateAttackMac hine = NoSound ; AI is actually entering an attack state for a machine
VoiceEnterStateMove = NoSound ; AI is actually entering a move state
VoiceEnterStateRetreatTo Castle = NoSound ; AI is actually entering a move state during battle from outside castle to inside
VoiceEnterStateMoveToCam p = NoSound ; AI is actually entering a move state NOT during battle from outside castle to inside
VoiceEnterStateMoveWhile Attacking = NoSound ; AI is actually entering a move state during battle
VoiceSelect2 = NoSound
VoiceSelectGroup2 = NoSound
VoiceSelectBattle2 = NoSound
VoiceSelectBattleGroup2 = NoSound
VoiceMove2 = NoSound
VoiceMoveGroup2 = NoSound
VoiceAttack2 = NoSound
VoiceAttackGroup2 = NoSound
VoiceAttackCharge2 = NoSound
VoiceAttackChargeGroup2 = NoSound
VoiceFear2 = NoSound
VoiceCreated2 = NoSound
VoiceTaskComplete2 = NoSound
VoiceDefect2 = NoSound
VoiceAttackAir2 = NoSound
VoiceAttackAirGroup2 = NoSound
VoiceGuard2 = NoSound
VoiceGuardGroup2 = NoSound
VoiceAlert2 = NoSound
VoiceFullyCreated2 = NoSound
VoiceRetreatToCastle2 = NoSound
VoiceRetreatToCastleGrou p2 = NoSound
VoiceMoveToCamp2 = NoSound
VoiceMoveToCampGroup2 = NoSound
VoiceAttackStructure2 = NoSound
VoiceAttackStructureGrou p2 = NoSound
VoiceAttackMachine2 = NoSound
VoiceAttackMachineGroup2 = NoSound
VoiceMoveWhileAttacking2 = NoSound
VoiceMoveWhileAttackingG roup2 = NoSound
VoiceAmbushed2 = NoSound
VoiceCombineWithHorde2 = NoSound
VoiceEnterStateAttack2 = NoSound
VoiceEnterStateAttackCha rge2 = NoSound
VoiceEnterStateAttackAir 2 = NoSound
VoiceEnterStateAttackStr ucture2 = NoSound
VoiceEnterStateAttackMac hine2 = NoSound
VoiceEnterStateMove2 = NoSound
VoiceEnterStateRetreatTo Castle2 = NoSound
VoiceEnterStateMoveToCam p2 = NoSound
VoiceEnterStateMoveWhile Attacking2 = NoSound
SoundMoveStart = NoSound ; When starting a move
SoundMoveStartDamaged = NoSound ; Starting a move while damaged
SoundMoveLoop = NoSound ; Played while moving
SoundMoveLoopDamaged = NoSound
SoundAmbient = NoSound ; Always played until dead (if SoundAmbientDamaged / SoundAmbientReallyDamage d defined, played until that damage level is reached)
SoundAmbientDamaged = NoSound ; Played when damaged (looping)
SoundAmbientReallyDamage d = NoSound ; Played when really damaged (looping)
SoundAmbientRubble = NoSound ; Played when dead (looping)
SoundAmbient2 = NoSound
SoundAmbientDamaged2 = NoSound
SoundAmbientReallyDamage d2 = NoSound
SoundAmbientRubble2 = NoSound
SoundAmbientBattle = NoSound ; Extra ambient played when in battle
SoundStealthOn = NoSound ; Played when turning on stealth
SoundStealthOff = NoSound ; Played when turning off stealth
SoundCreated = NoSound ; Played when created (produced)
SoundOnDamaged = NoSound ; Played when going into "damaged" state
SoundOnReallyDamaged = NoSound ; Played when going into "really damaged" state
SoundEnter = NoSound
SoundExit = NoSound
SoundPromotedVeteran = NoSound
SoundPromotedElite = NoSound
SoundPromotedHero = NoSound
SoundFallingFromPlane = NoSound
SoundImpact = NoSound
SoundCrushing = NoSound ; Sound made when crushing another unit, NOT when being crushed
UnitSpecificSounds
;; This is the list of unit specific sounds recognized by the game. Be careful --
;; the INI parser will not warn you about typos made in the name of the various sounds
; TurretMoveLoop ; Played while turret is changing orientation
; DisguiseStarted
; DisguiseRevealedSuccess
; DisguiseRevealedFailure
; Deploy
; Undeploy
; UnderConstruction ; Loop, being built from scratch by a worker/dozer
; UnderRepairFromDamage ; Loop, being repaired from a damaged state by a worker/dozer
; UnderRepairFromRubble ; Loop, being repaired from rubble by a worker/dozer
; VoiceDesperateAttack
; VoiceDesperateAttackGrou p
; VoiceDesperateAttack2
; VoiceDesperateAttackGrou p2
; VoiceCaptureBuildingComp lete
; VoiceCaptureBuildingComp leteGroup
; VoiceCaptureBuildingComp lete2
; VoiceCaptureBuildingComp leteGroup2
; VoiceSupply
; VoiceSupplyGroup
; VoiceSupply2
; VoiceSupplyGroup2
; VoiceUnload
; VoiceUnloadGroup
; VoiceUnload2
; VoiceUnloadGroup2
; VoiceRepair
; VoiceRepairGroup
; VoiceRepair2
; VoiceRepairGroup2
; VoiceCombatDrop
; VoiceCombatDropGroup
; VoiceCombatDrop2
; VoiceCombatDropGroup2
; VoiceGetHealed
; VoiceGetHealedGroup
; VoiceGetHealed2
; VoiceGetHealedGroup2
; VoiceGarrison
; VoiceGarrisonGroup
; VoiceGarrison2
; VoiceGarrisonGroup2
; VoiceEnterHostile
; VoiceEnterHostileGroup
; VoiceEnterHostile2
; VoiceEnterHostileGroup2
; VoiceEnter
; VoiceEnterGroup
; VoiceEnter2
; VoiceEnterGroup2
; VoiceCrush
; VoiceCrushGroup
; VoiceCrush2
; VoiceCrushGroup2
; VoiceSalvage
; VoiceSalvageGroup
; VoiceSalvage2
; VoiceSalvageGroup2
; VoiceBuildResponse
; VoiceBuildResponseGroup
; VoiceBuildResponse2
; VoiceBuildResponseGroup2
; VoicePrimaryWeaponMode ; Played when switching to primary weapon
; VoicePrimaryWeaponModeGr oup
; VoicePrimaryWeaponMode2
; VoicePrimaryWeaponModeGr oup2
; VoiceSecondaryWeaponMode ; Played when switching to secondary weapon
; VoiceSecondaryWeaponMode Group
; VoiceSecondaryWeaponMode 2
; VoiceSecondaryWeaponMode Group2
; VoiceTertiaryWeaponMode ; Played when switching to tertiary weapon
; VoiceTertiaryWeaponModeG roup
; VoiceTertiaryWeaponMode2
; VoiceTertiaryWeaponModeG roup2
; VoiceBombard ; Played when order to attack the ground (defaults to VoiceAttack)
; VoiceBombardGroup
; VoiceBombard2
; VoiceBombardGroup2
; VoiceRapidFire ; Played when getting into rapid fire mode
; VoiceRapidFireGroup
; VoiceRapidFire2
; VoiceRapidFireGroup2
; VoiceEnterUnit<ObjectName> ; Played when entering a specific type of object e.g. VoiceEnterUnitMordorMuma kil
; VoiceEnterUnit<ObjectName>Group
; VoiceEnterUnit<ObjectName>2
; VoiceEnterUnit<ObjectName>Group2
; VoiceAttackUnit<ObjectName> ; Played when ordered to attack a specific type of object e.g. VoiceAttackUnitRohanEntF ir
; VoiceAttackUnit<ObjectName>Group
; VoiceAttackUnit<ObjectName>2
; VoiceAttackUnit<ObjectName>Group2
End
VoicePriority = 5
GroupVoiceThreshold = 20 ; Switch to VoiceWhateverGroup at this many units. 0 = never use group voices
VoiceAmbushBlockingRadiu s = 200 ; When thinking about calling out ambush, tell units within this radius to not call "ambush" for a while
VoiceAmbushTimeout = 30000 ; When a nearby unit was thinking about calling out ambush, don't call ambush outselves for this long.
EvaEnemyUnitSightedEvent = GenericEnemyUnitSighted ; Normally just say "There's the enemy!"
; *** ENGINEERING Parameters ***
RadarPriority = INVALID ;INVALID means not set, and generally won't be on the radar
DisplayColor = R:100 G:100 B:100 ;Editor display color
KindOf = NONE ;Kind of bits
Body = ActiveBody ModuleTag_02
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = GONDOR_SOLDIER_HEALTH
MaxHealthDamaged = GONDOR_SOLDIER_HEALTH_DA MAGED
;RecoveryTime = GONDOR_SOLDIER_HEALTH_RE COVERY_TIME
End
Behavior = WeaponSetUpgrade WeaponSetUpgradeModuleTa g
TriggeredBy = Upgrade_GondorForgedBlad es Upgrade_TechnologyGondor ForgedBlades
RequiresAllTriggers = Yes
End
Behavior = ArmorUpgrade ArmorUpgradeModuleTag
TriggeredBy = Upgrade_GondorHeavyArmor
ArmorSetFlag = PLAYER_UPGRADE
;KillArmorUpgrade = Yes ;This cancels any previous armor upgrade.
End
; InheritableModule means "don't remove me by default when copied from default"
InheritableModule
Behavior = AttributeModifierPoolUpd ate ModuleTag_DefaultAttribu teModifierPoolUpdate
;nothing
End
End
; InheritableModule means "don't remove me by default when copied from default"
; InheritableModule
; Behavior = AutoHealBehavior ModuleTag_DefaultAutoHea lBehavior
; HealingAmount = 10 ;in health points
; HealingDelay = 1000 ; msec
; TriggeredBy = Upgrade_Veterancy_ELITE Upgrade_Veterancy_HEROIC ; Either of these two will work (you can skip Elite, so need both)
; StartHealingDelay = 5000 ;in miliseconds
; End
; End
InheritableModule
; This will farm out any experience we gain to nearby units.
Behavior = ShareExperienceBehavior ModuleTag_DefaultShareEx p
Radius = 100.0
ObjectFilter = ANY +HERO
DropOff = 1.0 ; Must be one or zero.
End
End
InheritableModule
Behavior = TemporarilyDefectUpdate ModuleTag_TemporarilyDef ectUpdate
;***************************** IMPORTANT ***********************************************
;***************************** IMPORTANT ***********************************************
;***************************** IMPORTANT ***********************************************
;***************************** IMPORTANT ***********************************************
DefectDuration = 30000 ; VERY VERY IMPORTANT, YOU MUST Make sure that DefectDuration
; is LESS than the ReloadTime of the special power(s)
; that trigger defection. Or all maner of grief will happen
; with defected units. So any special powers (currently only
; SpecialAbilityDominateEn emy in specialpower.ini) that
; trigger TemporarilyDefectUpdate will need to MAKE SURE
; that thier ReloadTimes are greater than DefectDuration
;***************************** IMPORTANT ***********************************************
;***************************** IMPORTANT ***********************************************
;***************************** IMPORTANT ***********************************************
;***************************** IMPORTANT ***********************************************
End
End
InheritableModule
Behavior = AttributeModifierUpgrade ModuleTag_EasySoloBonus
TriggeredBy = Upgrade_EasyAISinglePlay er
AttributeModifier = EasyAISinglePlayer_Bonus
End
End
InheritableModule
Behavior = AttributeModifierUpgrade ModuleTag_MediumSoloBonu s
TriggeredBy = Upgrade_MediumAISinglePl ayer
AttributeModifier = MediumAISinglePlayer_Bon us
End
End
InheritableModule
Behavior = AttributeModifierUpgrade ModuleTag_HardSoloBonus
TriggeredBy = Upgrade_HardAISinglePlay er
AttributeModifier = HardAISinglePlayer_Bonus
End
End
InheritableModule
Behavior = AttributeModifierUpgrade ModuleTag_EasyMPBonus
TriggeredBy = Upgrade_EasyAIMultiPlaye r
AttributeModifier = EasyAIMultiPlayer_Bonus
End
End
InheritableModule
Behavior = AttributeModifierUpgrade ModuleTag_MediumMPBonus
TriggeredBy = Upgrade_MediumAIMultiPla yer
AttributeModifier = MediumAIMultiPlayer_Bonu s
End
End
InheritableModule
Behavior = AttributeModifierUpgrade ModuleTag_HardMPBonus
TriggeredBy = Upgrade_HardAIMultiPlaye r
AttributeModifier = HardAIMultiPlayer_Bonus
End
End
Scale = 1.0 ;Scaling
Geometry = SPHERE ;Collision geometry
GeometryMajorRadius = 0.8 ;Collision major radius
GeometryMinorRadius = 0.8 ;Collision minor radius
GeometryHeight = 0.8 ;Height for geometry
GeometryIsSmall = Yes ;Is small geometry
Shadow = NONE ;Shadows present for object
BuildCompletion = APPEARS_AT_RALLY_POINT ;Or PLACED_BY_PLAYER
; -----------------------------------------------------------------------------------------
; Table to use to scale experience by rank per mission. Defined in ExperienceLevels.ini.
ExperienceScalarTable = DefaultExperienceScalarT able
End
-die commandbutton.ini
CommandButton Command_Panzer
Command = UNIT_BUILD
Object = Panzer
TextLabel = Panzer
DescriptLabel = Panzer
ButtonImage = BMGreatSeigeWorks_Batter ingRam
ButtonBorderType = BUILD
Radial = Yes
InPalantir = Yes
ShowProductionCount = Yes
End-und die commandset.ini
CommandSet Panzer
1 = Command_Guard
13 = Command_AttackMove
14 = Command_Stop
15 = Command_Guard
End
CommandSet GondorBarracksCommandSet
1 = Command_ConstructGondorF ighterHorde
2 = Command_ConstructGondorT owerShieldGuardHorde
3 = Command_ConstructPanzer
4 = Command_ConstructGondorA rcherHorde
5 = Command_Sell
End
-dann hab ich noch die w3d und die texture datei in den sumordner geschoben
-an der game.dat muss ich noch was machen (ka was^^)
und jetzt weiß ich nicht mehr weiter...
kann und will mir jemand bei meinem vorhaben helfen?
Lg yogurt
thepinking:
Die Einträge aus der Default/Object.ini kannst du gleich wieder raus hauen, die gehören da nicht rein. Einträge die in der Object.ini sind sind dan sowieso in jedem Object vorhanden. An der Game.dat musst du nichts ändern, ich glaube du meinst eher die Fehlermeldung die es dir raushaut weil du die Waffe "BattleMasterTankGun" noch nicht in der Weapon.ini definiert hast.
Wäre es nicht generell viel einfacher, anstatt einer neuen Panzer.ini, einfach eine aus C&C zu übernehmen und alle Weapon, CommandSet .... usw Einträge für ihn ebenfalls zu übernehmen? Wie man das Model, Textur und die Asset einbindet steht übrigens in Turins Einheiten Tutorial (ist bei den Tutorials zu finden) genauso wie man Beschreibungen und Palantir/Button Bilder macht/einbindet
Gnomi:
Du musst eigentlich nur den Panzer, der bereits in SuM I enthalten ist, baubar machen. :P
Das müsste der kleine Panzer der Chinesen sein. Der ist von vornherein shcon vollständig benutzbar, ich hab den Mal auf ein paar Maps gehabt.^^
Skulldur:
Es gibt doch schon einen Panzer in SuM 1 xD
oschatz:
super^^ jetzt ggibts alles in SuM :D
wie kann man den denn freischalten ? xD
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln