Modding Union
Modderecke => Coding => Thema gestartet von: Durin, Vater der Zwerge am 18. Dez 2010, 10:18
-
Hallo erstmal!
Habe einfach ein paar Anfänger-Fragen zu denen ich mithilfe der Sufu nichts gefunden habe.
1:Was bedeutet der Eintrag nach "Enum", also zum Beispiel:
SpecialPower SpellBookCalltheHorde
Enum = SPECIAL_SPELL_BOOK_CALL_THE_HORDE
RequiredSciences = SCIENCE_CalltheHorde
ReloadTime = SPELL_RECHARGE_TIME_TIER_2 ; in milliseconds
InitiateSound = SpellCallTheHordeStereo
Flags = RESPECT_RECHARGE_TIME_DISCOUNT
End
2:Wie erstelle ich einen Spell, der die Roshsoffprodunktion aller Gehöfte kurzzeitig um, sagen wir mal 20% erhöht?
Ich wollte eigentlich versuchen den "Call the Horde" und den "Dwarfen Riches" Spell zu vermischen, aber ich habe zu diesen Spells die Passagen in denen die Auswirkungen auftauchen nicht gefunden.
MfG
Durin, VdZ
-
Hallo, Durin!
1) Der Eintrag nach ENUM spezifiziert noch einmal den genauen Typ eines Spells oder einer Fähigkeit. Er stellt sozusagen das Basisgerüst für einen Spell dar, wenn du also z.B. eine Fähigkeit erstellen möchtest, die globale Auswirkungen hat, solltest du auch ein ENUM einer Fähigkeit verwenden, die global wirkt. Genaueres weiß ich jetzt auch nicht. Aber du kannst jedenfalls KEINE neuen Enums erstellen, die sind fix!
2) Schau mal in die system.ini im Ordner "data\ini\object\system" und such dort nach einem der beiden Spells. Hier hast du deren Auswirkungen stehen.
mfg
sanalf 2
-
Du nimmst den CallTheHorde Spell wobei er statt auf Orkgruben halt auf Rohstoffgebäude wirkt und einen anderen Attributemodifier verleiht
Aber ich weiß nicht ob alle Einträge von CallTheHorde in Sum2 sind, müsstest halt notfalls aus SuM1 kopieren
-
Danke erstmal für die Antworten!
Desweiteren wollte ich ein nach diesem Tutorial ein neues Volk erstellen.
http://www.the3rdage.net/item-144?cpage=0#comments (http://www.the3rdage.net/item-144?cpage=0#comments)
Ich hab alles so gemacht wie gesagt, allerdings kommt bei mir die folgende Fehlermeldung
http://www.imagebanana.com/view/b3zp04jw/Unbenannt.jpg (http://www.imagebanana.com/view/b3zp04jw/Unbenannt.jpg)
Der ChildObject Block sieht so aus
ChildObject MenPorterNoSelect MenPorter
KindOf = PRELOAD CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER DOZER SWARM_DOZER NOT_AUTOACQUIRABLE MOVE_FOR_NOONE
ShockwaveResistance = SHOCKWAVE_RESISTANCE_IMMUNE
End
-
Naja, die Fehlermeldung sagt, dass du das ChildObject falsch platziert hast. Is das auch wirklich in der ini vom Porter drin? Hast du es nach dem letzten "END" der Porter-Codes eingefügt? Da würd ich das Problem suchen.
mfg
sanalf 2
-
Am ´End´ liegts jedenfalls nicht. Hier sind noch einmal die gesamten Codes des Porters
;------------------------------------------------------------------------------
;
; Men Porter.ini
;
;------------------------------------------------------------------------------
; aka Porter
Object FendlandPorter
; *** ART Parameters ***
SelectPortrait = UPGondor_Porter
; ButtonImage for Porter
ButtonImage = BGFortress_Porter
Draw = W3DTruckDraw ModuleTag_01
OkToChangeModelColor = Yes
;StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = GUPorter_SKN
Skeleton = GUPorter_SKL
End
IdleAnimationState
StateName = STATE_Running
Animation = IDLA
AnimationName = GUPorter_IDLA
AnimationMode = ONCE
AnimationPriority = 20
End
Animation = IDLB ; fidget. Search animation
AnimationName = GUPorter_IDLB
AnimationMode = ONCE
AnimationPriority = 1
End
End
AnimationState = DYING DEATH_1
Animation = DIEB
AnimationName = GUPorter_DIEA
AnimationMode = ONCE
End
End
AnimationState = DYING DEATH_2
Animation
AnimationName = GUPorter_IDLA
AnimationMode = LOOP
End
End
AnimationState = DYING
Animation = DIEA
AnimationName = GUPorter_DIEA
AnimationMode = ONCE
End
End
AnimationState = PARALYZED
Animation
AnimationName = GUPorter_IDLA
AnimationMode = LOOP
End
End
AnimationState = MOVING WANDER
StateName = STATE_Running
Animation = WLKA
AnimationName = GUPorter_WLKA
AnimationMode = LOOP
End
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails
End
AnimationState = MOVING
StateName = STATE_Running
Animation = RUNNING
AnimationName = GUPorter_RUNA
AnimationMode = LOOP
; AnimationSpeedFactorRange = 3.8 3.8
End
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails
End
AnimationState = UNPACKING PACKING_TYPE_1
Animation
AnimationName = GUPorter_FIRA
AnimationMode = ONCE
End
BeginScript
CurDrawablePlaySound("MenBuilderFireExtinguish")
EndScript
ParticleSysBone = BUCKET PorterFireWater FollowBone:YES
End
AnimationState = ACTIVELY_CONSTRUCTING
StateName = STATE_Constructing
Animation = WRKA
AnimationName = GUPorter_WRKB
AnimationMode = ONCE
AnimationPriority = 30
AnimationSpeedFactorRange = 0.9 1.1
End
Animation = WRKA ; In twice so that we can play it twice in a row.
AnimationName = GUPorter_WRKB
AnimationMode = ONCE
AnimationPriority = 30
AnimationSpeedFactorRange = 0.9 1.1
End
Animation = WRKB
AnimationName = GUPorter_WRKC
AnimationMode = ONCE
AnimationPriority = 5
AnimationSpeedFactorRange = 0.9 1.1
End
Animation = WRKB
AnimationName = GUPorter_WRKC
AnimationMode = ONCE
AnimationPriority = 5
AnimationSpeedFactorRange = 0.9 1.1
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Running" then CurDrawableSetTransitionAnimState("TRANS_RunToWork") end
EndScript
End
;;--------------- TRANSITIONS ---------------------------------------------------------------------------
TransitionState = TRANS_RunToWork
Animation = ATNA
AnimationName = GUPorter_WRKA
AnimationMode = ONCE
End
End
;;-----------------------------------------------------------------------------------------------------------
LeftFrontTireBone = WHEEL_L01
RightFrontTireBone = WHEEL_R01
;LeftRearTireBone = WHEEL_L01
;RightRearTireBone = WHEEL_R01
TireRotationMultiplier = 0.2
End
#include "..\..\..\includes\StunDrawModuleMedium.inc"
; ***DESIGN parameters ***
Side = Men
EditorSorting = UNIT
ThingClass = HORDE_UNIT
CommandPoints = 0
TransportSlotCount = TRANSPORTSLOTCOUNT_DOZER
ArmorSet
Conditions = None
Armor = PorterArmor
DamageFX = NormalDamageFX
End
BuildCost = MEN_PORTER_BUILDCOST
BuildTime = MEN_PORTER_BUILDTIME
VisionRange = MEN_PORTER_VISION_RANGE
BountyValue = MEN_PORTER_BOUNTY_VALUE
ShroudClearingRange = MEN_PORTER_SHROUD_RANGE
DisplayName = OBJECT:GondorPorter
CrushableLevel = 1 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
ShockwaveResistance = SHOCKWAVE_RESISTANCE_IMMUNE
IsTrainable = No
CommandSet = FendlandPorterCommandSet
; *** AUDIO Parameters ***;
VoiceCreated = MenBuilderVoiceSalute
VoiceFullyCreated = MenBuilderVoiceSalute
VoiceMove = MenBuilderVoiceMove
VoiceMoveToCamp = MenBuilderVoiceMove
VoicePriority = 6
VoiceRetreatToCastle = MenBuilderVoiceMove
VoiceSelect = MenBuilderVoiceSelectMS
SoundImpact = ImpactHorse
SoundMoveLoop = MenBuilderMoveLoopMS
SoundMoveStart = MenBuilderMoveStart
UnitSpecificSounds
VoiceNoBuild = EVA:PorterCantBuild
VoiceBuildResponse = MenBuilderVoiceBuild
VoiceExtinguishFireAtLocation = MenBuilderVoiceMove
VoiceGarrison = MenBuilderVoiceGarrison
VoiceSelectIdleWorker = MenBuilderVoiceSelectMS
VoiceEnterUnitElvenTransportShip = MenBuilderVoiceMove
VoiceInitiateCaptureBuilding = MenBuilderVoiceMove
End
ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo
ModelCondition = Required:EMOTION_CELEBRATING Excluded:DYING ENGAGED Sound:EmotionMenGoodCompilationVoxCheerSinglesLoop ;MOVING ATTACKING
ModelCondition = Required:EMOTION_TAUNTING Excluded:DYING ENGAGED Sound:EmotionMenGoodCompilationBFME1and2VoxTauntSinglesLoop ;MOVING ATTACKING
End
#include "..\..\..\Includes\StandardUnitEvaEvents.inc"
EvaEventDamagedOwner = PorterUnderAttack ;Eva event to trigger when unit is damaged
; Moved to FX_PorterDie so that we avoid annoucing FADED deaths
;EvaEventDieOwner = PorterDie ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE DOZER CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT PORTER IGNORES_SELECT_ALL NONCOM
//SelectionPriority = SELECTION_PRIORITY_PORTER
Body = ActiveBody ModuleTag_02
MaxHealth = MEN_PORTER_HEALTH
MaxHealthDamaged = MEN_PORTER_HEALTH_DAMAGED
RecoveryTime = MEN_PORTER_HEALTH_RECOVERY_TIME
End
Behavior = DozerAIUpdate ModuleTag_03
AILuaEventsList = InfantryFunctions
RepairHealthPercentPerSecond = 2% ; % of max health to repair each second
BoredTime = 5000 ; in milliseconds
BoredRange = 150 ; when bored, we look this far away to do something
AutoAcquireEnemiesWhenIdle = No ; no mine-disarming in the design at the moment
SpecialContactPoints = Repair
End
LocomotorSet
Locomotor = PorterLocomotor
Condition = SET_NORMAL
Speed = NORMAL_INGAME_PORTER_SPEED
End
LocomotorSet
Locomotor = PorterLocomotor
Condition = SET_WANDER
Speed = NORMAL_INGAME_PORTER_SPEED
End
Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
End
Behavior = SlowDeathBehavior SlowDeathBehaviorModuleTag_1
DeathTypes = ALL -CRUSHED -EXPLODED -KNOCKBACK -DETONATED -SPLATTED -FADED -SLAUGHTERED
SinkDelay = 3000
SinkRate = 1.40 ; in Dist/Sec
DestructionDelay = 13000
Sound = INITIAL MenBuilderVoiceDie ;PorterGenericVoiceDie
FX = INITIAL FX_PorterDie
End
Behavior = SlowDeathBehavior SlowDeathBehaviorModuleTag_2
DeathTypes = NONE +CRUSHED +EXPLODED +KNOCKBACK +DETONATED +SPLATTED
SinkDelay = 3000
SinkRate = 1.40 ; in Dist/Sec
DestructionDelay = 13000
DeathFlags = DEATH_1
FX = INITIAL FX_PorterDieExplosion
Sound = INITIAL MenBuilderVoiceDie ;PorterGenericVoiceDie
End
Behavior = SlowDeathBehavior ModuleTag_ConstructionDeath
DeathTypes = NONE +FADED
DeathFlags = DEATH_2
FadeDelay = 500
FadeTime = 3500
DestructionDelay = 4000
End
; Send porter back into fortress, don't announce or scream
Behavior = SlowDeathBehavior SlowDeathBehaviorModuleTag_Decommissioned
DeathTypes = NONE +SLAUGHTERED
SinkDelay = 1000
SinkRate = 1.40 ; in Dist/Sec
DestructionDelay = 5000
End
Behavior = SquishCollide ModuleTag_06
;nothing
End
Behavior = BezierProjectileBehavior ModuleTag_08 ; Module starts asleep, and wakes up when thrown.
;
FirstHeight = 24 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 24
FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
SecondPercentIndent = 70%
TumbleRandomly = Yes
CrushStyle = Yes ; I don't detonate, I just hit
DieOnImpact = Yes
BounceCount = 1 ; When I hit the ground, I'll arc again
BounceDistance = 40 ; this far
BounceFirstHeight = 16 ; Height of Bezier control points above highest intervening terrain
BounceSecondHeight = 16
BounceFirstPercentIndent = 20% ; Percentage of shot distance control points are placed
BounceSecondPercentIndent = 80%
GroundHitFX = FX_ThrownRockGroundHit
GroundBounceFX = FX_ThrownRockBounceHit
End
;--------------------------------------------------------------------
; Emotion Tracker for the Terror state
;--------------------------------------------------------------------
Behavior = EmotionTrackerUpdate Module_EmotionTracker
AfraidOf = NONE +RohanTreeBerd +RohanEntFir +RohanEntAsh +RohanEntBirch +MordorBalrog +MordorCaveTroll +MordorMountainTroll +MordorDrummerTroll +MordorFellBeast +MordorMumakil;Must be SCARY kindof as well.
AlwaysAfraidOf = NONE +MordorWitchKing +MordorWitchKingOnFellBeast +MordorBalrog +RohanOathbreaker
FearScanDistance = 250
AddEmotion = BraceForBeingCrushed_Base
AddEmotion = Terror_Base
End
#include "..\..\..\Includes\PorterExtinguishFire.inc"
;--------------------------------------------------------------------
; Don't make it any bigger or try making it a box or this unit will not make it up onto walls to deliver it's goods.
Geometry = CYLINDER
GeometryMajorRadius = 8.0
GeometryMinorRadius = 8.0
GeometryHeight = 16.0
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 27;
ShadowSizeY = 27;
ShadowTexture = ShadowI;
End
;--------------------------------------------------------------------
ChildObject MenPorterNoSelect MenPorter
KindOf = PRELOAD CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER DOZER SWARM_DOZER NOT_AUTOACQUIRABLE MOVE_FOR_NOONE
ShockwaveResistance = SHOCKWAVE_RESISTANCE_IMMUNE
End
-
Na, dann is alles klar. Du musst beim Namen des ChildObjects hinschreiben "ChildObject", dann den Namen des ChildObjects, also für dich "MenPorterNoSelect" und dann den Namen der Einheit, auf die sich das ChildObject bezieht. Du hast da "MenPorter" stehen, das Object heißt aber "FendlandPorter". Das musst du unten natürlich ausbessern.
mfg
sanalf 2
-
Danke!
Ich hatte so etwas Ähnliches schon versucht, allerdings habe ich da auch MenPorterNoSelct In FendlandPorterNoSelct umgeändert.
-
Bitte sehr.
Ja, das is aber nicht notwendig. Wichtig is nur, dass der zweite Name da auch stimmt.
mfg
sanalf 2
-
Ich hab bei der Fähigkeit um die sich meine erste Frage dreht das Problem dass ich mir den Spell zwar kaufen, ihn aber nicht anwenden kann, sprich, er erscheint nicht am linken Bildschirmrand.
Die Codes der Buttons sehen so aus:
CommandButton Command_SpellBookBajulafest
Command = SPELL_BOOK
SpecialPower = SpellBookBajulafest
ButtonImage = SBEvil_Darkness
TextLabel = CONTROLBAR:Darkness
DescriptLabel = CONTROLBAR:TooltipDarkness
End
CommandButton Command_PurchaseSpellBajulafest
Command = PURCHASE_SCIENCE
ButtonBorderType = UPGRADE
ButtonImage = SBEvil_Darkness
Science = SCIENCE_Bajulafest
TextLabel = CONTROLBAR:Darkness
DescriptLabel = CONTROLBAR:TooltipDarkness
End
Die Labels sowie das Button-Image hab ich absichtlich nicht geändert.
In die Commandsets der Spellbooks hab ich sie auch eingetragen.
-
Könntest du vielleicht noch die Einträge aus CommandSet.ini, CommandButton.ini und SpecialPower.ini posten?
Und hast du auch in der "system.ini" deinen Spell eingefügt? Die findest du unter "data\ini\object\system". Da musst du natürlich einen entsprechenden Block für deinen Spell anlegen.
mfg
sanalf 2
-
Ja, das is aber nicht notwendig. Wichtig is nur, dass der zweite Name da auch stimmt.
Falsch
denn dann hätte er zweimal MenPorterNoSelect, entweder umbennen oder löschen
@Durin VdZ
Es gibt zwei Commandsets für Spells, eines für Spellbook und eines zum Einsetzen, du musst beide ändern
-
Falsch
denn dann hätte er zweimal MenPorterNoSelect, entweder umbennen oder löschen
Versteh ich jetzt nicht ganz: Beim ChildObject kann man das ChildObject selbst benennen wie man will, oder nicht? Und das Hauptobjekt muss natürlich richtig dahinterstehen, so hab ich das aber auch gesagt.
Und das mit den zwei CommandSets hat er glaub ich schon gewusst, er hat ja beide Buttons erstellt und ich geh davon aus, dass er sie eingefügt hat.
mfg
sanalf 2
-
Ja aber er darf nicht MenPorterNoSelect stehen lassen, denn dann hätte er das zweimal
Einmal als ChildObject des MenPorters und einmal als ChildObject seines neuen Porters
Es stimmt, dass man es nennen darf wie man will, nur wenn es zweimal vorkommt gibts einen Crash
Bei ihm war die Reihenfolge:
FendlandPorter
MenPorterNoSelect (als ChildObject von MenPorter)
MenPorter
MenPorterNoSelect (als ChildObject von MenPorter)
Deswegen der obige Crash (das Child vor dem Original)
Hätte er:
FendlandPorter
MenPorterNoSelect (als ChildObject von FendlandPorter)
MenPorter
MenPorterNoSelect (als ChildObject von MenPorter)
oder
FendlandPorter
MenPorter
MenPorterNoSelect (als ChildObject von MenPorter)
MenPorterNoSelect (als ChildObject von MenPorter)
würde das Spiel wegen zweimaligem Vorhandensein von MenPorterNoSelect crashen
Falls dir nicht klar ist, wie ich zu der Reihenfolge komme, die inis werden alphabetisch und von oben nach unten gelesen, also
data\ini\object\goodfaction\structures\fendland
wäre vor
data\ini\object\goodfaction\structures\men
-
Doch, doch, das ganze is mir schon klar. Ich hab eben angenommen, dass er die INI vom menporter gleich verändert hat und nicht zuerst kopiert hat. Dann könnte er es so machen, wie ich gesagt habe.
Aber ich würde sagen: Back to topic
mfg
sanalf 2
-
Falls dir nicht klar ist, wie ich zu der Reihenfolge komme, die inis werden alphabetisch und von oben nach unten gelesen, also
data\ini\object\goodfaction\structures\fendland
wäre vor
data\ini\object\goodfaction\structures\men
Nein, denn da ich eine eigene _999mod.big angelegt habe in der sich nur der Fendland, nicht aber der Menporter befindet, wird der Menporter als Erstes gelesen.
Beim Spell war das Problem, dass ich mich vertippt habe und statt Command_SpellBook, Command-SpellBook geschrieben habe.
Jetzt stürzt das Spiel ab wenn ich ein Gefecht starte, und es kommt nur die Windows-Benachrichtigung dass game.dat ein Problem festgestellt hat.
Codes:
Commandset:
CommandSet GoodSpellBookCommandSet
1 = Command_SpellBookHeal
2 = Command_SpellBookElvenGifts
3 = Command_SpellBookLoneTowerDwarf
4 = Command_SpellBookEnshroudingMist
5 = Command_SpellBookRallyingCall
6 = Command_SpellBookBajulafest
7 = Command_SpellBookTomBombadil
8 = Command_SpellBookHobbitAllies
9 = Command_SpellBookRebuild
10 = Command_SpellBookArrowVolleyGood
11 = Command_SpellBookElvenWood
12 = Command_SpellBookDwarvenRiches
13 = Command_SpellBookMenOfDaleAllies
14 = Command_SpellBookCloudBreak
15 = Command_SpellBookRohanAllies
16 = Command_SpellBookDunedainAllies
17 = Command_SpellBookEntAllies
18 = Command_SpellBookEagleAllies
19 = Command_SpellBookUndermine
20 = Command_SpellBookBombard
21 = Command_SpellBookArmyoftheDead
22 = Command_SpellBookEarthquake
23 = Command_SpellBookFlood
24 = Command_SpellBookSunflare
25 = Command_SpellBookCitadel
26 = Command_SpellBookFarsight
27 = Command_SpellBookElvenWoodMP ; ;
End
CommandSet GoodSpellStoreCommandSet ; Good campaign
1 = Command_PurchaseSpellEnshroudingMistSP
2 = Command_PurchaseSpellElvenGifts
3 = Command_PurchaseSpellHeal
4 = Command_PurchaseSpellElvenWood
5 = Command_PurchaseSpellBajulafest
6 = Command_PurchaseSpellRallyingCallSP
7 = Command_PurchaseSpellTomBombadil
8 = Command_PurchaseSpellDwarvenRiches
9 = Command_PurchaseSpellRebuild
10 = Command_PurchaseSpellLoneTower
11 = Command_PurchaseSpellMenOfDaleAllies
12 = Command_PurchaseSpellCloudBreak
13 = Command_PurchaseSpellUndermine
14 = Command_PurchaseSpellBombard
15 = Command_PurchaseSpellFlood
16 = Command_PurchaseSpellEarthquake
17 = Command_PurchaseSpellSunflare
End
//-------------------
CommandSet MenSpellBookCommandSet
1 = Command_SpellBookHeal
2 = Command_SpellBookRallyingCall
3 = Command_SpellBookBajulafest
4 = Command_SpellBookTomBombadil
5 = Command_SpellBookHobbitAllies
6 = Command_SpellBookLoneTower
7 = Command_SpellBookArrowVolleyGood
8 = Command_SpellBookCloudBreak
9 = Command_SpellBookRohanAllies
10 = Command_SpellBookDunedainAllies
11 = Command_SpellBookArmyoftheDead
12 = Command_SpellBookEarthquake
End
CommandSet MenSpellStoreCommandSet
1 = Command_PurchaseSpellHeal
2 = Command_PurchaseSpellRallyingCallMP
3 = Command_PurchaseSpellBajulafest
4 = Command_PurchaseSpellLoneTowerMen ; ; Command_PurchaseSpellHobbitAllies
5 = Command_PurchaseSpellArrowVolleyGood
6 = Command_PurchaseSpellTomBombadil
7 = Command_PurchaseSpellHobbitAllies ; ;Command_PurchaseSpellLoneTowerMen
8 = Command_PurchaseSpellRohanAllies ; ;Command_PurchaseSpellDunedainAllies
9 = Command_PurchaseSpellCloudBreak
10 = Command_PurchaseSpellDunedainAllies ; ;Command_PurchaseSpellRohanAllies
11 = Command_PurchaseSpellArmyoftheDead
12 = Command_PurchaseSpellEarthquake
End
System (Ich habs sicher in den richtigen Block geschrieben, also in den Spell-Block):
Behavior = SpecialPowerModule ModuleTag_Bajulafest
SpecialPowerTemplate = SpellBookBajulafest
AttributeModifier = SpellBookBajulafest
AttributeModifierRange = 99999999999999999999999999999
AttributeModifierAffects = INDUSTRY_TYPE_SPELL_OBJECT_FILTER
TriggerFX = FX_DwarvenRiches
UpdateModuleStartsAttack = No
AvailableAtStart = No
RequirementsFilterMPSkirmish = SPELL_BOOK_REQUIREMENTS_FILTER
RequirementsFilterStrategic = SPELL_BOOK_REQUIREMENTS_FILTER_STRATEGIC
End
Attributemodifier:
ModifierList SpellBookBajulafest
Category = SPELL
Modifier = PRODUCTION 125% // Production increased by 300%
Duration = 300000 ; ;This should last forever - GB
ModelCondition = UPGRADE_ECONOMY_BONUS // UPGRADE_ECONOMY_BONUS is used in draw module to fire particle FX
End
Zur attributemodifier hab ich noch eine Frage (Die Codes sond vom DwarvenRiches-Spell übernommen): Ich dachte dass bei den inis die Dauer immer in milisec. angegeben wird, aber 300000 milisekunden reichen doch niemals für immer wie es in den Anmerkungen steht. Wird es da in Sekunden angegeben?
LG
Durin,VdZ
Edit:@Elrond99: Könntest du dein Build-Up Tutorial noch einmal hochladen? Der Link ist nämlich abgelaufen.
-
Also zum GameCrash würd ich mal sagen, dass das wahrscheinlich daran liegt, dass du deinen Bajulafest-Spell einfach in das CommandSet "eingeschoben" hast. Eigentlich sind alle freien Plätze für das Spellbook belegt, du hast jetzt noch einen zusätzlichen notwendig gemacht, den es nicht gibt. Probier mal, einen vorhandenen Spell durch das Bajulafest zu ersetzen, anstatt das Bajulafest einfach reinzuschreiben.
Also angegeben wird alles in Millisekunden, auch im Attributemodifier, da hast du recht. Ich hab jetzt mal in die Beschreibung des Spells geschaut, bei mir steht da
"Rohstoffproduktion des gewählten Gebäudes wird vorübergehend auf 300% erhöht"
Also wenn du es dauerhaft machen willst, musst du einfach eine hohe Zahl da hinschreiben, ich empfehle 999999 oder sowas.
mfg
sanalf 2
-
Kann man für dauerhaft/ohne Zeit nicht auch -1 hinschreiben?
-
Hmmm...kann auch sein, hab ich noch nie probiert. Mit 999999 geht's aber jedenfalls auch.
mfg
sanalf 2
-
Mit 999999 geht's aber jedenfalls auch.
naja also für immer ist das nicht. eher für ca 16min
-
Sorry, hab natürlich die falsche Zahl genommen. Man muss schon einige Neuner nehmen, dann gehts. Also so ab 10 Neunern ungefähr is das wirklich unendlich.
mfg
sanalf 2
-
Dauerhaft ist doch 0 oder nicht?
Ein kleiner Beweis:
ModifierList BasicLevelUpDamage3
Category = LEVEL
Modifier = DAMAGE_MULT 133%
Duration = 0
End
-
Es kommt darauf an, in welchem Zusammenhang es steht. Bei aktiven Fähigkeiten ist die Kategorie egal und es zählt die Duration.
Handelt es sich um passive Effekte bzw. Modifier, kommt s auf die Kategorie und deren Zusammenhang an. Dort wirkt ein dauerhafter Modifier zb. über SPELL mit der Duration 0.
Wie immer gilt die Regel: Learning by Doing. Orientiert euch an Originaleinträgen.
-
Nachdem ich in den letzten Wochen glücklicherweise ohne Probleme modden konnte habe ich wieder ein Problem: Nachdem das Build-Up Tutorial von Elrond anscheinend nicht mehr vorhanden ist und ich sonst nichts darüber gefunden habe, wollte ich wissen wie man animiert-im konkreten Fall Gebäude-Aufbauten und Schadens-Anis.
-
Ein anderes Problem, das zwar nicht direkt mit Coding zu tun hat, aber ich schreibs jetzt trotzdem mal hier rein:
Ich krieg das mit der Asset.dat einfach nicht hin. Ich erstelle einen Button für eine Heldenfähigkeit und packe ihn in das Verzeichnis art\compiledtextures\he. Dann füge ich ihn unter demselben Verzeichnis in die ini ein und erstelle einen Eintrag in der herosui.ini, der lautet
MappedImage HSArtonsGabe
Texture = ArtonsGabe.tga
TextureWidth = 256
TextureHeight = 256
Coords = Left:192 Top:64 Right:256 Bottom:128
Status = NONE
End
Die Maße stimmen mit dem Button überein. Danach kopiere ich die sum2-asset in den sum1 Hauptordner und öffne den Assetbuilder, bei dem ich, das Häkchen bei "Appending to existing asset.dat" gesetzt das .tga file einfüge. Die asset wird unter dem Namen asset2.dat, sie verbraucht auch geringfügig mehr Speicherplatz als die originale, erschaffen und ich kopiere sie in den sum2-ordner und benenne sie in asset.dat um.
Dann starte ich das Spiel, aber der Button ist pink.
Das selbe Problem habe ich bei Skins und Ähnlichem. Liegt es vielleicht daran, dass, wenn ich die Datei in den Assetbuilder ziehe der gesamte Pfad, also nicht nur art\compiledtextures\he\ArtonsGabe.tga , sondern C:\Programme\Electronic Arts\Die Schlacht um Mittelerde II\art\compiledtextures\he\ArtonsGabe.tga aufscheint? Ich habe jedoch keine Möglichkeit gefunden, das zu unterbinden.
Wie auch immer, ich weiß einfach nicht mehr weiter und hoffe auf eure Hilfe.
MfG
Durin, VdZ
PS: Entschuldigung für den Doppelpost, aber ich dachte da seit dem letzten schon mehr als ein Monat vergangen ist, beachtet das Thema sonst Niemand.
-
Die ersten beiden Buchstaben der Textur müssen den selben Namen haben wie der Ordner. Benne einfach deine Textur in heArtonsGabe.tga dann eine neue asset und es müsste gehen
Viel Erfolg
Souls of Black
-
Danke! Endlich funktioniert es. Ich schau gleich ob es bei den Skins auch funktioniert!
-
Leider funktioniert es bei models bei mir nicht. Hier noch einmal alles was ich getan habe:
-Model mit dazugehörigem skin erstellt und exportiert, beim w3d-viewer hat noch alles
super funktioniert.
-Model und skin in die ini eingefügt unter den Namen: art\w3d\fu(Für
Fendlandunit)\fuarton_skn.w3d, bzw. art\compiledtextures\fu\fuarton.tga.
-Asset.dat in den sum-ordner, Asset-Builder gestartet und unter demselben Pfad wie bei der
ini eingefügt und die Asset wieder zurückkopiert.
-Model der Einheit in der ini geändert in fuarton_skn (Für den Skin war kein Eintrag
vorhanden)
-Spiel gestartet
Weder das Model noch der Skin waren im Spiel sichtbar.