Author Topic: [TUTORIAL] Eine neue Map in das Spiel einfügen  (Read 2686 times)

0 Members and 1 Guest are viewing this topic.

FaÐe

  • Recruit
  • *
    • View Profile
  • Faction: Rhodok
[TUTORIAL] Eine neue Map in das Spiel einfügen
« on: November 07, 2010, 12:43:52 AM »
Anforderungen:
Python (oberster Link)
Modulsystem (Download -> Module system)
Anleitungen dazu findet ihr hier.

Schritt Eins - Die Map hinzufügen

Als erstes müsst ihr die module_scenes.py des Modulsystems mit Python öffnen. (Rechtsklick -> Edit with IDLE)
Danach sucht ihr folgenden Eintrag:
Code: [Select]
  ("random_multi_plain_large",sf_generate|sf_randomize|sf_auto_entry_points,"none", "none", (0,0),(240,240),-0.5,"0x000000013a001853000aa6a40004406900002920001e4f81",
    [],[], "outer_terrain_plain"),
  ("random_multi_steppe_medium", sf_generate|sf_randomize|sf_auto_entry_points, "none", "none", (0,0),(100, 100), -0.5, "0x0000000128601ae300063d8f0004406900002920001e4f81",
    [],[], "outer_terrain_steppe"),
  ("random_multi_steppe_large", sf_generate|sf_randomize|sf_auto_entry_points, "none", "none", (0,0),(100, 100), -0.5, "0x000000012a00d8630009fe7f0004406900002920001e4f81",
    [],[], "outer_terrain_steppe"),
  ("multiplayer_maps_end",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000001300389800003a4ea000058340000637a0000399b",
    [],[],"outer_terrain_plain"),
Drückt dazu am besten Strg+F und sucht den letzten Eintrag.
Danach müsst ihr einen der vorhandenen Einträge kopieren - achtet darauf, wie groß eure Map sein soll!
Diesen fügt ihr wie folgt ein:
Code: [Select]
  ("random_multi_plain_large",sf_generate|sf_randomize|sf_auto_entry_points,"none", "none", (0,0),(240,240),-0.5,"0x000000013a001853000aa6a40004406900002920001e4f81",
    [],[], "outer_terrain_plain"),
  ("random_multi_steppe_medium", sf_generate|sf_randomize|sf_auto_entry_points, "none", "none", (0,0),(100, 100), -0.5, "0x0000000128601ae300063d8f0004406900002920001e4f81",
    [],[], "outer_terrain_steppe"),
  ("random_multi_steppe_large", sf_generate|sf_randomize|sf_auto_entry_points, "none", "none", (0,0),(100, 100), -0.5, "0x000000012a00d8630009fe7f0004406900002920001e4f81",
    [],[], "outer_terrain_steppe"),
###NEUE MAP NACH DIESEM PUNKT EINSETZEN###

("multi_my_new_map",sf_generate,"none", "none", (0,0),(100,100),-100,"0x000000013002e0b20005154500006e540000235600007b55",
    [],[],"outer_terrain_plain"),

###NEUE MAP VOR DIESEM PUNKT EINSETZEN###
  ("multiplayer_maps_end",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000001300389800003a4ea000058340000637a0000399b",
    [],[],"outer_terrain_plain"),

In die Anführungszeichen kommt der Name eurer Mapdatei. Eine Mapdatei heisst zB "scn_multi_scene_8", in diesem Script lasst ihr allerdings das scn_ weg!
Die folgenden Einträge habe ich noch nicht ganz entziffert. Die lange Hexadezimalzahl ist der sogenannte "Terrain-Code" - er gibt die Größe und das Aussehen der Landschaft an. (Wichtig ist nur die Größe, die Landsachft könnt ihr später editieren.)
Der letzte Eintrag (zB. outer_terrain_plain) gibt den Aussenbereich der Map an - also der Bereich, der NICHT betreten werden kann.
Möglich sind hier:
"outer_terrain_plain" - Hügellandschaft, Grasbedeckt
"outer_terrain_snow" - Hügellandschaft, Schneebedeckt
"outer_terrain_desert" - Wüste
"outer_terrain_beach" - an 3 Seiten eine Hügellandschaft (Grasbedeckt) und an der 4. ein Meer (vgl. Hafenangriff)
"outer_terrain_0" - Nichts. Gut für Insel-maps.
Wichtig ist auch, dass ihr euren neuen Map eintrag DIREKT unter dem letzten einfügt, und nicht, wie in diesem Beispiel mit einer freizeile!

Schritt Zwei - Den Anzeigenamen der Map einstellen

Hierzu benötigt ihr die module_strings.py.
Ihr sucht folgenden Eintrag:
Code: [Select]
("multi_scene_19", "Mahdaar Castle"), #Castle 5
("multi_scene_12", "Random Plains (Medium)"),
("multi_scene_13", "Random Plains (Large)"),
("multi_scene_14", "Random Steppe (Medium)"),
("multi_scene_15", "Random Steppe (Large)"),
("multi_scene_end", "multi_scene_end"),

Sucht dazu am besten nach "multi_scene_end".
Dort müsst ihr folgendes Eintragen:
Code: [Select]
("multi_scene_19", "Mahdaar Castle"), #Castle 5
("multi_scene_12", "Random Plains (Medium)"),
("multi_scene_13", "Random Plains (Large)"),
("multi_scene_14", "Random Steppe (Medium)"),
("multi_scene_15", "Random Steppe (Large)"),
("multi_my_new_map", "Meine neue Map"),
("multi_scene_end", "multi_scene_end"),

Der vordere Eintrag muss mit dem aus der module_scenes.py übereinstimmen!
Der hintere Eintrag ist der Anzeigename eurer Map.

Schritt Drei - Spieltypen festlegen

Hierzu benötigt ihr die module_scripts.py.
Sucht nach folgendem Eintrag:
Code: [Select]
(else_try),
        (eq, ":game_type", multiplayer_game_type_battle),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin, "scn_multi_scene_1"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 1, "scn_multi_scene_2"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 2, "scn_multi_scene_4"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 3, "scn_multi_scene_7"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 4, "scn_multi_scene_9"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 5, "scn_multi_scene_11"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 6, "scn_multi_scene_12"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 7, "scn_multi_scene_14"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 8, "scn_random_multi_plain_medium"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 9, "scn_random_multi_plain_large"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 10, "scn_random_multi_steppe_medium"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 11, "scn_random_multi_steppe_large"),
        (assign, ":num_maps", 12),
  (else_try),

Sucht am besten (Strg+F) nach einem der letzten Einträge.
Über der Liste mit den ganzen "troop_set_slot"-Einträgen sehr ihr folgenden Eintrag:
Code: [Select]
(eq, ":game_type", multiplayer_game_type_battle),Das bedeutet, dass diese Maps Battle-Maps sind.
Es sind mehrere dieser Tabellen untereinander, sucht nach der, wo in dem oberen Eintrag der gewünschte Spieltyp steht.

Danach fügt ihr eure Map ein.
Dazu kopiert ihr einen der vorhandenen Einträge und ändert ihn wie folgt:
Code: [Select]
(else_try),
        (eq, ":game_type", multiplayer_game_type_battle),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin, "scn_multi_scene_1"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 1, "scn_multi_scene_2"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 2, "scn_multi_scene_4"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 3, "scn_multi_scene_7"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 4, "scn_multi_scene_9"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 5, "scn_multi_scene_11"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 6, "scn_multi_scene_12"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 7, "scn_multi_scene_14"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 8, "scn_random_multi_plain_medium"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 9, "scn_random_multi_plain_large"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 10, "scn_random_multi_steppe_medium"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 11, "scn_random_multi_steppe_large"),
        (troop_set_slot, "trp_multiplayer_data", multi_data_maps_for_game_type_begin + 12, "scn_multi_my_new_map"),
        (assign, ":num_maps", 13),
  (else_try),

Wichtig hierbei ist:
1. In die Anführungsstriche muss euer genauer Dateiname! (in diesem Fall "scn_mutli_my_new_map")
2. Der Eintrag "+X" (X=beliebige Zahl) muss geändert werden. sehr euch die Tabelle an, und ihr versteht wie. ;)
3. Im untersten Eintrag ( (assign, ":num_maps", 12) ) müsst ihr die Zahl um eins erhöhen, für JEDE Map die ihr einfügt. In diesem Beispiel müsst ihr die Zahl von 12 auf 13 ändern, da ihr ja nur EINE Map hinzufügt.

Das wars. Speichert ab, bevor ihr die Dateien schliesst!!!

Schritt Vier - Kompilieren

Als letztes findet ihr in dem Ordner ganz oben die "build_module.bat" führt diese einmal aus.

Geschafft! Eure Map könnt ihr jetzt im Spiel anwählen und nach Lust und Laune bearbeiten!
(Multiplayer -> Spiel Hosten -> Eure Map auswählen)

©2010 by sF_FaDe
« Last Edit: November 07, 2010, 03:37:46 PM by FaÐe »

Darwin

  • Watchin' your language...
  • Moderator
  • *
  • Life's a play.
    • View Profile
  • Faction: Neutral
  • M&BWBWF&S
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #1 on: November 07, 2010, 01:00:27 AM »
Sieht gut aus, schönes Tutorial. :)

Kleine Anmerkung:

Schritt Vier - Kompilieren

FaÐe

  • Recruit
  • *
    • View Profile
  • Faction: Rhodok
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #2 on: November 07, 2010, 03:33:25 PM »
Danke.  :lol: Habs geändert.
Könnte man den Thread pinnen, damit's nicht untergeht?
« Last Edit: November 07, 2010, 04:30:56 PM by FaÐe »

Darwin

  • Watchin' your language...
  • Moderator
  • *
  • Life's a play.
    • View Profile
  • Faction: Neutral
  • M&BWBWF&S
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #3 on: November 07, 2010, 04:49:13 PM »
Nein... Ich kann ja nicht alles pinnen, was nützlich ist. ;)


Falls du allerdings noch mehr Tutorials machen möchtest, kannst du gerne einen neuen Thread als eine Art Inhaltsverzeichnis aufmachen, den würde ich anpinnen. :)

FaÐe

  • Recruit
  • *
    • View Profile
  • Faction: Rhodok
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #4 on: November 07, 2010, 07:11:35 PM »
Okay, ich werde noch ein paar machen.  :)

Jarl Chao

  • Knight at Arms
  • *
  • Camping and running is fun.
    • View Profile
  • Faction: Vaegir
  • MP nick: Chao
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #5 on: November 07, 2010, 08:52:50 PM »
Nettes Tutorial, endlich können Suchfunktionnazis auf sowas hinweisen, falls jemand danach fragt.  :D


Wir campen heute, um morgen zu siegen!

bigmek

  • Sergeant at Arms
  • *
  • SUIT UP
    • View Profile
  • Faction: Swadian
  • MP nick: Bigmek
  • WB
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #6 on: November 09, 2010, 01:22:06 PM »
FaDe: oder du könntest es im Wiki posten da gehts ganz sicher nicht unter
wiki.bigmek.at
Du kannst deutsch und spielst M&B Warband?
Dann komm und tritt der Steamgruppe der deutschprachigen warband Spieler bei.
http://steamcommunity.com/groups/MBWD

Mount & Blade Modeller,
Programmierer & selbständiger Web/Soft -wareentwickler:
C++, PHP, HTML, JavaScript, Lua, Python, SQL, GML, C#, VB

Aktuelle Projekte:
Massively Multiplayer Online Adventure (Browsergame) forum.bigmek.at

Amontadillo

  • Grandmaster Knight
  • *
  • Moonstruck Fool
    • View Profile
    • My dA
  • Faction: Neutral
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #7 on: November 09, 2010, 03:59:52 PM »
hmm... nice!
Everything is better with chocolate.
Where a chicken farmer from Hickville-over-the-mountains can trade games with an Asian racist studying in the UK and an Australian living in Jap county.
Quote from: Yuckles
A Jew! Get him!

Beobart

  • Grandmaster Knight
  • *
  • Nude n´ Drunken
    • View Profile
  • Faction: Nord
  • MP nick: Hungry Wolf
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #8 on: November 09, 2010, 04:03:57 PM »
Ich hab es der Tutorial Sammlung hinzugefügt

PRO_Zocker

  • Veteran
  • *
  • Permanently Banned
    • View Profile
  • Faction: Neutral
  • WB
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #9 on: January 07, 2011, 10:49:06 AM »
was heiß es erscheint nichts ?

Tipp.: wenn ihr eine map in den module ordner zieht und dannerst den python script berarebitet und mb startet und die mp läd dann bekommmt ihr nur eine öde lanfdschaft. also müsst ihr eure map davor wegtun oder kpieren und dann reinziehen, nachdem ihr schonmal die map geladen habt; dann habt ihr eure map
« Last Edit: January 07, 2011, 10:52:17 AM by PRO_Zocker »
ich modde gerne für mount and blade warband
und bin immer für fragen offen

Rescrus

  • Regular
  • *
    • View Profile
  • Faction: Rhodok
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #10 on: February 05, 2011, 05:02:35 PM »
Ich hab dasselbe Problem:
Ich kann beim Spiel hosten die neue Map und Battle nich finden obwohl ich es genau so gemacht hab wie beschrieben und alles noch ein paar mal nachgeprüft habe?  :evil:

Ich erbitte Antwort.

Thx, Rescrus
PS: JA, ich habe es auch in module_scripts.py unter Battle.

EDIT: Hat sich ereldigt hab meinen Fehler gefunden ^^
« Last Edit: February 05, 2011, 07:12:43 PM by Rescrus »

Surion

  • Guest
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #11 on: March 04, 2011, 11:10:01 PM »
Bei mir hat früher alles geklappt, jetzt aber nicht mehr. (musste M&B neu instalieren)
Die Bat nicht mehr !? Bei  mir erscheint folgendes:
(click to show/hide)
« Last Edit: March 05, 2011, 09:19:50 AM by Surion »

Duh

  • Grandmaster Knight
  • *
  • I like the way you taste.
    • View Profile
  • Faction: Rhodok
  • MP nick: Sir Simpleton
  • M&BWB
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #12 on: March 04, 2011, 11:47:07 PM »
Bitte bitte Spoiler nutzen.

Sieht so aus als hättest du in module_info.py was falsch gemacht. Da du neu installiert hast, überprüfe mal, ob der Pfad den du dort angegeben hast noch mit deinem MBPfad übereinstimmt.
IOError: [Errno 2] No such file or directory: 'C:/Dokumente und Einstellungen/JaCo Fern/Duda/variables.txt'
Modding Wiki
Silverstag - I cant believe its not butter

Class - we haz it.
I hate when your tampon string gets lost in your inner labia.
There's a massive turd in my rectum that's really annoying me, so I'm off to

Surion

  • Guest
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #13 on: March 05, 2011, 09:21:52 AM »
Hmm alles mit der Bat. hat jetzt geklappt aber wo find ich des Zeug jetzt??

« Last Edit: March 14, 2011, 05:37:58 PM by Surion »

Patta

  • Sergeant Knight at Arms
  • *
    • View Profile
  • Faction: Sarranid
  • MP nick: IT_Patta_Kaiser
Re: [TUTORIAL] Eine neue Map in das Spiel einfügen
« Reply #14 on: March 05, 2011, 09:36:31 AM »
In die Anführungszeichen kommt der Name eurer Mapdatei. Eine Mapdatei heisst zB "scn_multi_scene_8", in diesem Script lasst ihr allerdings das scn_ weg!
Die folgenden Einträge habe ich noch nicht ganz entziffert. Die lange Hexadezimalzahl ist der sogenannte "Terrain-Code" - er gibt die Größe und das Aussehen der Landschaft an. (Wichtig ist nur die Größe, die Landsachft könnt ihr später editieren.)


Wichtig ist auch, dass ihr euren neuen Map eintrag DIREKT unter dem letzten einfügt, und nicht, wie in diesem Beispiel mit einer freizeile!


Zu ersterem: Evtl. könntest du noch drauf eingehen wie man das ingame macht, einen MapCode zu erstellen ;)

Und zum zweiten: Wieso sollte man darauf achten müssen? Bei mir zuminest geht auch mit leeren Zeilen dazwischen alles.


edit: und der EIntrag mit dem sf_generate, da kann man noch andere Sachen angeben, z.B. sf_indoors glaub ich. Muss dann so getrennt werden: sf_generate|sf_indoors|weitere Einträge
Die Einträge müssten in der header_scenes zu finden sein.

edit2: Hier, das sind die:
sf_indoors           = 0x00000001   #The scene shouldn't have a skybox and lighting by sun.
sf_force_skybox      = 0x00000002   #Force adding a skybox even if indoors flag is set.
sf_generate          = 0x00000100   #Generate terrain by terran-generator
sf_randomize         = 0x00000200   #Randomize terrain generator key
sf_auto_entry_points = 0x00000400   #Automatically create entry points
sf_no_horses         = 0x00000800   #Horses are not avaible
sf_muddy_water       = 0x00001000   #Changes the shader of the river mesh