Topic d'aide en tout genre Rom-hacking

Pages: 1 ... 131 132 133 134 135 [136] 137 138 139 140 141 ... 291

hremeraude

  • Membre
  • 11384 posts
04 septembre 2014, 23:52
a mon avis il a modifier le tileset sans avoir indexé, sinon je vois pas comment il a pu faire ça, et dans ce cas là il devras mettre le tileset d'origine

Arnik

  • Membre
  • 1812 posts
04 septembre 2014, 23:56
Oui, l'ordre est important. Les commandes se déroulent toujours dans l'ordre que tu leur donne.

icekali

  • Membre
  • 14 posts
05 septembre 2014, 11:31
voila à quoi ressemble le code que j'ai créé mais XSE me dit que à la ligne 3 la valeur correct doit être 2

'---------------
#org 0x1E8022
checkmoney A
removemoney A
givepokemon 0x15E 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox 0x86C48A0 MSG_NORMAL '"Tiens!"
waitfanfare
closeonkeypress
setflag 0x201
release
end


Sachant que j'ai testé comme ça au hasard mais c'est du chinois pour moi . Suivre un tuto j'arrive mais créé un script c'est plus dur .
si quelqu'un connait bien la chose je lui serais reconnaissant.

Ps je compte ajouter le multichoix comme toute bonne boutique

hremeraude

  • Membre
  • 11384 posts
05 septembre 2014, 11:56
Je ne suis pas un expert en script, mais il me semble qu'il te manque paymoney (mais ça doit être la même que removemoney), sinon il faut mettre 0 derrière ton prix en hexadecimal (avec un espace), pareil pour le removemoney
« Modifié: 05 septembre 2014, 12:01 par Rémerod »

icekali

  • Membre
  • 14 posts
05 septembre 2014, 13:22
'---------------
#org 0x1E8022
checkmoney A 0
paymoney A 0
givepokemon 0x15E 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox 0x86C48A0 MSG_NORMAL '"Tiens!"
waitfanfare
closeonkeypress
setflag 0x201
release
end


modifier mais toujour le même pb

Unifag

  • Membre
  • 883 posts
05 septembre 2014, 16:05
A mon avis c'est plutôt 0xA et non A 0.
Et ton script ne marchera pas, même si le joueurs n'a pas assez d'argent le pokémon lui sera donné, puisque tu ne défini pas quoi faire si il n'y à pas assez d'argent. J'ai jamais scripter mais à mon avis il faut un if 0x0 goto 0xOffsetScriptPasAssezArgent juste après le checkmoney, et peut être même un compare LASTRESULT 0x1 entre les deux.
Autre chose, tu fais release à la fin alors que tu n'a pas fais de lock, donc il ne sert à rien.

icekali

  • Membre
  • 14 posts
05 septembre 2014, 16:07
ok merci des conseil la je suis larguer lol

hremeraude

  • Membre
  • 11384 posts
05 septembre 2014, 17:54
tu dois également mettre un faceplayer, sinon le personnage ne te regarderas pas

Myst

  • Membre
  • 1870 posts
05 septembre 2014, 18:01
ok merci des conseil la je suis larguer lol

C'est que t'as pas encore assimilé les notions élémentaires de script, revoie les bases via les tutos.

icekali

  • Membre
  • 14 posts
05 septembre 2014, 18:08
ok merci des conseil la je suis larguer lol

C'est que t'as pas encore assimilé les notions élémentaires de script, revoie les bases via les tutos.

oui j essaye d'assimilé mais monter un script comme celui que je veux est assez complexe et vu que je suis débutant je rame mais bon grace à vous j'avance quand même

Myst

  • Membre
  • 1870 posts
05 septembre 2014, 18:15
le check et le goto sont quand même 2 commandes basiques (même si il y a plusieurs types de check), dont le fonctionnement est plutôt simple et s'avère indispensable pour monter des scripts un peu développés.
Le reste, c'est de la logique.

Mickey`

  • Membre
  • 2746 posts
05 septembre 2014, 18:51
Oui, autant pour moi, c'est paymoney, pas removemoney, j'ai confondu.

icekali

  • Membre
  • 14 posts
06 septembre 2014, 00:15
'---------------
#org 0x710760
faceplayer
msgbox 0x710760 MSG_NORMAL '"tu veux acheter un pokémon!"
if1
checkmoney 0xA
paymoney 0xA
givepokemon 0x15E 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox 0x710760 MSG_NORMAL '"Tiens!"
waitfanfare
closeonkeypress
setflag 0x201
release
if2
msgbox 0x710760 MSG_NORMAL '"Reviens plus tard"
end


quelqu'un peu me dire si je me rapproche svp jai recherché et j'ai trouvé un tuto anglais mais je dois encore avoir des problèmes

Myst

  • Membre
  • 1870 posts
06 septembre 2014, 00:33
Mec t'as l'air sympa et tout, mais le rh c'est pas de l'a peu près, tu fais pas petits bouts par petits bouts en espérant qu'a force de correction de la part des autres ca passe.
C'est de la logique le script, en plus XSE te donne des indication sur les commandes si tu vas dans aide, ou lorsque tu tapes.
Bref non ca va pas du tout.
Je te corrige pas, mais sérieux, pourquoi t'as le mémé offset au niveau du script de la msgbox, if1 c'est quoi? le reste sont des commandes qui pour la plupart, ne sont pas complétés correctement. Pourquoi un setflag par contre ? Tout a revoir, la t'as pris des morceau de script ou des commandes qu'on t'a donné et t'as collé ca ensemble, ca va pas du tout.
Revois :
http://www.pokemontrash.com/club/rom-hacking/le-rom-hacking/
http://www.pokemontrash.com/club/rom-hacking/%28tuto%29%28gba%29-la-gestion-des-offsets/
http://www.pokemontrash.com/club/rom-hacking/%28tuto%29%28gba%29-apprendre-a-scripter/
http://www.pokemontrash.com/club/rom-hacking/%28tuto%29-%28gba%29-apprendre-a-scripter-en-static-2/

Le dernier tuto étant plus avance que le troisième, mais assez poussé pour t'indiquer ce que t'as besoin de savoir si tu réfléchis un peu.

icekali

  • Membre
  • 14 posts
06 septembre 2014, 00:57
j'ai pris connaissance des tutos à la base je devais avoir un scripteur( programateur et scripteur sur des hack rom sega) mais il a des problèmes de santé et a du renoncer pour un moment du coup j'essais comme je peu d'avancer le projet seul et mon problème c'est que j'arrive à modifier des script existant mais pas à en rédiger des complets.

du coup je t'atonne et j'essais de me renseigner comme je peu mais les tutos je comprend quasi rien

là jai regarder un tuto sur youtube mais cela ne correspond pas exactement à ce que je veux du coup j'en suis la

'---------------
#org 0x165780
checkmoney 0x00 0x00
paymoney 0x3E8 0x00
updatemoney 0x00 0x00 0x00
msgbox @ 1 0x5
comparer 0x800D 0x1
si 0x1 gotoBegin
hidemoney 0x00 0x00
msgbox @ 2 0x6
givepokemon 0x15E 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox 0x710760 MSG_NORMAL '"Tiens!"
waitfanfare
closeonkeypress
setflag 0x201
release

end

#org @ 1
= Y at-il autre chose?

#org @ 2
= Merci! S'il vous plaît revenez \ Nencore!

Mickey`

  • Membre
  • 2746 posts
06 septembre 2014, 12:19
Bon, je vais pas te répéter ce qu'a dit Myst, il a tout dit. Là, le script, c'est encore n'importe quoi, tu es très loin du compte. Lis les tutos, tu dis ne pas les comprendre, relis-les. Ca ne vient pas en un claquement de doigt, il faut de la patience et de la persévérance. Toutefois, je vais t'aider pour ce script, en espérant que cela t'aide à comprendre les mécanismes.

On va faire étape par étape.

Pour commencer, la commande checkmoney. Ouvrons l'aide de XSE avec F1 :

Citer
checkmoney

Paramètres:
- Valeur d'argent à vérifier
- 0x0 (Je simplifie, ça ne te servira pas)

Donc on y va, on met notre offset de base, et on fait notre première commande. Imaginons que ton Pokémon coûte 5000 pièces, 5000 = 0x1388.

#org 0x[Offset de base]
checkmoney 0x1388 0x0

Continuons. Comme quasiment toutes les commandes qui vont un "check" (une vérification si tu préfères), le résultat est stockée dans la variable 0x800D, aussi appelée LASTRESULT. Nous devons donc regarder si le résultat de notre check est positif. On utilise pour cela la commande compare :

Citer
compare

Paramètres:
- Variable A
- Valeur à comparer avec la variable A

compare LASTRESULT 0x1
Ci-dessus, on regarde si LASTRESULT vaut 1, c'est-à-dire si le résultat de notre précédent check est positif.
Tous les compare doivent être suivi d'une commande if ("si" en français), afin d'indiquer ce qu'on doit faire en fonction du résultat.

Citer
if1

Paramètres:
- Condition
- Pointeur vers la suite si la condition est vérifiée

Nous devons donc regarder si LASTRESULT est plus grand ou égal à 1. Le numéro de la condition sera donc 0x4 (ne me demande pas pourquoi). Puis, on indique un offset où aller pour continuer le script si on a assez d'argent.

if 0x4 goto 0x[Offset-Assez-Argent]
Il faut aussi gérer le cas où le joueur n'a pas assez d'argent. On a vu juste avant que si le joueur avait assez d'argent, le script continuait à l'offset 0x[Offset-Assez-Argent]. Donc, si la condition n'est pas vérifiée, il continue dans la partie où il était. En d'autre termes, ce qui se trouvera dans la section 0x[Offset de base] après la commande if sera exécuté si le checkmoney ne donne pas un résultat positif.
On écrit donc tout simplement à la suite ce qu'on veut qu'il se passe quand le joueur n'a pas assez d'argent. Je te montre pour le moment un simple msgbox. Il ne faut pas oublier de terminer le script juste après.

msgbox 0x[Message-Pas-Assez-Argent] MSG_NORMAL
end

Puis, plus loin, pour indiquer le message :

#org 0x[Message-Pas-Assez-Argent]
= Tu n'as pas assez d'argent.

Bien, continuons maintenant dans le cas où le joueur est assez d'argent. Tu te souviens, si le joueur a assez d'argent, le script continue son déroulement à 0x[Offset-Assez-Argent]. On le note, en créant une nouvelle section dans le script :

#org 0x[Offset-Assez-Argent]
Ce qui permet de définir une nouvelle section.

Quand on est là, on doit demander au joueur s'il veut acheter le Pokémon. Une question avec un Oui/Non à répondre à la fin est parfaite. On va donc tout simplement utiliser un msgbox YESNO.

msgbox 0x[Message-Question] MSG_YESNO
De même, plus loin, pour indiquer le message :

#org 0x[Message-Question]
= Tu veux un Pokémon ?\nC'est 5000 pièces.

Ensuite, je ne réexplique pas, on utilise de nouveau la commande compare pour regarder le réponse du joueur. La réponse "Oui" sera interprétée par LASTRESULT = 1, "Non" par LASTRESULT = 0.

compare LASTRESULT 0x1
Suivi comme toujours de la commande if. Ici, on veut voir si la réponse est égale à 1, la valeur de la condition est donc 0x1 (ne me demande toujours pas pourquoi.)

if 0x1 goto 0x[Offset-Acheter]
Et on définit encore une nouvelle section pour continuer le script si on veut acheter :

#org 0x[Offset-Acheter]
De même que précédemment, il faut gérer la fin du script si on répond non. Je ne te réexplique pas tout, tout simplement tu dois retenir que si la condition n'est pas vérifiée, le script continue dans la section où il se trouvait. Donc, après le if, si le joueur répond non, on peut remettre un simple msgbox suivi du end pour terminer le script. N'oublie pas d'indiquer ton message :

msgbox 0x[Message-Pas-Interesse] MSG_NORMAL
end

#org 0x[Message-Pas-Interesse]
= Tant pis, à bientôt.

Revenons maintenant à notre section 0x[Offset-Acheter], qui sera notre dernière (enfin !). Ici, il faut réfléchir à ce qu'on doit faire. On doit enlever 5000 pièces au joueur, lui donner le Pokémon, afficher un message pour la logique du scénario, et terminer le script. Que de choses à faire ! Heureusement, tu connais presque tout.

Tout d'abord, enlevons les 5000 pièces. Dans l'aide de XSE :

Citer
paymoney

Paramètres:
- Valeur d'argent à payer
- 0x0 (Comme précédemment, je te simplifie le truc)

Rien de compliqué donc, et on n'oublie pas de bien mettre 5000 en hexadécimal, soit 0x1388.

paymoney 0x1388 0x0
Maintenant, on doit donner le Pokémon avec la fonction givepokemon.

Citer
givepokemon

Paramètres:
- Numéro du Pokémon à donner
- Niveau du Pokémon
- Numéro de l'objet tenu
- 0x0
- 0x0
- 0x0

Ok, dans cet exemple, on va faire comme si tu donnais un Pikachu de niveau 5. Le numéro de Pikachu est 25, soit 0x19 en hexadécimal. Il ne tiendra aucun objet, on mettra donc 0x0. On mettra aussi la fanfare, c'est mieux !

givepokemon 0x19 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
waitfanfare

Le waitfanfare te permet de dire au script d'attendre la fin de la petite musique pour continuer.

Enfin, on fait un petit message, et on termine le script :

msgbox 0x[Message-Merci] MSG_NORMAL
end

#org 0x[Message-Merci]
= Merci bien !

Juste un petit plus : tu peux rajouter la commande faceplayer au tout début de ton script pour faire en sorte que le personnage à qui tu parles te regarde.

faceplayer

Et voilà, tu as tout ton script en entier ! Le voici une fois qu'on a tout rassemblé :

#org 0x[Offset de base]
faceplayer
checkmoney 0x1388 0x0
compare LASTRESULT 0x1
if 0x4 goto 0x[Offset-Assez-Argent]
msgbox 0x[Message-Pas-Assez-Argent] MSG_NORMAL
end


#org 0x[Offset-Assez-Argent]
msgbox 0x[Message-Question] MSG_YESNO
compare LASTRESULT 0x1
if 0x1 goto 0x[Offset-Acheter]
msgbox 0x[Message-Pas-Interesse] MSG_NORMAL
end


#org 0x[Offset-Acheter]
paymoney 0x1388 0x0
givepokemon 0x19 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
waitfanfare
msgbox 0x[Message-Merci] MSG_NORMAL
end



#org 0x[Message-Pas-Assez-Argent]
= Tu n'as pas assez d'argent.

#org 0x[Message-Question]
= Tu veux un Pokémon ?\nC'est 5000 pièces.

#org 0x[Message-Pas-Interesse]
= Tant pis, à bientôt.

#org 0x[Message-Merci]
= Merci bien !


Voilà, en espérant t'avoir débloqué et aidé, mais surtout en espérant que tu aies compris pas mal de choses dans le fonctionnement des scripts. Je le répète, sers-toi de l'aide de XSE, elle est vraiment très utile par moment.

Ce message s'adresse également à tous les nouveaux Rom-hackeurs, le fonctionnement est le même ! Les scripts ne sont que de la logique, vous devez réfléchir ! ;)
« Modifié: 06 septembre 2014, 12:21 par Mickey` »

icekali

  • Membre
  • 14 posts
06 septembre 2014, 13:00
merci beaucoup oui maintenant je comprend la chose et je t'en suis reconnaissant  tu va me permettre d'avancer mon projet

et si jai bien compris tout les message offset je les rattache chacun a leur commande en trouvant des emplacement libres et après sa doit fonctionner

donc cela me donne cela j'ai chercher les offset disponible avec FSF
'---------------
#org 0x165853
faceplayer
checkmoney 0x1388 0x0
compare LASTRESULT 0x1
if 0x4 goto 0x711E48
msgbox 0x711E49 MSG_NORMAL
end


#org 0x711E48
msgbox 0x711E4A MSG_YESNO
compare LASTRESULT 0x1
if 0x1 goto 0x711E4B
msgbox 0x711E4C MSG_NORMAL
end


#org 0x711E4B
paymoney 0x1388 0x0
givepokemon 0x19 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
waitfanfare
msgbox 0x711E4D MSG_NORMAL
end



#org 0x711E49
= Tu n'as pas assez d'argent.

#org 0x711E4A
= Tu veux un Pokémon ?\nC'est 5000 pièces.

#org 0x711E4C
= Tant pis, à bientôt.

#org 0x711E4D
= Merci bien !

par contre j'ai un message d'érreur n°13 "type imcompatible à la ligne 5 probleme pour #define

jai changé tout les offset en prenant des offset de 2000 octets à chaque fois (vu sur un problème résolu sur le forum) mais le même message d'erreur réaparait
« Modifié: 06 septembre 2014, 13:49 par icekali »

Mickey`

  • Membre
  • 2746 posts
06 septembre 2014, 15:04
Si tu avais lu les tutos de script, tu saurais que pour indiquer les offsets pointeurs, il faut mettre un 8 devant !

Sinon, change tes offsets, ça buguera complètement là. Regarde le tuto "Gestion des offsets", il est épinglé.

darkfire72

  • Membre
  • 459 posts
06 septembre 2014, 15:06
"icekali", je veut pas dire mais dans Rouge Feu tu as un mec qui te vend un magicarp, tu aurais pu t'en inspirée au lieu de demander a tout le monde de faire ton script. Bref la prochaine fois cherche un peut avant de demander de l'aide.

P.S: C'est pas méchant  ;)   

Myst

  • Membre
  • 1870 posts
06 septembre 2014, 15:29
"icekali", je veut pas dire mais dans Rouge Feu tu as un mec qui te vend un magicarp, tu aurais pu t'en inspirée au lieu de demander a tout le monde de faire ton script. Bref la prochaine fois cherche un peut avant de demander de l'aide.

P.S: C'est pas méchant  ;)   

Non pas vraiment, les scripts de bases sont souvent remplies de variables inconnus et de commandes "inutiles"
Si tu avais lu les tutos de script, tu saurais que pour indiquer les offsets pointeurs, il faut mettre un 8 devant !

Sinon, change tes offsets, ça buguera complètement là. Regarde le tuto "Gestion des offsets", il est épinglé.

Oui.


Sérieux acekali, j'ai vraiment l’impression que tu cherches pas a comprendre, t'as l'air d'avoir zero notion. Ou t'es un peu limité, je sais pas. Mais j'ai cette désagréable impression que tu fais aucun effort quand tu postes. C'est un topic d'aide et tout, mais pas un topic pour assisté, ca te dirait pas de faire plus d'effort et de réfléchir un peu plus ?

icekali

  • Membre
  • 14 posts
06 septembre 2014, 15:55



Sérieux acekali, j'ai vraiment l’impression que tu cherches pas a comprendre, t'as l'air d'avoir zero notion. Ou t'es un peu limité, je sais pas. Mais j'ai cette désagréable impression que tu fais aucun effort quand tu postes. C'est un topic d'aide et tout, mais pas un topic pour assisté, ca te dirait pas de faire plus d'effort et de réfléchir un peu plus ?

J'ai en effet que très peu de notion de Script et je débute complètement vu que habituellement je gère la story board la promotion , le béta test et quelques ajustement de texte .

la maintenant je dois prendre une nouvelle casquette dans un domaine où je suis loin d'être compétent .

Après si je donne l'impression de ne pas être à votre écoute j'en suis désolé mais grâce à vos tutos j'ai réussi pas mal de chose sans avoir besoin d'aide mais ce script la en particulier est compliqué pour moi.

merci pour vos renseignements

darkfire72

  • Membre
  • 459 posts
06 septembre 2014, 16:54
Je viens de réviser le tuto sur la gestion des offsets (encore) et j'aurais une question, je souhaite insérer un nouveau tileset mais pour repointer j'ai pris FSF et donc si j'ai bien suivis au niveau de l'intervalle de recherche je n'ai pas forcément besoin d'en mettre un ?     

Myst

  • Membre
  • 1870 posts
06 septembre 2014, 17:17
Pour les tilesets, tu fais une recherche standard avec fsf, donc pas d’intervalle vu que t'as besoin de qu'un offset.
Apres tu quand tu va vouloir repoint avec a-map, tu mets intervalle de recherche $offsetfsf $FFFFFF, et devrait pas y avoir de bug.

darkfire72

  • Membre
  • 459 posts
06 septembre 2014, 17:22
Ok merci beaucoup!!

Pokémasterhacker

  • Membre
  • 4 posts
07 septembre 2014, 18:46
comment on ajoute des pokémon de x y dans une rom gba

yago58

  • Invité
07 septembre 2014, 18:47
Fais une recherche avant.

Pokémasterhacker

  • Membre
  • 4 posts
07 septembre 2014, 18:49
j'ai vraiment besoin d'une idée j'ai déjà fait des recherches mais j'ai pas trouver
« Modifié: 07 septembre 2014, 18:55 par Pokémasterhacker »

MikaZ

  • Membre
  • 367 posts
07 septembre 2014, 19:05
qqn pourrait me dir si c'est possible d'insérer des tiles style 3D platine voir noir et blanc sur gba

Myst

  • Membre
  • 1870 posts
07 septembre 2014, 19:11
Des trucs avec la même gueule ouais, mais t'auras jamais la même perspective/profondeur.

MikaZ

  • Membre
  • 367 posts
07 septembre 2014, 19:13
c'est sur mais sa pourrait rendre mieux deja ...

Pages: 1 ... 131 132 133 134 135 [136] 137 138 139 140 141 ... 291    En haut ↑