A la recherche des scripts perdus...
Flower// - 3 août 2011 à 14:35 Hello peuple des ROM-Hackers de Pokémon Trash ! Ce topic a pour but de regrouper et d'expliquer certains scripts dont on a pas forcément l'idée d'utiliser et qui pourtant pourrait bien être utiles. Je tiens à préciser que vous devez avoir la base du scripting pour comprendre ce que je vais vous expliquer, donc direction le tuto de Sainior si vous n'avez jamais scripté: http://www.pokemontrash.com/club/rom-hacking/(tuto)(gba)-apprendre-a-scripter/ LE BRAILLE [spoiler]Pour commencer, je vais vous apprendre à utiliser un script inatendu. Qui n'a jamais rêvé de mettre du piment dans sa hack? Des énigmes incroyables à résoudre? Avec des messages codés? C'est ce qui m'amène aujourd'hui à vous apprendre à effectuer le script du braille! Le braille avait été utilisé dans RF/VF en 2004 pour l'énigme du trou percé. Vous vous souvenez? Bien, voici le code: ``` '--------------- #org 0x[offset1] lockall braille 0x8[offset2] waitkeypress releaseall end '--------- ' Braille '--------- #org 0x[offset2] #braille [********] ``` Bien, décortiquons tout ça... D'abord on déclare l'offset, ``` #org 0x[offset1] ``` puis on lock les mouvements. ``` lockall ``` Jusque là, rien de nouveau. Mais vient ensuite une fonction "braille" avec un offset qui repointe vers le contenu de cette fonction. ``` braille 0x8[offset2] ``` C'est donc cela la fonction "braille". Concernant le contenu de la fonction "braille", ``` '--------- ' Braille '--------- ``` on a, bien sûr, l'offset pointé, ``` #org 0x[offset2] ``` puis le contenu. ``` #braille [******] ``` A la place du "[******]" vous pouvez saisir votre texte braille. C'est tout? Bah oui! Il suffit juste d'écrire en majuscule. Et CE QUE VOUS VOULEZ !!! Voilà un exemple de braille simple: ``` '--------------- #org 0x1641AE lockall braille 0x81A7CB1 waitkeypress releaseall end '--------- ' Braille '--------- #org 0x1A7CB1 #braille HELLO ``` Si vous souhaitez assembler un texte un peu plus long, la tâche se complique, il faut altérer les codes, mais je vais me renseigner à ce sujet car je ne comprends pas entièrement son fonctionnement. Pour les plus avancés, vous pouvez coupler le braille avec vos connaissances pour faire de magnifiques casses-tête et autre énigmes. Voilà un script qui donnera des idées: ``` '--------------- #org 0x[offset/A] lockall checkflag 0x2E3 if 0x1 goto 0x8[offset/B] msgbox 0x8[offset1] MSG_YESNO compare LASTRESULT 0x0 if 0x1 goto 0x8[offset/C] msgbox 0x8[offset2] MSG_KEEPOPEN braille 0x8[offset3] waitkeypress releaseall end '--------------- #org 0x[offset/B] msgbox 0x8[offset4] releaseall end '--------------- #org 0x[offset/C] msgbox 0x8[offset5] releaseall end '--------- ' Strings '--------- #org 0x[offset1] = La porte ne s'ouvre pas.\nL'examiner de plus près? #org 0x18B91C = En s'approchant plus près, on peut\nvoir des écritaux sur la porte. #org 0x[offset4] = C'est ouvert! #org 0x[offset5] = [player] n'est qu'une pourriture\nqui pige rien au braille. '--------- ' Braille '--------- #org 0x[offset3] #braille COUPE ``` Ce script est tiré de l'énigme du trou percé. Il est parfait pour mettre à l'épreuve le joueur avant de rentrer dans une grotte, manoir ou autre. Je vous résume ce qui se passe, tout d'abord le script interroge le player s'il veut s'approcher de la porte. Si non, le player se fait pourrir et le script se termine, si oui, le script apprend au player qu'il est écrit quelque chose et le braille est déclenché. Si le joueur a compris ce qu'il est écrit (coupe, naturellement), celui-ci n'a qu'à utiliser la technique attendue, et...magie! Le script se déclenche et un texte apparaît disant que la porte est ouverte. Et elle l'est effectivement, ingénieux n'est-ce pas? Je viens de vous prouver que ce genre de script, utilisé intelligemment, n'est pas aussi inutile finalement. Voilà, j'en ai fini avec le braille! Ouf! Naturellement s'il y a quelque chose à rectifier dîtes le moi tout de suite je suis là pour ça. Et si vous avez une quelconque idée par rapport à un autre script que vous voudriez que j'analyse, il n'y a pas de soucis! Et on copie pas hein, gaffe au plagieurs. Made in Flower! Demandez moi et il n'y aura pas de problèmes.[/spoiler] LE MOVE CAMERA [spoiler]Bien, maintenant on va s'attaquer à un applymovement. Applymovement!? Mais on connais déjà ça! Nan mais pas n'importe lequel, le fameux mais peu connu "Move Camera"! Waaa, keskessékessa! Un peu d'anglais enfin! Cela signifie, bouger la caméra. Et ça s'utilise comme un vulgaire applymovement! Allez, voilà le code: ``` '--------------- #org 0x[offset1] applymovement MOVE_CAMERA 0x8[offset2] waitmovement 0x0 release end '----------- ' Movement '----------- #org 0x[offset2] #raw 0x9 'Step Up (Normal) #raw 0x9 'Step Up (Normal) #raw 0x9 'Step Up (Normal) #raw 0x9 'Step Up (Normal) #raw 0x9 'Step Up (Normal) #raw 0xFE 'End of Movements ``` Comme vous l'avez remarqué, ça n'a rien de bien différent avec l'applymovement dont vous aviez l'habitude. Sauf qu'au lieu de déclarer le personnage qui se déplace, vous indiquez la camera par la fonction "MOVE_CAMERA". Encore une foi, ça peut vous sembler inutile, ben pas tant que ça finalement... Un petit exemple: ``` '--------------- #org 0x[offset/A] msgbox 0x8[offset1] MSG_NORMAL applymovement MOVE_CAMERA 0x8[offset2] waitmovement 0x0 release end '--------- 'Strings '--------- #org 0x[offset1] = Regarde !\nLà haut!\pUn Pokémon Légendaire !!! '----------- ' Movement '----------- #org 0x[offset2] #raw 0x9 'Step Up (Normal) #raw 0x9 'Step Up (Normal) #raw 0x9 'Step Up (Normal) #raw 0x9 'Step Up (Normal) #raw 0x9 'Step Up (Normal) #raw 0xFE 'End of Movements ``` Alors, pas mal pour votre scénario finalement hein? Ca pourrait servir! Voili voilou j'en ai fini avec le MOVE_CAMERA, j'espère que ça sera utile. N'hésitez pas à me pointer du doigt les éventuelles erreurs que j'aurais laissé derrière moi. Et don't copy! Made in Flower !!![/spoiler] ALIEN INVASION [spoiler] Bonjour tout le monde! Aujourd'hui je vais vous apprendre un script que vous ne connaissez pas, c'est impossible, puisqu'il n'a jamais été utilisé dans un jeu Pokémon. Alors que fait-il dans un jeu Pokémon? Et bien j'en sais rien. On ne peu pas tout expliquer. Tout d'abord, qu'est-ce que c'est que ce script. Ce petit script n'est en faite qu'un vulgaire spécial. Et oui, rien de ien compliquer à réaliser, son numéro est le "6A". D'accord, ok, mais il sert à quoi ce spécial? Vous n'en trouverez surement pas l'utilité mais vu que j'aime les scripts inutilisés je vous en fait cadeau tout de même. Ce script fait apparaître (tenez vous bien) un message très bizarre suivi d'un son d'extraterrestre! Je ne vous fais pas une blague, si si, ça existe! Voici le code: ``` '--------------- #org 0x[offset] special 0x6A end ``` Et oui, je vous l'avais dit, rien de bien compliqué! Je ne le décortique pas, vous êtes sensé savoir ce qu'est un spécial. Bien, testez le code et vus verrez, ça marche. Mais alors où est l'utilité de ce code? Et bien vous pourrez vous en servir lors d'une animation dans votre scénario, par exemple: "Il y eu un tremblement de terre, le Rival et moi-même étions affolé, et c'est alors que nous entendîmes des sons bizarres..." Pas mal pour votre jeu, n'est-ce pas? Bon allez, je vous laisse, à bientôt pour un nouveau script stupide auquel on ne pense jamais! [/spoiler] DISTRIBUTEUR [spoiler]Bonjour, aujourd'hui je vais vous apprendre à faire un distributeur de boissons. Et je vous le dit, c'est bien plus compliqué que ce que vous croyez. C'est un script de 115 lignes ! Heureusement je suis là pour vous passer ce script. Une version simplifiée par Bupo est disponible un peu plus bas. ``` '--------------- #org 0x16C05C lockall preparemsg 0x8195554 '"Un distributeur!\nQue choisir?" waitmsg showmoney 0x0 0x0 0x0 goto 0x816C06D '--------------- #org 0x16C06D multichoice 0xC 0x0 0x1A 0x0 copyvar 0x4001 LASTRESULT copyvar 0x8000 0x4001 compare 0x8000 0x0 if 0x1 goto 0x816C0AB compare 0x8000 0x1 if 0x1 goto 0x816C0BC compare 0x8000 0x2 if 0x1 goto 0x816C0CD msgbox 0x81955B0 MSG_KEEPOPEN '"Pas soif!" goto 0x816C175 '--------------- #org 0x16C0AB setvar 0x4000 0x1A checkmoney 0xC8 0x0 goto 0x816C0F3 '--------------- #org 0x16C0BC setvar 0x4000 0x1B checkmoney 0x12C 0x0 goto 0x816C0F3 '--------------- #org 0x16C0CD setvar 0x4000 0x1C checkmoney 0x15E 0x0 goto 0x816C0F3 '--------------- #org 0x16C175 hidemoney 0x0 0x0 releaseall end '--------------- #org 0x16C0F3 compare LASTRESULT 0x0 if 0x1 goto 0x816C159 checkitemroom 0x4000 0x1 compare LASTRESULT 0x0 if 0x1 goto 0x816C167 compare 0x4001 0x0 if 0x1 call 0x816C0DE compare 0x4001 0x1 if 0x1 call 0x816C0E5 compare 0x4001 0x2 if 0x1 call 0x816C0EC updatemoney 0x0 0x0 0x0 bufferitem 0x0 0x4000 sound 0x63 msgbox 0x819558C MSG_KEEPOPEN '"Et hop! [buffer1]!" additem 0x4000 0x1 goto 0x816C14D '--------------- #org 0x16C159 msgbox 0x8195572 MSG_KEEPOPEN '"Oups! Pas assez d'argent!" goto 0x816C175 '--------------- #org 0x16C167 msgbox 0x8195598 MSG_KEEPOPEN '"L'inventaire est plein!" goto 0x816C175 '--------------- #org 0x16C0DE paymoney 0xC8 0x0 return '--------------- #org 0x16C0E5 paymoney 0x12C 0x0 return '--------------- #org 0x16C0EC paymoney 0x15E 0x0 return '--------------- #org 0x16C14D preparemsg 0x8195554 '"Un distributeur!\nQue choisir?" waitmsg goto 0x816C06D '--------- ' Strings '--------- #org 0x195554 = Un distributeur!\nQue choisir? #org 0x1955B0 = Pas soif! #org 0x19558C = Et hop! [buffer1]! #org 0x195572 = Oups! Pas assez d'argent! #org 0x195598 = L'inventaire est plein! ``` Ce script n'est qu'une longue suite de conditions. "SI blablabla, ALORS blablabla..." C'est donc un code compliqué, dont je vous ferais l'honneur de ne pas expliquer et détailler. Soyez heureux, je le partage avec vous. Allez, c'est fini pour cette fois ! Voici le même en dynamic par Bupo. ``` #dynamic 0x[offset] #org @main lockall preparemsg @whatchoice '"Un distributeur!\nQue choisir?" waitmsg showmoney 0x0 0x0 0x0 goto @select #org @select multichoice 0xC 0x0 0x1A 0x0 copyvar 0x4001 LASTRESULT copyvar 0x8000 0x4001 compare 0x8000 0x0 if 0x1 goto @choice1 compare 0x8000 0x1 if 0x1 goto @choice2 compare 0x8000 0x2 if 0x1 goto @choice3 msgbox @nothanks MSG_KEEPOPEN '"Pas soif!" goto @exit #org @choice1 setvar 0x4000 0x1A checkmoney 0xC8 0x0 goto @suit #org @choice2 setvar 0x4000 0x1B checkmoney 0x12C 0x0 goto @suit #org @choice3 setvar 0x4000 0x1C checkmoney 0x15E 0x0 goto @suit #org @exit hidemoney 0x0 0x0 releaseall end #org @suit compare LASTRESULT 0x0 if 0x1 goto @pointer1 checkitemroom 0x4000 0x1 compare LASTRESULT 0x0 if 0x1 goto @pointer2 compare 0x4001 0x0 if 0x1 call @pointer3 compare 0x4001 0x1 if 0x1 call @pointer4 compare 0x4001 0x2 if 0x1 call @pointer5 updatemoney 0x0 0x0 0x0 bufferitem 0x0 0x4000 sound 0x63 msgbox @obtain MSG_KEEPOPEN '"Et hop! [buffer1]!" additem 0x4000 0x1 goto @reset #org @pointer1 msgbox @nomoney MSG_KEEPOPEN '"Oups! Pas assez d'argent!" goto 0x816C175 #org @pointer2 msgbox @fullbag MSG_KEEPOPEN '"L'inventaire est plein!" goto @exit #org @pointer3 paymoney 0xC8 0x0 return #org @pointer4 paymoney 0x12C 0x0 return #org @pointer5 paymoney 0x15E 0x0 return #org @reset preparemsg @whatchoice '"Un distributeur!\nQue choisir?" waitmsg goto @select #org @whatchoice = Un distributeur!\nQue choisir? #org @nothanks = Pas soif! #org @obtainitem = Et hop! [buffer1]! #org @nomoney = Oups! Pas assez d'argent! #org @fullbag = Le SAC est plein ! ``` [/spoiler] ECHANGE [spoiler] Coucou tout le monde, je vais vous offrir aujourd'hui le script de l'échange, il est plutôt long et compliqué, je vous l'expliquerais un jour où j'aurais du temps, voici le script original. ATTENTION: ce script n'est pas vierge, il contient l'échange de M.MIME contre un ABRA de votre part. ``` '--------------- #org 0x16F62A lock faceplayer setvar 0x8008 0x0 call 0x81A76D6 checkflag 0x248 if 0x1 goto 0x816F69C msgbox 0x81A446A MSG_YESNO '"Je cherche un [buffer1].\pTu veux ..." compare LASTRESULT 0x0 if 0x1 goto 0x816F684 call 0x81A76E6 compare 0x8004 0x6 if 0x4 goto 0x816F684 call 0x81A76F2 comparevars LASTRESULT 0x8009 if 0x5 goto 0x816F68E call 0x81A7702 msgbox 0x81A44C2 MSG_KEEPOPEN '"Merciiii!" setflag 0x248 release end '--------------- #org 0x1A76D6 copyvar 0x8004 0x8008 special2 LASTRESULT 0xFC copyvar 0x8009 LASTRESULT return '--------------- #org 0x16F69C msgbox 0x81A44CC MSG_KEEPOPEN '"Il est cool mon [buffer2], hein?" release end '--------------- #org 0x16F684 msgbox 0x81A449D MSG_KEEPOPEN '"Bon[.]\nTant pis[.]" release end '--------------- #org 0x1A76E6 special 0x9F waitstate lock faceplayer copyvar 0x800A 0x8004 return '--------------- #org 0x1A76F2 copyvar 0x8005 0x800A special2 LASTRESULT 0xFF copyvar 0x800B LASTRESULT return '--------------- #org 0x16F68E bufferpokemon 0x0 0x8009 msgbox 0x81A44AC MSG_KEEPOPEN '"Mais c'est pas un [buffer1]!" release end '--------------- #org 0x1A7702 copyvar 0x8004 0x8008 copyvar 0x8005 0x800A special 0xFD special 0xFE waitstate lock faceplayer return '--------- ' Strings '--------- #org 0x1A446A = Je cherche un [buffer1].\pTu veux l'échanger\ncontre un [buffer2]? #org 0x1A44C2 = Merciiii! #org 0x1A44CC = Il est cool mon [buffer2], hein? #org 0x1A449D = Bon[.]\nTant pis[.] #org 0x1A44AC = Mais c'est pas un [buffer1]! ``` Allez, je vous fait ça pensant les vacances hein. [/spoiler] Bon ben c'est fini, si vous avez des idées pour d'autres scripts n'ayant pas été cités et expliqués sur le forum, faîtes m'en part je les analyserais à coeur joie. Sur ce, passez une bonne journée !
Oussam1999 - 3 août 2011 à 15:34 O_O Des fonctions cachées, je m'en rapelle plus.
ervan27 - 3 août 2011 à 19:34 C'est quoi l'énigme du trou percé ???
The New Azerty - 3 août 2011 à 20:34 GG. :D
pokemonbonjour - 3 août 2011 à 21:18 good le braille est aussi dans emeraude
back-track - 3 août 2011 à 21:21 Merci
ervan27 - 3 août 2011 à 21:40 > C'est quoi l'énigme du trou percé ???
yago58 - 3 août 2011 à 21:47 C'est pour les échanges avec rubis, saphir, émeraude.
Flower// - 4 août 2011 à 17:14 > C'est quoi l'énigme du trou percé ??? C'est sur une des îles après la ligue. C'est à la fin de cette exploration que le héros retrouve l'un des deux objets permettant la connexion à émeraude/saphir/rubis.
Flower// - 7 août 2011 à 17:49 Est-ce que quelqu'un peut ajouter le lien dans la bibliothèque svp.
yago58 - 7 août 2011 à 17:55 Demandes à downhill. Si il pouvais ajouter le mien de tuto.
Flower// - 7 août 2011 à 18:13 C'est bon j'ai demandé, pour le tient aussi.
Oussam1999 - 7 août 2011 à 18:15 Dis moi, où t'as trouvé tout ca ?
yago58 - 7 août 2011 à 18:17 > C'est bon j'ai demandé, pour le tient aussi. Merci, au moins ça ne traineras pas dans la section.
Flower// - 7 août 2011 à 18:18 > Dis moi, où t'as trouvé tout ca ? Sur Rouge Feu et Emeraude. >
>C'est bon j'ai demandé, pour le tient aussi. > Merci, au moins ça ne traineras pas dans la section. Quoi de pire qu'un bon tuto non répertorié! :fail:
yago58 - 7 août 2011 à 18:20 Je suis quasiment sur que d'autres tutos en lien avec le rom hacking doivent trainer dans les autres sections du forum :cheval
downhill - 7 août 2011 à 20:00 Voilà j'ai mis à jour la bibliothèque de liens avec ce que Flow' m'a demandé de rajouter S'il traîne encore des tutos qui n'y sont pas Yago, envoie-moi un MP avec ce qu'il faut add et je te le ferai
yago58 - 7 août 2011 à 20:05 Thank you.
Flower// - 11 août 2011 à 12:57 New, j'ai ajouté un nouveau petit script. C'est la surprise du jour, il n'est pas bien compliqué, amusez-vous bien!
Oussam1999 - 11 août 2011 à 14:53 le nom :o Mais connu, pourquoi nintendo ont fait ça ???
Flower// - 11 août 2011 à 14:59 Aucune idée.
ervan27 - 11 août 2011 à 15:18 Cool, comment tu la trouver ?
Oussam1999 - 11 août 2011 à 15:49 Dans la liste des spécials (Il fait peur l'extraterrestre ?)
Mourad1081 - 11 août 2011 à 16:01 Ce script n'apparait pas au moment où il y a deoxys ? (quand on le capture NORMALEMENT c'est-à-)dire, 4 étoiles dans la carte de dresseur et etc)
Flower// - 4 septembre 2011 à 14:46 Ajout, petit up.
The New Azerty - 4 septembre 2011 à 15:19 Cool. :D
Oussam1999 - 4 septembre 2011 à 16:03 Putain, vu le nombre d'offset, je vais convertir en dynamic.
Flower// - 4 septembre 2011 à 16:08 Sûr. Sacré script quand même.
Oussam1999 - 4 septembre 2011 à 16:34 [code=CORRIGE A 17:47, LE CODE EST VRAIMENT VALIDE COMME LE POST SUIVANT] #dynamic 0x[offset] #org @main lockall preparemsg @whatchoice '"Un distributeur!\nQue choisir?" waitmsg showmoney 0x0 0x0 0x0 goto @suit #org @select multichoice 0xC 0x0 0x1A 0x0 copyvar 0x4001 LASTRESULT copyvar 0x8000 0x4001 compare 0x8000 0x0 if 0x1 goto @choice1 compare 0x8000 0x1 if 0x1 goto @choice2 compare 0x8000 0x2 if 0x1 goto @choice3 msgbox @nothanks MSG_KEEPOPEN '"Pas soif!" goto @exit #org @choice1 setvar 0x4000 0x1A checkmoney 0xC8 0x0 goto @suit #org @choice2 setvar 0x4000 0x1B checkmoney 0x12C 0x0 goto @suit #org @choice3 setvar 0x4000 0x1C checkmoney 0x15E 0x0 goto @suit #org @exit hidemoney 0x0 0x0 releaseall end #org @suit compare LASTRESULT 0x0 if 0x1 goto @pointer1 checkitemroom 0x4000 0x1 compare LASTRESULT 0x0 if 0x1 goto @pointer2 compare 0x4001 0x0 if 0x1 call @pointer3 compare 0x4001 0x1 if 0x1 call @pointer4 compare 0x4001 0x2 if 0x1 call @pointer5 updatemoney 0x0 0x0 0x0 bufferitem 0x0 0x4000 sound 0x63 msgbox @obtain MSG_KEEPOPEN '"Et hop! [buffer1]!" additem 0x4000 0x1 goto @reset #org @pointer1 msgbox @nomoney MSG_KEEPOPEN '"Oups! Pas assez d'argent!" goto 0x816C175 #org @pointer2 msgbox @fullbag MSG_KEEPOPEN '"L'inventaire est plein!" goto @exit #org @pointer3 paymoney 0xC8 0x0 return #org @pointer4 paymoney 0x12C 0x0 return #org @pointer5 paymoney 0x15E 0x0 return #org @reset preparemsg @whatchoice '"Un distributeur!\nQue choisir?" waitmsg goto @select #org @whatchoice = Un distributeur!\nQue choisir? #org @nothanks = Pas soif! #org @obtainitem = Et hop! [buffer1]! #org @nomoney = Oups! Pas assez d'argent! #org @fullbag = Le SAC est plein ! [/code] Voila le travail [NON TESTE, MAIS Y'A PAS RAISON(sauf offset orphelins)]
Flower// - 4 septembre 2011 à 16:35 Good, j'ajoute.
Oussam1999 - 4 septembre 2011 à 16:40 Mais dit au tout début qui a une version dynamic pratique parce-que le mec il se fait chier et quand il a fini il découvre qu'il y a une version simplifié ^.^
Flower//** - 4 septembre 2011 à 16:43 Voilou. :-*
Oussam1999 - 4 septembre 2011 à 16:49 Merci de m'avoir ajouté !
Oussam1999 - 4 septembre 2011 à 16:53 PUTAIN J'AI FAIT UNE BETISE !!!! :domo: Elle marche pas celle que je t'ai donné, c'est celle ci la bonne : ``` #dynamic 0x[offset] #org @main lockall preparemsg @whatchoice '"Un distributeur!\nQue choisir?" waitmsg showmoney 0x0 0x0 0x0 goto @suit #org @select multichoice 0xC 0x0 0x1A 0x0 copyvar 0x4001 LASTRESULT copyvar 0x8000 0x4001 compare 0x8000 0x0 if 0x1 goto @choice1 compare 0x8000 0x1 if 0x1 goto @choice2 compare 0x8000 0x2 if 0x1 goto @choice3 msgbox @nothanks MSG_KEEPOPEN '"Pas soif!" goto @exit #org @choice1 setvar 0x4000 0x1A checkmoney 0xC8 0x0 goto @suit #org @choice2 setvar 0x4000 0x1B checkmoney 0x12C 0x0 goto @suit #org @choice3 setvar 0x4000 0x1C checkmoney 0x15E 0x0 goto @suit #org @exit hidemoney 0x0 0x0 releaseall end #org @suit compare LASTRESULT 0x0 if 0x1 goto @pointer1 checkitemroom 0x4000 0x1 compare LASTRESULT 0x0 if 0x1 goto @pointer2 compare 0x4001 0x0 if 0x1 call @pointer3 compare 0x4001 0x1 if 0x1 call @pointer4 compare 0x4001 0x2 if 0x1 call @pointer5 updatemoney 0x0 0x0 0x0 bufferitem 0x0 0x4000 sound 0x63 msgbox @obtain MSG_KEEPOPEN '"Et hop! [buffer1]!" additem 0x4000 0x1 goto @reset #org @pointer1 msgbox @nomoney MSG_KEEPOPEN '"Oups! Pas assez d'argent!" goto 0x816C175 #org @pointer2 msgbox @fullbag MSG_KEEPOPEN '"L'inventaire est plein!" goto @exit #org @pointer3 paymoney 0xC8 0x0 return #org @pointer4 paymoney 0x12C 0x0 return #org @pointer5 paymoney 0x15E 0x0 return #org @reset preparemsg @whatchoice '"Un distributeur!\nQue choisir?" waitmsg goto @select #org @whatchoice = Un distributeur!\nQue choisir? #org @nothanks = Pas soif! #org @obtainitem = Et hop! [buffer1]! #org @nomoney = Oups! Pas assez d'argent! #org @fullbag = Le SAC est plein ! ``` Désolé du désagrément ! Maintenant il fait que 100 lignes :you: J'me suis permit de modifier un dialogue, pas beaucoup
Oussam1999 - 5 septembre 2011 à 10:22 Encore une erreur y,avait un orphelin ! Testé sur VBa, marche correctement. ``` #dynamic 0x[offset] #org @main lockall preparemsg @whatchoice '"Un distributeur!\nQue choisir?" waitmsg showmoney 0x0 0x0 0x0 goto @select #org @select multichoice 0xC 0x0 0x1A 0x0 copyvar 0x4001 LASTRESULT copyvar 0x8000 0x4001 compare 0x8000 0x0 if 0x1 goto @choice1 compare 0x8000 0x1 if 0x1 goto @choice2 compare 0x8000 0x2 if 0x1 goto @choice3 msgbox @nothanks MSG_KEEPOPEN '"Pas soif!" goto @exit #org @choice1 setvar 0x4000 0x1A checkmoney 0xC8 0x0 goto @suit #org @choice2 setvar 0x4000 0x1B checkmoney 0x12C 0x0 goto @suit #org @choice3 setvar 0x4000 0x1C checkmoney 0x15E 0x0 goto @suit #org @exit hidemoney 0x0 0x0 releaseall end #org @suit compare LASTRESULT 0x0 if 0x1 goto @pointer1 checkitemroom 0x4000 0x1 compare LASTRESULT 0x0 if 0x1 goto @pointer2 compare 0x4001 0x0 if 0x1 call @pointer3 compare 0x4001 0x1 if 0x1 call @pointer4 compare 0x4001 0x2 if 0x1 call @pointer5 updatemoney 0x0 0x0 0x0 bufferitem 0x0 0x4000 sound 0x63 msgbox @obtain MSG_KEEPOPEN '"Et hop! [buffer1]!" additem 0x4000 0x1 goto @reset #org @pointer1 msgbox @nomoney MSG_KEEPOPEN '"Oups! Pas assez d'argent!" goto 0x816C175 #org @pointer2 msgbox @fullbag MSG_KEEPOPEN '"L'inventaire est plein!" goto @exit #org @pointer3 paymoney 0xC8 0x0 return #org @pointer4 paymoney 0x12C 0x0 return #org @pointer5 paymoney 0x15E 0x0 return #org @reset preparemsg @whatchoice '"Un distributeur!\nQue choisir?" waitmsg goto @select #org @whatchoice = Un distributeur!\nQue choisir? #org @nothanks = Pas soif! #org @obtainitem = Et hop! [buffer1]! #org @nomoney = Oups! Pas assez d'argent! #org @fullbag = Le SAC est plein ! ``` Ouf, là c'est vraiment bon ! Testé et ré-téstè pour votre confort
Flower// - 5 septembre 2011 à 10:23 ><
Dark Raviel - 18 octobre 2011 à 18:56 Comme tu me l'as demandé je demande un script d'échange ^^
Flower// - 18 octobre 2011 à 19:03 Voilà c'est fait mon bichon.
Dark Raviel - 19 octobre 2011 à 11:08 Bien, je ne vois ce script nul part donc je me suis dit que tu pourrais en mettre 1 de ce genre. Quand on clique sur l'objet , un systeme aleatoire se met en marche non visible par le joueur entre 0 et 1. Si le resultat donne 0, le joueur gagne tel objet au hasard également. Si le résultat est 1, le joueur n'obtient aucun objet. avec message texte pour dire au joueur pas d'objets ...
Flower// - 19 octobre 2011 à 17:33 Je ne pense pas qu'il existe. :baffan:
Dark Raviel - 19 octobre 2011 à 17:34 Pourtant avec la lotterie il y a ce genre la non ?
Dark Raviel - 1 novembre 2011 à 17:58 Aurais tu le temps d'expliquer le code de l'échange ? ^^
Flower// - 1 novembre 2011 à 18:14 Pas avant un moment là, je suis en plein bossage.
Dark Raviel - 1 novembre 2011 à 18:15 Oki t'inquiète prends ton temps ^^
