Muy buenas, caballeros, a este pequeño tutorial que quiero compartir con ustedes. Buscando una forma más sencilla de aparecer tropas en una scene, me he topado en Taleworlds con este código que facilita las cosas y he decidido escribir un tutorial para que los que tengan menos experiencia en el Module System puedan usarlo en sus mods. Todos los créditos de esta maravilla van a ShaunRemo, que es quien escribió el código.
1°: Agregar el objeto a la lista de los scene_props.
El primer paso es colocar el objeto para spawnear a las tropas en el archivo module_scene_props.py. Tienen que ponerlo en donde están los demás objetos, por lo que les recomiendo buscar la siguiente línea*:
*(Si editan los archivos con programas como Notepad++ pueden buscar las líneas usando Control+F)
Y debajo, pegan este código:
Hecho esto, compilen el Module System, entren a su mod e inicien nueva partida.
2° Como usarlo dentro del juego.
Una vez hayan hecho lo anterior, teniendo el modo editor activado (Se activa desde el launcher del juego, en la opción "Avanzados", dentro del menú "Opciones". También les recomiendo usar el juego en modo ventana, que se puede activar desde opciones, en el launcher, o apretando Alt+Enter en el juego, y poner todos los gráficos al minimo.) se van a la scene que quieran modificar, apretan Control+E para activar el editor de scenes, y buscan en la lista un prop llamado "spawn_agent_shaunremo":
1) Aquí eligen usando la tropa que quieran aparecer, en este caso he reemplazado los últimos tres ceros por un 148, que en mi mod es el guardia de la prisión de la facción Etrosq. Pueden encontrar el número que le corresponde a cada tropa en el archivo ID_troops.py del MS, pero por favor ¡NO CAMBIEN NADA! (Siempre deben eliminar la cantidad de ceros según las cifras de el número que quieran poner, por ejemplo, si quieren aparecer a la tropa 100, deben borrar tres ceros, para la tropa 1000, si es que existe en su mod, borran cuatro ceros, etc)
2) Aquí elijen que animación quieren que tenga la tropa cuando aparezca. En este caso, le he asignado la animación 353. Pueden encontrar el número que le corresponde a cada animación en el archivo ID_animations.py.
3) Aquí elijen un objeto para que tenga la tropa cuando aparezca. En este caso, como lo he dejado sin cambiar, no tendrá ningún item (A veces, al asignarle un arma a la tropa deja de hacer la animación que le pusimos antes). No lo he probado, pero creo que si le ponen aquí un caballo, el agente estará montado. Pueden encontrar el número que le corresponde a cada item en el archivo ID_items.py.
Ahora, deben guardar los cambios en la scene, salir y volver a entrar y...
Como ven, apareció el guardia de la prisión etrosq (Es una tropa que yo cree, en el Native otra tropa usa el número 148), con la animación 353 (Al igual que antes, esa animación es en mi mod, ya que he cambiado las animaciones de combate del Native) y con ningún otro item, solamente los que la tropa tiene en su inventario.
Si quieren eliminar a una tropa añadida con este código de una scene, solamente deben borrar el objeto "spawn_agent_shaunremo" de esa tropa de la scene. Pueden aparecer más de una tropa por scene si quieren.
La recomendación que les voy a dar si usan este código es que lo usen para tropas que no sean de mucha importancia por el tema de los diálogos.
En el caso de que el autor actualize el código actualizaré el post. (Iba a sacar una versión para poder establecer si la tropa aparece siempre, de día, de noche, en asedios, si en la ciudad hay un torneo, etc)
Espero que les sea de utilidad, si tienen dudas o me falto algo, comentenlo. Un saludo
- Definiciones para novatos:
¿Qué es una scene?
Son los lugares del juego en los que manejas el personaje directamente y no con el muñequito del mapa, como por ejemplo, las calles de una ciudad, las tabernas, etc.
¿Qué es un scene prop?
Son los objetos que hay en una scene, como una casa, una mesa, el cartel de la puerta de las tabernas, las partículas de humo, agua, fuego, etc.
¿Qué es un agente?
Son las tropas (Individuales) de una scene. Por ejemplo, si en una scene tenemos dos caballeros swadianos, hay una sola tropa (Los dos son caballeros Swadianos) pero hay dos agentes. Solamente se encuentran en scenes.
1°: Agregar el objeto a la lista de los scene_props.
El primer paso es colocar el objeto para spawnear a las tropas en el archivo module_scene_props.py. Tienen que ponerlo en donde están los demás objetos, por lo que les recomiendo buscar la siguiente línea*:
- Código:
("snowy_destroy_bridge_b",0,"snowy_destroy_bridge_b","bo_snowy_destroy_bridge_b", []),
*(Si editan los archivos con programas como Notepad++ pueden buscar las líneas usando Control+F)
Y debajo, pegan este código:
- Código:
("spawn_agent_shaunremo", 0, "0", "0", [
(ti_on_scene_prop_init,
[
(store_trigger_param_1, ":scene_prop_id"),
(set_fixed_point_multiplier, 1000000),
(prop_instance_get_scale, pos5, ":scene_prop_id"),
(position_get_scale_x, ":scale_x", pos5),
(store_sub,":agent",":scale_x",1000000),
(gt,":agent",0),
(position_get_scale_y, ":scale_y", pos5),
(store_sub,":animation",":scale_y",1000000),
(position_get_scale_z, ":scale_z", pos5),
(store_sub,":item",":scale_z",1000000),
(prop_instance_get_variation_id_2, ":var_id_2", ":scene_prop_id"),
(spawn_agent,":agent"),
(agent_set_no_dynamics, reg0, ":var_id_2"),
(try_begin),
(gt,":item",0),
(agent_equip_item, reg0, ":item", 0),
(agent_set_wielded_item, reg0, ":item"),
(try_end),
(try_begin),
(gt,":animation",0),
(lt,":animation",553),
(agent_set_stand_animation, reg0, ":animation"),
(agent_set_animation, reg0, ":animation"),
(agent_clear_scripted_mode,reg0),
(try_end),
])
]),
Hecho esto, compilen el Module System, entren a su mod e inicien nueva partida.
2° Como usarlo dentro del juego.
Una vez hayan hecho lo anterior, teniendo el modo editor activado (Se activa desde el launcher del juego, en la opción "Avanzados", dentro del menú "Opciones". También les recomiendo usar el juego en modo ventana, que se puede activar desde opciones, en el launcher, o apretando Alt+Enter en el juego, y poner todos los gráficos al minimo.) se van a la scene que quieran modificar, apretan Control+E para activar el editor de scenes, y buscan en la lista un prop llamado "spawn_agent_shaunremo":
1) Aquí eligen usando la tropa que quieran aparecer, en este caso he reemplazado los últimos tres ceros por un 148, que en mi mod es el guardia de la prisión de la facción Etrosq. Pueden encontrar el número que le corresponde a cada tropa en el archivo ID_troops.py del MS, pero por favor ¡NO CAMBIEN NADA! (Siempre deben eliminar la cantidad de ceros según las cifras de el número que quieran poner, por ejemplo, si quieren aparecer a la tropa 100, deben borrar tres ceros, para la tropa 1000, si es que existe en su mod, borran cuatro ceros, etc)
2) Aquí elijen que animación quieren que tenga la tropa cuando aparezca. En este caso, le he asignado la animación 353. Pueden encontrar el número que le corresponde a cada animación en el archivo ID_animations.py.
3) Aquí elijen un objeto para que tenga la tropa cuando aparezca. En este caso, como lo he dejado sin cambiar, no tendrá ningún item (A veces, al asignarle un arma a la tropa deja de hacer la animación que le pusimos antes). No lo he probado, pero creo que si le ponen aquí un caballo, el agente estará montado. Pueden encontrar el número que le corresponde a cada item en el archivo ID_items.py.
Ahora, deben guardar los cambios en la scene, salir y volver a entrar y...
Como ven, apareció el guardia de la prisión etrosq (Es una tropa que yo cree, en el Native otra tropa usa el número 148), con la animación 353 (Al igual que antes, esa animación es en mi mod, ya que he cambiado las animaciones de combate del Native) y con ningún otro item, solamente los que la tropa tiene en su inventario.
Si quieren eliminar a una tropa añadida con este código de una scene, solamente deben borrar el objeto "spawn_agent_shaunremo" de esa tropa de la scene. Pueden aparecer más de una tropa por scene si quieren.
La recomendación que les voy a dar si usan este código es que lo usen para tropas que no sean de mucha importancia por el tema de los diálogos.
En el caso de que el autor actualize el código actualizaré el post. (Iba a sacar una versión para poder establecer si la tropa aparece siempre, de día, de noche, en asedios, si en la ciudad hay un torneo, etc)
Espero que les sea de utilidad, si tienen dudas o me falto algo, comentenlo. Un saludo
Última edición por Hernanxd16 el Lun Ene 29, 2018 1:58 pm, editado 1 vez (Razón : Título más descriptivo)