Crystal_
Puntuación de reacción
119

Mensajes de perfil Última actividad Publicaciones Acerca

  • Pues hacerla aleatoria es un arma de dos filos, al mismo tiempo me da "inseguridad" no poder controlar todo, pero tambien ha de ser muy divertido enfrentarte a X pokemon de Gym Leader sin saber que esperar de el.
    A, pero la cuestión es la siguiente, quiero que la habilidad 1-2 se encuentren en estado salvaje pero que la 3ra habilidad sea como tal, "secreta". Para ello tenia en mente emplear un byte unused en la estructura de los pokemon, el numero 0x21 si mal no recuerdo.... al final digamos que tengo todo eso resuelto en mi mente, el problema real seria como controlar que tipo de habilidad tiene cada entrenador, ya que usando el metodo de los IV, los trainers tendran siempre solo un tipo de habilidad y me gustaria poder mezclarlas.
    Pues me conosco bien el competitivo de III y IV, aunque si me gustaria probar suerte en II.

    Cuando existia el Battle Network (no recuerdo si ese era al nombre) pasaba todo el dia jugando RZE. Hay que ponernos deacuerdo para hechar una partidita de GSC, aunque antes pasame algo de cocumentacion para informarme un poco jaja.

    PD: Me gusta mucho esa guia, lastima que no la pude terminar (la queria para imprimirla).

    Pd2: Necestio tu opinion. Para implementar las habilidades en los pokemon de GSC estoy usando el bit del IV de velocidad para definir si la habilidad es la 1 o la 2, pero como sabras, ahora se cuenta con una 3ra habilidad conocida como "hidden". Como crees que podría implementar esa 3ra. habilidad de manera que controlada? por ejemplo, en el caso de los los lideres y trainers puedo controlar las primeras 2 habilidades mendiante los DV.
    Llegue a creer que lo que habias hecho era algo mas sencillo, como "igualar" las características de las batallas contra un entrenador igual a como si pelearas en un batalla via cable link.

    Aun asi, es ingenioso el sistema y facil de adaptar a la inversa, no dejar que el rival se robe mis items, ya que me han comentado que eso pasa en mi hack XD
    Tendras la anotacion de lo que modificaste en el efecto de thief para que el item no se quedara de manera permanente? supongo que hiciste que todas las batallas fueran "link"
    Hice una comprobación rapida con BGB y todo funciono bien.

    Despues de retornar hay un :

    jr nz,@It'sSpecialMove
    jr @It'sPhysicalMove

    El objetivo de esto es que cuando el juego compruebe si el mov. es fisico o especial deje en la ram un bit cargado, para que al final del turno poder comprobar la habilidad del oponente y si hubo contacto aplicar el efecto correspondiente, llamese quemadura por Flame Body, enamoramiento por Cute Charm, etc...
    Es una modificación de la rutina Fisico/Especial que me ayudaste a descifrar.

    ld a,[$CE60]//CurSpecies ; ID del move
    ld hl,$5400//Tabla que indica si el move es fisico/especial/other y si hay contacto
    ld l,a
    ld b,[hl]//carga la categoria a b

    ld hl,$C6EA//MoveSplit ; byte en la ram de PKM GOLD supuestamente sin uso.

    ld a,[$FF00 + $E6]//hBattleTurn ; comprueba que turno es
    and a,a
    jr z,@.player

    sla b//en caso de ser el turno del oponente movemos los bits 4 espacios a la izquierda
    sla b
    sla b
    sla b
    ld a,[hl]// cargamos el valor de movesplit...
    or a,b//... lo mezclamos con el valor actual de la tabla...
    ld [hl],a//... y lo regresamos a la RAM
    bit 4,[hl]//comprobar fisico/especial. los demas valores de momento no me interesan, solo los dejo cargados en la ram para posteriores usos.
    ret

    @.player
    ld a,[hl]
    or a,b
    ld [hl],a
    bit 0,[hl]//comprobar fisico/especial
    ret
    Si, esta roto.... en el video de youtube si puedo abrir uno, pero aqui en el foro no me abre.

    Consulta aprovechando que estas: Quiero hacer una rutina en donde se comparta direccion en la ram para ambos jugadores, los primeros 4 bits para el player y los otros 4 para el enemy. como lo ves?

    ld a,[$CE60]//CurSpecies ; ID
    ld hl,$5400
    ld l,a
    ld b,[hl]

    ld hl,$C6EA//MoveSplit

    ld a,[$FF00 + $E6]//hBattleTurn
    and a,a
    jr z,@.player

    sla b
    sla b
    sla b
    sla b
    ld a,[hl]
    and a,b
    ld [hl],a
    bit 4,[hl]//comprobar fisico/especial
    ret

    @.player
    ld a,[hl]
    and a,b
    ld [hl],a
    bit 0,[hl]//comprobar fisico/especial
    ret

    $C6EA:
    0 - Physical/Special player
    1 - Contact
    2 - Other
    3 -
    4 - Physical/Special opponent
    5 - Contact
    6 - Other
    7 -

    PD: revise la rutina y en lugar de and a,b es or a,b
    Asi es, se tendrian que arreglar todos los mapas para que muestren el pokemon que dice en la caja de texto. Igual no tengo idea de que pasaria en el caso de 0xE0 y 0xE1 que son los pokemon de la guarderia, o en el caso de los iconos del trofeo y demas stuff de tu cuarto.
    Yo no he probado todos los casos que mencionas.

    Yo sobreescribi la tabla de punteros pero con mas punteros.
    Recuerdas que cuando miksy me paso la rutina de pickup tenia un fallo que nunca identificarnos? Por fin pude saber que es... bendito asm!
    La verdad ni ganas me dan ahorita de arreglar eso, mejor dejemoslo pendiente.

    Queria hacer otra pregunta pero la olvide, cuando recuerde te escribo XD
    Parte 2


    GetMonSprite: ; 14259
    ; Return carry if a monster sprite was loaded.

    cp SPRITE_POKEMON
    jr c, .Normal
    cp SPRITE_DAYCARE_MON_1
    jr z, .BreedMon1
    cp SPRITE_DAYCARE_MON_2
    jr z, .BreedMon2
    cp SPRITE_VARS
    jr nc, .Variable
    jr .Icon

    .Normal
    and a
    ret

    .Icon
    sub SPRITE_POKEMON
    ld e, a
    ld d, 0
    ld hl, SpriteMons
    add hl, de
    ld a, [hl]
    jr .Mon

    .BreedMon1
    ld a, [BreedMon1Species]
    jr .Mon

    .BreedMon2
    ld a, [BreedMon2Species]

    .Mon
    ld e, a
    and a
    jr z, .asm_1429f

    callba Function8e82b

    ld l, 1
    ld h, 0
    scf
    ret

    .Variable
    sub SPRITE_VARS
    ld e, a
    ld d, 0
    ld hl, VariableSprites
    add hl, de
    ld a, [hl]
    and a
    jp nz, GetMonSprite

    .asm_1429f
    ld a, 1
    ld l, 1
    ld h, 0
    and a
    ret
    ; 142a7
    Gracias.

    Al perecer el mecanismo principal de carga de OW es este:

    GetSprite: ; 1423c
    call GetMonSprite
    ret c

    ld hl, SpriteHeaders
    dec a
    ld c, a
    ld b, 0
    ld a, 6
    call AddNTimes
    ld a, [hli]
    ld e, a
    ld a, [hli]
    ld d, a
    ld a, [hli]
    swap a
    ld c, a
    ld b, [hl]
    ld a, [hli]
    ld l, [hl]
    ld h, a
    ret
    ; 14259
    Erm, hola a mi tambien me encantan los patalones cortos. Vamos a luchar! Chananana (8)
    Cuando me di cuenta de que podía hacerlo sin punteros ya tenia como una semana de haber terminado.

    El huevo se fue a la posición 253, lo intuiste bien.

    Aún tengo el problema de cargarlos como OW, solo carga los primeros 128. Luego si se te ocurre como arreglarlo me ayudas XD

    PD: se ve bien pro el hack
  • Cargando…
  • Cargando…
  • Cargando…
Arriba