añadir aldeas y castillos AYUDA, para el mod hispania 1200

正在查看此主题的用户

saludos,

como supongo que algunos ya sabreis estoy desarrollando el mod hispania 1200, pero me he encontrado conque al intentar añadir aldeas y castillos se me descolocan totas las escenas del juego. me gustaria que alguien que lo ha conseguido me explique exactamente como se hace porque solo he encontrado un tutorial y no me funciona  :cry:
 
Necesitas toquetear unos cuantos archivos del MS, module_parties.py, module_troops.py (para los ancianos de las aldeas), module_scenes.py (para asignar a las nuevas aldeas y/o castillos sus respectivas escenas), la carpeta de SceneObj (duplica los *.sco -creo que se llamaban así, hace mil que no lo miro-) para los archivos de cada ciudad...

Vamos por partes, lo primero es saber cuántas ciudades, castillos y aldeas nuevas necesitas. Cada tipo de localización lleva consigo un número determinado de escenarios, así pues, una aldea sólo tiene un *.sco asignado, un castillo creo que tiene 3 (la planta del castillo, la sala del trono y las mazmorras... ahora no recuerdo si el asedio es una scene aparte también) y las ciudades tienen 8 (la planta de la ciudad, mapa de asedio, sala del trono, la taberna, mazmorras, la arena de justas y torneos... y dos más (hace más de un año que no toco el juego, no me tiréis piedras, por favor xD)

Una vez tienes claro lo que quieres añadir, vamos a module_parties.py y copiamos tantas líneas como escenas nuevas necesitemos:

插入代码块:
("town_21","Ahmerrad", icon_town_desert|pf_town, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(130.5, -78.5),[], 330),

Este es de una ciudad, pero sirve como ejemplo para el resto. No se como de familiarizado estás con el MS, pero por si acaso, explicare cada parte:

town_21 es el ID de la ciudad, si quieres añadir ciudades, simplemente coloca las nuevas a partir de la última ciudad, nombrándolas con numeración consecutiva town_23, town_24... y así sucesivamente.

Después, Ahmerrad, obviamente es el nombre de la ciudad, pon el nombre que desees.

Lo siguiente son las "flags" de esa localización en particular:

Puedes encontrar previsualizaciones de los icon_whatever entre los *.brf del juego, eso define el icono de la localización (como si colocas el icono de una vaca), lo que viene después pf_town /pf_castle /pf_village define el tipo de localización y como debe actuar el juego cuando se trate de ella. blablablablablabla... (130.5, -78.5) son las coordenadas de la localización, y el último número creo que hacía referencia a la guarnición (que me corrijan si me equivoco).

Si quieres añadir un castillo, haces lo mismo, solo que...

插入代码块:
("castle_1","Culmarr_Castle",icon_castle_a|pf_castle, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-101.3, -21),[],50),

debe llevar el ID castle_X, donde X es el número de referencia, y los colocarás al final de la lista de castillos. Lo mismo se aplica para las aldeas.

插入代码块:
("village_119","Iunet",  icon_village_c|pf_village, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(89, -115.5),[], 40),

Una vez tienes realizados esos cambios, los guardas y pasamos a la carpeta SceneObj, donde copiaras y renombrarás tantos archivos como ciudades(x:cool:, castillos (x3... o x4, no lo recuerdo) y aldeas (x1). Si los archivos siguen la siguiente nomenclatura:

插入代码块:
scn_town_21_alley.sco
scn_town_21_arena.sco
scn_town_21_castle.sco
scn_town_21_center.sco
scn_town_21_prison.sco
scn_town_21_store.sco
scn_town_21_tavern.sco
scn_town_21_walls.sco

lo único que deberás cambiar será el número para que se ajuste a la nueva localización:

插入代码块:
scn_town_23_alley.sco
scn_town_23_arena.sco
scn_town_23_castle.sco
scn_town_23_center.sco
scn_town_23_prison.sco
scn_town_23_store.sco
scn_town_23_tavern.sco
scn_town_23_walls.sco

Cuando ya tenemos las scenes copiadas, es hora de referenciarlas desde el MS, así que vamos a module_scenes.py y empezamos a copiar y pegar como locos (del ejemplo del link que puse antes de editar...)

插入代码块:
("town_22_center",sf_generate,"none", "none",(0,0),(100,100),-100,"0x000000025a03253200042d08000079d6000004fd00006910",
    [],[],"outer_terrain_desert"),
  ("town_23_center",sf_generate,"none", "none", (0,0),(100,100),-100,"0x0000000130001887000334d0000073ed00004f1a00007a35",
    [],[],"outer_terrain_steppe"),


  ("town_22_castle",sf_indoors, "arabian_interior_keep_a", "bo_arabian_interior_keep_a", (-100,-100),(100,100),-100,"0x00000007300005000002308c00004a840000624700004fda",
    ["exit"],["town_22_seneschal"]),
  ("town_23_castle",sf_indoors, "interior_castle_n", "bo_interior_castle_n", (-100,-100),(100,100),-100,"0",
    ["exit"],["town_23_seneschal"]),


  ("town_22_tavern",sf_indoors, "interior_town_house_steppe_c", "bo_interior_town_house_steppe_c", (-100,-100),(100,100),-100,"0",
    ["exit"],[]),
  ("town_23_tavern",sf_indoors, "interior_tavern_b", "bo_interior_tavern_b", (-100,-100),(100,100),-100,"0",
    ["exit"],[]),

Así con todas las localizaciones (no he colocado todas las líneas, pero obviamente tienes que copiar los 8 tipos distintos, para que no quede nada colgando sin referenciar y después te de problemas.

Para mejorar la inmersión, y no tener una Al-Isbili rodeada de nieve,
插入代码块:
("town_22_center",sf_generate,"none", "none",(0,0),(100,100),-100,"0x000000025a03253200042d08000079d6000004fd00006910",
    [],[],"outer_terrain_desert"),

ese "outer_terrain_desert" define el escenario que se ve más allá de los límites del mapa, tienes los siguientes:

outer_terrain_plain              planicies
outer_terrain_desert            desiertos
outer_terrain_steppe          estepas
outer_terrain_town_thir_1  para Thir (porque tiene puerto, es especial para esa ciudad)
outer_terrain_snow              nieve

Una vez tenemos eso, vamos a asignar los NPCs a sus correspondientes lugares (sigo usando el ejemplo de la ciudad, aunque es aplicable para todos los tipos, sólo que en el caso de las aldeas, lo que copias es el village_elder). Para eso vamos a module_troops.py:

Buscamos los siguientes NPCs y los renombramos (cambiando el número del ID) para que se ajusten al castillo/ciudad/aldea (en el caso del village_elder):

插入代码块:
  ["town_22_seneschal", "{!}Town 22 Seneschal", "{!}Town 14 Seneschal",  tf_hero|tf_is_merchant, 0, reserved,  fac_neutral,[ itm_blue_gambeson,      itm_blue_hose],     def_attrib|level(2), wp(20), knows_common, 0x000000000004728b01c293c694944b05],
  ["town_23_seneschal", "{!}Town 23 Seneschal", "{!}Town 14 Seneschal",  tf_hero|tf_is_merchant, 0, reserved,  fac_neutral,[ itm_blue_gambeson,      itm_blue_hose],     def_attrib|level(2), wp(20), knows_common, 0x000000000004728b01c293c694944b05],


  ["town_22_arena_master", "Tournament Master"," {!}Tournament Master",tf_hero|tf_randomize_face, scn_town_22_arena|entry(52), reserved,  fac_commoners, [itm_padded_leather,    itm_hide_boots],    def_attrib|level(2),wp(20),knows_common,man_face_middle_1, man_face_older_2],
  ["town_23_arena_master", "Tournament Master"," {!}Tournament Master",tf_hero|tf_randomize_face, scn_town_23_arena|entry(52),reserved,  fac_commoners,[itm_fur_coat,    itm_hide_boots],    def_attrib|level(2),wp(20),knows_common,man_face_middle_1, man_face_older_2],

  ["town_22_armorer", "Armorer", "{!}Armorer",  tf_hero|tf_randomize_face|tf_female|tf_is_merchant, 0, 0, fac_commoners,[itm_sarranid_common_dress,         itm_sarranid_head_cloth       ],def_attrib|level(5),wp(20),knows_inventory_management_10, woman_face_1, woman_face_2],
  ["town_23_armorer", "Armorer", "{!}Armorer",  tf_hero|tf_randomize_face|          tf_is_merchant, 0, 0, fac_commoners,[itm_fur_coat,         itm_nomad_boots     ],def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],

  ["town_22_weaponsmith", "Weaponsmith", "{!}Weaponsmith",tf_hero|tf_randomiz  e_face|          tf_is_merchant, 0, 0, fac_commoners,[itm_linen_tunic,     itm_sarranid_boots_a],def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],  
  ["town_23_weaponsmith", "Weaponsmith", "{!}Weaponsmith", tf_hero|tf_randomize_face|          tf_is_merchant, 0, 0, fac_commoners,[itm_shirt,           itm_hide_boots],def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],

  ["town_22_tavernkeeper", "Tavern_Keeper", "{!}Tavern_Keeper", tf_hero|tf_randomize_face,           scn_town_22_tavern|entry(9),0,  fac_commoners,[itm_sarranid_cloth_robe_b,               itm_sarranid_boots_a],def_attrib|level(2),wp(20),knows_common, mercenary_face_1, mercenary_face_2],  
  ["town_23_tavernkeeper", "Tavern_Keeper", "{!}Tavern_Keeper", tf_hero|tf_randomize_face,           scn_town_23_tavern|entry(9),0,  fac_commoners,[itm_leather_apron,       itm_hide_boots],def_attrib|level(2),wp(20),knows_common, mercenary_face_1, mercenary_face_2],


  ["town_22_merchant", "Merchant", "{!}Merchant",          tf_hero|tf_randomize_face|tf_is_merchant, scn_town_22_store|entry(9),0, fac_commoners,    [itm_leather_apron, itm_leather_boots                   ],def_attrib|level(2),wp(20),knows_inventory_management_10, man_face_young_1, man_face_older_2],  
  ["town_23_merchant", "Merchant", "{!}Merchant", tf_female|tf_hero|tf_randomize_face|tf_is_merchant, scn_town_23_store|entry(9),0, fac_commoners,    [itm_woolen_dress,  itm_leather_boots,  itm_female_hood ],def_attrib|level(2),wp(20),knows_inventory_management_10, woman_face_1, woman_face_2],


  ["town_22_horse_merchant", "Horse Merchant", "{!}Town 18 Horse Merchant",tf_hero|tf_randomize_face|tf_is_merchant|tf_female,  0, 0, fac_commoners,[itm_sarranid_common_dress_b,       itm_blue_hose,      itm_sarranid_felt_head_cloth_b],     def_attrib|level(5),wp(20),knows_inventory_management_10, woman_face_1, woman_face_2],
  ["town_23_horse_merchant", "Horse Merchant", "{!}Town 16 Horse Merchant", tf_hero|tf_randomize_face|tf_is_merchant,            0, 0, fac_commoners,[itm_leather_jacket,      itm_hide_boots],                        def_attrib|level(5),wp(20),knows_inventory_management_10, man_face_young_1, man_face_older_2],


  ["town_22_mayor", "Guild_Master", "{!}Guild_Master", tf_hero|tf_randomize_face, 0,reserved,  fac_neutral,[ itm_sarranid_cloth_robe,      itm_sarranid_boots_a],     def_attrib|level(2),wp(20),knows_common,  man_face_middle_1, mercenary_face_2],
  ["town_23_mayor", "Guild_Master", "{!}Guild_Master", tf_hero|tf_randomize_face, 0,reserved,  fac_neutral,[ itm_fur_coat,       itm_leather_boots], def_attrib|level(2),wp(20),knows_common,  man_face_middle_1, mercenary_face_2],


  ["town_22_master_craftsman", "{!}Town 22 Seneschal", "{!}Town 14 Seneschal", tf_hero|tf_is_merchant, 0,reserved,  fac_neutral,[ itm_sarranid_cloth_robe_b,      itm_blue_hose],     def_attrib|level(2),wp(20),knows_common, 0x00000000200c658a5723b1a3148dc455000000000015ab920000000000000000],
  ["town_23_master_craftsman", "{!}Town 23 Seneschal", "{!}Town 14 Seneschal", tf_hero|tf_is_merchant, 0,reserved,  fac_neutral,[ itm_leather_apron,      itm_blue_hose],     def_attrib|level(2),wp(20),knows_common, 0x00000007680c3586054b8e372e4db65c00000000001db7230000000000000000],

Podemos juguetear con eso cuanto queramos, cambiar rostros, sexo, nombre...

No he dicho nada hasta el momento sobre compilar el build_module.bat, pero haciendolo tras cada paso nos ahorraremos disgustos posteriores. Si hay algún error, revisaremos hasta encontrarlo y corregiremos lo que esté mal.

Ahora hay que asignar las ciudades, tanto a una facción como al lord exacto de dicha facción. Vamos a module_scripts.py y buscas:

插入代码块:
(call_script, "script_give_center_to_faction_aux", "p_town_22", "fac_kingdom_6"),

Copias las líneas que hagan falta y las pegas a continuación (sólo en el caso de castillos y ciudades, las aldeas se asignan por proximidad... si no has hecho ningún cambio) y cambias los números de las ciudades y reinos para que se ajusten a tus necesidades.

Buscas después la siguiente línea:

插入代码块:
(call_script, "script_give_center_to_lord", "p_town_22", "trp_knight_6_3", 0),

y vas cambiando los números para asignar X ciudad (en el caso del ejemplo, la 22) a X noble. Los nobles y sus IDs las encontrarás en module_troops.

Una vez esté hecho eso, sólo queda asignar las caravanas a las ciudades:

buscas en el script "initialize_trade_routes" las siguientes líneas:

插入代码块:
#AHMERRAD - 6 Routes
      #Tulga, Halmar, Narra, Shariz, Durquba
      (call_script, "script_set_trade_route_between_centers", "p_town_21", "p_town_22"), #Bariyye

     #BARIYYE - 6 Routes
      #Tulga, Halmar, Narra, Shariz, Durquba, Ahmerrad

y antes del ]),

añades lo siguiente para cada ciudad:

插入代码块:
	  (call_script, "script_set_trade_route_between_centers", "p_town_23", "p_town_1"),		#sargoth
	  (call_script, "script_set_trade_route_between_centers", "p_town_23", "p_town_4"),		#suno
	  (call_script, "script_set_trade_route_between_centers", "p_town_23", "p_town_6"),		#praven
	  (call_script, "script_set_trade_route_between_centers", "p_town_23", "p_town_7"),		#uxkhal
	  (call_script, "script_set_trade_route_between_centers", "p_town_23", "p_town_14"),	#halmar
	  (call_script, "script_set_trade_route_between_centers", "p_town_23", "p_town_15"),	#yalen
	  (call_script, "script_set_trade_route_between_centers", "p_town_23", "p_town_16"),	#dhirim
	  (call_script, "script_set_trade_route_between_centers", "p_town_23", "p_town_19"),	#shariz

donde puedes decidir que ciudad comercia con cual.

Compilas, y si no hay errores, esta acabado.
 
后退
顶部 底部