Modderecke > Coding
Map: Tor von Minas Tirith-Codingprobleme
Only True Witchking:
Hallo Edain Community!
Ich bin schon seit längerem ein großer Fan der Mod. In letzter Zeit habe ich mich Intensiv mit Mapping beschäftigt, und auch schon einige kleinere Maps erstellt.
Mein neuestes Projekt ist eine Map mit dem Namen "Das Tor von Minas Tirith", bei der es darum geht, das Tor von Minas Tirith so lange gegen Mordororks und Mordor-Bogenschützen zu halten, bis Grond, einige Kampftrolle und eine Masse Morgulorks auftauchen. Nachdem Grond das Tor einrammt, ist das Ziel, alle Trolle und Morgulorks zu töten, bevor Gandalf stirbt.
Ich habe versucht, die normalen Mordororks etwas zu schwächen, damit es mehr an die Extended Edition vom Film erinnert, wo die Gondor-Bogenschützen hunderte von Orks niederschießen. Dazu habe ich in der map.ini, mit Hilfe der Gamedata.ini, folgenden Code gebaut:
--- Code: ---;------------------------FIGHTER-------------
Object Mordor_Fighter
ReplaceModule ModuleTag_0222
#define MORDOR_FIGHTER_BUILDCOST 100 ; originally 100
#define MORDOR_FIGHTER_BUILDTIME 25
#define MORDOR_FIGHTER_HEALTH 40 ; originally 125
#define MORDOR_FIGHTER_HEALTH_DAMAGED 50
#define MORDOR_FIGHTER_HEALTH_RECOVERY_TIME 10000
#define MORDOR_FIGHTER_VISION_RANGE 175
#define MORDOR_FIGHTER_HORDE_VISION_RANGE 175
#define MORDOR_FIGHTER_HORDE_SHROUDCLEAR_RANGE 400
#define MORDOR_FIGHTER_DAMAGE 20 ; our initial faction level 30
#define MORDOR_FIGHTER_DAMAGE_UPGRADE 60
#define MORDOR_FIGHTER_PREATTACKDELAY 633
#define MORDOR_FIGHTER_DELAYBETWEENSHOTS 1000
#define MORDOR_FIGHTER_FIRINGDURATION 1000
#define MORDOR_FIGHTER_BOUNTY_VALUE 1
End
--- Ende Code ---
Wenn ich dann im Spiel versuche, die Map zu starten, stürzt das Spiel sofort mit folgender Meldung ab: "ReplaceModule ModuleTag_0222 was not found for Mordor_Fighter, cannot continue. (Blablabla.)"
Ich habe dem ModuleTag schon 20 verschiedene Namen gegeben, und es funktioniert immer noch nicht.
Kann mir jemand sagen, was ich falsch gemacht habe?
Allerdings habe ich bisher keine Erfahrung mit Coding, nur mit Skripten, deshalb kann es auch sein, dass ich völligen Müll gecodet habe. Auch dann würde ich gerne wissen, was ich machen muss.
Schonmal Danke im Vorraus,
TheOnlyTrueWitchking
Gnomi:
ReplaceModule ersetzt ein vorhandenes Module. Wenn du sagst:
--- Code: ---ReplaceModule ModuleTag_02
Module ModuleTag_New
[..]
End
End
--- Ende Code ---
Dann muss es ein Module mit dem Namen ModuleTag_02 geben, dieses wird gelöscht und dafür das Module mit dem Namen ModuleTag_New eingefügt. (also quasi "ersetzt", darum auch Replace)
Dein Fehler ist also, dass du ein nicht vorhandenes Module ersetzen willst. Die Fehlermeldung besagt dann auch das: "Can't find Module"
Ebenso ist die sache mit dem "define" bei dir falsch.
Diese defines stehen NICHT in der Einheit drinnen, sondern in einer eigenen Ini. (und die defines funktionieren auch in einer map.ini nicht)
Schau dir Mal die ini der Mordororks an.
Willst du das Leben von Orks ersetzen?
Dann such dir das Module für das Leben raus und ersetze es über ReplaceModule und schreib einfach bei maxHealth einen neuen Eintrag rein.
Willst du den Schaden verändern? Mach eine neue weapon und sag per weaponset in dem object mordorfighter, dass er sie verwenden soll.
Das könnte zum Beispiel so aussehen:
--- Code: ---Weapon MordorWarriorAxeGruenMap_Edain ; BALANCE Orc Warrior Weapon ;Orc Fighter
LeechRangeWeapon = Yes
AttackRange = STANDARD_MELEE_ATTACK_RANGE
MeleeWeapon = Yes
DelayBetweenShots = MORDOR_FIGHTER_DELAYBETWEENSHOTS ; time between shots, msec
PreAttackDelay = MORDOR_FIGHTER_PREATTACKDELAY ; 300 is mace swing delay time before contact with target.
PreAttackType = PER_SHOT ; Do the delay each time we attack
FireFX = FX_GondorSwordHit
FiringDuration = MORDOR_FIGHTER_FIRINGDURATION ; Duration of the mace swing
DamageNugget ; A basic Nugget that just does damage
Damage = 150 ; balanced from 8
Radius = 0.0
DelayTime = 0
DamageType = SLASH
DamageFXType = SWORD_SLASH
DeathType = NORMAL
End
End
Object Mordorfighter
ReplaceModule ModuleTag_02 ; ActiveBody
Body = ActiveBody ModuleTag_Overide
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = 1200 ; balanced from 100
MaxHealthDamaged = 50 ;MORDOR_FIGHTER_HEALTH_DAMAGED
BurningDeathBehavior = Yes
BurningDeathFX = FX_InfantryBurningFlame
End
End
WeaponSet
Conditions = None
Weapon = PRIMARY MordorWarriorAxeGruenMap_Edain ;MordorWarriorAxeGruenMap_EdainGoth
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
End
[\code]
Genauso kannst du auch Armor etc. verändern.
Bedenke aber: Bei Fernkämpfern lässt sich [b]nicht[/b] die Weapon durch eine map.ini verändern.
--- Ende Code ---
Only True Witchking:
Danke für die Antwort, Gnomi.
Ich habe jetzt folgendes in die Map.ini geschrieben:
--- Code: ---Object Mordorfighter
ReplaceModule ModuleTag_02
Body = ActiveBody ModuleTag_Overide
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = 50
MaxHealthDamaged = 165
BurningDeathBehavior = Yes
BurningDeathFX = FX_InfantryBurningFlame
End
End
--- Ende Code ---
Allerdings kommt die Warnung "ModuleTag_02 was not found", obwohl in der Mordorfighter.ini doch ganz klar ein ModuleTag_02 definiert ist. Ich weiß also wieder nicht weiter. Wie gesagt, ich habe noch nie etwas gecodet.
Außerdem noch eine Frage: Wofür steht eigentlich MaxHealthDamaged = 165?
Und muss ich das auch verändern?
Gnomi:
Mein Fehler. Die Einheit heißt MordorFighter, nicht Mordorfighter. Groß und Kleinschreibung ist wichtig - bei MordorFighter sollte es das geben, bei Mordorfighter (da die Einheit nicht im Grundspiel existiert) natürlich nicht.
Sowas passiert, wenn man schnell sowas selbst schreibt. :D
MaxHealthdamaged kann (vor allem bei Gebäuden) dafür benutzt werden, dass sich das Modell dort ändert - Viele Gebäude fallen ja bei 50% Leben etwas zusammen - das ist weil die Leben eben unter MaxHealthdamaged drunter ist. (Systeme ala "Wenn Einheiten nur noch 50% Leben haben werden sie stärker" müssten auch alle darüber funktionieren)
Only True Witchking:
Vielen Dank! Es funktioniert jetzt wie gewünscht!
Außerdem war es nicht dein Fehler, ich hab ja sogar in die mordorfighter.ini geschaut, wo ich ganz klar hätte lesen können:
--- Code: ---Object MordorFighter
--- Ende Code ---
8-|
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln