10Fermer12
deephLe 31/01/2013 à 19:23
Merci pour la routine ! Mais est-ce qu'elle permet de démarrer à n'importe quelles coordonnées (même non alignées) ? Ça me fait penser, je suis sûr qu'elle pourra servir à pas mal de monde : http://www.omnimaga.org/index.php?topic=1598.msg256238#msg256238

Sinon je pensais en faire une facilement avec _darkline, mais le flag bufferOnly n'existe pas sur 83... Peut être qu'en utilisant simplement une bonne routine de ligne avec un djnz ferait l'affaire...

Pour les APPS, en pratique je ne vois pas trop comment charger les routines en RAM... ? Autant modifier la source pour travailler avec les saferam, non ?

Et pour ce qui est des metatiles, je n'ai pas trop compris l'intérêt (c'est simplement le fait de tous les regrouper en mémoire, non ? Parce que c'est déjà le cas pour les tiles mais pas pour les sprites, mais dans les deux cas je ne vais pas les modifier).

D'ailleurs je vais peut être pouvoir modifier la taille des sprites des pokémons (de 40*26 à 32*26), enfin si ça rentre.

Sinon pour Pokémon Topaze, effectivement ça m'a pas mal motivé à terminer le mien (et je me suis inspiré de quelques sprites/"mises en pages", j'espère que ça dérangera pas Hayleia), mais pour le reste c'est de l'Axe (et je n'y connais rien), donc je préfère coder le mien sans trop comparer les méthodes smile

Là j'en suis à calculer les dégâts, c'est pas trop difficile avec les OP, et la formule est détaillée ici : http://www.pokepedia.fr/index.php/Calcul_des_d%C3%A9g%C3%A2ts

Tiens d'ailleurs ça me fait penser, Zeph, un admin de yN a rajouté les brushes z80 et ARM à la balise [source] (c'est pas encore officiel donc je ferai une annonce plus tard). On peut s'en servir comme ça : [source=z80][/source] smile

edit :
PJsf

J'ai un début de code pour calculer les dommages (en plus de ça il faudra que j'ajoute une animation pour les dommages, ou peut être simplement faire clignoter les sprites) :
Routine de calcul des dommages
calculate_damages: ; output : a = int((((hl+1*0.4+2)*[attack_power])*(hl+(pokemon_att-pokemon_stats))/(de+(pokemon_def-pokemon_lvl))*50+2)*CE) push hl ld h,0 ld l,opponent_pokemon_stats_def-opponent_pokemon_stats add hl,de ld l,(hl) ; on a DEF ld h,0 bcall _setxxxxop2 ld a,50 bcall _setxxop1 bcall _fpmult bcall _op1toop4 ld a,2 bcall _setxxop1 ld a,5 bcall _setxxop2 bcall _fpdiv pop hl push hl inc hl ; son niveau ld l,(hl) ld h,0 bcall _setxxxxop2 bcall _fpmult ld a,2 bcall _setxxop2 bcall _fpadd pop hl ld d,0 ld e,pokemon_att-pokemon_stats add hl,de ld l,(hl) ; on a ATT ld h,0 bcall _setxxxxop2 bcall _fpmult ld a,(current_attack) call find_attack_a ld d,0 ld e,attack_power-attack_data add hl,de ld l,(hl) ld h,d bcall _setxxxxop2 bcall _fpmult bcall _op4toop2 bcall _fpdiv ld a,2 bcall _setxxop2 bcall _fpadd CE = $+1 ld a,0 bcall _setxxop2 bcall _fpmult bcall _int bcall _convop1 ; rajouter la marge d'erreur de 15% (0.85 à 1 fois le résultat) ret

Il me reste plus qu'a "boucler" les combats et je posterai le nouveau code smile

(par contre si le sabelette niveau 32 n'inflige que 29 points de vie en moins au pauvre chenipan niveau 2 c'est parce que je ne lui ai pas mis les bonnes stats d'attaque)

Ah et j'en suis à 9263 octets !