Modderecke > Coding

Melkors Modding Fragen

<< < (2/19) > >>

Ealendril der Dunkle:
Du bearbeitest hier ein Object, das überhaupt nicht verwendet wird. Der Aufseher ist bei uns eine Horde, die nur aus einem Object besteht: MordorAufseher_forHorde und dementsprechend MordorAufseherHorde. Grund dafür ist das Kombinierungssystem mit anderen Horden, was nur möglich ist, wenn der Aufseher selbst in einem Hordenfilter vorliegt.

Melkor Bauglir:
Hallo nochmal!
Die Aufseher funktionieren jetzt in der Tat genau so, wie sie sollen -Vielen Dank dafür noch mal!
Ansonsten stehe ich gerade vor einem neuen Problem: Ich habe vor einiger Zeit versucht, Mordor eine neue Spellbookfähigkeit zu geben. Auch hier kenne ich mich nicht wirklich aus, habe also einfach die science.ini, die systemevil.inc und die specialpower.inc bearbeitet.

Sciene.ini:

--- Code: ---Science SCIENCE_FlammendesOrodruin
  PrerequisiteSciences = SCIENCE_EVIL OR SCIENCE_MORDOR SCIENCE_Barricade OR SCIENCE_MORDOR SCIENCE_CalltheHorde
  SciencePurchasePointCost = EVIL_RANK_2_COST
  SciencePurchasePointCostMP = 15
  IsGrantable = Yes
End
--- Ende Code ---

Systemevil.inc:

--- Code: ---    Behavior = OCLSpecialPower ModuleTag_FlammendesOrodruin
        SpecialPowerTemplate = SpellBookFlammendesOrodruin
        OCL                  = OCL_SpellBookFlammendesOrodruin
        CreateLocation       = CREATE_AT_LOCATION
        AvailableAtStart     = No
        RequirementsFilterMPSkirmish = SPELL_BOOK_REQUIREMENTS_FILTER
        RequirementsFilterStrategic = SPELL_BOOK_REQUIREMENTS_FILTER_STRATEGIC
    End
--- Ende Code ---

Specialpower.inc:

--- Code: ---SpecialPower SpellBookFlammendesOrodruin
Enum = SPECIAL_SPELL_BOOK_RAIN_OF_FIRE
RequiredSciences = SCIENCE_FlammendesOrodruin
ReloadTime = SPELL_RECHARGE_TIME_TIER_1 ; in milliseconds
        InitiateSound           = SpellRainOfFireMS
        RadiusCursorRadius = 70.0
        ViewObjectDuration      = 10000
        ViewObjectRange         = 200
        Flags = RESPECT_RECHARGE_TIME_DISCOUNT WATER_OK
End
--- Ende Code ---

In die CommandSet.inc und die CommandButton.inc habe ich den Spell ebenfalls verfrachtet:

--- Code: ---CommandSet MordorSpellBookCommandSet
    1 = Command_SpellBookGeneralView
    2 = Command_SpellBookUnitView

    3 = Command_SpellBookTaint
    4 = Command_SpellBookEndloseHorden
    5 = Command_SpellBookEyeofSauron

    6 = Command_SpellBookBarricade
    7 = Command_SpellBookCalltheHordeMod           
    8 = Command_SpellBookMorannonOrks             
    9 = Command_SpellBookHerrderErde               
   
   10 = Command_SpellBookFlammendesOrodruin ;Command_SpellBookEvilBombard
   11 = Command_SpellBookDarkness
   12 = Command_SpellBookMachtvergangenerZeitalter
   
   13 = Command_SpellBookBalrogAlly
   14 = Command_SpellBookHammerderUnterwelt    
End

CommandSet MordorSpellStoreCommandSet
    1 = Command_PurchaseSpellTaint
    2 = Command_PurchaseSpellEndloseHorden
    3 = Command_PurchaseSpellEyeofSauron

    4 = Command_PurchaseSpellBarricade
    5 = Command_PurchaseSpellCalltheHordeMod       
    6 = Command_PurchaseSpellMorannonOrks
    7 = Command_PurchaseSpellHerrderErde
   
    8 = Command_PurchaseSpellFlammendesOrodruin ;Command_PurchaseSpellEvilBombard
    9 = Command_PurchaseSpellDarkness
    10 = Command_PurchaseSpellMachtvergangenerZeitalter
   
    11 = Command_PurchaseSpellBalrogAlly
    12 = Command_PurchaseSpellHammerderUnterwelt   
End
--- Ende Code ---

--- Code: ---CommandButton Command_SpellBookFlammendesOrodruin
    Command             = SPELL_BOOK
    SpecialPower        = SpellBookFlammendesOrodruin
    Options             = NEED_TARGET_POS
    TextLabel           = CONTROLBAR:SpellBookFlammendesOrodruin
    ButtonImage         = SBEvil_RainofFire
    ButtonBorderType    = ACTION
    DescriptLabel       = CONTROLBAR:ToolTipSpellBookFlammendesOrodruin
    RadiusCursorType    = RainOfFireRadiusCursor
    CursorName          = AttackObj
    InvalidCursorName   = GenericInvalid
End

CommandButton Command_PurchaseSpellFlammendesOrodruin
    Command             = PURCHASE_SCIENCE
    ButtonBorderType    = UPGRADE
    ButtonImage         = SBEvil_RainofFire
    Science             = SCIENCE_FlammendesOrodruin ;SCIENCE_EvilBombard
    TextLabel           = CONTROLBAR:FlammendesOrodruin
    DescriptLabel       = CONTROLBAR:TooltipFlammendesOrodruin
    RadiusCursorType    = RainOfFireRadiusCursor
End

--- Ende Code ---

Ich sollte vielleicht noch erwähnen, dass Mordors Sperrfeuer auf Dol Guldur durch eine andere Fähigkeit ersetzt ist.

Nun zum Fehler bei dem Ganzen: Das Spiel lässt sich problemlos starten, allerdings stürzt es ohne eine Fehlermeldung ab, wenn ich ein Spiel mit irgendeinem bösen Volk starte.
Weiß irgendjemand hier vielleicht weiter?


Gruß
Melkor Bauglir

PS: Aktuell teste ich alle Dinge mit Rohan. [uglybunti]

Ealendril der Dunkle:
Wenn ein Volk direkt beim Laden abstürzt, dann ist es meistens ein Fehler im Spellbook (wie du richtig erkannt hast). Bei den hier gezeigten Codes sehe ich gerade keinen Fehler, poste bitte mal den OCL + das Object.

Melkor Bauglir:
Lang, lang ist's her, seitdem ich hier das letzte Mal eine Frage stellte. ;)

Also: Dieses Mal geht es nicht so sehr um ein konkretes Problem beim Coden (auch, wenn ich dort auch noch ein paar habe), stattdessen folgende generelle Frage:
Ich habe in meiner Freizeit mittlerweile ein wenig herumprogrammiert, damit aber angefangen, als Edain 3.8.1 noch aktuell war. Da nun ja schon 4.1 draußen ist, wollte ich eigentlich meine Ergebnisse auf diese Version übertragen. Gibt es hierbei eine konfortablere Version, als sämtliche Änderungen aus ihren eigenen .inis zu kopieren und sie in den Dateien von Edain 4.1 einzufügen?


Gruß
Melkor Bauglir

Melkor Bauglir:
Edit: Problem gelöst!

Ich habe wieder ein neues / altes Problem und zwar erneut mit dem Spellbook. Da ich ja bereits wusste, welches Problem da auftreten kann, bin ich eigentlich enorm sorgfältig vorgegangen, allerdings existiert nun der genau gleiche Bug wie davor (das Spiel stürzt ohne Fehlermeldung bzw. nur dem generischen "Runtime-Error" ab, wenn ich ein Spiel mit einem bösen Volk starte).

Also: Mein Ziel war es, die Fähigkeit "Dunkler Schleier", die aktuell Saurons Mund besitzt, ins Spellbook zu verfrachten und dafür "Endlose Horden" zu entfernen.
Ich habe also in der Science.ini folgendes geändert:

--- Code: ---//Science SCIENCE_EndloseHorden --> auskommentierte alte Science
//  PrerequisiteSciences = SCIENCE_EVIL OR SCIENCE_MORDOR
//  SciencePurchasePointCost = EVIL_RANK_1_COST
//  SciencePurchasePointCostMP = 1
//  IsGrantable = Yes
//End

Science SCIENCE_DunklerSchleierMS    //--> neue Science
  PrerequisiteSciences = SCIENCE_EVIL OR SCIENCE_MORDOR
  SciencePurchasePointCost = EVIL_RANK_1_COST
  SciencePurchasePointCostMP = 1
  IsGrantable = Yes
End
--- Ende Code ---

Bei den jeweiligen darauffolgenen Sciences habe ich natürlich auch den nötigen Eintrag übersetzt. Hierbei folgende Problematik: "SCIENCE_EndloseHorden" wird zusätzlich von SCIENCE_MorannonOrcs benötigt, dort habe ich die Bedingung "SCIENCE_EndloseHorden" ersatzlos entfernt:

--- Code: ---Science SCIENCE_MorannonOrcs
  PrerequisiteSciences = SCIENCE_EVIL OR SCIENCE_MORDOR SCIENCE_EyeofSauron
  SciencePurchasePointCost = EVIL_RANK_2_COST
  SciencePurchasePointCostMP = 2
  IsGrantable = Yes
End
--- Ende Code ---

Anschließend habe ich in der Specialpower.inc folgendes verändert:

--- Zitat ---SpecialPower SpellBookDunklerSchleier MS
    Enum                     = SPECIAL_SPELL_BOOK_INDUS TRY
    ReloadTime               = SPELL_RECHARGE_TIME_TIER _1_FAST
    RequiredSciences         = SCIENCE_DunklerSchleierM S
    InitiateAtLocationSound  = SpellWarChant
End

//Spellbook (Originalmod, daher auskommentiert)
//SpecialPower SpellBookEndloseHorden
//    Enum                     = SPECIAL_SPELL_BOOK_PALAN TIR_VISION
//    ReloadTime               = SPELL_RECHARGE_TIME_TIER _1_VERYFAST
//    RequiredSciences         = SCIENCE_EndloseHorden
//    InitiateAtLocationSound  = SpellWarChant
//End
--- Ende Zitat ---

Da der Schleier über einen Modifier aktiviert wird (über den Umweg einer Weapon) habe ich die Fähigkeit genauso wie "Industrie" aufgebaut. Das ist der Eintrag aus der Systemevil.inc:

--- Code: ---    Behavior = OCLSpecialPower ModuleTag_DunklerSchleierMS
        SpecialPowerTemplate   = SpellBookDunklerSchleierMS
AttributeModifer        = SpellBookDunklerSchleierBonusMS
AttributeModiferRange = 50
AttributeModifierAffects = ANY +STRUCTURE ALLIES
TriggerFX = FX_SauronSchleierSound
UpdateModuleStartsAttack = No
AvailableAtStart = No
        RequirementsFilterMPSkirmish    = SPELL_BOOK_REQUIREMENTS_FILTER
        RequirementsFilterStrategic     = SPELL_BOOK_REQUIREMENTS_FILTER_STRATEGIC
    End

//Originalmod (daher auskommentiert)

//    Behavior = OCLSpecialPower ModuleTag_EndloseHorden
//        SpecialPowerTemplate = SpellBookEndloseHorden
//        OCL                  = OCL_EndloseHordenPing
//        CreateLocation        = CREATE_AT_LOCATION
//        AvailableAtStart      = No
//        RequirementsFilterMPSkirmish = SPELL_BOOK_REQUIREMENTS_FILTER
//        RequirementsFilterStrategic = SPELL_BOOK_REQUIREMENTS_FILTER_STRATEGIC
//    End
--- Ende Code ---

Dann in der CommandSet.inc

--- Code: ---CommandSet MordorSpellBookCommandSet
    1 = Command_SpellBookGeneralView
    2 = Command_SpellBookUnitView
    3 = Command_SpellBookGroundView

    4 = Command_SpellBookTaint
    5 = Command_SpellBookEyeofSauron
    6 = Command_SpellBookDunklerSchleierMS ;;;Command_SpellBookEndloseHorden

    7 = Command_SpellBookBarricade
    8 = Command_SpellBookAwakenKankra       
    9 = Command_SpellBookSummonEasterling   
   10 = Command_SpellBookArrowVolleyEvil     
   
   11 = Command_SpellBookCalltheHordeMod
   12 = Command_SpellBookDarkness
   13 = Command_SpellBookSummonHaradrim
   
   14 = Command_SpellBookMachtvergangenerZeitalter
   15 = Command_SpellBookHammerderUnterwelt    
End

CommandSet MordorSpellStoreCommandSet
    1 = Command_PurchaseSpellTaint
    2 = Command_PurchaseSpellEyeofSauron
    3 = Command_PurchaseSpellDunklerSchleierMS ;;;Command_PurchaseSpellEndloseHorden

    4 = Command_PurchaseSpellBarricade
    5 = Command_PurchaseSpellAwakenKankra          ;;;Command_PurchaseSpellArrowVolleyEvil
    6 = Command_PurchaseSpellSummonEasterling      ;;;Command_PurchaseSpellAwakenKankra
    7 = Command_PurchaseSpellArrowVolleyEvil       ;;;Command_PurchaseSpellSummonEasterling
   
    8 = Command_PurchaseSpellCalltheHordeMod   
    9 = Command_PurchaseSpellDarkness
    10 = Command_PurchaseSpellSummonHaradrim
   
    11 = Command_PurchaseSpellMachtvergangenerZeitalter
    12 = Command_PurchaseSpellHammerderUnterwelt   
End
--- Ende Code ---

und in der CommandButton.inc

--- Code: ---CommandButton Command_SpellBookDunklerSchleierMS
    Command             = SPELL_BOOK
    SpecialPower        = SpellBookDunklerSchleierMS
    ButtonImage         = HSHeerscharenausHirngespinsten
    Options             = NEED_TARGET_POS ; NEED_TARGET_ALLY_OBJECT
    TextLabel           = CONTROLBAR:DunklerSchleierMS
    ButtonBorderType    = ACTION
    DescriptLabel       = CONTROLBAR:TooltipDunklerSchleierMS
    RadiusCursorType    = SummonWightsRadiusCursor
    InvalidCursorName   = GenericInvalid
End

CommandButton Command_PurchaseSpellDunklerSchleierMS
    Command                = PURCHASE_SCIENCE
    ButtonBorderType       = UPGRADE
    ButtonImage            = HSHeerscharenausHirngespinsten
    Science                = SCIENCE_DunklerSchleierMS
    TextLabel              = CONTROLBAR:DunklerSchleierMS
    DescriptLabel          = CONTROLBAR:TooltipDunklerSchleierMS
End

//Spellbook (Originalmod, daher auskommentiert)

//CommandButton Command_SpellBookEndloseHorden
//    Command                = SPELL_BOOK
//    SpecialPower           = SpellBookEndloseHorden
//    ButtonImage            = SBEvil_WarChant
//    TextLabel    = CONTROLBAR:EndloseHorden
//    DescriptLabel    = CONTROLBAR:TooltipEndloseHorden
//    ButtonBorderType       = ACTION
//    RadiusCursorType       = PalantirVisionRadiusCursor
//End

//CommandButton Command_PurchaseSpellEndloseHorden
//    Command                = PURCHASE_SCIENCE
//    ButtonBorderType       = UPGRADE
//    ButtonImage            = SBEvil_WarChant
//    Science                = SCIENCE_EndloseHorden
//    TextLabel              = CONTROLBAR:EndloseHorden
//    DescriptLabel          = CONTROLBAR:TooltipEndloseHorden
//End
--- Ende Code ---

diese Einträge geändert bzw. hinzugefügt. (Die CommandButtons sind wieder nach dem gleichen Schema wie der Spellbook-Zauber "Industrie" aufgebaut.)

Der Modifier ist dann einfach:

--- Code: ---ModifierList SpellBookDunklerSchleierBonusMS
    Category = SPELL
    Upgrade  = Upgrade_RaiseShield
    Duration = 0
End
--- Ende Code ---

Von diesen Einträgen (und der Beschreibung in lotr.str abgesehen) besteht meine gesamte .big-Datei aus nichts weiterem. Ich habe ferner in den veränderten Dateien keine weiteren Einträge von "Endlose Horden" finden können.
Ich habe alles jetzt mal möglichst ausführlich geschildert, entschuldigt bitte den langen Post.

Würde mich sehr über Hilfe freuen,
Melkor Bauglir

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln