Tutorial crear nuevos grupos de bandidos con Module_system

    Comparte

    Neodrako
    Usuario VIP
    Usuario VIP

    Mensajes : 4406
    Edad : 33
    Facción : Gran Polonia

    Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Neodrako el Jue Nov 21, 2013 2:46 pm

    Hola amigos voy a intentar explicar como crear grupos de bandidos nuevos sin eliminar o modificar los ya existentes.

    Antes de nada quiero agradecer a nuestro querido moderador SirSowort99 quien busco tiempo para ayudarme vía mp a lograr esto, y ahora semanas después tratare de compartirlo lo mejor que pueda.


    Bien aver primero abrimos modulo party

    y creamos o copiamos esta línea..... la pegamos en modulo party

    Código:
    ("new_sp" ,"new_sp",pf_disabled|pf_is_static, no_menu, pt_none, fac_outlaws,0,ai_bhvr_hold,0,(57, 86),[(trp_looter,15,0)]),
    De momento no modificamos nada solo ponemos esta línea.

    Imagen de una línea de este tipo del archivo module party:

    Informacion opcional sobre la linea anterior:
    new_sp  es el punto de generación uno ya existente en el native y muchos mods.

    El segundo new_sp  es el nombre ID del grupo de bandidos pero no el que vemos en el juego este solo es ID del mismo en los archivos del juego.

    pf_disabled  esto es el punto de generación que normalmente esta invisible en el mapa por eso disabled.

    no_menu  porque solo se usa lo contrario cuando pretendes crear un evento con ese grupo algo muy avanzado que por el momento ni idea. por eso no_menu para bandidos comunes.

    pt_none  esto no hay que tocarlo.

    fac_outlaws  es el nombre de la facción a la que pertenece y como es un tutorial para crear nuevos grupos de bandidos siempre serán fac_outlaws.

    ai_bhvr_hold  es el comportamiento del grupo por el mapa. es el que vemos en bandidos, caza recompensas  y patrullas.

    57, 86  son cordenadas geográficas del mapa estas pueden variar según el mapa ya que este tutorial es para crearlas ya sea en mods o el native y hablaremos de eso mas adelante, pues no queremos dar cordenadas imposibles como en el mar o terreno como picos de montaña y cosas imposibles, son solo cordenadas provicionales hablaremos de estas.

    trp_looter, 15,0 es un comportamiento usado con bandidos estos se mueven cerca de las aldeas independientemente de su punto de aparición en el mapa.

    Nota: no confundir lo anterior: trp_looter, 15,0 ya que existe en otros archivos como saqueadores pero en este caso es comportamiento.


    Guardamos y cerramos y abrimos module_party_templates.py.

    y donde quieran hacen un espacio y pegan esta línea.

     
    Código:
    ("sea_band","Sea Band",icon_axeman|carries_goods(2),0,fac_outlaws,bandit_personality,[(trp_sea_raider,5,50),(trp_looter,2,15),(trp_mountain_bandit,5,10)]),
    Recomiendo cambiar el primer sea_band por uno referente al nombre de grupo pensado ejemplo lacayos de Mike. como el primero es un ID siempre hay que poner barra baja o también llamado guion bajo en cada espacio quedaría asi lacayos_de_mike  si el nombre fuera sin espacios como ejemplo Mike entonces nada asi mismo entre las ¨¨  esto es solo el nombre ID en el juego no será el nombre que vamos a ver durante la partida.

    El segundo si es el nombre que vemos en el juego de ese grupo de bandidos y hacemos lo siguiente.

    ¨La cayos de Mike¨ igual que en el caso anterior entre las ¨¨ pero sin guiones bajos ya que es el nombre que vemos en el juego.

    Nota: lo de lacayos de Mike es inventado cada cual pone lo que quiera siguiendo el contexto de la tropa o grupo que quiera añadir al mod o native,

    bien en la parte que pone trp_sea_raider, 5,50:  esto es la tropa. en este caso son piratas del native y vemos 5,50 bien el primer 5 es el minimo de esta tropa y el 50 el macimo podemos variar ese numero a antojo.

    pero la unidad seria asi  trp_xxx,  xxx es nombre ide de la tropa que queremos usar en lugar de esas xxx va el nombre y este termina en coma. y si hay espacios se usa guion bajo.


    informacion sobre lo comentado lectura opcional:
    trp_sea_raider, 5,50:

    a) trp_sea_raider es un ID de su tropa.
    b) 5 es la cantidad mínima de las tropas en el partido
    c) 50 es la máxima cantidad de tropas en el partido


    Guardamos y cerramos el archivo y abrimos el module_scripts.py.

    Y pulsamos CTRL + F o pulsamos en la pestaña buscar, (en los 2 casos la intención es abrir esta ventana de buscar)


    Y ponemos "spawn_bandits" con las comillas eso nos lleva a la parte del archivo que queremos

    donde veremos todos los grupos spaw del mod o native. como el ejemplo siguiente.


    Código:
    (try_begin),
     (store_num_parties_of_template, ":num_parties", "pt_sea_band"),
     (lt,":num_parties",14),
     (store_random,":spawn_point",num_new_sp),
     (val_add,":spawn_point","p_new_sp"),
     (spawn_around_party,":spawn_point","pt_sea_band"),
     (try_end),
    hay que hacer un espacio sin romper lo que ya trae el mod o native. si se fijan están pegados unos a otros pero todos comienzan por ](try_begin),  y terminan por  (try_end), asi evitamos romper líneas de otros grupos ya existetes.

    pegamos eso pero retomemos una línea de un archivo anterior.

    Module Party templates

    En ese caso expuse esta línea

    Código:
    ("sea_band","Sea Band",icon_axeman|carries_goods(2),0,fac_outlaws,bandit_personality,[(trp_sea_raider,5,50),(trp_looter,2,15),(trp_mountain_bandit,5,10)]),
    y indique que sea_band era el nombre Id de los archivos y cumpliendo las normas que indique era modificable aveces incluso obligatorio ya que este tuple es muy usado en mods y native y no puede aver dos.

    Recordamos que ID usamos  y remplazamos las siguientes líneas de lo que pegamos antes.

    Código:
    (try_begin),
     (store_num_parties_of_template, ":num_parties", "pt_sea_band"),
     (lt,":num_parties",14),
     (store_random,":spawn_point",num_new_sp),
     (val_add,":spawn_point","p_new_sp"),
     (spawn_around_party,":spawn_point","pt_sea_band"),
     (try_end),
    Lo mismo pero resaltando en negrita los "pt_sea_band"),  y pt_sea_band"),  para verlo mejor

    (try_begin),
    (store_num_parties_of_template, ":num_parties", "pt_sea_band"),
    (lt,":num_parties",14),
    (store_random,":spawn_point",num_new_sp),
    (val_add,":spawn_point","p_new_sp"),
    (spawn_around_party,":spawn_point","pt_sea_band"),
    (try_end),
    lo que esta en negrita y solo eso ponemos el nombre elegido como ID en el archivo Module Party templates respetando guiones bajos. ejemplo lacayos_de_mike quedaria asi  pt_ lacayos_de_mike "),  y pt_ lacayos_de_mike"),

    Vale hecho pero antes de seguir veremos encima de estas bandas unas líneas similares a estas.

    Código:
    (party_template_set_slot, "pt_steppe_bandits", slot_party_template_lair_type, "pt_steppe_bandit_lair"),
        (party_template_set_slot, "pt_taiga_bandits", slot_party_template_lair_type, "pt_taiga_bandit_lair"),
        (party_template_set_slot, "pt_mountain_bandits", slot_party_template_lair_type, "pt_mountain_bandit_lair"),
        (party_template_set_slot, "pt_forest_bandits", slot_party_template_lair_type, "pt_forest_bandit_lair"),
        (party_template_set_slot, "pt_sea_raiders", slot_party_template_lair_type, "pt_sea_raider_lair"),
        (party_template_set_slot, "pt_sea_raiders2", slot_party_template_lair_type, "pt_sea_raider_lair2"),
        (party_template_set_slot, "pt_desert_bandits", slot_party_template_lair_type, "pt_desert_bandit_lair"),
       
        (party_template_set_slot, "pt_steppe_bandits", slot_party_template_lair_spawnpoint, "p_steppe_bandit_spawn_point"),
        (party_template_set_slot, "pt_taiga_bandits", slot_party_template_lair_spawnpoint, "p_taiga_bandit_spawn_point"),
        (party_template_set_slot, "pt_mountain_bandits", slot_party_template_lair_spawnpoint, "p_mountain_bandit_spawn_point"),
        (party_template_set_slot, "pt_forest_bandits", slot_party_template_lair_spawnpoint, "p_forest_bandit_spawn_point"),
        (party_template_set_slot, "pt_sea_raiders", slot_party_template_lair_spawnpoint, "p_sea_raider_spawn_point_1"),
        (party_template_set_slot, "pt_sea_raiders2", slot_party_template_lair_spawnpoint, "p_sea_raider_spawn_point_2"),
        (party_template_set_slot, "pt_desert_bandits", slot_party_template_lair_spawnpoint, "p_desert_bandit_spawn_point"),
    Si se fijan indican los (pt_)  y  (p_) indicados en lo anterior. asi hacemos que existan.

    Código:
    (try_begin),
     (store_num_parties_of_template, ":num_parties", "pt_sea_band"),
     (lt,":num_parties",14),
     (store_random,":spawn_point",num_new_sp),
     (val_add,":spawn_point","p_new_sp"),
     (spawn_around_party,":spawn_point","pt_sea_band"),
     (try_end),
    vale copiamos la ultima línea la pegamos debajo de la misma y procedemos a modificarla.


    miramos la ultima linea que copiamos y pegamos de bajo de esa y es asi


    (party_template_set_slot, "pt_desert_bandits", slot_party_template_lair_spawnpoint, "p_desert_bandit_spawn_point"),

    Esto puede variar según el mod, o si es native pero lo fundamental será igual siempre.



    Modificamos primero donde dice "pt_desert_bandits", y ponemos el que elegimos con anterioridad recuerden en lugar de espacio guion bajo. "pt_lacayos_de_mike",  y "p_lacayos_de_mike"),

    vale pues el nombre elegido ahora lo ponemos donde corresponde en las líneas que creamos antes



    Código:
    (try_begin),
     (store_num_parties_of_template, ":num_parties", "pt_lacayos_de_mike"),
     (lt,":num_parties",14),
     (store_random,":spawn_point",num_new_sp),
     (val_add,":spawn_point","p_new_sp"),
     (spawn_around_party,":spawn_point","pt_lacayos_de_mike"),
     (try_end),
    y asi queda. vale antes de continuar explico una cosa.

    los num_new_sp son lugares de spawn_point muy utilizados por el native y mods pero se puede poner otro no lo recomiendo o terminaran locos xd no hace falta se puede pero no hace falta.


    vale guardamos y abrimos  module_constants

    aquí usamos de nuevo el buscador y ponemos esto "num_sea_raider_spawn_points = 2".   es un punto de spawn dl native pero en mods puede no existir. la intención en llevar a la zona del archivo que nos interesa. si esa busque no surte prueben con num_new_sp = que como dije es muy usado y puede existir si es asi lo olvidan y cierran esto y sino crean una línea de bajo de otra del mismo tipo llamada

    Código:
    num_new_sp = 1
    hay puse uno pero e probado hasta 4 y aumenta el spawn de grupos nose el máximo,

    Imagen de ejemplo en MS:

    Vale seria guardar y compilar pero ¿recuerdan lo de las cordenadas que deje para el final ya que esto puede variar mucho entre native y mods, y no queremos que el grupo bandido termine en una montaña o en el mar?

    Bueno recordemos en que momento tocamos las cordenadas y eso fue en modulo party al principio de este tutorial.

    bien hay m3 trucos con las cordenadas uno es mirar la de otros grupos de bandidos y clonarlas cambiando solo el ultimo numero. la otra es la de mirar en los archivos las cordenadas de aldeas, castillos o ciudades y asi lograr ubicar a ese nuevo grupo bandido en la zona deseada y la ultima y mas profesional y tiquismiqui jajaja es usar el editor de mapas para ver las cordenadas del mapa en cuestión de ese mod o del native y ser mas concretos con el lugar de aparición de esta tropa bandida.


    Y fin

    Aver una ultima nota en spoiler para quien quiera diferentes tropas integrando un mismo grupo bandido.

    Para añadir mas de un tipo de tropa a un mismo grupo bandido, (opcional):
    Vemos un ejemplo de un caso ya creado en un mod


    Código:
    ("sea_band","Warrior Band",icon_axeman|carries_goods(2),0,fac_mountain_bandits,bandit_personality,[(trp_looter_leader2,1,2),(trp_sea_raider,8,40),(trp_looter,8,40),(trp_mountain_bandit,5,30)]),
    ven como une en un solo grupo mas de una unidad pues si fuera el caso esa es la pauta. si veo dudas lo explicare mejor, y recordar que esto era en la parte de module_party_templates.py. de este tu tutorial.

    ("sea_band","Warrior Band",icon_axeman|carries_goods(2),0,fac_mountain_bandits,bandit_personality,[(trp_looter_leader2,1,2),(trp_sea_raider,8,40),(trp_looter,8,40),(trp_mountain_bandit,5,30)]),

    comienza la tropa asi ,[(trp_looter_leader2,1,2), y termina esa tropa con una coma a esta le sigue (trp_looter,8,40),  continua pegado a la coma anterior y de nuevo termina con coma a esta le sigue (trp_looter,8,40),  y seguido de la ultima coma la ultima tropa que cierra el grupo o banda  (trp_mountain_bandit,5,30)]), si se fijan comenzó asi  [ y termino asi ]), en el interior todas las tropas están encerradas por esto (trp_looter_leader2,1,2) osea paréntesis () y separadas entre si por una coma.

    Ahora vamos a verlo en conjunto pero añadiré una nueva

    ("sea_band","Warrior Band",icon_axeman|carries_goods(2),0,fac_mountain_bandits,bandit_personality,[(trp_looter_leader2,1,2),(trp_sea_raider,8,40),(trp_looter,8,40),(trp_lacayos_de_mike,8,40),(trp_mountain_bandit,5,30)]),

    añadi esta (trp_lacayos_de_mike,8,40)  bien pero si solo queremos que ese grupo tenga una sola unidad hacemos esto

    ("sea_band","Warrior Band",icon_axeman|carries_goods(2),0,fac_mountain_bandits,bandit_personality,[(trp_lacayos_de_mike,1,2)]),

    y asi ese grupo solo trae una, bien por ultimo si se fijan hay unos números bien eso indica el minimo y máximo de tropas de ese tipo que podemos encontrar en el juego. ,[(trp_lacayos_de_mike,1,2)]), pone 1,2 esto dice que el minimo es 1 y su máximo 2. vale si por poner un ejemplo quiero que sea su minimo 10 y su máximo 100  lo dejo asi ,[(trp_lacayos_de_mike,10,100)]),  y listo.

    Bueno gracias por la atención.

    mi fuente inicial fue un tuto en ingles super simple. demasiado simple para mi cabeza ignorante, por lo que la ayuda de nuestro amigo  SirSowort99 fue super importante este por mp me ayudo un monton. y eso mas prueba y error me permitio lograr implantar con MS un nuevo grupo bandido sin modificar ni dañar los ya existentes. mil gracias SirSowort99 no siempre logramos esa atención que generoso me ofreciste :good:


    Última edición por Neodrako el Sáb Ago 02, 2014 5:09 pm, editado 11 veces


    _________________
    Prefiero vivir un dia como lechón que 100 años como cordero

    Guias de los Mount and Blade
    Spoiler:

    Mikeboix
    Emperador
    Emperador

    : : wyrd bi∂ ful ārǣd
    Mensajes : 11264
    Facción : Imperio de Calradia

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Mikeboix el Jue Nov 21, 2013 3:32 pm

    Trabajazo, como de costumbre. Muchísimas gracias neo, pues nos hacía mucha falta para el mod.
    ¡Un saludazo!


    _________________
    ~No olvides leer las normas. No resuelvo dudas de los juegos por mensaje privado.~




    Last Breath of Calradian Empire: Mod sobre el glorioso pasado de Calradia. ¡Apoya el desarrollo!

    Neodrako
    Usuario VIP
    Usuario VIP

    Mensajes : 4406
    Edad : 33
    Facción : Gran Polonia

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Neodrako el Jue Nov 21, 2013 3:52 pm

    Mikeboix escribió:Trabajazo, como de costumbre. Muchísimas gracias neo, pues nos hacía mucha falta para el mod.
    ¡Un saludazo!
    Para esto estamos Mike, hay que compartir el conocimiento, hace solo 2 semanas que logre hacer esto con Ms y como dige parti de un tutorial muy muy básico. que Mister SirSowort99 via mp mejoro enormemente. eso mas el típico prueba y error me dieron las claves para hacer realidad esto. y llevaba días pensando en este tutorial pero hoy saque fuerzas para hacerlo,

    P.d cuando logre hacerlo fue con los lechones de valan jejeje. quería saber si podía crear un grupo completamente nuevo y por eso los use. si ellos aparecían como quería. aparecerían cualquier grupo xd ya que estos fueron creados casi de 0.


    _________________
    Prefiero vivir un dia como lechón que 100 años como cordero

    Guias de los Mount and Blade
    Spoiler:

    elgranselda
    Espadachín
    Espadachín

    Mensajes : 276

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por elgranselda el Jue Nov 21, 2013 4:10 pm

    Reconcholis!  gracias neo :aplauso: , como quisiera postear como tu, cosas importantes no como los post mios Razz  

    P.D Yo era un gran seguidor del rey lechon valan! hassta que aprobe las chuletas de mi tia :wink:  jajaja mmmmmmm :babas:


    _________________





    La verdad nos hara libres study

    Neodrako
    Usuario VIP
    Usuario VIP

    Mensajes : 4406
    Edad : 33
    Facción : Gran Polonia

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Neodrako el Jue Nov 21, 2013 6:44 pm

    elgranselda escribió:Reconcholis!  gracias neo :aplauso: , como quisiera postear como tu, cosas importantes no como los post mios Razz  

    P.D Yo era un gran seguidor del rey lechon valan! hassta que aprobe las chuletas de mi tia :wink:  jajaja mmmmmmm :babas:
    Para mi todos posteais cosas importantes dia a dia. Y sin ustedes no tendría sentido yo :good:

    Edito: yo logre hacerlo crear un grupo bandido nuevo en el brytenwalda pero queda por ver si logre explicar como se hace eso es otra cuestión. quizás con el tiempo termine definiendo mas según surjan dudas y por repetición de este trabajo el cual logre hacer hace muy poco y como dice el dicho la practica hace al maestro y solo lo hice una vez salio bien pero solo lo hice una vez.


    _________________
    Prefiero vivir un dia como lechón que 100 años como cordero

    Guias de los Mount and Blade
    Spoiler:

    Don Juan
    Miliciano
    Miliciano

    Mensajes : 78
    Facción : États latins d'Orient

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Don Juan el Vie Nov 22, 2013 6:07 pm

    Excelente tutorial. Muchas gracias.

    SirSowort99
    Caballero
    Caballero

    : : "die Sonne, Sie ist der hellste Stern von Allen"
    Mensajes : 1563
    Facción : Reino de Swadia

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por SirSowort99 el Sáb Nov 23, 2013 8:07 pm

    Magnifico trabajo neodrako, me honra haberte ayudado ^^

    esta realmente bien redactado y bien hecho, es bueno siempre aprender nuevas cosas chicos, he aquí un trabajo de calidad.

    +rep por ello.


    _________________
    Visita la Comunidad Oficial Chilena: http://www.caballerosdecalradia.net/t601-mount-and-blade-warband-chile-comunidad-oficial#7434


    Cualquier irregularidad, Falta, Doble post, o Problema en el foro, Puedes recurrir al admin del foro o a cualquiera de los moderadores y sera arreglado cuanto antes.

    Neodrako
    Usuario VIP
    Usuario VIP

    Mensajes : 4406
    Edad : 33
    Facción : Gran Polonia

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Neodrako el Dom Nov 24, 2013 12:13 am

    SirSowort99 escribió:Magnifico trabajo neodrako, me honra haberte ayudado ^^

    esta realmente bien redactado y bien hecho, es bueno siempre aprender nuevas cosas chicos, he aquí un trabajo de calidad.

    +rep por ello.
    Muchas gracias SirSowort99 viniendo de ti es un gran elogio


    _________________
    Prefiero vivir un dia como lechón que 100 años como cordero

    Guias de los Mount and Blade
    Spoiler:

    Rafalongo
    Modder
    Modder

    Mensajes : 379
    Edad : 26
    Facción : Reino de Swadia

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Rafalongo el Lun Jul 06, 2015 6:59 pm

    se puede crear mas spawn point y en module script hacer otro "llamado", usando el nuevo spawnpoint pero el MISMO grupo de bandidos? o sea, uno ya existente? por ejemplo que aparescan looters alrededor de praven pero tbn alrededor de tulga. o solo apareceria la misma party template en uno de esos dos sp? o en los dos pero en cantidades divididas?

    LordArrozConPollo
    Miliciano
    Miliciano

    Mensajes : 82
    Facción : Ciudad de Zaun

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por LordArrozConPollo el Sáb Ago 20, 2016 9:17 pm

    Siguiendo todos los pasos, al compilar va todo bien pero me tira error lo de ''p_hombres_del_oeste_spawn_point'' de esta linea:

    Código:
    (party_template_set_slot, "pt_hombres_del_oeste", slot_party_template_lair_spawnpoint, "p_hombres_del_oeste_spawn_point"),

    que es la modificacion de esta

    Código:
    (party_template_set_slot, "pt_desert_bandits", slot_party_template_lair_spawnpoint, "p_desert_bandit_spawn_point"),


    Estoy haciendo algo mal y no me doy cuenta??


    Neodrako
    Usuario VIP
    Usuario VIP

    Mensajes : 4406
    Edad : 33
    Facción : Gran Polonia

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Neodrako el Vie Nov 04, 2016 7:15 pm

    Yo es que ya me olvide de eso. pero hasta una coma o punto  entre otras cosas hace que falle y cueste ver el error. eso me enseño iddil yo para mi todo perfecto y el me decía no  mira... fíjate te falto una coma o pusiste dos. cosas así de tontas que uno no ve hacen que se amargue

    Y lo peor es que son errores de fácil solución pero como no los veas terminas hecho una furia. cuantas veces yo decía
    esta bien y no funciona esto es una mierda no sirve que le den. pero solo era un punto o coma mal y yo no lo veía jajajaja.

    El mejor consejo es prestar la máxima atención al detalle. incluso se puede cometer errores al postear un codigo. a mi me paso y ya con mas experiencia descubrir esos errores al tratar de implantar codigos de otros. osea se comieron algo al postear pero el codigo funciona.


    _________________
    Prefiero vivir un dia como lechón que 100 años como cordero

    Guias de los Mount and Blade
    Spoiler:

    Hernanxd16
    Hombre de armas
    Hombre de armas

    : : Desarrollador del mod A New Era For Calradia.
    Mensajes : 925
    Facción : Imperio de Tamriel

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Hernanxd16 el Vie Nov 04, 2016 7:30 pm

    Perdón si es tarde LordArrozConPollo, pero, si todavia tienes un error con eso, podrias poner lo que te aparece en el Module System al compilar, una captura de pantalla. Ahi te dice cual es el problema.


    _________________
    «Ten una sola mente y una sola fe, entonces podrás conquistar a tus enemigos y vivir una vida larga y feliz» Gengis Khan.



    A New Era For Calradia: Mod sobre una Calradia del siglo XIV, en el que un Imperio la dominó, y le trajo nuevas tecnologías. ¡Apoya el desarrollo!
    A New Era For Calradia

    Contenido patrocinado

    Re: Tutorial crear nuevos grupos de bandidos con Module_system

    Mensaje por Contenido patrocinado Hoy a las 9:12 am


      Fecha y hora actual: Mar Dic 06, 2016 9:12 am