Topic d'aide en tout genre Rom-hacking

Pages: 1 ... 151 152 153 154 155 [156] 157 158 159 160 161 ... 291

Weby

  • Membre
  • 56564 posts
08 février 2015, 21:45
Bah ça m'a pris des semaines avant de maîtriser blender la moindre, c'est pas ici que t'auras un cours rapide.

pounou

  • Membre
  • 55 posts
08 février 2015, 22:08
Ça marche, tu peux me passer ton .obj stp ?
« Modifié: 08 février 2015, 22:19 par Yago »

Mickey`

  • Membre
  • 2746 posts
08 février 2015, 23:21
J'ai un soucis,je veux faire un script "MSG" et "giveitem" en même temps,mais après qu'on me l'ait donné,dès que je reparle au PNJ..Et bah sa me le redonne du coup j'peux l'avoir en infini,et j'ai essayé avec lock et release(même si je sais pas à quoi sa sert).

Du coup sa me gêne un peu même si c'est un problème minime.Help me please !

Regarde le tutoriel de script de Sainior, la partie "givepokemon". Tu auras tout ce dont tu as besoin.

Edwearth

  • Membre
  • 37 posts
10 février 2015, 23:57
Bonjour tout le monde,


J'aurais deux trois questions sur la RAM.
Lors d'une attaque, les données de l'attaques ainsi que les cibles sont-elles loadées quelque part, et en bloc? Si oui, où? Peu importe la version. J'aimerais pouvoir checker le type de l'attaque, et le changer au besoin. (le localiser étant la partie blocante).

Autre chose, je sais trouver l'octet contenant les changements de status (tels que brulé, paralisé, etc) d'un pokemon dans l'équipe, mais où se trouve la confusion. (C'est différents puisque la confusion ne s'applique que sur les pokemon actifs).

Dernière chose, qui se rapproche de la précédente, c'est la localisation des altérations de stats, suite à "gros-yeux" ou "rugissement" par exemple.

Voilà, comme je l'ai déjà dis, peu importe la version (mëme si emeraude serait le mieux :)).

Merci et bonne soirée :)

Ps : Et pour les effets sur le terrain, comme pour "picots" ou "tourniquet"?
« Modifié: 11 février 2015, 13:00 par Edwearth »

Gadoin

  • Membre
  • 386 posts
11 février 2015, 14:01
@Edwearth : Pour trouver les offset que tu recherche, le plus simple est d'utiliser la fonction de recherche de cheat disponible avec VBA (Ctrl+C), par contre je ne sais pas si y'a un tuto quelque part sur le forum...

Edwearth

  • Membre
  • 37 posts
12 février 2015, 01:11
@Edwearth : Pour trouver les offset que tu recherche, le plus simple est d'utiliser la fonction de recherche de cheat disponible avec VBA (Ctrl+C), par contre je ne sais pas si y'a un tuto quelque part sur le forum...

J'essaie avec cette methode, mais seul 2 3 offsets apparaisent pour 0x02XXXXXX. Et ce n'est pas ce que je veux. (j'ai entre autre un compteur qui doit compter le nombre de tours dans un combat et un autre compteur, pour voir si une attaque a été choisi par les 4 combattants, à priori). Mais rien d'interessant.

Pour voir si ma méthode est la bonne, je check tout les octets de 00. Ensuite je fais une attaque augmentant l'attaque de l'adversaire. Je check les bytes superieurs aux précédants. Puis je ré-attaque. Je re-check. et ainsi de suite, jusqu'a ce qu'il ne reste que quelques résultats.

Je suspecte la "mise" à 0 au départ de fausser les résultats. Je vois ça demain.

Gadoin

  • Membre
  • 386 posts
12 février 2015, 16:06
Pour les stats, démarre ta recherche avec toute les valeurs possibles (plus grand ou égal a 0) et affine ensuite tu baisse/augmente après chaque attaque, tu peux aussi faire un autre attaque et chercher les valeurs qui n'ont pas changé, de cette manière tu devrai trouver assez facilement.

Testé avec une rouge feu fr : l'adresse qui contient la variation de vitesse ennemie est 0x02023C57, j'imagine que les autres ne doivent pas être loin ^^
« Modifié: 12 février 2015, 16:13 par Gadoin »

Edwearth

  • Membre
  • 37 posts
12 février 2015, 16:18
Effectivement, j'ai trouvé ce qu'il me fallait pour les stats.

Merci bien !

Edit : Pour Emeraude US, offset pour les stats d'attaque, suivie de la defense, vitesse, attaque spé, defense spé, précision et esquive :

Allié 1 : 0x0202409D
Allié 2 : 0x0202414D
Ennemie 1 : 0x020240F5
Ennemie 2 : 0x020241A5

0x37 bytes plus loin, le byte montrant le nombre de tours restant en étant confus. (Si 0 alors non confus)
0x33 le status (brulé, gelé, endormi, etc)

Edit 2 : Par contre si quelqu'un sait où ou comment faire pour trouver l'attaque "en cours", dont la/les cibles et le type.
« Modifié: 12 février 2015, 22:51 par Edwearth »

Pichu388

  • Membre
  • 399 posts
14 février 2015, 11:28
Bonjour tout le monde! Depuis tout à l'heure je suis sur un script (en fait le premier vrai script de la rom qu'on a) et je met tout ça sur A-map, je compile, aucune erreur. Et quand je vais dans le jeu, quand je vais dessus, en fait je crois que ça me fait que le lock, et pas le rèste. la musique continue d'être jouée tranquillement, mais moi mes applymovement marchent pas. Voilà le code:
Spoiler
'---------------
#org 0x711DB8
lock
msgbox 0x8800000 MSG_NORMAL '"Hey! Viens ici!"
applymovement 0x1 0x8800100
waitmovement 0x0
release

'---------
' Strings
'---------
#org 0x800000
= Hey! Viens ici!


'-----------
' Movements
'-----------
#org 0x800100
#raw 0x63 'Question Mark (?)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0xFE 'End of Movements
Ps: aucun problème d'offset, ça me fait pas de hjzvbukvku
« Modifié: 14 février 2015, 17:05 par Pichu388 »

Guitoh

  • Membre
  • 5981 posts
14 février 2015, 16:10
tu veux faire quoi avec ce script ?

Pichu388

  • Membre
  • 399 posts
14 février 2015, 16:20
normalement c'est un personnage qui est censé t'appeler et tu vas retourner en arrière. En gros c'est ça.

Guitoh

  • Membre
  • 5981 posts
14 février 2015, 16:38
me suis pas encore lancé dans le script gba, m'enfin bon j'ai de l'xp en codage, donc :
- Je vois rien pour un arrêt de musique
- #raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
C'est quoi cette dégueulasserie ?? Améliore moi ça de suite

- #org 0x710DB8
release
A quoi correspond ce bout de code ?

Physikal IX

  • Membre
  • 59 posts
14 février 2015, 16:47
Je crois que tu as oublié la commande "end".
Mais je pense pas que c'est cet oubli qui va tout bloquer.

Pichu388

  • Membre
  • 399 posts
14 février 2015, 17:04
me suis pas encore lancé dans le script gba, m'enfin bon j'ai de l'xp en codage, donc :
- Je vois rien pour un arrêt de musique C'est normal, elle continue de jouer, je disais ça pour pas qu'on pense que ça freeze
- #raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
C'est quoi cette dégueulasserie ?? Améliore moi ça de suite Je sais pas comment réduire ça, moi :/

- #org 0x710DB8
release
A quoi correspond ce bout de code ?
Un petit fail sur le copier coller, je modifie ça.

Gadoin

  • Membre
  • 386 posts
14 février 2015, 17:40
normalement c'est un personnage qui est censé t'appeler et tu vas retourner en arrière. En gros c'est ça.

Si c'est un autre personnage qui t'apelle tu devrais mettre :
applymovement 0xFF 0x8800100
Pour que ce soit ton joueur qui bouge car 0x1 fera bouger un autre personnage de la map.


Avec cet applymovement :
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
#raw 0x12 'Step Left (Normal)
le personnage ne va pas se retourner mais partir a gauche.


Mais à part sa, le script fonctionne (testé), il n'y a aucun freeze, l'erreur est ailleurs.
Ton message s'affiche-t'il au moins? Car si ce n'est pas le cas, c'est peut-être que ce n'est pas le bon script qui est lancé.

Pichu388

  • Membre
  • 399 posts
14 février 2015, 17:49
bah je vais voir avec ces petites modifs, je vous préviens en édit. Mais ce ne sera pas instantané. Merci d'avance et quand même ^^

Guitoh

  • Membre
  • 5981 posts
14 février 2015, 18:49
@gadoin : d'après ce que j'ai lu, ça dépend des jeux ;)

@pichu : tu peux pas définir une adresse mémoire ou tu mets juste cette ligne, et tu l’exécute x fois ?

Edwearth

  • Membre
  • 37 posts
14 février 2015, 19:15
Une petite question pour ceux qui comprennent l'asm.

Pourquoi ceci ne marche pas :
Spoiler
.text
.align 2
.thumb
.thumb_func
.global swap

main:
push {r0-r3, lr}

ldr r0, .CDEFA1
ldrb r1, [r0]

ldr r2, .CSPEDEFA1
ldrb r3, [r2]

strb r1, [r2]
strb r3, [r0]

ldr r0, .CDEFA2
ldrb r1, [r0]

ldr r2, .CSPEDEFA2
ldrb r3, [r2]

strb r1, [r2]
strb r3, [r0]

ldr r0, .CDEFE1
ldrb r1, [r0]

ldr r2, .CSPEDEFE1
ldrb r3, [r2]

strb r1, [r2]
strb r3, [r0]

ldr r0, .CDEFE2
ldrb r1, [r0]

ldr r2, .CSPEDEFE2
ldrb r3, [r2]

strb r1, [r2]
strb r3, [r0]

pop {r0-r3, pc}

.align 2
.CDEFA1:
.word 0x0202409E
.CSPEDEFA1:
.word 0x020240A1
.CDEFA2:
.word 0x202414E
.CSPEDEFA2:
.word 0x02024151
.CDEFE1:
.word 0x020240F6
.CSPEDEFE1:
.word 0x020240F9
.CDEFE2:
.word 0x020241A6
.CSPEDEFE2:
.word 0x020241A9

Alors que ceci fonctionne :
Spoiler
.text
.align 2
.thumb
.thumb_func
.global swap

main:
push {r0-r3, lr}

ldr r0, .DEFA1
ldrh r1, [r0]

ldr r2, .SPEDEFA1
ldrh r3, [r2]

strh r1, [r2]
strh r3, [r0]

ldr r0, .DEFA2
ldrh r1, [r0]

ldr r2, .SPEDEFA2
ldrh r3, [r2]

strh r1, [r2]
strh r3, [r0]

ldr r0, .DEFE1
ldrh r1, [r0]

ldr r2, .SPEDEFE1
ldrh r3, [r2]

strh r1, [r2]
strh r3, [r0]

ldr r0, .DEFE2
ldrh r1, [r0]

ldr r2, .SPEDEFE2
ldrh r3, [r2]

strh r1, [r2]
strh r3, [r0]

pop {r0-r3, pc}

.align 2
.DEFA1:
.word 0x02024548
.SPEDEFA1:
.word 0x0202454E
.DEFA2:
.word 0x020245AC
.SPEDEFA2:
.word 0x020245B2
.DEFE1:
.word 0x020247A0
.SPEDEFE1:
.word 0x020247A6
.DEFE2:
.word 0x02024804
.SPEDEFE2:
.word 0x0202480A

?

La première routine (qui ne marche pas) est censé inverser plusieurs octets et la seconde (qui marche) inverse des double octets.
Plus préciséments, la première devrait inverser les octets correspondants au changements de stats defensifs des combattants. La seconde inverses la def et la spé def des combattants.

Bonne soirée

Arnik

  • Membre
  • 1812 posts
14 février 2015, 20:21
'Faut vraiment que je maîtrise l'asm... :/

Physikal IX

  • Membre
  • 59 posts

Edwearth

  • Membre
  • 37 posts

Physikal IX

  • Membre
  • 59 posts
14 février 2015, 20:30
Ah d'accord,j'croyais que c'était en 3 mots...

Arnik

  • Membre
  • 1812 posts
14 février 2015, 20:41
Edwearth, tu ne voudrais pas un peu me coatcher par hasard? Si ça t'intéresse, on peut continuer par MP.

Edwearth

  • Membre
  • 37 posts
14 février 2015, 21:59
Si tu veux mais j'apprends aussi donc ça sera la base de la base  :)

Physikal IX

  • Membre
  • 59 posts
14 février 2015, 23:36
Bonsoir à tous...
Alors enfaite j'ai un problème avec le célèbre "givepokémon"...
Lorsque j'ai fait le script,le PNJ a bien donné le pokémon que je voulais (Arcko),mais quand je vais dans l'interface "Equipe",je tombe sur deux points d'interrogations. PKMN de Type Normal,rencontré au "FERRY" ??? Sachant que je l'ai pris sur une map que j'ai faite.
Help me please .

Guitoh

  • Membre
  • 5981 posts
14 février 2015, 23:43
...le script ?

Physikal IX

  • Membre
  • 59 posts
14 février 2015, 23:46
Ah ouai le voilà ^^'

'---------------
#org 0x8C2970
checkflag 0x201
lock
faceplayer
if 0x1 goto 0x86A2B31
msgbox 0x87A3300 MSG_YESNO '"Je connais pas beaucoup\nla région..."
compare LASTRESULT 0x1
if 0x1 goto 0x89E3009
msgbox 0x86C300D MSG_NORMAL '"Reviens quand t'en voudras alors."
release
end

'---------------
#org 0x6A2B31
msgbox 0x86E3800 MSG_NORMAL '" Comment tu vas ?\pT'élèves bien m..."
release
end

'---------------
#org 0x9E3009
givepokemon 0xFC 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox 0x86E2897 MSG_NORMAL '" Et bien prend-le.\pMais élève-le\..."
waitfanfare
closeonkeypress
setflag 0x201
release
end


'---------
' Strings
'---------
#org 0x7A3300
= Je connais pas beaucoup\nla région...\pPuis le monsieur là-bas m'a donné\nun ARCKO.\pJe m'en sers pas...Tu le veux ?

#org 0x6C300D
= Reviens quand t'en voudras alors.

#org 0x6E3800
=  Comment tu vas ?\pT'élèves bien mon ARCKO\nj'espère.

#org 0x6E2897
=  Et bien prend-le.\pMais élève-le\nà la perfection !

Guitoh

  • Membre
  • 5981 posts
15 février 2015, 00:01
Attends y'a un pb là, aucune de tes commandes ne pointe vers un des offsets de ton script

Physikal IX

  • Membre
  • 59 posts
15 février 2015, 00:04
Hein :pedo: J'ai pas compris ><

Guitoh

  • Membre
  • 5981 posts
15 février 2015, 00:29
ah nan j'ai rien dis, la fatigue, j'ai lu trop vite  :fail:

je vois pas trop ce qui peut faire planter du coup. Pas de pb de chevauchements d'offsets ?

Pages: 1 ... 151 152 153 154 155 [156] 157 158 159 160 161 ... 291    En haut ↑