Modding Union
Modderecke => Tutorials => Thema gestartet von: Ealendril der Dunkle am 21. Feb 2009, 10:04
-
Seid gegrüsst,
ich habe mal wieder ein neues Tutorial geschrieben, welches sich mit meiner "Grausamer Ansturm"-Fähigkeit des Angmar-hexenkönigs beschäftigt. Hierbei werden Horden ausgewählt, wodurch sie für einige Zeit einen sehr guten Bonus bekommen. Nach Ablauf dieser zeit sterben Diese. Vom Prinzip her ist es nach dem Schema SUM nicht möglich, durch mein Tutorial aber schon.
Hinweis: Das Tutorial setzt ein umfangreiches Coding-Wissen voraus.
Download (http://modding-union.com/cf/ems/codingtuts/dl12.php?URL=../../../files/ems/codingtuts/grausamer_ansturm_tutorial.pdf)
Viel Spaß damit
Euer Ea
-
Ich habe mir das mal angeschaut, ich verstehe 1 Sache nur noch nicht (habs mit Filtern nicht so ^^)
a) Wieso wird jede Einheit bei der Weapon und der Specialpower im Filter abgezogen mit einem "-"?
Ansonsten sehr nett geschrieben, also man versteht es ziemlich schnell.
-
Jede weapon usw soll ja nur für einen Einheitentyp gelten, da jeder Einheitentyp seine eigene hat...
Verstehe deine frage grad net ganz Crafty...
-
Danke fürs Feedback Crafty. Also Filter sind eine ziemlich lustige Sache, mit ihnen kann man viele "scheinbare" Dinge erledigen.
Wenn du dir die Specialpower anschaust:
SpecialPower SpecialAbilityGrausamWit chking
Enum = SPECIAL_ARROW_STORM
ReloadTime = 240000
RadiusCursorRadius = 70
Flags = NEEDS_OBJECT_FILTER
InitiateAtLocationSound = EasMachtBlastWeapon (gewünschter Sound eincoden)
ObjectFilter = ANY +INFANTRY +CAVALRY +MONSTER -SHIP -HERO -MACHINE -DOZER -STRUCTURE -AngmarNumElite -AngmarHauptmann -AngmarHauptmannGulzar -AngmarHauptmannKarsh -AngmarHauptmannZaphragor -AngmarNumEliteBanner -AngmarNumEliteBannerKarsh -AngmarNumEliteBannerGulzar -AngmarNumEliteBannerZaphragor ALLIES
End
ANY gibt immer einen bestimmten Bereichsabschnitt an Einheiten-TAGs an. Wenn du ANY im Filter nutzt würde ich immer empfehlen die anderen "großen" TAGs abzuziehen oder hinzurechnen. Je nach ENUM kann sich das anders auswirken, sofern man dies nicht tut. Wenn du ein "-" vor einen TAG schreibst, wird dieser im Filter nicht miteinberechnet. Wenn ein "+" schreibst, wird dieser einberechnet. In meiner Fähigkeit möchte ich die Fähigkeit nur auf einer bestimmten Gruppierung auslösen können. Sobald eine Machine oder Helden etc an dem ausgewählten Platz stehen, wird der Cursor rot und kann nicht aktiviert werden. In meinem Fall sind es noch spezielle Günstlingobjecte (numeliteBanner etc), die ich nicht miteinberechnen wollte. Gibst du den Filter "ALL" an, ist jedes Object, sowohl Gebäude, Held, als auch Einheit, Machine etc betroffen. Hierbei kann du einfach zb schreiben: ALL -HERO -STRUCTURE -MACHINE -SHIP ALLIES
Im Endeffeckt würde der Filter dann gleich funktionieren, aber auf anderem Wege.
Schauen wir uns die weapon an:
Weapon GrausamerAnsturmWeapon
RadiusDamageAffects = ALLIES
;FireFX = FX_GrausamerAnsturmSound
AttributeModifierNugget
AttributeModifier = AngmarWitchkingCursedAtt ack
Radius = 70.0
DamageFXType = ELECTRIC
SpecialObjectFilter = ANY +INFANTRY +CAVALRY +MONSTER -SHIP -HERO -MACHINE -DOZER -STRUCTURE -AngmarNumElite -AngmarHauptmann -AngmarHauptmannGulzar -AngmarHauptmannKarsh -AngmarHauptmannZaphragor -AngmarNumEliteBanner -AngmarNumEliteBannerKarsh -AngmarNumEliteBannerGulzar -AngmarNumEliteBannerZaphragor ALLIES
End
WeaponOCLNugget
WeaponOCLName = OCL_GrausamerAnsturmWeap on
End
End
Hierbei gilt wieder genau das gleiche Prinzip: Ich möchte, dass nur ein bestimmter Einheiten-Typ betroffen wird. Ganz wichtig hierbei ist auch immer, dass du ALLIES im Filter angibst, oder eben im RadiusDamageAffects-Behaviour.
In diesem Weapon-Abschnitt habe ich NONE benutzt, um mir ein wenig Arbeit zu ersparen:
Weapon GrausamerAnsturmAlliesDe stroyer1
IdleAfterFiringDelay = 0
AttackRange = 200
MinimumAttackRange = 0.8
WeaponSpeed = 1002
MinWeaponSpeed = 1003
MaxWeaponSpeed = 1001
ScaleWeaponSpeed = No
RadiusDamageAffects = ALLIES
DelayBetweenShots = 1000
PreAttackDelay = 0
PreAttackType = PER_ATTACK
FiringDuration = 1
DamageNugget
Damage = 99999999999999
Radius = 70.0
DamageType = MAGIC
DamageFXType = SWORD_SLASH
DeathType = NORMAL
DamageSpeed = 700.0
SpecialObjectFilter = NONE +AngmarDarkRanger ALLIES
End
End
Da jeder Ping nur für eine Einheit gelten soll, habe ich ihn per NONE +Einheit definiert.
Noch irgendwas unklar? :) Frag ruhig.
-
Jede weapon usw soll ja nur für einen Einheitentyp gelten, da jeder Einheitentyp seine eigene hat...
Verstehe deine frage grad net ganz Crafty...
Ich habe auch nicht ganz genau hingeschaut. Ich hatte erst nicht verstanden wieso zb. Zaphragor abgezogen wird. Aber das ist ja ein Held, bzw. dachte ich dass dort die abgezogen werden, auf die es später wirken soll, zb. den DarkRanger. Der wird aber nicht abgezogen so wie ich das annahm, hatte also nicht genau hingeschaut ^^
Danke @Ealendril nochmal für die Erklärung ^^