Modding Union

Modderecke => Allgemeine Modding-Fragen => Thema gestartet von: EvilDet am 6. Jan 2010, 17:09

Titel: EvilDets Fragenthread
Beitrag von: EvilDet am 6. Jan 2010, 17:09
Da ich hier meine Fragen zu Coding, Modelling, Skinning usw. stellen möchte, habe ich in diesem Unterforum den Thread erstellt.

Nun zu meiner ersten Frage:
Wenn ich meine Einheit im Spiel sehe, sieht der Skin immer so aus, als ob er in der Mitte eine Lichtquelle hätte:

http://img85.imageshack.us/img85/3710/game2010010616564605.png

Der Skin ist in wirklichkeit allerdings dunkler:
http://img704.imageshack.us/img704/9955/w3dview2010010617081542.png

Was kann ich tun?

MfG
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Alien aka Infiltrator am 6. Jan 2010, 19:07
erm da haste iwas falsch gemacht beim Model export
Dieses verhalten hängt von den Eigenschaften ab die du deinem Model im "Renegade Material Editor" gegeben hast
Genauer von: Ambient Diffuse Specular Emessive und Shininess
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 6. Jan 2010, 19:19
Ich hab das so gemacht, wie Turin es in seinem Tutorial beschrieben hat, also Specular und Emissive auf weiß stellen und daraufhin diesen Button mit dem blauen Ball drücken.

Wenn das falsch sein sollte: Was soll ich machen, damit die Farben richtig sind?
Titel: Re: EvilDets Fragenthread
Beitrag von: Alien aka Infiltrator am 6. Jan 2010, 19:48
Specular simuliert eine art Spiegelung auf der Oberfläche indem eine Farbe stellenweise aufgetragen wird, in der Dokumentation steht das diese Funktion nicht enthalten ist...


Emissive müsste schwarz sein, da es eine Art leuchten vom Model aus simuliert...

Eigentlich bist du bei den 4 Farbfeldern mit "Schwarz Schwarz Weiß Weiß" gut beraten würde ich behaupten...
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 14. Jan 2010, 21:23
So, ich bins wieder:
Da ich im Moment General Shepherd aus Modern Warfare 2 modelliert und geskinnt habe, aber es für Einheiten mit Pistolen keine Anis gibt (Warum auch? [ugly]), wollte ich nun eigene Animationen machen. Allerdings finde ich auch auf t3a kein Tutorial dafür.
Kann mir jemand bei der Suche helfen?

MfG
EvilDet

Edit:
Oder kann mir jemand passende Animationen aus C&C schicken (ich weiß nicht, ob das illegal ist...)
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 28. Jan 2010, 22:11
Sorry für den Doppelpost, aber ich bräuchte eure Hilfe:
Ich habe ein neues Gebäude erstellt, kann in ihm aber keine Einheiten/Helden ausbilden, denn wenn ich sie anklicke, kommt nur der durchgestrichene rote Kreis-Cursor.

Hier der Code der Einheit:
http://nopaste.info/f52e3ae6e6.html

Hier der CommandButton:
http://nopaste.info/0fe92d68b7.html

Und das CommandSet des Gebäudes:
http://nopaste.info/1a7722d3b3.html

Danke im Voraus

EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Arathorn101 am 28. Jan 2010, 22:51
Hm bin mir zwar nicht sicher, aber mach mal im KindOf das Summoned weg und gib bei Side die Side deiner Faction an :-D Naja ansonsten alles ganz ok. Wenn ich es jetzt richtig verstanden hab kannst du den Balrog nicht anwählen oder ?
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 28. Jan 2010, 22:54
Doch, ich kann den Button klicken, es kommt auch das Klick-Geräusch, aber danach kommt nur der rote Cursor mit dem Invalid-Bild
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 28. Jan 2010, 23:12
Ich sehe weder einen Buildcost, noch einen Buildtime Parameter bei dir. Füge diese also ein.
Zusätzlich ist das hier vollkommen falsch:

Zitat
# CommandSet AngbandCommandSet
#     InitialVisible = 7
#     //Main Menu
#
#     1    = Command_SelectRevivables MordorFortress
#     2    = Command_ConstructBalrog
#     6    = Command_Sell

#     
#     //Hero Menu
#     15    = Command_ConstructLordOfB alrogs
#     16    = Command_RadialBack           
# End

Wenn überhaupt müsste es so ausehen:

# CommandSet AngbandCommandSet
#     InitialVisible = 3
#     //Main Menu
#
#     1    = Command_SelectRevivables MordorFortress
#     2    = Command_ConstructBalrog
#     3    = Command_Sell

#     
#     //Hero Menu
#     4    = Command_ConstructLordOfB alrogs
#     5    = Command_RadialBack           
# End


Poste bitte noch den Button hierzu:
Command_SelectRevivables MordorFortress

Das hier "InitialVisible = 3" gibt an:
So viele Buttons werden im Hauptmenü Radial angezeigt.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 29. Jan 2010, 13:35
Ok, hier:

CommandButton Command_SelectRevivablesMordorFortress
Command                 = PUSH_VISIBLE_COMMAND_RANGE
TextLabel               = CONTROLBAR:SelectRevivablesMordorFortress
ButtonImage             = UCCommon_EvilHeroes
ButtonBorderType        = SYSTEM
DescriptLabel           = CONTROLBAR:ToolTipCommandSelectRevivablesMordorFortress
Radial                  = Yes
CommandRangeStart = 14 //Starts its counting at 0, so command button 8 is 7
CommandRangeCount = 11
End
Titel: Re: EvilDets Fragenthread
Beitrag von: Arathorn101 am 29. Jan 2010, 15:34
   CommandRangeStart      = 4
   CommandRangeCount      = 2
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 29. Jan 2010, 16:09
Hab jetzt mal Alles gemacht, was ihr gesagt habt, also
   CommandRangeStart      = 4
   CommandRangeCount      = 2

und
Ich sehe weder einen Buildcost, noch einen Buildtime Parameter bei dir. Füge diese also ein.
Wenn überhaupt müsste es so ausehen:

# CommandSet AngbandCommandSet
#     InitialVisible = 3
#     //Main Menu
#
#     1    = Command_SelectRevivables MordorFortress
#     2    = Command_ConstructBalrog
#     3    = Command_Sell

#     
#     //Hero Menu
#     4    = Command_ConstructLordOfB alrogs
#     5    = Command_RadialBack           
# End
aber es ist immer noch das gleiche Problem: Der Button lässt sich anklicken, aber keine Einheit erscheint (es erscheint auch kein productionCount).

MfG
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Alien aka Infiltrator am 29. Jan 2010, 17:22
   CommandRangeStart      = 4
   CommandRangeCount      = 2
Könnt mich ja täuschen, aber wenn du das Untermenü aus Button 4 und 5 zusammengesetz haben willst, dann muss es eigtl heißen:
CommandRangeStart = 3
CommandRangeCount = 2


Man lese meine Tutorial, dort stehts eigtl auch das man RangeStart immer 1 niedriger schreiben muss als die Nr des Buttons der gemeint ist. Das Tut beschreibt eigtl genau das was du gefragt hast
(Tutorail findet ihr auf MU im Coding bereich als "Untermenüs")
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 29. Jan 2010, 17:24
Hab die Anmerkung hinter "  CommandRangeStart      = 4" gelesen, ist also auf "3" gesetzt, hab nur vergessen, es im Beitrag zu ändern  ;).

MfG
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Ulmo am 29. Jan 2010, 17:26
Was daran liegt, dass Informatiker immer bei 0 anfangen zu zählen

/schlaukacken
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 29. Jan 2010, 17:49
Du hast immer noch keinen Buildtime und Buildcost Eintrag eingefügt. ;)
Wenn ja, stimmt etwas an deinem Gebäude nicht, sprich dessen ini weist einen Fehler auf.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 29. Jan 2010, 17:57
Doch hab ich, hab nur meinen Beitrag nich editiert ;)
    Side = Mordor
    EditorSorting = UNIT
    ThreatLevel = BALROG_THREAT_LEVEL
    ThingClass = CHARACTER_UNIT
    BuildCost            = 4000       
    BuildTime            = 30 
    CrusherLevel   = 4  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
    CrushWeapon = BalrogCrush 
    MaxSimultaneousOfType        = 1   
    TransportSlotCount = TRANSPORTSLOTCOUNT_MONSTER

Und hier die .ini des Gebäudes:
http://nopaste.info/a6dc26cd29.html
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 29. Jan 2010, 18:00
Warum hast du die Kosten und Ausbildungszeit in der Gebäude.ini ausgeklammert?
Das hier erstmal rauslöschen, es sei denn es ist wirklich ein Buildplot-ExpansionGebäude einer Festung:  CampnessValue = CAMPNESS_FORTRESS_EXPANS ION

Als nächstes fehlt dir der Productionbehaviour. Das ist mir jetzt auf den ersten Blick aufgefallen. Am besten kopierst du eine komplett-funktionierende ini zb. AngmarKaserne und änderst diese dann deinen Wünschen entsprechend.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 29. Jan 2010, 18:20
Gut, jetzt funktioniert alles! Danke!
MfG
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 31. Jan 2010, 12:54
Ich habe eine neue Frage:
Diese bezieht sich auf das leveln von Helden:
Ich habe einen Helden erstellt, einen Experiencelevels.ini - Eintrag für ihn erstellt, er erscheint auf Stufe 1, in der Beschreibung inGame steht "Stufe 1/Maximale Stufe 10", aber er besitzt keine Level-Fortschritts-Anzeige im Palantir. Er kann also nicht leveln.

Code der Einheit:
http://nopaste.info/bab45405d3.html

Experiencelevels.ini - Eintrag:
http://nopaste.info/9ff2df3d93.html

Danke im Voraus
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 31. Jan 2010, 12:56
Das steht in deiner Unit.ini:

Zitat
IsTrainable = No

Folglich rauslöschen.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 31. Jan 2010, 13:34
Da hätte ichh auch selbst draufkommen können :D. Trotzdem Danke!
MfG
EvildDet
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 1. Feb 2010, 13:16
Eine weitere Frage von mir:
Ich habe eine FX gemacht, die dem Wort der Macht ähnlich ist:
http://www.youtube.com/watch?v=cOTvLQlF6iw

Doch wie kann ich machen, dass die Einheiten erst am Ende der FX sterben und nicht direkt, wenn der Spell ausgelöst wird?

Code der Weapon:

Weapon MorgothJähesFeuer
    IdleAfterFiringDelay = 0
    AttackRange = GANDALF_WORD_OF_POWER_RANGE
    MinimumAttackRange = 0.8
    WeaponSpeed = 10         ; dist/sec
    MinWeaponSpeed = 10
    MaxWeaponSpeed = 10      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
    ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
    RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
    DelayBetweenShots = 0               ; time between shots, msec
    PreAttackDelay        = 0
    PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
    PreAttackFX           = FX_MorgothPreAttackBlastReal
    FireFX                = FX_JähesFeuer ;FX_MorgothBlast
    FiringDuration      = 0
    DamageNugget                        ; A basic Nugget that just does damage
        Damage            = 12000
        Radius            = 500.0
        DamageType        = FLAME
        DamageFXType    = FLAME
        DeathType        = BURNED
        DamageSpeed        = 10.0 ; must match the ShockWaveSpeed below
    End

    ; Magic damage.
    DamageNugget                                ; A basic Nugget that just does damage
        Damage            = 12000
        Radius            = 500.0
        DamageArc        = 360
        DelayTime        = 0
        DamageType        = MAGIC
        DamageFXType        = FLAME
        DeathType        = BURNED
        DamageScalar          = 2000% NONE +HERO
    End
;    MetaImpactNugget                    ; A Nugget that throws things back with force
;        HeroResist            = .75
;        ShockWaveAmount   = 50.0
;        ShockWaveRadius   = 250.0
;        ShockWaveTaperOff = 1.0
;        ShockWaveZMult    = 1.000
;        ShockWaveSpeed      = 700.0
;    End
End
Titel: Re: EvilDets Fragenthread
Beitrag von: Alien aka Infiltrator am 1. Feb 2010, 18:16
Das Zauberwort heißt DelayTime
Kannst du zu den meisten Nuggets dazuschreiben und verzögert deren effekt ;-)
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 1. Feb 2010, 21:48
Perfekt, jetzt funktioniert es!
Danke
MfG EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 11. Feb 2010, 21:32
Eine neue Frage:
Wie kann ich den Spell "Flut" einem Helden geben?
Also in welchen inis muss ich etwas verändern?

MfG
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 12. Feb 2010, 11:35
Arwens Fähigkeit kopieren und in der Weaponm den OCL des Spell-book Floods verwenden.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 12. Feb 2010, 18:34
So, das mit der Flut hat funktioniert.

Aber jetzt stehe ich vor einem neuen Problem:
Ich habe meinem Helden die "Weitsicht"-Fähigkeit zugewiesen, aber der Button bleibt grau, auch wenn der Held den benötigten Level erreicht hat:

ini-Abschnitt des Helden:
;-------------------------Allwissenheit------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_FarsightUnpause
SpecialPowerTemplate = SpecialAbilityElrondFarsight
TriggeredBy = Upgrade_ManweAllwissenheit
End
Behavior = OCLSpecialPower ModuleTag_FarsightOCL
StartsPaused = Yes
SpecialPowerTemplate = SpecialAbilityManweAllwissenheit
OCL = OCL_SpecialPowerFarSeeing
CreateLocation = CREATE_AT_LOCATION
End

experiencelevels.ini
;------------------ Manwe ------------------------
ExperienceLevel GondorManweLevel3
TargetNames = GondorManwe
RequiredExperience = Glorfindel_LVL3_EXP_NEEDED
ExperienceAward = Glorfindel_LVL3_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Rank = 3
AttributeModifiers = HeroLevelUpDamage2
Upgrades = Upgrade_ManweAllwissenheit
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40
MaxRadius = 200
MaxSelectedUnits = 40
End
End

Upgrade.ini
Upgrade Upgrade_ManweAllwissenheit
  Type              = OBJECT
End

Commandbutton.ini
CommandButton Command_ManweAllwissenheit
Command = SPECIAL_POWER
SpecialPower = SpecialAbilityManweAllwissenheit
TextLabel = CONTROLBAR:ManweAllwissenheit
DescriptLabel = CONTROLBAR:ToolTipManweAllwissenheit
ButtonImage = HSElrondFarSight
ButtonBorderType = ACTION
InPalantir = Yes
End

Specialpower.ini
;----------------------------------------------------------------------------
SpecialPower SpecialAbilityManweAllwissenheit
Enum = SPECIAL_SPELL_BOOK_PALANTIR_VISION
ReloadTime = 0
RadiusCursorRadius = 999999
InitiateAtLocationSound = Farsight
End

Commandset.ini
CommandSet ManweCommandSet
1 = Command_ToggleStance
2 = Command_ManweFlut
3 = Command_ManweAllwissenheit
12 = Command_CaptureBuilding
13 = Command_AttackMove
14 = Command_Stop
16  = Command_SetStanceBattle
17  = Command_SetStanceAggressive
18  = Command_SetStanceHoldGround
End
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 12. Feb 2010, 19:28
Ich helfe den Usern hier nur unter der Voraussetzung, dass sich bei mir bedankt wird. Ich denke das ist eine Sache der Höflichkeit und durchaus eine gerechtfertigte Forderung, wenn man bedenkt, wie vielen ich hier täglich mit Antworten zur Seite stehe.


Zitat
   ;-------------------------Allwissenheit------------------
   Behavior = UnpauseSpecialPowerUpgra de ModuleTag_FarsightUnpaus e
      SpecialPowerTemplate   = SpecialAbilityElrondFars ight
      TriggeredBy            = Upgrade_ManweAllwissenhe it
   End
   Behavior = OCLSpecialPower ModuleTag_FarsightOCL
      StartsPaused         = Yes
      SpecialPowerTemplate   = SpecialAbilityManweAllwi ssenheit
      OCL                  = OCL_SpecialPowerFarSeein g
      CreateLocation         = CREATE_AT_LOCATION
   End


      SpecialPowerTemplate   = SpecialAbilityElrondFars ight
      SpecialPowerTemplate   = SpecialAbilityManweAllwi ssenheit


Fällt dir was auf? Du hast zwei verschiedene Specialpowers angegeben. Schreib es so:

Zitat
   ;-------------------------Allwissenheit------------------
   Behavior = UnpauseSpecialPowerUpgra de ModuleTag_FarsightUnpaus e
      SpecialPowerTemplate   = SpecialAbilityManweAllwi ssenheit
      TriggeredBy            = Upgrade_ManweAllwissenhe it
   End
   Behavior = OCLSpecialPower ModuleTag_FarsightOCL
      StartsPaused         = Yes
      SpecialPowerTemplate   = SpecialAbilityManweAllwi ssenheit
      OCL                  = OCL_SpecialPowerFarSeein g
      CreateLocation         = CREATE_AT_LOCATION
   End
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 12. Feb 2010, 20:05
Oh, sorry, hab ich vergessen. Dann danke ich dir jetzt hier gleich doppelt, es funktioniert.
Aber kannst du mir evtl. noch sagen, wie ich jetzt einstelle, dass die geamte Map aufgedeckt wird, also so wie die Allwissenheitsfähigkeit bei Edain (Imladris)?
Danke im voraus

EvilDet

Edit: Ich hatte einen Geistesblitz, hab einfach das OCL vom Elfenbeinturm kopiert und jetzt funktioniert die Fähigkeit ;)
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 14. Feb 2010, 16:03
Sorry für den Doppelpost, aber ich hab mal wieder eine Frage:
Wie kann ich zwei Fähigkeiten kombinieren, also z.B einen Wirbelsturm erstellen, bei dem zugleich auch noch die Eisregen-Fähigkeit in Kraft tritt?

Danke schonmal im voraus

EvilDet

Edit:
Anscheinend weiß niemand, wie das geht
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 20. Feb 2010, 11:03
Mit ein wenig selbst überlegen, schafft man das schon. ;)
Schnapp dir Dains MightyRage Fähigkeit und schaue dir diese genauer an.
Dort kannst du ModuleTags miteinander veknüpfen und somit OCLs oder Wetterspells zusammenmischen.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 21. Feb 2010, 18:58
Danke Ea, jetzt funktioniert es alles. Damit wäre dieser Held abgeschlossen.
Allerdings habe ich wieder einige Fragen parat, an denen ich schon Stunden verzweifle:

1.Ich habe meinem Helden Kankras Tunnelbau-Fähigkeit gegeben, doch ich kann den Helden nicht, wie eigentlich vorgesehen, irgendwo auf der Map, sondern nur im sichtbaren Bereich erscheinen lassen.

Behaviour:
   Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TunnelEnabler
        SpecialPowerTemplate        = SpecialAbilityTulkasRun
        TriggeredBy                = Upgrade_TulkasRun
    End

    Behavior = SpecialPowerModule ModuleTag_TeleportStarter                      
        SpecialPowerTemplate        = SpecialAbilityTulkasRun
        UpdateModuleStartsAttack    = Yes
        StartsPaused            = Yes
        SetModelCondition        = ModelConditionState:EMOTION_CELEBRATING
        SetModelConditionTime    = 3.6
    End

    Behavior = TeleportSpecialAbilityUpdate ModuleTag_TeleportUpdate  
        SpecialPowerTemplate        = SpecialAbilityTulkasRun

        UnpackTime                    = 1800
        PackTime                    = 1300
        UnpackingVariation            = 3

        ApproachRequiresLOS            = No
        BusyForDuration                = 1800
        MaxDistance                    = 9999999999
        DestinationWeaponName        = TulkasRun
    End
Specialpower.ini
SpecialPower SpecialAbilityTulkasRun
    Enum             =    SPECIAL_BALROG_WINGS
    ReloadTime         =    0
    InitiateAtLocationSound = CaH_Invulnerability
End

2. Ich wollte, dass mein Held den Gegner wegschleudert, also so wie Sharkus Menschenfresserfähigkeit, allerdings macht die Zieleinheit nur einen Salto auf der Stelle und kämpft dann ganz normal weiter. Die ihm zugewiesene Animation macht er auch nicht.

Behaviour:
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_ManEaterEnabler
        SpecialPowerTemplate        = SpecialAbilityTulkasGrab
        TriggeredBy                    = Upgrade_TulkasRinger
    End

    Behavior = SpecialPowerModule ModuleTag_SpecialPowerModuleGrabStarter
        SpecialPowerTemplate        = SpecialAbilityTulkasGrab
        UpdateModuleStartsAttack    = Yes
        StartsPaused                = Yes
        InitiateSound                = SharkuManeaterStartMS
    End
    
    Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_WeaponFireSpecialAbilityUpdateGrab
        SpecialPowerTemplate        = SpecialAbilityTulkasGrab
        SkipContinue                = Yes
        UnpackTime                    = 933                        ; Frame 28/99
;        PackTime                    = 2367                        ; Remaining 71/99 frames
        
        StartAbilityRange            = 1.0
        
        SpecialWeapon                = TulkasRinger
        ChainedButton                = Command_SpecialAbilityTulkasRingerFlingPassenger
        CustomAnimAndDuration        = AnimState:SPECIAL_WEAPON_ONE AnimTime:300

        TriggerAttributeModifier    = SharkuManEater
        AttributeModifierDuration    = 20000
        TriggerSound                = SharkuManEaterEatingMS
        BusyForDuration                = 2000
    End

    Behavior = PlayerHealSpecialPower ModuleTag_SpecialPowerModuleFlingPassengerStarter
        SpecialPowerTemplate        = SpecialAbilityTulkasDrop
        UpdateModuleStartsAttack    = Yes
        StartsPaused                = No
        HealAmount                    = 0.0
        HealAsPercent                = Yes
        HealAffects                    = HERO
        HealRadius                    = 0.0
    End

    Behavior = FlingPassengerSpecialAbilityUpdate ModuleTag_FlingPassengerSpecialAbilityUpdate
        SpecialPowerTemplate            = SpecialAbilityTulkasrDrop
        UnpackTime                        = 1250
        FlingPassengerVelocity            = X:0 Y:0 Z:0
        FlingPassengerLandingWarhead    = TulkasRingerWarhead
    End

Specialpower.ini
SpecialPower SpecialAbilityTulkasGrab
    Enum        = SPECIAL_AT_VISIBLE_OBJECT
    ObjectFilter    = ALL ENEMIES -STRUCTURE
    ReloadTime    = 0
End
;------------------------------------------------------------------------------
SpecialPower SpecialAbilityTulkasDrop
    Enum                = SPECIAL_GENERAL_TARGETLESS
    ReloadTime                       = 0
End

Danke im Voraus
MfG
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 25. Feb 2010, 20:49
Sorry für den Doppelpost, aber es sind 3 Fragen aufgekommen, die (denke ich) ziemlich einfach zu beantworten sein müssten. Habe schon einige Sachen ausprobiert, bei der letzten Frage viele inis durchforstet und komme einfach zu keinem Ergebnis. Wäre nett, wenn ihr mir helfen könnt.

1. Wie weist man einer Fähigkeit eine Animation zu?

2. Wie mache ich diese blaue Aura um die Zwergen-Helden weg?

3.In welcher ini findet man das Object "TheDroppedRing"?

Danke im Voraus
EvilDet

P.S.:
Ich weiß, es gibt einen Edit-Button, doch dann merkt ja (glaube ich) niemand, dass ich eine neue Frage habe (stimmt doch, oder?)
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 26. Feb 2010, 10:35

1. Wie weist man einer Fähigkeit eine Animation zu?

2. Wie mache ich diese blaue Aura um die Zwergen-Helden weg?

3.In welcher ini findet man das Object "TheDroppedRing"?


1. In den behaviourModulen der Fähigkeiten stehen verschiedene Dinge, die auf Animationen hinweisen. WhichSpecialWeapon = 1   würde z.b. auf die Animation:
Animation = SPECIAL_WEAPON_ONE  hinweisen.
UnpackVariation = 1
Hinweis auf: Animation= UNPACKING SPECIAL_POWER_1 und PACKING SPECIAL_POWER_1, sowie SPECIAL_POWER_1

Einfach ein wenig ausprobieren.

2. Das ist ein extra draw. Suche einmal nach "icon" in deiner ini und lösche den gesamten draw davon.

3. data/ini/crate.ini
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 28. Mär 2010, 17:59
Dankeschön Ea!

Neue Frage, diesmal nicht zum Coding, sondern zum W3D-Viewer:
Wenn ich den W3D-Viewer aus dem BFME-MOD-SDK starte, erscheint nur das "Object Control"-Fenster.

Deinstallieren und neu installieren hat nichts geholfen...

Danke im Voraus
Evil Det
Titel: Re: EvilDets Fragenthread
Beitrag von: Arasan [EX-Lorfon] am 28. Mär 2010, 18:02
Ich glaube das ist der falsche Viewer.
In Turins Tut ist eine Linkliste.
Downloade dir diesen Viewer.
Titel: Re: EvilDets Fragenthread
Beitrag von: Anoverion am 28. Mär 2010, 18:44
Der Link in Turins Tutorial bezieht sich auf das Mod SDK...

Manchmal wird der w3d Viewer allerdings nur minimiert angezeigt.
Versuche mal Rechtsklick auf die Schaltfläche in der Taskbar und dann
Maximieren.

Ich hoffe, ich konnte helfen.
Viele Grüße Anoverion
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 28. Mär 2010, 20:30
Ahh, danke, ich musste es per Task-Manager maximieren, bei Win7 geht das ja nicht mehr mit Rechtsklick...
Jetzt funktioniert es wieder

EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 10. Aug 2010, 11:43
Sorry für den Doppelpost, aber ich habe ein großes Problem:
Woran kann es liegen, dass die Kommandopunkte beim Bau eines Helden verschwinden?

Danke im voraus
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 10. Aug 2010, 16:56
Ein Weapon-Firing Behaviour in der ini des Helden, welcher Rohstoffgebäude betrifft und somit deren Produktion steigert. Rohstoffsteigerung dürfen zwingerndermaßen nur über den Spellbook-Attributebehaviour gelöst werden, ansonsten kommt es immer zu diesem Fehler.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 10. Aug 2010, 17:10
Danke für die Antwort ea, also tritt dieser Fehler auf, wenn z.B. Ein Gehöft vom Führerschaftsbonus des Helden betroffen ist?
Danke im voraus
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 10. Aug 2010, 17:13
In der Tat. ;)
Titel: Re: EvilDets Fragenthread
Beitrag von: Zwerg Gimli am 10. Aug 2010, 17:14
Danke für die Antwort ea, also tritt dieser Fehler auf, wenn z.B. Ein Gehöft vom Führerschaftsbonus des Helden betroffen ist?
Danke im voraus
EvilDet

Ea hat geschrieben das es Nur vom Spellbock aus geht also wird es wohl stimmen :)

Also Jup auch dann

Gimli
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 10. Aug 2010, 17:22
Nein, ich habe geschrieben, dass nur dieser Behaviour aus dem Spellbook verwendbar ist (Industry), alle anderen Formen, sei es eine Führerschaft oder eine passive Weapon, verursachen diesen Fehler.
Falls du also eine Rohstoffsteigerungsfähig keit suchst, dann schnapp dir meine Curomo Fähigkeit in Sarumans.ini, die tadelos funktioniert.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 10. Aug 2010, 21:40
Danke für deine Hilfe ea, jetzt läuft alles tadellos.
Titel: Re: EvilDets Fragenthread
Beitrag von: EvilDet am 15. Aug 2010, 17:37
Tut mir leid für den Doppelpost, aber ich quäle mich jetzt schon 2 Stunden mit einer neuen Fragestellung:
Ich habe zwei Fähigkeiten für eine Horde gemacht und mich dabei an den Elitezwergen aus dem Erweiterungspack orientiert (von den Codes her). Ich habe die Behaviours sowohl in die Elvenhordes.ini als auch in die Magier.ini geschrieben, bei den Commandbuttons OK_FOR_MULTI_SELECT und OK_FOR_MULTI_EXECUTE hinzugefügt und Commandsets für die Horde und die Einheit selbst angelegt. Jedoch funktionieren die Fähigkeiten noch immer nicht.
Meine Frage lautet also: Wie schaffe ich es, dass diese Fähigkeiten funktionieren?

Hier die Codes:
Magier.ini
//--------------------------------------------------------------------------
// ALBENSTERN ÖFFNEN //
//--------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_StoreObjectsForLevel2TeleportEnabler
SpecialPowerTemplate = SpecialAbilityMagierAlbensternOpen
End
Behavior = SpecialPowerModule ModuleTag_StoreObjectsForLevel2Teleport
SpecialPowerTemplate = SpecialAbilityMagierAlbensternOpen
StartsPaused = Yes
UpdateModuleStartsAttack = Yes
End
Behavior = StoreObjectsSpecialPower ModuleTag_StoreObjectsForLevel2TeleportUpdate
SpecialPowerTemplate    = SpecialAbilityMagierAlbensternOpen
StartAbilityRange    = 1000000.0 // i.e. pretty large
ApproachRequiresLOS    = No    // can do this without seeing the target units.
Radius    = 100    // the radius that will capture units
UnpackTime    = 0
PreparationTime    = 1
FreezeAfterTriggerDuration = 0    // Zero!
ChainedButton    = "Command_SpecialAbilityMagierAlbensternTeleport" ;TeleportStoredList
//TriggerFX    = FX_CAHTeleport
End   

//--------------------------------------------------------------------------
// EINHEITEN DURCH DEN STERN SCHICKEN
//--------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TeleportStoredObjectsEnabler
SpecialPowerTemplate = SpecialAbilityMagierAlbensternTeleport
End
Behavior = SpecialPowerModule ModuleTag_TeleportStoredObjects
SpecialPowerTemplate = SpecialAbilityMagierAlbensternTeleport
StartsPaused = Yes
UpdateModuleStartsAttack = Yes
End
Behavior = TeleportToCasterSpecialPower ModuleTag_TeleportStoredObjectsUpdate
SpecialPowerTemplate    = SpecialAbilityMagierAlbensternTeleport
UnpackingVariation    = 1
StartAbilityRange    = 1000000.0 // i.e. pretty large
Radius    = 100    // the radius that will capture units
ApproachRequiresLOS    = No    // can do this without seeing the target units.
TargetFX    = FX_CAHBlink
TriggerFX    = FX_CAHTeleport
MinDestinationRadius    = 10    // the inner radius of the ring where units will teleport to
MaxDestinationRadius    = 100    // the outer radius of the ring where units will teleport to
UnpackTime    = 2000
PreparationTime    = 1
FreezeAfterTriggerDuration = 2500    // Hold AI for this long after we fire.
End

;Heilen---------------------------------------------------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_RestorationUnpause
SpecialPowerTemplate = SpecialAbilityMagierHeal ;ElrondRestoration
;TriggeredBy = Upgrade_ElrondRestoration
End
Behavior = SpecialPowerTimerRefreshSpecialPower ModuleTag_RestorationRefresh
SpecialPowerTemplate = SpecialAbilityMagierHeal
StartsPaused = Yes
UpdateModuleStartsAttack = No
AffectAllies = Yes
AttributeModifierRange = 150
AttributeModifierAffects = ALL -ElvenMagier ALLIES
End
  Behavior = PlayerHealSpecialPower ModuleTag_RestorationHeal
SpecialPowerTemplate = SpecialAbilityMagierHealHeal
HealAffects = INFANTRY CAVALRY MONSTER
HealAmount = 0.2 ; percent of max health
HealRadius = 150
HealFX = FX_ElrondHealSpecialPower
End

Elvenhordes.ini
//--------------------------------------------------------------------------
// ALBENSTERN ÖFFNEN //
//--------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_StoreObjectsForLevel2TeleportEnabler
SpecialPowerTemplate = SpecialAbilityMagierAlbensternOpen
End
Behavior = SpecialPowerModule ModuleTag_StoreObjectsForLevel2Teleport
SpecialPowerTemplate = SpecialAbilityMagierAlbensternOpen
StartsPaused = Yes
UpdateModuleStartsAttack = Yes
End
Behavior = StoreObjectsSpecialPower ModuleTag_StoreObjectsForLevel2TeleportUpdate
SpecialPowerTemplate    = SpecialAbilityMagierAlbensternOpen
StartAbilityRange    = 1000000.0 // i.e. pretty large
ApproachRequiresLOS    = No    // can do this without seeing the target units.
Radius    = 100    // the radius that will capture units
UnpackTime    = 0
PreparationTime    = 1
FreezeAfterTriggerDuration = 0    // Zero!
ChainedButton    = "Command_SpecialAbilityMagierAlbensternTeleport"
//TriggerFX    = FX_CAHTeleport
End   

//--------------------------------------------------------------------------
// EINHEITEN DURCH DEN STERN SCHICKEN
//--------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TeleportStoredObjectsEnabler
SpecialPowerTemplate = SpecialAbilityMagierAlbensternTeleport
End
Behavior = SpecialPowerModule ModuleTag_TeleportStoredObjects
SpecialPowerTemplate = SpecialAbilityMagierAlbensternTeleport
StartsPaused = Yes
UpdateModuleStartsAttack = Yes
End
Behavior = TeleportToCasterSpecialPower ModuleTag_TeleportStoredObjectsUpdate
SpecialPowerTemplate    = SpecialAbilityMagierAlbensternTeleport
UnpackingVariation    = 1
StartAbilityRange    = 1000000.0 // i.e. pretty large
Radius    = 100    // the radius that will capture units
ApproachRequiresLOS    = No    // can do this without seeing the target units.
TargetFX    = FX_CAHBlink
TriggerFX    = FX_CAHTeleport
MinDestinationRadius    = 10    // the inner radius of the ring where units will teleport to
MaxDestinationRadius    = 100    // the outer radius of the ring where units will teleport to
UnpackTime    = 2000
PreparationTime    = 1
FreezeAfterTriggerDuration = 2500    // Hold AI for this long after we fire.
End

;Heilen---------------------------------------------------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_RestorationUnpause
SpecialPowerTemplate = SpecialAbilityMagierHeal
End
Behavior = SpecialPowerTimerRefreshSpecialPower ModuleTag_RestorationRefresh
SpecialPowerTemplate = SpecialAbilityMagierHeal
StartsPaused = Yes
UpdateModuleStartsAttack = No
AffectAllies = Yes
AttributeModifierRange = 150
AttributeModifierAffects = ALL -ElvenMagier ALLIES
End
  Behavior = PlayerHealSpecialPower ModuleTag_RestorationHeal
SpecialPowerTemplate = SpecialAbilityMagierHealHeal
HealAffects = INFANTRY CAVALRY MONSTER
HealAmount = 0.2 ; percent of max health
HealRadius = 150
HealFX = FX_ElrondHealSpecialPower
End

Specialpower.ini
;------------------------------------------------------------------------------
SpecialPower SpecialAbilityMagierAlbensternOpen
Enum   = SPECIAL_STORE_LIST_1
RadiusCursorRadius   = 100.0
ReloadTime   = 90000    // Uses chained reload time.
ObjectFilter   = ANY +INFANTRY +CAVALRY ALLIES
InitiateSound   = CaH_TeleportPart1
End

;------------------------------------------------------------------------------
SpecialPower SpecialAbilityMagierAlbensternTeleport
Enum    = SPECIAL_TELEPORT_LIST_TO_POSITION
RadiusCursorRadius = 100.0
ReloadTime    = 90000
End

;----------------------------------------------------------------------------
SpecialPower SpecialAbilityMagierHeal
Enum = SPECIAL_GENERAL_TARGETLESS
RadiusCursorRadius = 150
ReloadTime = 120000
End

;----------------------------------------------------------------------------
SpecialPower SpecialAbilityMagierHealHeal
Enum = SPECIAL_GENERAL_TARGETLESS_TWO
RadiusCursorRadius = 150
ReloadTime = 120000
End

Commandbutton.ini
CommandButton Command_SpecialAbilityMagierHealHeal
    Command            = SPECIAL_POWER
    SpecialPower        = SpecialAbilityMagierHealHeal
End

CommandButton Command_SpecialAbilityMagierHeal
    Command            = SPECIAL_POWER
    SpecialPower        = SpecialAbilityMagierHeal
    TextLabel        = CONTROLBAR:MagierHeal
    DescriptLabel        = CONTROLBAR:ToolTipMagierHeal
    ButtonImage        = SBGood_Heal
    Options            = NEED_TARGET_POS OK_FOR_MULTI_SELECT OK_FOR_MULTI_EXECUTE
    ButtonBorderType    = ACTION
    RadiusCursorType    = HealRadiusCursor
    InPalantir        = Yes
    CommandTrigger        = Command_SpecialAbilityMagierHealHeal
End

CommandButton Command_SpecialAbilityMagierAlbensternOpen
    Command             = SPECIAL_POWER
    SpecialPower     = SpecialAbilityMagierAlbensternOpen
    Options             = NEED_TARGET_POS OK_FOR_MULTI_SELECT CONTEXTMODE_COMMAND OK_FOR_MULTI_EXECUTE
    TextLabel         = CONTROLBAR:MagierAlbenstern
    ButtonImage         = HSKingDainSummonRoyalGuard
    ButtonBorderType = ACTION
    DescriptLabel     = CONTROLBAR:ToolTipMagierAlbenstern
    InPalantir         = Yes
    RadiusCursorType = DominateRadiusCursor
End

CommandButton Command_SpecialAbilityMagierAlbensternTeleport
    Command             = SPECIAL_POWER
    SpecialPower     = SpecialAbilityMagierAlbensternTeleport
    Options             = NEED_TARGET_POS OK_FOR_MULTI_SELECT CONTEXTMODE_COMMAND OK_FOR_MULTI_EXECUTE
    InPalantir         = No
    RadiusCursorType = EnshroudingMistRadiusCursor    // should be different to the other    power probably.
End

Commandset.ini
CommandSet ElvenMagierCommandSet
    1    = Command_ToggleStance
    2 = Command_SpecialAbilityMagierAlbensternOpen
    3 = Command_SpecialAbilityMagierHeal
    13    = Command_AttackMove
    14    = Command_Stop
    16      = Command_SetStanceBattle
    17      = Command_SetStanceAggressive
    18      = Command_SetStanceHoldGround
End

CommandSet ElvenMagierHordeCommandSet
    1    = Command_ToggleStance
    2 = Command_SpecialAbilityMagierAlbensternOpen
    3 = Command_SpecialAbilityMagierHeal
    13    = Command_AttackMove
    14    = Command_Stop
    16      = Command_SetStanceBattle
    17      = Command_SetStanceAggressive
    18      = Command_SetStanceHoldGround
End

Danke im Voraus!
EvilDet
Titel: Re: EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 15. Aug 2010, 17:59
Zitat
Behavior = UnpauseSpecialPowerUpgra de ModuleTag_StoreObjectsFo rLevel2TeleportEnabler
   SpecialPowerTemplate = SpecialAbilityMagierAlbe nsternOpen
End
Behavior = SpecialPowerModule ModuleTag_StoreObjectsFo rLevel2Teleport
   SpecialPowerTemplate    = SpecialAbilityMagierAlbe nsternOpen
   StartsPaused          = Yes
   UpdateModuleStartsAttack = Yes
End

Das ist falsch. Du sagst, die Fähigkeit pausiert und benötigt ein Upgrade. Gleichermaßen definierst du dieses Upgrade aber nicht. Richtig wäre es so:

Behavior = UnpauseSpecialPowerUpgra de ;ModuleTag_StoreObjectsFo rLevel2TeleportEnabler
;   SpecialPowerTemplate = SpecialAbilityMagierAlbe nsternOpen
;End
Behavior = SpecialPowerModule ModuleTag_StoreObjectsFo rLevel2Teleport
   SpecialPowerTemplate    = SpecialAbilityMagierAlbe nsternOpen
   StartsPaused          = No
   UpdateModuleStartsAttack = Yes
End

oder so:

Behavior = UnpauseSpecialPowerUpgra de ModuleTag_StoreObjectsFo rLevel2TeleportEnabler
   SpecialPowerTemplate = SpecialAbilityMagierAlbe nsternOpen
        TriggeredBy = "Dein Upgrade der Horde"
End
Behavior = SpecialPowerModule ModuleTag_StoreObjectsFo rLevel2Teleport
   SpecialPowerTemplate    = SpecialAbilityMagierAlbe nsternOpen
   StartsPaused          = Yes
   UpdateModuleStartsAttack = Yes
End
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 22. Aug 2010, 19:48
Ahhh, jetzt weiß ich auch, warum meine Fähigkeiten so oft schon nicht funktioniert haben .
Vielen Dank ea!

Edit:
Neues Problem:
Wie kann ich eine ModelFX, die eigentlich gehidet ist, von Frame x bis Frame y einer Animation anzeigen lassen?
Also nochmal zum besseren Verständnis:
Eine Animation wird abgespielt. Sie erreicht Frame 48, nun soll die ModelFX angezeigt werden. Ab Frame 61 soll die ModelFX wieder versteckt werden.

Problem Nummer 2:
Woran kann es liegen, dass Einheiten keinen Auswahlkreis haben?

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Alien aka Infiltrator am 23. Aug 2010, 00:24
zum 1.:
            FXEvent         = Frame:20 Name:FX_BalrogScreamEfx
Beim Animation state angeben
(beispiel ist aus neutral/neutralunits -> Balrog)

zum 2.:
Das ist das Selection Decal aus der experiencelevels.ini, einfach bei passendem eintrag suchen, bzw die units einem levelsystem zuordnen sollte das noch nicht der fall sein ;-)
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 23. Aug 2010, 10:35
Danke für die Antwort, Alien. Ich habe deine Tutorials auch aufmerksam gelesen und mir ist dieser Block natürlich nicht entgangen. Jedoch lässt sich so doch keine ModelFx anzeigen, sondern nur eine FXList, oder? Und ich habe es mit deiner Möglichkeit versucht, bin jedoch daran gescheitert, dass meine FX komplett schwarz und nicht richtig gedreht war :D

EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Alien aka Infiltrator am 23. Aug 2010, 16:20
Nun ja es gibt noch die möglichkeit (sollte die animation mit einer fähigkeit zusammenhängen) das ganze über ConditionStates zu machen und mit Scripts (also scripts.lua und scriptevents.xml), solltest du damit keine erfahrung haben hilft dir dieses Tutorial:
http://modding-union.com/?path=codingtuts#randomluascript

Das ist zwar für eine zufällige ausblendung/einblendung, aber sollte kein ding sein das umzuschreiben, wenn doch einfach meckern :P
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 4. Dez 2010, 12:58
So, nach einiger Zeit stehe ich wieder vor einem neuen (relativ kleinem) Problem:

Teile einer Einheit haben ingame keinen Schatten. Das bedeutet, dass die Waffe einen Schatten wirft, der Körper der eigentlichen Einheit jedoch nicht.
Woran kann das liegen?
Denn die beiden Teile sind in RenX aneinander-attached, bilden also ein einziges Objekt und benutzen dieselben Exportsettings.

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 4. Dez 2010, 14:52
Das passiert, wenn du zwei Subobjecte miteinander attachest, diese aber unterschiedliche Skins nutzen. Attache nur Subobjecte, die den gleichen Skin nutzen.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 10. Dez 2010, 14:51
Danke Ea, wieder ein Problem weniger :)
Jedoch ist ein neues Problem entstanden, oder vielmehr eine Frage, die den Bereich Coding betrifft:
Ist es möglich, den StealthDetector-Behaviour an ein Upgrade zu binden?
// Detects other stealth units
Behavior = StealthDetectorUpdate StealthDetectorUpdateModuleTag
DetectionRate   = 50   // how often to rescan for stealthed things in my sight (msec)
End
Denn das einfache Hinzufügen eines "TriggeredBy"-Eintrags sorgt für einen Gamecrash.

Danke im Voraus!
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 10. Dez 2010, 16:54
RequiredUpgradeDas dürfte funktionieren. Ansonsten einfach mal in der Festung von "Wild" nachschauen, dort werden die Bats und deren Detection per UP angezeigt.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 13. Dez 2010, 16:57
Danke, ea, so langsam leuchten mir viele Dinge ein, worüber ich mir vorher den Kopf zerbrochen habe :)

Doch es stellt sich eine neue Frage:
Lässt sich die Verkleiden-Fähigkeit des CaH an eine Zeit binden? Ich will also, dass mein Held für eine Minute wie der gewählte Feind aussieht, und sich danach wieder "zurückverwandelt".
Das Einfügen eines "Duration"-Eintrags führt zu einem Gamecrash.
Danke im Voraus
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 13. Dez 2010, 17:12
Hmm, also damit habe ich mich ehrlich gesagt noch nicht beschäftigt. Könntest du die Codes einfach mal hier hinein stellen? Vielleicht finden wir ja einen Weg. ;)
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 13. Dez 2010, 17:43
Danke :)
Hier die Codes aus der Helden.ini
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_SilwnyaDisguiseEnabler
SpecialPowerTemplate = SpecialAbilitySilwynaDisguise
TriggeredBy = Upgrade_Level_6
End

Behavior = StealthUpdate ModuleTag_SilwynaDisguiseModule
StealthDelay = 1
DisguisesAsTeam = Yes
RevealDistanceFromTarget = 1.0f
OrderIdleEnemiesToAttackMeUponReveal = Yes
InnateStealth = No
DisguiseTransitionTime = 2000
DisguiseRevealTransitionTime = 1000
End

Behavior = SpecialPowerModule ModuleTag_SilwynaDisguiseStarter
SpecialPowerTemplate = SpecialAbilitySilwynaDisguise
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = CaH_Disguise
End

Behavior = SpecialAbilityUpdate ModuleTag_SilwynaDisguiseUpdate
SpecialPowerTemplate = SpecialAbilitySilwynaDisguise
StartAbilityRange = 1000000.0
ApproachRequiresLOS = No
End

Sollten dir bekannt vorkommen, ea, stammen aus deinem Tutorial ;)

Edit:
In Grimas "Escape"-Behaviour gibt es einen Eintrag, der mit "EffectDuration" bezeichnet wird. Wenn man diesen in das Update-Module des "Disguise"-Behaviours meines Heldeneinträgt, gibt es zwar keinen Gamecrash, es ändert sich allerdings auch nichts daran, dass die Fähigkeit ewig andauert.
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 14. Dez 2010, 21:04
Kannst du noch die Specialpower von dir einfügen? Das Escape-Module nicht funktioniert, liegt vermutlich am Enum.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 14. Dez 2010, 21:09
Ok, hier die Specialpower.ini
;------------------------------------------------------------------------------
SpecialPower SpecialAbilitySilwynaDisguise
Enum = SPECIAL_DISGUISE_AS_VEHICLE
ReloadTime = 120000
    ObjectFilter        = ANY +INFANTRY +HERO -BIG_MONSTER -CREATE_A_HERO NOT_FLYING_UNITS
End
Danke für deine Hilfe!:)
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 15. Dez 2010, 17:09
Ohje, das scheint ziemlich festgesessen zu sein, ich glaube daran kann man nicht viel drehen. Ich schaue es mir mal an, sehe aber nicht viel Hoffnung.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 15. Dez 2010, 17:19
Ok, danke trotzdem :)
Titel: Re:EvilDets Fragenthread
Beitrag von: Elrond99 am 15. Dez 2010, 18:43
Wie wäre es mit Blademaster aber ohne Attributemodifier und FX, also nur als Fake Ability, der dauert 60 Sekunden und löst einen bestimmten Modelcondition State aus (z.B. USER_3)

Bei deinem Stealth fügt du dann sowas ein wie RequiredModelCondition = USER_3 oder so ähnlich, weiß grad nicht wie das genau heißt
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 15. Dez 2010, 18:46
Dann könnte ich aber nicht zu jeder beliebigen Einheit werden, sondern nur zu dem Model, dass in diesem Modelconditionstate angegeben ist, oder?

MfG
Titel: Re:EvilDets Fragenthread
Beitrag von: Elrond99 am 15. Dez 2010, 18:48
Nein der ModelCondition ist genauso Fake, der löst die Fähigkeit aus wie ein Upgrade, nur verschwindet er eben nach einer Minute wieder, was ein Upgrade nicht tut

Aber vielleicht fällt Ea noch was einfacheres ein, ich habe so das Geüfhl meine Idee ist mit Kanonen auf Spatzen schießen :P
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 17. Dez 2010, 13:29
Ich weiß irgendwie immer noch nicht genau, was du meinst :D

Meine Fähigkeit sieht jetzt so aus:
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_SilwnyaDisguiseEnabler
SpecialPowerTemplate = SpecialAbilitySilwynaDisguise
TriggeredBy = Upgrade_Level_6
End

Behavior = StealthUpdate ModuleTag_SilwynaDisguiseModule
StealthDelay = 1
DisguisesAsTeam = Yes
RevealDistanceFromTarget = 1.0f
OrderIdleEnemiesToAttackMeUponReveal = Yes
InnateStealth = Yes
DisguiseTransitionTime = 2000
DisguiseRevealTransitionTime = 1000
End

Behavior = SpecialPowerModule ModuleTag_SilwynaDisguiseStarter
SpecialPowerTemplate = SpecialAbilitySilwynaDisguise
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = CaH_Disguise
SetModelCondition = ModelConditionState:USER_3
SetModelConditionTime = 60.0
End

Behavior = SpecialAbilityUpdate ModuleTag_SilwynaDisguiseUpdate
SpecialPowerTemplate = SpecialAbilitySilwynaDisguise
StartAbilityRange = 1000000.0
ApproachRequiresLOS = No
End

ModelconditionState:
ModelConditionState = USER_3
ParticleSysBone = NONE Predator FollowBone:Yes Persist:SPAWN PersistID:100
End

Aber die Fähigkeit dauert noch immer ewig an. Was muss ich noch ändern?

Danke für die Hilfe!

EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Elrond99 am 17. Dez 2010, 14:19
Teste es mal so ;-) (ich hab hier Required Condition = USER_3 hinzugefügt

Behavior = UnpauseSpecialPowerUpgrade ModuleTag_SilwnyaDisguiseEnabler
SpecialPowerTemplate = SpecialAbilitySilwynaDisguise
TriggeredBy = Upgrade_Level_6
End

Behavior = StealthUpdate ModuleTag_SilwynaDisguiseModule
RequiredConditions = USER_3
StealthDelay = 1
DisguisesAsTeam = Yes
RevealDistanceFromTarget = 1.0f
OrderIdleEnemiesToAttackMeUponReveal = Yes
InnateStealth = Yes
DisguiseTransitionTime = 2000
DisguiseRevealTransitionTime = 1000
End

Behavior = SpecialPowerModule ModuleTag_SilwynaDisguiseStarter
SpecialPowerTemplate = SpecialAbilitySilwynaDisguise
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = CaH_Disguise
SetModelCondition = ModelConditionState:USER_3
SetModelConditionTime = 60.0
End
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 17. Dez 2010, 15:02
Also bei mir gibt das einen Gamecrash :D
Titel: Re:EvilDets Fragenthread
Beitrag von: Elrond99 am 17. Dez 2010, 15:17
hmm habs nicht getestet :P

werd mich mal umschauen, vl fällt mir ja noch was ein
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 23. Dez 2010, 16:04
So, ich hab die Fähigkeit jetzt einfach mal ein ganz normales Verkleiden sein lassen und habe eine neue Frage:
Wie kann ich Random-Upgradeskins definieren, also in meinem Fall, dass aus dem blonden Elf (Standard-Haarfarbe: Braun) mit dem Kauf des "Schwere Rüstung"-Upgrades ein blonder Elf mit schwerer Rüstung wird?

Code der (derzeitigen) Upgradetextures:
    Behavior = SubObjectsUpgrade Armor_Upgrade
        TriggeredBy        = Upgrade_ElvenHeavyArmor
        UpgradeTexture = euelfwar.tga 0 euelfwar_ha.tga
        UpgradeTexture = euelfwar1.tga 0 euelfwar_1ha.tga
        UpgradeTexture = euelfwar2.tga 0 euelfwar_2ha.tga
        UpgradeTexture = euelfwar3.tga 0 euelfwar_3ha.tga
        ;RecolorHouse            = Yes
        ExcludeSubobjects        = Forged_Blade
    End

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Elrond99 am 23. Dez 2010, 20:40
Du machst folgendes:

Ich nehme jetzt an deine Einheit heißt ElvenWarrior

Object ElvenWarrior

SelectPortrait = UPRohan_Peasant

Draw = W3DScriptedModelDraw ModuleTag_01 
DefaultModelConditionState
;Give it a model so it'll show up in WB
Model               = RUPsnt_1_SKN
Skeleton            = RUPsnt_1_SKL
End
End

;***** IMPORTANT NOTE! ***************************************************************
;Certain Upgrades and costs may need to be propagated from here. One example was veterancy
;overlays.
;*************************************************************************************

Side = Elves
EditorSorting = UNIT
BuildVariations = ElvenWarriorBraun ElvenWarriorBlond ElvenWarriorSchwarz
KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT SWARM_DOZER GRAB_AND_DROP DOZER

  ;Shadow = SHADOW_DECAL
  ;ShadowSizeX = 24;
  ;ShadowSizeY = 24;
  ;ShadowTexture = ShadowI;

End

Aus deinem jetzigen Code löscht du die RandomTextures raus und nennst du Einheit ElvenWarriorBraun, außerdem änderst du deinen Code folgfendermaßen
    Behavior = SubObjectsUpgrade Armor_Upgrade
        TriggeredBy        = Upgrade_ElvenHeavyArmor
        UpgradeTexture = euelfwar.tga 0 euelfwar_ha.tga
        ;RecolorHouse            = Yes
        ExcludeSubobjects        = Forged_Blade
    End[/code)

dann machst du ein ChildObject ElvenWarriorBlond
mit der RandomTexture euelfwar1.tga statt euelfwar.tga und folgendem
    Behavior = SubObjectsUpgrade Armor_Upgrade
        TriggeredBy        = Upgrade_ElvenHeavyArmor
        UpgradeTexture = euelfwar.tga 0 euelfwar_1ha.tga
        ;RecolorHouse            = Yes
        ExcludeSubobjects        = Forged_Blade
    End

Dasselbe für jede weitere haarfarbe, du musst sie alle bei den BuildVariations hinzufügen
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 24. Dez 2010, 10:53
Randommodelle lassen sich immer eleganter verwenden. Die Wahrscheinlichkeitsverte ilung liegt wirklich bei 1:1 und es gibt auch keine Überschneidungen mit HA-Upgrades, während Randometexturen oftmals keine 1:1 Verteilung aufweisen. Ich würde dir also empfehlen zukünftig eher mit Randommodellen zu arbeiten.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 25. Dez 2010, 16:26
Danke für eure Antworten :)!
Wie muss das ChildObject eigentlich genau aussehen? Also muss ich die gesamte .ini der eigentlichen Unit kopieren und drunter einfügen und dann "ChildObject blabla eigentlicheUnit" statt dem normalen "Object" schreiben? Und muss ich das ChildObject in der experiencelevels.ini definieren?

MfG
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Elrond99 am 25. Dez 2010, 16:28
Ins Child werden alle Einträge übernommen, du musst nur die Einträge hineinschreiben die überschreiben werden sollen, aber in die experiencelevels.ini muss es, ja
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 26. Dez 2010, 13:29
Danke, ich habe es jetzt gelöst :)

MfG
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 24. Jan 2011, 14:18
So, jetzt mal wieder eine kleine Frage:
Warum frieren meine Einheiten (Bogenschützen) ein, wenn sie im Nahkampf die Waffe wechseln sollen?
Sie ziehen ihr Schwert und frieren dann ein.
Ini der Bogenschützen:
http://nopaste.info/e58ab23f9c.html

Danke im Voraus
EvilDet

Titel: Re:EvilDets Fragenthread
Beitrag von: DiegoDelaVega am 24. Jan 2011, 15:19
kannst du mal dein waffenwechsel (ich nehme mal an, dass es sich um einen aktiven waffenwechsel handelt) posten?
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 24. Jan 2011, 15:55
Das ist ein DualWeaponBehavior ;) . Der wird z.B. bei Lurtz benutzt, weshalb der seine Feinde immer mit dem Bogen schlägt, wenn die ihm zu nahe kommen.

Von daher kann ich keinen Button posten, alles, was benötigt wird, steht in der ini ;)
MfG
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: DiegoDelaVega am 24. Jan 2011, 16:04
dann würde ich sagen, du hast die falsche flag benutzt. aus lurtzs ini würde ich sagen, die passende flag ist CLOSE_RANGE anstatt WEAPONSET_CLOSE_RANGE. das dualweaponbehavior sollte schließlich immer die gleiche flag setzen
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 24. Jan 2011, 16:06
Ok, also es gibt ein paar Dinge, die du beachten musst. Ich bin jetzt leider gerade nicht an einem PC, der die nötigen Inis bzw. Programme vorliegen hat, kann dich aber bereits im vornerein auf ein paar Sachen aufmerksam machen.
Zum Einen solltest du darauf achten, dass du jede Animation, die definiert ist, auch im WEAPONSTATE_CLOSE_RANGE definierst. Das hast du sehr oft nicht getan.

Dann hast du doppelte Einträge:
#         AnimationState        = STUNNED_STANDING_UP
#             StateName          = STATE_Sword
#             Animation          = GUFaramir_GTPB
#                 AnimationName    = GUFaramir_SKL.GUFaramir_GTPB
#                 AnimationMode    = ONCE
#                 AnimationSpeedFactorRange = 1.5 1.5
#             End
#         End
#        
#         AnimationState        = STUNNED_STANDING_UP
#             StateName          = STATE_Bow
#             Animation          = GUFaramir_GTPA
#                 AnimationName    = GUFaramir_SKL.GUFaramir_GTPA
#                 AnimationMode    = ONCE
#                 AnimationSpeedFactorRange = 1.5 1.5
#             End
#         End
#  
#         AnimationState        = STUNNED WEAPONSTATE_CLOSE_RANGE
#             StateName          = STATE_Sword
#            
#             Animation          = GUFaramir_LNDB
#                 AnimationName    = GUFaramir_SKL.GUFaramir_LNDB
#                 AnimationMode    = ONCE
#             End
#         End
#  
#         AnimationState        = STUNNED
#             StateName          = STATE_Bow
#            
#             Animation          = GUFaramir_LNDA
#                 AnimationName    = GUFaramir_SKL.GUFaramir_LNDA
#                 AnimationMode    = ONCE
#             End
Hier auch der Anreiz: Erst Normaler State, dann WEAPONSTATE_CLOSE_RANGE definieren.


Hier ist ein Eintrag definiert, der nur für den Switch zuständig ist:
Zitat
#         AnimationState        = ATTACKING WEAPONSTATE_CLOSE_RANGE
#             StateName          = STATE_Sword
#             Animation          = ATKD
#                 AnimationName    = GUFaramir_SKL.GUFaramir_ IDLA
#                 AnimationMode    = MANUAL
#             End            
#         End
Schau doch bitte einmal bei den Rangern, ob dies auch so gehandhabt ist, oder ob es für den normalen Stage (also mit Bogen) einen ATTACKING-Eintrag gibt. (wollte nur nebenbei darauf aufmerksam machen).

Desweiteren würde ich die Animationseinträge einmal ordnen, das ist alles viel zu unübersichtlich, dabei können massig Fehler entstehen.


Wenn meine Hinweise nicht helfen, würde ich dir empfehlen die kompletten Einträge der Ranger rüberzuziehen und dann eben nur die SKL-Einträge zu ändern. Das dürfte dann in der Regel fehlerfrei im Endeffekt sein.

Ich hoffe ich konnte helfen.
Greez
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 24. Jan 2011, 17:13
So, danke euch beiden, es klappt!
Ich habe die Animationen nochmal komplett neu eingefügt (aus Faramirs ini) und dann einfach jedes "WEAPONSET_TOGGLE_1" durch "WEAPONSTATE_CLOSE_RANGE" ersetzt. Außerdem musste ich das WeaponSet so ändern:
WeaponSet
Conditions = CLOSE_RANGE CONTESTING_BUILDING
Weapon = PRIMARY    MaurawanBow
Weapon = SECONDARY   FaramirSword
Weapon = TERTIARY    GondorRangerBowBombard
OnlyAgainst = PRIMARY STRUCTURE
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT
End

Bei den Schwert-Angriffs-Anis musste ich zudem den "Attack idle with sword" Eintrag löschen und den folgenden AnimationState zu "FIRING_OR_PREATTACK_B" ändern:
AnimationState        = FIRING_OR_PREATTACK_B
StateName           = STATE_Sword

Animation           = ATKD
AnimationName     = GUFaramir_SKL.GUFaramir_ATKD
AnimationMode     = ONCE
UseWeaponTiming = Yes
AnimationSpeedFactorRange = 1.149 1.149
End

Animation           = ATKE
AnimationName    = GUFaramir_SKL.GUFaramir_ATKE
AnimationMode     = ONCE
UseWeaponTiming = Yes
AnimationSpeedFactorRange = 1.149 1.149
End

Animation           = ATKF
AnimationName    = GUFaramir_SKL.GUFaramir_ATKF
AnimationMode     = ONCE
AnimationSpeedFactorRange = 1.47 1.47
End
Flags = RESTART_ANIM_WHEN_COMPLETE
; FrameForPristineBonePositions = 59
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
EndScript
End

Noch einmal danke
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 28. Feb 2011, 15:58
So, nach längerer Zeit stellt sich mir wieder eine Frage, die ich nicht lösen kann.
Es handelt sich dabei um das Anzeigen (per Codes) bestimmter Objekte während einer Animation. Orientiert habe ich mich hierbei an diesem Eintrag aus Faramirs ini:
AnimationState        =  SPECIAL_WEAPON_ONE
StateName = STATE_Bow
Animation
AnimationName           = GUFaramir_SKL.GUFaramir_ATKC
AnimationMode       = ONCE
End
FrameForPristineBonePositions = 59
BeginScript
CurDrawableShowSubObject("arrow")
EndScript
End
Und hier mein Eintrag aus der ini meiner Einheit:
        AnimationState                = SPECIAL_WEAPON_ONE                           
           StateName                = Firing_Special
            Animation
                AnimationName        = iucrsbowmn_spcc
                AnimationMode        = ONCE
    End
    FrameForPristineBonePositions = 38
BeginScript
CurDrawableShowSubObject("object_1")
CurDrawableShowSubObject("object_2")
EndScript
   End
Jedoch wird keines meiner beiden Objekte angezeigt. Sie sind übrigens von Anfang an(OnCreated) per lua-Script gehidet.

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 1. Mär 2011, 09:31
Lösche das Lua-Script heraus und hide die Teile im Model (Renx) selbst. Dann funktioniert auch der Eintrag.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 7. Mär 2011, 12:30
Vielen Dank ea, jetzt wird das Object angezeigt.
EvilDet

Edit:
Das Object wird jetzt zwar angezeigt, aber danach verschwindet es nichtmehr... Der Code ist immernoch derselbe geblieben.
MfG
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 7. Mär 2011, 13:08
Du musst in allen anderen Animationen einen HideSubObject-Eintrag angeben.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 10. Mär 2011, 17:37
Auf die Idee hätte ich auch selber kommen können -.-
Trotzdem vielen Dank!

Jetzt stellt sich mir jedoch eine neue Frage:
Kann man ein bestimmtes Upgrade kaufen und zeitgleich wird ein Anderes Upgrade entfernt? Wenn man dieses jedoch erneut kauft, wird das andere wieder entfernt?

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 10. Mär 2011, 22:27
Es gibt einen RemoveUpgrade-Eintrag in dem Object des RingSauron. Das ist aber teilweise nicht richtig brauchbar, weil es manchmal crasht.
Mir würde nur eine Variante über Remove und Grantupgrades einfallen per LuaScript. Dafür müsstest du eben ein paar Events in der xml-Datei anlegen und diese richtig darauf beziehen.
Wenn du mir sagst, was du machen möchtest, kann ich dir vll eher weiterhelfen.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 14. Mär 2011, 14:06
Ok, also:
Ich möchte, dass wenn eine Fähigkeit ausgelöst wird ein Upgrade vergeben wird. Wenn jedoch eine andere Fähigkeit ausgelöst wird, soll das Upgrade gelöscht werden.
Bitte für Noobs erklären, kenn mich mit lua gar nicht aus, nur Randomobjects kann ich^^

Ich hoffe, das war verständlich formuliert.

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Sanalf 2 am 14. Mär 2011, 15:52
Was genau willst du denn coden? Also was soll das Upgrade bewirken? Ich frag das, weil's vielleicht eine einfachere Möglichkeit gibt. Das mit dem Upgrade geben und wieder entfernen ist immer so eine blöde Sache.

mfg
sanalf 2
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 14. Mär 2011, 16:13
Führerschaft, es soll verschiedene Füherschaften mit verschiedenen Boni geben, die allerdings nicht gleichzeitig aktiv sein können.
Danke für deine Antwort
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: MCM aka k10071995 am 14. Mär 2011, 17:12
Das wird tricky, wir haben ja schon darüber gesprochen, das ich in der IS etwas ganz ähnliches drinhaben werde.
Naja, im Moment bin ich bei folgendem System:
1. Spawnen eines Eggs
2. Dieses Egg vergibt einerseits ein Upgrade, andererseits eine ModelCondition USER_1 (Oder ähnliches). Es müssen zwei Führerschaften sein, denn das Upgrade bleibt dauerhaft(Für die Codes zumindest :P), der ModelCondition allerdings nur sehr kurz (500 ms oder so).
3. An dieses Upgrade wird dann die entsprechende Führerschaft geheftet.
4. Jetzt sind die LuA-Scripts wichtig:
Und zwar müsst ihr bei eurer Einheit hinschreiben, welche ModelCondtion was entfernt. Zumindest in Edain gibt es auch Beispiele, wie diese Einträge aussehen können, keine Ahnung, ob das in SuM2 auch so ist. Dann einfach noch die eigentlichen Scripts definieren, und dann die anderen Upgrades entfernen.
Also ihr habt 3 Upgrade. Das LuA-Event hätte dann das Schema:
ModelConditionUser1=>LuAScript=>RemoveUpgradeFähigkeit 2/3

Ich habe es so noch nicht ausprobiert, ich bin nicht dazu gekommen, es sollte allerdings so funktionieren. :)

@Ea unten: Gut, dann funktioniert es ja.
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 14. Mär 2011, 22:33
Ja, ich habe diese Variation bei Boromirs Ringmechanik erfunden.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 20. Mär 2011, 12:19
Ok, danke für die Antwort. Das Egg wird dann per DoCommand-Behaviour gespawnt, oder?

MfG
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: MCM aka k10071995 am 20. Mär 2011, 12:22
Ok, danke für die Antwort. Das Egg wird dann per DoCommand-Behaviour gespawnt, oder?

MfG
EvilDet
Hm? Was willst du mit DoCommand-Behaviour?^^
Du spawnest das Egg einfach wie zB. das Allwissenheit-Egg bei Edain gespawned wird. Man drückt die Fähigkeit und es erscheint ein unsichtbares Objekt direkt unter dem Helden. Ist eigentlich nicht schwer.
Oder verstehe ich was falsch?^^
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 20. Mär 2011, 13:32
Ne, ich stand gerade nur ein bisschen auf dem Schlauch :D
Danke, ich werde es dann mal ausprobieren.
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 29. Apr 2011, 12:31
So, ich melde mich auch mal wieder mit einer neuen Frage:
Warum stürzt mein Spiel ab, wenn ich diese Fähigkeit benutze? Sie ist orientiert an Glorfindels Sternlicht-Spell. Außerdem stürzt das Spiel erst ab, wenn die Fähigkeit etwa 5-10 Sekunden aktiv ist.

Ini der Einheit:
    Behavior = OCLSpecialPower ModuleTag_GlorfindelStarlight
        StartsPaused                = No
        SpecialPowerTemplate        = SpecialAbilityBeautyAlbenmark
        OCL                    = OCL_BeautyAlbenmark
        CreateLocation                = CREATE_AT_LOCATION
    End

    ; special AutoAbilityBehavior for starlight, as we need to target a bunch of allies.
    Behavior = AutoAbilityBehavior ModuleTag_StarlightAutoAbilityBehavior
        SpecialAbility    = SpecialAbilityBeautyAlbenmark
        MaxScanRange    = GLORFINDEL_STARLIGHT_RADIUS
        Query            = 2 ANY ALLIES +HORDE                        ; 2 friendly hordes or an enemy
        Query            = 1 ALL ENEMIES
    End

Specialpower.ini
SpecialPower SpecialAbilityBeautyAlbenmark
Enum = SPECIAL_GENERAL_TARGETLESS_THREE
ReloadTime = 90000
InitiateAtLocationSound = GlorfindelStarlight
End

Objectcreationlist.ini
ObjectCreationList OCL_BeautyAlbenmark
CreateObject
ObjectNames = BeautyAlbenmark
End
End

Object.ini
ChildObject BeautyAlbenmark FearRadiator

  ; *** ART Parameters ***
  Draw = W3DScriptedModelDraw ModuleTag_Draw
    DefaultModelConditionState
      Model               = None
      ParticleSysBone = None CloudBreakRays
      ParticleSysBone = None BeautyAlbenmarkSchmetterlinge
      ParticleSysBone = None BeautyAlbenmark
      ParticleSysBone = None BeautyAlbenmarkBirds
    End
;    IdleAnimationState
;      EnteringStateFX = FX_BeautyAlbenmark
;    End
       
    ; this is how you control birth fade
;    BirthFadeTime = 1000  ; msec
;    BirthFadeAdditive = Yes
 
  End

    Behavior = LifetimeUpdate ModuleTag_01
        MinLifetime = 30000
        MaxLifetime = 30000
    End
   

    Behavior = AttributeModifierAuraUpdate ModuleTag_Leadership
        StartsActive    = Yes
        BonusName        = BeautyAlbenmarkBuff
        RefreshDelay    = 2000
        Range            = GLORFINDEL_STARLIGHT_RADIUS
        ObjectFilter    = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
    End   
End

Attributemodifier.ini
ModifierList BeautyAlbenmarkBuff
Category = BUFF
Modifier = EXPERIENCE 125%
Modifier                                = RESIST_FEAR 100%
Modifier = ARMOR 25%
FX = FX_GenericBuff
Duration = 30000
ReplaceInCategoryIfLongest = Yes
End

Danke im Voraus!
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 29. Apr 2011, 13:03
Das ist ein typischer FX-Fehler.
Zitat
      ParticleSysBone = None CloudBreakRays
      ParticleSysBone = None BeautyAlbenmarkSchmetter linge
      ParticleSysBone = None BeautyAlbenmark
      ParticleSysBone = None BeautyAlbenmarkBirds
Entweder sind die FX zu gameplay-lastig, wodurch das Spiel überlastet wird (hatte ich auch schon des öfteren), oder es ist einfach ein Fehler im FX.
Da CloudBreakRays bereits viel Speicher in Anspruch nimmt, könnte der Rest das Spiel zum Abstürzen bringen.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 29. Apr 2011, 14:14
Entweder sind die FX zu gameplay-lastig, wodurch das Spiel überlastet wird (hatte ich auch schon des öfteren)

Jap, daran lags. Jetzt stürzt nichtsmehr ab ;)
Danke!
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 19. Mai 2011, 14:02
So, neue Frage, auf deren Antwort ich einfach nicht komme:
Warum greift mein Held Feinde in seiner Nähe nicht automatisch an (weder im Nah- noch im Fernkampf)?
Das AiUpdateInterface sieht so aus:
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS STEALTHED
MoodAttackCheckRate = 500
CanAttackWhileContained = Yes
AILuaEventsList = LegolasFunctions
        AttackPriority            = AttackPriority_Archer
End

Danke im Voraus!
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Mîlûr der Helle am 19. Mai 2011, 14:12
Vllt liegt es an der Weapon so ein Problem hatte ich mal, wobei ich allerdings den Nahkampf nie hinbekommen habe...
Mich würde das allerdings auch mal interressieren wenn jemand eine Antwort weis.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 19. Mai 2011, 15:04
Naja, die Weapon ist die von Faramir (Bow/Sword). Daran habe ich nichts geändert.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 14. Jun 2011, 10:54
Sorry für den Doppelpost, aber ich habe mal wieder eine kleine Frage, die vermutlich nicht schwer zu beantworten ist, aber ich komme selbst nicht auf die Antwort:
Warum gibt eine Einheit keine Erfahrung, wenn man sie tötet?

MfG
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 14. Jun 2011, 11:03
Hmm ich hatte den Thread völlig übersehen. Zu deiner vorherigen Frage:
Das liegt sowohl am AiUpdateBehaviour, als auch am ThreadBreakDown-Behaviour in der Horde. Der AiUpdateBehaviour muss in sowohl in Einheiten, als auch Horden.ini übereinstimmen und die Funktion dessen mit dem weitern von mir genannten Behaviour.

Eine Einheit gibt keine Erfahrung, wenn der experiencelevels.ini-Eintrag fehlt bzw. falsch ist.
Wenn du ein Bauern-System verwendest, musst du jede BuildVariation auch definieren.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 4. Jul 2011, 16:19
Ok, ea, hat funktioniert. Danke!
Aber ich habe eine neue Frage:
Ist es möglich, dass Feuer auf Wasser (z.B.) im Meer brennen kann?

Danke im Voraus!
EvilDet

Edit:
Zweite Frage: Warum spawnen meine Einheiten nur an den ARROW-Bones und nicht auch an den ARCHER-Bones, wie in den Codes festgelegt?

Behavior = HordeTransportContain  ModuleTag_Contain
ObjectStatusOfContained = CAN_ATTACK UNSELECTABLE UNATTACKABLE
Slots = 18
DamagePercentToUnits = 0%
PassengerFilter = NONE +GondorTjuredBogenKrieger_SlavedForShips
PassengerBonePrefix = PassengerBone:Arrow KindOf:INFANTRY
PassengerBonePrefix = PassengerBone:Archer KindOf:INFANTRY
ShowPips = No
KillPassengersOnDeath = Yes
EjectPassengersOnDeath = No
InitialPayload = GondorTjuredBogenKrieger_SlavedForShips 18
End
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 4. Jul 2011, 17:53
Hmm....interessante Frage. Nun, Feuer funktioniert über ein "FireLogicSystem", dafür ist sogar eine eigene ini angelegt. Ich habe mich noch nicht so recht damit vertraut gemacht, vielleicht wäre das hier ein Ausgangspunkt für dich.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 4. Jul 2011, 19:48
Hm, also die firelogicsystem.ini ist nicht wirklich aussagekräftig. :D
Allerdings habe ich eine andere Lösung gefunden, indem ich einfach eine Radiance-Weapon benutze und eine FX, die auf der FeuerFX beruht (GpuTerrainFire).
Trotzdem danke für den Hinweis!

Andere Frage: Warum spawnen meine Einheiten nur an den ARROW-Bones und nicht auch an den ARCHER-Bones, wie in den Codes festgelegt?

Behavior = HordeTransportContain  ModuleTag_Contain
ObjectStatusOfContained = CAN_ATTACK UNSELECTABLE UNATTACKABLE
Slots = 18
DamagePercentToUnits = 0%
PassengerFilter = NONE +GondorTjuredBogenKrieger_SlavedForShips
PassengerBonePrefix = PassengerBone:Arrow KindOf:INFANTRY
PassengerBonePrefix = PassengerBone:Archer KindOf:INFANTRY
ShowPips = No
KillPassengersOnDeath = Yes
EjectPassengersOnDeath = No
InitialPayload = GondorTjuredBogenKrieger_SlavedForShips 18
End

Danke im Voraus!
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 5. Jul 2011, 10:01
Weil zuerst der erste Prefix gelesen wird. Wenn du den gleichen KindOf bei zwei Prefix nutzt, wird nur der Erste beachtet. Ich würde eine doppeltes SlavedObject erstellen und diesen anstatt einfach einen weiteren KindOf, zb. ARAGORN, geben. ARAGORN dann eben auf den zweiten Prefix beziehen.
Nebenfrage: Hast du die Bones als ExtraPublicBone am Anfang des Objectes definiert?
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 5. Jul 2011, 18:33
Ah, danke ea, jetzt gehts. Lag an dem KindOf ;)
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 24. Jul 2011, 19:14
So, ich bin auf ein neues Problem gestoßen. Ich habe versucht, Theodens "Kings Favour" - Spell zu einem Spellbook-Spell zu machen. Ich kann den Spell auch kaufen, den Bereich auswählen, aber wenn ich klicke passiert nichts, es gibt auch keinen Cooldown.
Hier die Codes:

specialpower.ini
SpecialPower SpellBookIskendria
    Enum                            = SPECIAL_KINGS_FAVOR
    RequiredSciences = SCIENCE_DunedainAllies
    ReloadTime      = SPELL_RECHARGE_TIME_TIER_3 ; in milliseconds
    RadiusCursorRadius                = 10.0
    ObjectFilter                    = ISKENDRIA_OBJECTFILTER
    Flags = RESPECT_RECHARGE_TIME_DISCOUNT NEEDS_OBJECT_FILTER
End

system.ini
Behavior = SpecialPowerModule ModuleTag_KingsFavorSpecialPowerModule
        SpecialPowerTemplate = SpellBookIskendria
UpdateModuleStartsAttack = Yes
        InitiateSound = TheodenVoiceFavor
AvailableAtStart = No
RequirementsFilterMPSkirmish = SPELL_BOOK_REQUIREMENTS_FILTER
RequirementsFilterStrategic = SPELL_BOOK_REQUIREMENTS_FILTER_STRATEGIC
    End
   
  Behavior = LevelGrantSpecialPower ModuleTag_KingsFavor
SpecialPowerTemplate = SpellBookIskendria
StartAbilityRange = 999999
        LevelFX = FX_LevelUp

Experience = 2000
RadiusEffect = 10
AcceptanceFilter = ISKENDRIA_OBJECTFILTER

UnpackTime = 0
PreparationTime = 0
FreezeAfterTriggerDuration = 0
    End

Commandbutton.ini
CommandButton Command_SpellBookIskendria
  Command            = SPELL_BOOK
  SpecialPower            = SpellBookIskendria
  Options            = NEED_TARGET_POS CONTEXTMODE_COMMAND
  TextLabel            = CONTROLBAR:Iskendria
  ButtonImage            = SBBibliothekIskendria
  CursorName            = Bombard
  RadiusCursorType        = KingsFavorRadiusCursor
  ButtonBorderType        = ACTION
  DescriptLabel            = CONTROLBAR:TooltipIskendria
End

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: thepinking am 24. Jul 2011, 19:30
Das keine Nachladezeit zu sehen ist, und nichts passiert wen du auf den Zielpunkt klickst deutet daraufhin das was mit einem Behavior stimmt. Meine Vermutung zu deinem Problem ist, dass das Spellbook den Behavoir LevelGrantSpecialPower nicht kennt, und deswegen nichts tut. Die Lösung wäre den Spell zu einem OCL umzuwandeln der ein Object spawnen lässt. Dieses Object hat ein CommandSet mit dem Kings Farvour Spell und auch in der ini die richtigen Behavior. Das Object hat weiteres ein DoCommand in der ini welches bei dem Startup deines Volkes aktiviert wird. Dadurch muss man zwar 2 mal auf ein Zielgebiet klicken, wäre aber ne Lösung ;)

Ps.: Ausprobiert hab ichs nicht, also kann ich nicht sagen obs wirklich geht


Edit:
Was ich vergessen hab:
Das object sollte auch eine Lifetime haben, dass es nicht ewig bleibt ;)

mfg
Pini
Titel: Re:EvilDets Fragenthread
Beitrag von: MCM aka k10071995 am 24. Jul 2011, 20:17
Sicher, dass das funktioniert?
Das beschworene Objekt wäre ja nicht angewählt, oder irre ich mich da?

Naja, an deiner Stelle würde ich mal testen, ob du was am Enum drehen kannst:
Zitat
SPECIAL_KINGS_FAVOR
Wenn ich irgendwelche merkwürdige Fehler habe, überprüfe ich immer zuerst das Enum der Fähigkeit. Eines der Spellbook-Enums gestattet zB. kein Beschwören von mehreren Objekten, was sehr ärgerlich sein kann (Bis man herausgefunden hat, dass es daran liegt xD). Könnte sein, dass die Behavior an sich erkannt wird, aber das Enum blockiert.

Sollte das alles nicht funktionieren, würde ich dir raten, das mit einem Objekt zu machen, wie thepinking schon gesagt hat. Ich würde hier das ganze aber per AutoAbility machen lassen, sodass man ein Egg spawned, dass dann automatisch die Erfahrungs-Fähigkeit auf Einheiten in nähe anwendet. Es gab doch eine Möglichkeit, das die AutoAbility sofort von Anfang an aktiv ist, oder?
Wobei man es auch so machen könnte, dass das Objekt die Fähigkeit auf sich selbst wirkt, in dem Fall wäre der Effekt zentriert.
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle am 24. Jul 2011, 21:38
thepingking, das funktioniert nicht.

EvilDet, ändere das hier mal so um und teste das:

Zitat
SpecialPower SpellBookIskendria
    Enum                              = SPECIAL_KINGS_FAVOR
    RequiredSciences         = SCIENCE_DunedainAllies
    ReloadTime               = SPELL_RECHARGE_TIME_TIER _3 ; in milliseconds
    RadiusCursorRadius                  = 10.0
    Flags            = RESPECT_RECHARGE_TIME_DI SCOUNT
End

Ansonsten würde ich, wie MCM bereits angedeutet hat, ein anderes ENUM testen. Eine Alternativvariante wird es aber nicht geben.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 24. Jul 2011, 22:13
ea, auch damit geht es nicht :(
Welches ENUM sollte ich denn ausprobieren?
MfG
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: thepinking am 25. Jul 2011, 15:35
Thx Ea und MCM daran hab ich nicht gedacht, mein Fehler sry.

Kann es eventuell sein, dass der Spell ansich stimmt, es aber an den Einheiten liegt?

Ich steh nämlich grad vor dem selben Problem (eps per Spellbook, nur eine etwas andere Version als die von EvilDet, im Prinzip allerdings das gleiche) und bei mir passiert genau das gleiche: nichts.

Edit:
Was mit noch eingefallen ist:
Kann es sein das es am KindOf liegt? Das da eins fehlt, bzw eins nicht da sein sollte?

mfg
Pini
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 25. Jul 2011, 17:13
Nunja, bei mir sollte es eigentlich nicht daran liegen, denn zu Beginn ist der RadiusCursor rot, aber sobald sich ein Held in seinem Radius befindet, wird er weiß.
Von daher müsste es eigentlich klappen.
EvilDet

Edit:
Habe jetzt die folgenden ENUMs ausprobiert, aber nichts funktioniert:
SPECIAL_TRIGGER_ATTRIBUT E_MODIFIER
SPECIAL_SPELL_BOOK_RALLY ING_CALL
SPECIAL_AT_VISIBLE_GROUN DED_OBJECT
SPECIAL_SPELL_BOOK_WAR_C HANT
SPECIAL_KINGS_FAVOR
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 29. Jul 2011, 10:19
Sorry für den Doppelpost, aber ich habe mein obiges Problem anders gelöst, statt direkt Erfahrung zu erhalten, levelt der Held jetzt einfach schneller.

Aber ich stehe schon wieder vor einem neuen Problem:
Ich wollte einen Waffenswitch coden, der funktioniert an für sich auch prima, allerdings stimmt die Animation nicht, denn nachdem der Waffenswitch aktiviert wurde, wird weiterhin die Angriffsanimation des Fernkampfs verwendet.
        AnimationState                =    FIRING_OR_PREATTACK_A
            Animation                =    MountedSlash
                AnimationName        =    GUGdfHrs_SKL.GUGdfHrs_SPLD
                AnimationMode        =    ONCE
                UseWeaponTiming        = Yes
            End
        End

                    AnimationState                =    FIRING_OR_PREATTACK_A WEAPONSET_TOGGLE_1
Animation = MountedSlashS
AnimationName = GUGdfHrs_SKL.GUGdfHrs_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = MountedStabS
AnimationName = GUGdfHrs_SKL.GUGdfHrs_ATKB
AnimationMode = ONCE
UseWeaponTiming = Yes
End
End

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: MCM aka k10071995 am 29. Jul 2011, 10:39
Könntest du bitte aufhören, den Inhalt deines Postes nochmal neu zu posten und den alten Post zu löschen? Auf dauer nervt es, vier-oder fünfmal den selben Post als neu angezeigt zu bekommen.
Ich würde jetzt mal ganz banal fragen: Kann es sein, dass du die Angriffs-Animationen gedoppelt hast, dh. sie nocheinmal irgendwo anders stehen?

Ich habe mich noch nie mit Animationen beschäftigt, da ich bisher keine neuen Modelle eingebunden habe, aber das wäre das erste, woran ich da denken würde.

Ansonsten würde ich mal versuchen, folgendes in die Animation deines Nahkampfangriffs zu schieben:
AnimationPriority    =    5Frei aus dem Stegreif würde ich sagen, dass diese Zeile dem Spiel sagt, dass sie eine Animation der anderen vorziehen soll, wenn beide ausgelöst werden (Was sie ja eigentlich werden^^).
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 29. Jul 2011, 11:09
Sorry für das mehrfache posten. Wird nichtmehr vorkommen.
Danke für die Antwort.
@topic
Ich habe jetzt mal verschiedene AnimationPriorities ausprobiert, es ändert sich leider nichts.

Und die Animationen sind nicht doppelt vorhanden. Hier mal der ganze Animationsblock:
http://nopaste.info/11cf8e485e.html (http://nopaste.info/11cf8e485e.html)

Danke im Voraus
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: Sanalf 2 am 29. Jul 2011, 13:38
So ein ähnliches Problem hab ich auch mal gehabt, ich hab das damals folgendermaßen gelöst:

Schreib mal statt "FIRING_OR_PREATTACK_A WEAPONSET_TOGGLE_1" einfach "FIRING_OR_PREATTACK_B WEAPONSET_TOGGLE_1", also mach mal aus dem A ein B. Bei meinem Problem hat das damals funktioniert, das war zwar nicht ganz dasselbe, aber einen Versuch wärs ja wert.

mfg
sanalf 2
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet 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
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle 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.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet am 30. Jul 2011, 12:55
Ahh, vielen Dank ea! Jetzt funktioniert es wie gewollt :)
Die Methode sollte ich mir merken :D
MfG
EvilDet
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet 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
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle 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.
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet 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
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle 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
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet 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
Titel: Re:EvilDets Fragenthread
Beitrag von: thepinking 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
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle 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.
Titel: Re:EvilDets Fragenthread
Beitrag von: thepinking 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)
Titel: Re:EvilDets Fragenthread
Beitrag von: Ealendril der Dunkle 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. ;)
Titel: Re:EvilDets Fragenthread
Beitrag von: thepinking 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 ;)
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet 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
Titel: Re:EvilDets Fragenthread
Beitrag von: EvilDet 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