13. Mai 2024, 20:03 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: EvilDets Fragenthread  (Gelesen 24445 mal)

EvilDet

  • Bibliothekar Bruchtals
  • **
  • Beiträge: 262
Re:EvilDets Fragenthread
« Antwort #120 am: 29. Jul 2011, 14:30 »
Da hatte ich auch schon dran gedacht, hat aber leider auch nichts geholfen :(
Trotzdem danke für deine Antwort!
EvilDet

Ealendril der Dunkle

  • Gast
Re:EvilDets Fragenthread
« Antwort #121 am: 30. Jul 2011, 09:52 »
Schnapp dir doch einfach komplett Faramirs-Aniset und tausche die Animationen nacheinander aus. Das geht schneller als einen banalen Fehler zu finden.

EvilDet

  • Bibliothekar Bruchtals
  • **
  • Beiträge: 262
Re:EvilDets Fragenthread
« Antwort #122 am: 30. Jul 2011, 12:55 »
Ahh, vielen Dank ea! Jetzt funktioniert es wie gewollt :)
Die Methode sollte ich mir merken :D
MfG
EvilDet

EvilDet

  • Bibliothekar Bruchtals
  • **
  • Beiträge: 262
Re:EvilDets Fragenthread
« Antwort #123 am: 22. Sep 2011, 22:26 »
So, ich melde mich auch mal wieder mit einer Frage, die eigentlich nicht schwer zu lösen sollte, mich jedoch vor Probleme stellt:
Mein Held soll sich bei Aktivierung der Fähigkeit selbst heilen, allerdings auch langsamer werden etc.
Ich habe mich hier am Zwergenbier-Spell orientiert, der Held wird auch geheilt, aber er bekommt keinen Malus.

Held.ini
    Behavior = OCLSpecialPower ModuleTag_Wein
        StartsPaused                = Yes
        SpecialPowerTemplate        = SpecialAbilityDrustanWein
        OCL                            = OCL_DrustanWein
        CreateLocation                = CREATE_AT_LOCATION
    End

OCL-Object:
Object DrustanWeinObject

  ; *** ART Parameters ***
    Draw = W3DScriptedModelDraw ModuleTag_Draw
        DefaultModelConditionState
            Model = None
        End
    End

    ; ***DESIGN parameters ***
    EditorSorting = System
    KindOf = NO_COLLIDE IMMOBILE UNATTACKABLE IGNORE_FOR_VICTORY IGNORE_FOR_EVA_SPEECH_POSITION
   
    ; *** ENGINEERING Parameters ***
    Body = ImmortalBody ModuleTag_01
        MaxHealth = 10000
        InitialHealth = 10000
    End

    Behavior = DeletionUpdate ModuleTag_DeletionUpdate because I can't die
        MinLifetime        = 1000
        MaxLifetime        = 1000
    End
Behavior = PassiveAreaEffectBehavior ModuleTag_SplashOfHealingWater_Ahh
EffectRadius = 10
PingDelay = 0
HealPercentPerSecond = 50% ;3%
AllowFilter = ANY +GondorDrustan ALLIES
NonStackable = Yes
HealFX = FX_SpellHealUnitHealBuff
End

    Behavior = FireWeaponUpdate ModuleTag_Wein
        FireWeaponNugget
            WeaponName = DrustanWeinWeapon   
            FireDelay = 0
            OneShot = Yes
        End
    End
End

Weapon.ini
Weapon DrustanWeinWeapon   
    RadiusDamageAffects        = ALLIES NOT_SIMILAR
    DelayBetweenShots        = 0

    AttributeModifierNugget
        AttributeModifier           = DrustanWeinMalus
        Radius                    = 50000
        DamageFXType         = SWORD_SLASH       
        SpecialObjectFilter  = NONE +GondorDrustan ALLIES
    End
   
End

Attributemodifier.ini
ModifierList DrustanWeinMalus
Category = WEAPON
Modifier = ARMOR -50%
Modifier = SPEED 75%
Modifier = VISION -25%
Duration = 15000
End

Vielen Dank im Voraus!
MfG
EvilDet

Ealendril der Dunkle

  • Gast
Re:EvilDets Fragenthread
« Antwort #124 am: 23. Sep 2011, 13:09 »
Normalerweise sollte das funktionieren, ich persönlich würde es aber über einen anderen Weg machen.
Du gibst deinem Helden einen KindOf, den sonst kein Held hat (z.b. GIMLI).
Jetzt nimmst du Dains MightyRage-Fähigkeit und codest dort eben beim Heal-Update nur den KindOf deines Helden ein (Restliche Einträge im Behaviour kannst du nach belieben anpassen). Zusätzlich codest du eben eine Attributemodifier-Vergabe die sich ebenso nur auf diesen KindOf bezieht.
Als letztes musst du im Button noch darauf achten, das es per One-Klick ausgeführt wird. Dabei musst du eben den Otions-Eintrag anpassen (siehe IvoryTowerVision-Button).
Das funktioniert in jedem Fall und ist deutlich einfacher.

EvilDet

  • Bibliothekar Bruchtals
  • **
  • Beiträge: 262
Re:EvilDets Fragenthread
« Antwort #125 am: 23. Sep 2011, 20:22 »
Ich habe jetzt deine Mehtode angewandt, ea, mein Held wird auch geheilt, aber er bekommt immernoch keinen Debuff. Ich wusste nur nicht, was du mit der "One-Klick-Option" meinst, im Ivory-Tower-Button habe ich keine Option gefunden, die so heißt.

Behavior = SpecialPowerModule ModuleTag_DainMightyRageDummy
SpecialPowerTemplate = SpecialAbilityDrustanWein
StartsPaused = Yes
UpdateModuleStartsAttack = Yes
End

Behavior = ActivateModuleSpecialPower ModuleTag_CloseTheGap
SpecialPowerTemplate = SpecialAbilityDrustanWein
StartAbilityRange = 200
TriggerSpecialPower = ModuleTag_MightyRageHeal CREATE_AT_LOCATION
TriggerSpecialPower = ModuleTag_MightyRageDebuff CREATE_AT_LOCATION
End

Behavior = PlayerHealSpecialPower ModuleTag_MightyRageHeal
SpecialPowerTemplate = SpecialAbilityActivateeDummy
HealAmount = 20.0
HealAsPercent = Yes
HealAffects = GIMLI
HealRadius = DAIN_MIGHTYRAGE_EFFECT_RADIUS
HealFX = FX_SpellHealUnitHealBuff
InitiateSound = DainMightyRage
;TriggerFX = FX_DainMightyRage02
End

Behavior = SpecialPowerModule ModuleTag_MightyRageDebuff
SpecialPowerTemplate = SpecialAbilityActivateeDummy
AttributeModifier = DrustanWeinMalus
AttributeModifierRange = DAIN_MIGHTYRAGE_EFFECT_RADIUS
AttributeModifierAffects = NONE +GIMLI
AntiCategory = LEADERSHIP BUFF
End

Commandbutton:
CommandButton Command_DrustanWein
  Command                     = SPECIAL_POWER
  SpecialPower                = SpecialAbilityDrustanWein
  TextLabel                   = CONTROLBAR:DrustanWein
  ButtonImage                 = HSWein
  CursorName                  = Bombard
  RadiusCursorType            = AthelasRadiusCursor
  InvalidCursorName           = GenericInvalid
  ButtonBorderType            = ACTION
  DescriptLabel               = CONTROLBAR:ToolTipDrustanWein
  InPalantir            = Yes
  AutoAbility            = Yes
  PresetRange            = 100.0
  NeedDamagedTarget        = Yes
 ; UnitSpecificSound           = AragornVoiceAthelas
End

MfG
EvilDet

Ealendril der Dunkle

  • Gast
Re:EvilDets Fragenthread
« Antwort #126 am: 24. Sep 2011, 15:52 »
Mit One-Klick-Option meinte ich: Es benötigt kein doeppeltes Klicken, was bei Radius-Cursorn ja der Fall ist. Indem du den Options-Eintrag im Button entfernst, wird die Fähigkeit sofort ausgeführt, sobald auf den Button geklickt wird (was ja bei dir der Fall ist).

Was den Modifier angeht:
In Theodens GloirousCharge gibt es einen Eintrag: TriggerSelf (oder so ähnlich), den noch einfügen, sowie das hier ändern:
Zitat
      AttributeModifierAffects      = ANY +GIMLI

EvilDet

  • Bibliothekar Bruchtals
  • **
  • Beiträge: 262
Re:EvilDets Fragenthread
« Antwort #127 am: 25. Sep 2011, 15:01 »
Danke für deine Hilfe ea, jetzt funktioniert auch der Debuff.
Und ich habe auch schon wieder eine neue Frage:
Gibt es eine Möglichkeit, dass eine Fähigkeit nur aktiviert werden kann, wenn eine bestimmte Einheit in der Nähe ist?

MfG
EvilDet

thepinking

  • Elronds Berater
  • **
  • Beiträge: 314
  • WotE und FdK-Mod Coder
Re:EvilDets Fragenthread
« Antwort #128 am: 25. Sep 2011, 15:24 »
Ja gibt es:
Du gibst der Einheit die in der Nähe sein muss eine Führerschaft welche nur auf die Einheit welche den Spell wirken soll wirkt. Diese Führerschaft bringt die Einheit in einen ModelCondition (zb USER_1). Das Model bleibt natürlich gleich (muss es aber nicht ;)). Dan schaust du mal nach ob die Einheit schon einen Eintrag bei AILuaEventsList hat. Falls ja öffne die scriptevents.xml und füge dort bei der Eventlist deiner Einheit das hinzu (falls die Einheit noch keinen eintrag hat, dan mach einen neuen, in dem ebenfalls der folgende Code vorhanden ist) :

       <EventHandler EventName="ModelConditionUSER_1" ScriptFunctionName="ObjectGrantUpgradeScript" DebugSingleStep="false"/>
        <EventHandler EventName="ModelConditionNOTUSER_1" ScriptFunctionName="ObjectRemoveUpgradeScript" DebugSingleStep="false"/>

Sollte ModelConditionUSER_1 und ModelConditionNOTUSER_1 in der scriptevents.xml noch nicht im Abschnitt Events definiert sein dan füge folgen Code im Abschnitt Events hinzu:
        <ModelConditionEvent Name="ModelConditionUSER_1">
                 <Conditions>+USER_1</Conditions>
         </ModelConditionEvent>

         <ModelConditionEvent Name="ModelConditionNOTUSER_1">
                 <Conditions>-USER_1</Conditions>
         </ModelConditionEvent>

Dan öffnest du noch die scripts.lua und fügst dort follgende Scripts hinzu (Namen kannst du frei wählen, du musst den ScriptFunctionName in der Scriptevents.xml auch anpassen) :

function ObjectGrantUpgradeScript(self)
    ObjectGrantUpgrade( self, "UpgradeName )
end

function ObjectRemoveUpgradeScript(self)
    ObjectRemoveUpgrade( self, "UpgradeName" )
end

Das Upgrade musst du dan noch in die Helden.ini zu der Fähigkeit schreiben (oder in den Button).

mfg
Pini

Ealendril der Dunkle

  • Gast
Re:EvilDets Fragenthread
« Antwort #129 am: 25. Sep 2011, 17:52 »
Da hat wohl jemand meine Coding-Scripts entdeckt. ;) Das System gibt es nämlich im Original-Zustand in SuM nicht und ermöglicht noch viel mehr als das.
Freut mich jedenfalls, wenn sich jemand die Mühe macht und versucht meine Codes nachzuvollziehen.

Für sein System benötigt man das aber nicht, man kann es weitaus einfacher machen:
Eine Führerschaft, die nur auf dei Einheit wirkt und nichts anderes macht, als einen ModelCondition zu geben, zb. USER_4
Dann im Button der Fähigkeit angeben:
1. DisableOnModelCondition = USER_4 (Wenn die Fähigkeit NICHT in der Nähe des Helden ausführbar sein soll)

oder

2. EnableOnModelCondition = USER_4 (Wenn die Fähigkeit nur ausführbar sein soll, wenn der Held in der Nähe ist.

thepinking

  • Elronds Berater
  • **
  • Beiträge: 314
  • WotE und FdK-Mod Coder
Re:EvilDets Fragenthread
« Antwort #130 am: 25. Sep 2011, 18:05 »
Es tut mir leid das ich deine freude trüben muss:
Ich hab mir zwar das coden mit deinen Codes beigebracht, aber auf dieses System bin ich alleine gekommen.
Trotzdem vielen dank für die Zeilen DisableOnModelCondition und EnableOnModelCondition die kannte ich nämlich noch nicht (eventuell mal überlesen, aber noch nie benützt)

Ealendril der Dunkle

  • Gast
Re:EvilDets Fragenthread
« Antwort #131 am: 25. Sep 2011, 18:07 »
Zitat
          <ModelConditionEvent Name="ModelConditionUSER_1">
                   <Conditions>+USER_1</Conditions>
           </ModelConditionEvent>

           <ModelConditionEvent Name="ModelConditionNOTUSER_1">
                   <Conditions>-USER_1</Conditions>
           </ModelConditionEvent>

Und du verwendest genau die gleichen Formulierungen wie es in Edain der Fall ist?  :P
Aber was solls. ;)
« Letzte Änderung: 21. Okt 2011, 11:07 von Ealendril der Dunkle »

thepinking

  • Elronds Berater
  • **
  • Beiträge: 314
  • WotE und FdK-Mod Coder
Re:EvilDets Fragenthread
« Antwort #132 am: 25. Sep 2011, 18:17 »
Wie gesagt, ich hab mir das coden mit deinen Codes beigebracht, auch die scriptsevents (in der von AdH gibts da ja keine interessanten Zeilen in deiner zum Glück schon ;)) deswegen kann es schon sein das die Bezeichnungen gleich sind zumal sie auch schon übersichtlich und kurz sind ;)

EvilDet

  • Bibliothekar Bruchtals
  • **
  • Beiträge: 262
Re:EvilDets Fragenthread
« Antwort #133 am: 15. Jan 2012, 16:15 »
So, nach längerer Zeit melde ich mich auch mal wieder mit Fragen:
1) Ich will, dass eine bestimmte Fähigkeit nur in der Nähe eines Gebäudes einsetzbar ist. Deshalb dachte ich mir, dass ich einfach einen Attributemodifier code, der eine Modelcondition vergibt, welche wiederum benötigt wird, um den Button drücken zu können (Funktioniert mit Helden ja auch so).
Allerdings wird der Button nur farbig, wenn der Held genau dort steht, wo das Gebäude frisch gebaut werden soll und mit permanentem S-Spam festgehalten wird.
An der Range des Modifiers kann es auch nicht liegen, ich habe Werte von 300 bis 150 ausprobiert, erfolglos.
Also meine Frage, was kann ich tun, um dieses Problem aus der Welt zu schaffen?
Behavior = AttributeModifierAuraUpdate ModuleTag_GiveIgnazius
StartsActive = Yes
BonusName = IgnaziusWerkstatt
RefreshDelay = 2000
Range = 250
ObjectFilter = ANY +GondorIgnazius ALLIES
    End

2) Ich will, dass meine Gebäude auf Schneemaps ihren Schneeskin erhalten, allerdings soll nach einem Upgrade (ala Numenor-Mauerwerk) zu einem neuen Schneeskin gewechselt werden.
Mein Ansatz: Die Modelcondition SNOW ein Upgrade vergeben lassen, das den Skinwechsel auslöst.
Das Problem: Die Gebäude behalten ihren Skin, erst wenn bestimmte Gebäude in einer bestimmten Reihenfolge gebaut werden, wechseln alle Gebäude ihren Skin (Obwohl alle denselben Behaviour haben)
Frage: Woran könnte dies liegen und wie kann ich es beheben?

Danke im Voraus!
EvilDet

EvilDet

  • Bibliothekar Bruchtals
  • **
  • Beiträge: 262
Re:EvilDets Fragenthread
« Antwort #134 am: 3. Feb 2012, 18:49 »
So, sorry für den Doppelpost, das erste Problem habe ich mit MCMs Hilfe lösen können, beim zweiten komme ich aber dennoch nicht weiter. Hier mal die Codes für meinen Ansatz:

Scriptevents.xml
        <ModelConditionEvent Name="ModelConditionSNOW">
                <Conditions>+SNOW</Conditions>
        </ModelConditionEvent>

    <EventList Name="GenericStructureFunctions" Inherit="BaseScriptFunctions">
        <EventHandler EventName="ModelConditionSNOW" ScriptFunctionName="OnStructureSNOW" DebugSingleStep="false"/>
    </EventList>

Scripts.lua
function OnStructureSNOW(self)
    ObjectGrantUpgrade( self, "Upgrade_SnowSkin" )
end

Upgrade.ini
Upgrade Upgrade_SnowSkin
Type = PLAYER
End

Gebäude.ini
    Behavior = SubObjectsUpgrade BlutbaumZiegelSnow
        TriggeredBy        = Upgrade_BlutbaumFaction Upgrade_SnowSkin
RequiresAllTriggers = Yes
        UpgradeTexture    = gbtwrksh.tga 0 gbtwrkshz_snow.tga
        UpgradeTexture    = gbtwrksh_dmg.tga 0 gbtwrkshz_dmg_snow.tga
    End

Danke im Voraus
EvilDet