Modderecke > Coding

panzer in sum1

(1/2) > >>

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