27. Apr 2024, 07:30 Hallo Gast.
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge. Hierbei werden gemäß Datenschutzerklärung Benutzername und Passwort verschlüsselt für die gewählte Dauer in einem Cookie abgelegt.


Select Boards:
 
Language:
 


Autor Thema: "Grausamer Ansturm" Einheit-Lebensbeschränkung durch Zeit  (Gelesen 3412 mal)

Ealendril der Dunkle

  • Gast
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

Viel Spaß damit
Euer Ea
« Letzte Änderung: 22. Feb 2009, 01:28 von Simbyte »

Raider

  • Gast
Re: "Grausamer Ansturm" Einheit-Lebensbeschränkung durch Zeit
« Antwort #1 am: 21. Feb 2009, 11:27 »
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.

Alien aka Infiltrator

  • Held von Helms Klamm
  • ***
  • Beiträge: 1.236
  • Edain was good ;-)
Re: "Grausamer Ansturm" Einheit-Lebensbeschränkung durch Zeit
« Antwort #2 am: 21. Feb 2009, 13:18 »
Jede weapon usw soll ja nur für einen Einheitentyp gelten, da jeder Einheitentyp seine eigene hat...
Verstehe deine frage grad net ganz Crafty...

Ealendril der Dunkle

  • Gast
Re: "Grausamer Ansturm" Einheit-Lebensbeschränkung durch Zeit
« Antwort #3 am: 21. Feb 2009, 13:31 »
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.

Raider

  • Gast
Re: "Grausamer Ansturm" Einheit-Lebensbeschränkung durch Zeit
« Antwort #4 am: 21. Feb 2009, 14:04 »
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 ^^