Tutorials
Grundlegendes Über die Inis
MM MoD Programmieren
Kleine Sachen

Ihr braucht den Mod Manager von Hazard, ihr könnt ihn im Downloadbereich finden.
Um den Mod Manager (kurz MM) zu benutzen braucht ihr auch das Net. Framework für Windows, das ihr ebenfalls im Downloadbereich finden könnt.

Dieses Handbuch von Hazard weiht euch in den anfang ein.
Dort lernt ihr die include,object und overwrite Methode kennen.
http://www.sl-website.de/files/tut/MM%20Handbuch%20dt.htm

Den Link mach ich morgen gescheit^^

Als erstes müsst/könnt ihr mal die ini.big mit dem FinalBig-Editor öffnen.
Dort könnt ihr dann auf "edit" und dann auf "extract all" klicken, und sie
so in irgendeinen ordner tun.
Das brauch man zwar nicht unebingt, aber wenn man sie angucken will oder
etwas über die Overwrite- und Includemethode machen will ist sie nützbar...
und bei der Object Methode brauch man sie auch oft.


Nun Zum Anfang..

Ich werde eine Kleinen Mod für euch machen, wo genau das drin ist
was ich hier beschrieben wird.

In Unserer Mod wollen wir den Berserker billiger,stärker und levelbar machen.
Frodo und Sam werden wir zu Gondor hinzufügen, das Stargeld erhöhen wir auch auf 1500
und Gollum wird etwas stärker gemacht, immerhin war er im Film ja
so c.a. genauso stark wie Frodo, wenn nicht stärker!

Wir gehen als erstes in den "mods"- ordner des Mod Managers (MM´s)
Wir erstellen nun also einen Ordner, Der den Namen ''Unser Mod'' trägt.
Dort erstellen wir eine mod.ini , in der wir dann weiteres einfügen (lest dazu das Handbuch von Hazard )
bei der mod.ini.

Als nächstes erstellen wir einen "include"- Ordner...
darin erstellen wir eine ini namens PLAYERTEMPLATE.ini

dort kommt dieses rein:

PlayerTemplate FactionGondor
        BuildableHeroesMP = GondorGandalf GondorAragornMP GondorBoromir GondorFaramir Frodo Sam
        StartMoney        = 1500
End

PlayerTemplate FactionRohan
        StartMoney        = 1500
End

PlayerTemplate FactionIsengard
        StartMoney        = 1500
End

PlayerTemplate FactionMordor
        StartMoney        = 1500
End

Nun haben wir das Stargeld auf 1500 ehöht.
StartMoney = 1500 ist nämlich das Startgeld, natürlich könnt ihr das so verändern wie ihr wollt ;)
Bei Gondor haben wir Frodo und Sam erstellt, aber Frodo und Sam existieren nicht, es existieren ja nur RohanFrodo und RohanSam.
und Dafür benutzen wir die andere Methode des MM´s...


Wir erstellen nun in dem "Unser Mod"- Ordner einen "object" ordner.
Dort erstellen wir zwei Dateien Namens Frodo.ini und Sam.ini

in beiden kommt das rein: (wartet aber noch mit Sam...)

ChildObject Frodo RohanFrodo
BuildCost = 200 
BuildTime = 45
End

Wir haben nun also mit einer genialen MM-Methode einen Neuen Frodo erstellt, der alle Sachen des RohanFrodos enthält, jedoch 200 Kostet und 45 Bauzeit hat (die zeit der Bauzeit kann ich nicht sagen)
Wir mussten das machen weil Frodo ja garnicht existiert im MP...
das Ganze machen wir auch bei Sam, aber bei Sam machen wir das F
rodo in Sam ist...
also so:

ChildObject Sam RohanSam
BuildCost = 200 
BuildTime = 45
End

als nächstes machen wir sie wiederbelebbar.
Das Script dafür ist dieses:

Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = ARAGORN_HEALTH
PermanentlyKilledByFilter = NONE
DodgePercent = HERO_DODGE_PERCENT
End
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING
DeathFX = FX_AragornDieToRespawn
DeathAnimationTime = 3933
InitialSpawnFX = FX_AragornInitialSpawn
RespawnAnim = LEVELED
RespawnFX = FX_ResurrectionAragorn
RespawnAnimationTime = 2000
AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP
ButtonImage = HIFrodo
RespawnRules = AutoSpawn:No Cost:800 Time:60 Health:100%
RespawnEntry = Level:2 Cost:1000 Time:60
RespawnEntry = Level:3 Cost:1000 Time:60
RespawnEntry = Level:4 Cost:1000 Time:60
RespawnEntry = Level:5 Cost:1000 Time:60
RespawnEntry = Level:6 Cost:1000 Time:60
RespawnEntry = Level:7 Cost:1000 Time:60
RespawnEntry = Level:8 Cost:1000 Time:60
RespawnEntry = Level:9 Cost:1000 Time:60
RespawnEntry = Level:10 Cost:1000 Time:60
End

die "Cost" (Kosten)und die "Time" (Bauzeit) sind dann wenn sie lvl 2 sind eben soviel...
Das kommt natürlich auch wieder bei beide rein...

das sieht zusammen so aus:

ChildObject Sam RohanSam
BuildCost = 200
BuildTime = 45
Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = ARAGORN_HEALTH
PermanentlyKilledByFilter = NONE
DodgePercent = HERO_DODGE_PERCENT
End
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING
DeathFX = FX_AragornDieToRespawn
DeathAnimationTime = 3933
InitialSpawnFX = FX_AragornInitialSpawn
RespawnAnim = LEVELED
RespawnFX = FX_ResurrectionAragorn
RespawnAnimationTime = 2000
AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP
ButtonImage = HISam
RespawnRules = AutoSpawn:No Cost:800 Time:60 Health:100%
RespawnEntry = Level:2 Cost:1000 Time:60
RespawnEntry = Level:3 Cost:1000 Time:60
RespawnEntry = Level:4 Cost:1000 Time:60
RespawnEntry = Level:5 Cost:1000 Time:60
RespawnEntry = Level:6 Cost:1000 Time:60
RespawnEntry = Level:7 Cost:1000 Time:60
RespawnEntry = Level:8 Cost:1000 Time:60
RespawnEntry = Level:9 Cost:1000 Time:60
RespawnEntry = Level:10 Cost:1000 Time:60
End
End


So. nun müssen wir sie noch Levelbar machen.

wir machen dazu eine experiencelevels.ini

Dort fügen wir das ein:

 

ExperienceLevel HobbitLevel1
TargetNames = Frodo Sam
RequiredExperience = 1
ExperienceAward = 70
Rank = 1
SelectionDecal
Texture = decal_hero_good
End
End

 

ExperienceLevel HobbitLevel1  ist der Name des ganzen, ich hab hier mal hobbit genommen weil es für Hobbits ist.

TargetNames  sind die namen von für wen es gilt, hier kommt in unserem Falle Frodo und Sam hin weil es jafür die beiden ist...

RequiredExperience    ist die Erfahrung die sie brauchen um lvl's aufzusteigen, da das das lvl 1 ist kommt hier nur 1 hin, weil sie sind ja sonst lvl 0 und brauchen xx xp für lvl1.

ExperienceAward  verleiht neue Punkte von denen Fähigkeiten gekauft werden können.

Rank  ist der Rang, welcher bei der Einheit angezeigt wird, man könnte hier Rang 10 hinschreiben dann sieht es so aus alls wäre er am anfang lvl 10 ;)

Texture  ist das wie es aussehen soll, hier kommt bei helden immer nur decal_hero_good oder decal_hero_evil  hin,

je ob sie gut oder böse sind...

 

 

So und nun zu lvl 2.

das sieht bei mir so aus:

ExperienceLevel HobbitLevel2
TargetNames = Frodo Sam
RequiredExperience = 50
ExperienceAward = 80
AttributeModifiers = HeroLevelUpDamage1
Rank = 2
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

 

Ich erläutere mal was neu ist:

RequiredExperience wurde erhöt. Weil man von lvl 1 auf lvl 2 mehr xp  benötigt.

Atributemodifiers wurde auf herolevelupdamage1 gemacht.

Rang wurde auf 2 erhöht.

und das macht man bis 10.

also so:

 


ExperienceLevel HobbitLevel1
TargetNames = Frodo Sam
RequiredExperience = 1
ExperienceAward = 70
Rank = 1
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel2
TargetNames = Frodo Sam
RequiredExperience = 50
ExperienceAward = 80
AttributeModifiers = HeroLevelUpDamage1
Rank = 2
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel3
TargetNames = Frodo Sam
RequiredExperience = 100
ExperienceAward = 90
AttributeModifiers = HeroLevelUpDamage3
Rank = 3
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel4
TargetNames = Frodo Sam
RequiredExperience = 200
ExperienceAward = 100
AttributeModifiers = HeroLevelUpDamage4
Rank = 4
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel5
TargetNames = Frodo Sam
RequiredExperience = 300
ExperienceAward = 110
AttributeModifiers = HeroLevelUpDamage5
Rank = 5
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel6
TargetNames = Frodo Sam
RequiredExperience = 400
ExperienceAward = 120
AttributeModifiers = HeroLevelUpDamage6
Rank = 6
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel7
TargetNames = Frodo Sam
RequiredExperience = 500
ExperienceAward = 130
AttributeModifiers = HeroLevelUpDamage7
Rank = 7
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel8
TargetNames = Frodo Sam
RequiredExperience = 600
ExperienceAward = 140
AttributeModifiers = HeroLevelUpDamage8
Rank = 8
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel9
TargetNames = Frodo Sam
RequiredExperience = 700
ExperienceAward = 150
AttributeModifiers = HeroLevelUpDamage9
Rank = 9
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

ExperienceLevel HobbitLevel10
TargetNames = Frodo Sam
RequiredExperience = 800
ExperienceAward = 160
AttributeModifiers = HeroLevelUpDamage10
Rank = 10
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_good
End
End

 

So wären wir mit den Hobbits fertig.

Nun zu den Berserkern!

Wir machen in dem object-ordner eine Berserker.ini

Dort kommt dies rein:

ChildObject Berserker IsengardBerserker
BuildCost = 100
BuildTime = 20
End

So haben wir auch einen Neuen Berserker erstellt der Berserker heißt (hättet ih nicht gedacht oder?^^)

 

Aber wir können ihn  noch nicht in dem Uruk-hai Gebäude bauen...

Dazu kommen wir jetzt.

Wir erstellen also eine neue ini im object ordner die den namen UrukGrube.ini  hat.

Dort kommt dies rein:

ChildObject IsengardUrukPit IsengardUrukPit
CommandSet = UrukGrubeCommandSet
BuildCost = 300
BuildTime = 20
End

Wir haben nun die alte UrukHai-Grube verändert, und die UrukGrubeCommandset.ini hineingefügt., hat aber immernoch alles was das andere hat.

Nun kommen wir aber zur commandset.ini.

Wir haben ja oben geschrieben:

CommandSet = UrukGrubeCommandSet aber diese Commandset gibt es noch garnicht. und diese erstellen wir jetzt.

Wir gehen in den include-Ordner des MM's und erstellen eine ini mit dem namen: Commandset.ini

Dort kommt folgendes rein:

CommandSet UrukGrubeCommandSet
  1 = Command_ConstructIsengardFighterHorde
  2 = Command_ConstructIsengardUrukCrossbowHorde
  3 = Command_ConstructIsengardPikemanHorde
  4     = Command_ConstructBerserker
  5 = Command_Sell
End

Wir haben die alte commandset.ini der Urukgrube genommen, nur das Construct Isengard Berserker in Berserker und oben den commandsetnamen geändert.

So sieht die richtige Commandset aus:

CommandSet IsengardUrukPitCommandSet
  1 = Command_ConstructIsengardFighterHorde
  2 = Command_ConstructIsengardUrukCrossbowHorde
  3 = Command_ConstructIsengardPikemanHorde
  4     = Command_ConstructIsengardBerserker
  5 = Command_Sell
End

Nun machen wir ihn levelbar, wir fügen in der experiencelevels.ini im include ordner das hinzu:


ExperienceLevel BerserkerLevel1
TargetNames = B
erserker
RequiredExperience = 1
ExperienceAward = 70
Rank = 1
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel2
TargetNames =
Berserker
RequiredExperience = 50
ExperienceAward = 80
AttributeModifiers = HeroLevelUpDamage1
Rank = 2
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel3
TargetNames = Berserker                                                                                                                                                                                                                                                                                          
RequiredExperience = 100
ExperienceAward = 90      
AttributeModifiers = HeroLevelUpDamage3
Rank = 3
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel4
TargetNames = Berserker                                                                                                                                                                                                                                                                                           RequiredExperience = 200
ExperienceAward = 100
AttributeModifiers = HeroLevelUpDamage4
Rank = 4
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel5
TargetNames = Berserker
RequiredExperience = 300
ExperienceAward = 110
AttributeModifiers = HeroLevelUpDamage5
Rank = 5
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel6
TargetNames = Berserker
RequiredExperience = 400
ExperienceAward = 120
AttributeModifiers = HeroLevelUpDamage6
Rank = 6
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel7
TargetNames = Berserker
RequiredExperience = 500
ExperienceAward = 130
AttributeModifiers = HeroLevelUpDamage7
Rank = 7
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel8
TargetNames = Berserker                                                                                                                                                                                                                                                                                                 RequiredExperience = 600
ExperienceAward = 140
AttributeModifiers = HeroLevelUpDamage8
Rank = 8
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel9
TargetNames =Berserker
RequiredExperience = 700
ExperienceAward = 150
AttributeModifiers = HeroLevelUpDamage9
Rank = 9
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

ExperienceLevel BerserkerLevel10
TargetNames = Berserker                                                                                                                                                                                                                                                                                           RequiredExperience = 800
ExperienceAward = 160
AttributeModifiers = HeroLevelUpDamage10
Rank = 10
LevelUpFx = FX:GandalfLevelUp1FX
SelectionDecal
Texture = decal_hero_evil
End
End

 

Was zu Frodo und Sam geändert wurde, könnt ihr ja selber sehen, TargetNames, Experiencelevel und das Decal_hero_evil wurde geändert.

Und nun kommen wir zur stärke der Berserker.

Wir erstellen im object ordner des MM´s eine neue ini die den namen berserker_define.ini hat.

In diese ini kopieren wir den Abschnitt des Normalen Berserkers aus der gamedata.ini hinzu

 also diesen:

;------------------------BERSERKER-------------
#define ISENGARD_BERSERKER_BUILDCOST   200
#define ISENGARD_BERSERKER_BUILDTIME   20
#define ISENGARD_BERSERKER_VISION_RANGE   150
#define ISENGARD_BERSERKER_HEALTH   200
#define ISENGARD_BERSERKER_HEALTH_DAMAGED  200
#define ISENGARD_BERSERKER_HEALTH_RECOVERY_TIME  10000

#define ISENGARD_BERSERKER_LVL1_EXP_AWARD   10

#define ISENGARD_BERSERKER_PREATTACKDELAY   567
#define ISENGARD_BERSERKER_DELAYBETWEENSHOTS   633
#define ISENGARD_BERSERKER_FIRINGDURATION   633
#define ISENGARD_BERSERKER_DAMAGE   80
#define ISENGARD_BERSERKER_RADIUS   15
#define ISENGARD_BERSERKER_ARC    90
#define ISENGARD_BERSERKER_BOUNTY_VALUE   10
;has an 80% dodge chance

#define BERSERKER_DAMAGED_SPEED_MULT 1.1
#define BERSERKER_DAMAGED_DAMAGE_MULT 1.1
#define BERSERKER_REALLY_DAMAGED_SPEED_MULT 1.5
#define BERSERKER_REALLY_DAMAGED_DAMAGE_MULT 1.5

 

Nur ändern wir den Berserker namen.

Das sieht so aus:

;------------------------BERSERKER-------------
#define BERSERKER_VISION_RANGE   150
#define BERSERKER_HEALTH   200
#define BERSERKER_HEALTH_DAMAGED  200
#define BERSERKER_HEALTH_RECOVERY_TIME  10000

#define BERSERKER_LVL1_EXP_AWARD   10

#define BERSERKER_PREATTACKDELAY   567
#define BERSERKER_DELAYBETWEENSHOTS   633
#define BERSERKER_FIRINGDURATION   633
#define BERSERKER_DAMAGE   80
#define BERSERKER_RADIUS   15
#define BERSERKER_ARC    90
#define BERSERKER_BOUNTY_VALUE   10
;has an 80% dodge chance

#define BERSERKER_DAMAGED_SPEED_MULT 1.1
#define BERSERKER_DAMAGED_DAMAGE_MULT 1.1
#define BERSERKER_REALLY_DAMAGED_SPEED_MULT 1.5
#define BERSERKER_REALLY_DAMAGED_DAMAGE_MULT 1.5

 

Nun kommen wir zur stärke des Berserkers.

VISION_RANGE = Sichtweite
BOUNTY_VALUE = Beutegeld für erledigten Gegn.
HORDE_VISION_RANGE = Sichtweite der Horde
SHROUD_RANGE = Schutztreichweite?
PREATTACKDELAY = Wartezeit vor Angriff
FIRINGDURATION = Ausdauer beim Schießen
RELOADTIME = Nachladezeit
DAMAGE = Schaden normal
FORGEDBLADES_UPGRADE = geschmiedete Klingen
FORGEDBLADES_UPGRADE_DAMAGE = " Schaden
FLAMERANGE = Flammenreichweite
PORTER = Ist der Händler (wie in der Mordormission mit Schubkarren)
MOUNTED_DAMAGE = Schaden auf dem Pferd
Damage = der normale Schaden
Damaged_Speed = Schnelligkeit des angriffes
Radius = der Radius
Health = Leben

 

So, und wir ändern das obere mal in das:

 

;------------------------BERSERKER-------------
#define BERSERKER_VISION_RANGE   180
#define BERSERKER_HEALTH   1000
#define BERSERKER_HEALTH_DAMAGED  500
#define BERSERKER_HEALTH_RECOVERY_TIME  10000

#define BERSERKER_LVL1_EXP_AWARD   10

#define BERSERKER_PREATTACKDELAY   567
#define BERSERKER_DELAYBETWEENSHOTS   633
#define BERSERKER_FIRINGDURATION   633
#define BERSERKER_DAMAGE   150
#define BERSERKER_RADIUS   20
#define BERSERKER_ARC    90
#define BERSERKER_BOUNTY_VALUE   20
;has an 80% dodge chance

#define BERSERKER_DAMAGED_SPEED_MULT 1.1
#define BERSERKER_DAMAGED_DAMAGE_MULT 1.1
#define BERSERKER_REALLY_DAMAGED_SPEED_MULT 1.5
#define BERSERKER_REALLY_DAMAGED_DAMAGE_MULT 1.5

Unser Berserker hat nun 1000 Leben, Hat eine Sichtweite von 180.

Hat nen größeren Angriffsradius und macht mehr Schaden.

Somit wären wir mit unserer Mod fertig.

 

PS: Die Mod ist in unserer Downloadsektion unter "Mods".

 

Mfg ClouD_Strife


 

Kostenlose Homepage erstellt mit Web-Gear