| Un code simple qui ferait moins d'une ligne s'il te plait | |
|
|
Auteur | Message |
---|
deratiseur Clown triste
Nombre de messages : 722 Age : 47 Localisation : GAP, Hautes alpes. Date d'inscription : 06/07/2008
| Sujet: Un code simple qui ferait moins d'une ligne s'il te plait Sam 26 Fév 2011 - 17:32 | |
| Est-ce possible, en moins d'un ligne, d'écrire un truc du genre :
Copy spell x-> override puis code : Pour chaque effet du sort qui à une durée de 24, changer en durée 36
Le but n'est pas de rajouter une habilitie comme dans le code que tu m'as déjà donné (qui sert dans le dukp 0.8.5, merci beaucoup encore une fois), mais simplement de changer les 24 en 30 dans la même habilitie (les sorts à copier n'en contenant qu'une seule)
Ensuite bien sur je pourrais selon la ligne changer les chiffre.
Et cela ne m'intéresse que pour un code très simple, le but étant de remplacer 32 "WRITE_BYTE" qui tiennent 4 lignes :-/
Si tu veux voir de quoi je parle, regarde la copie de "pxlpea1.spl" et tout le groupe qui va avec dans le setup du dukp. Le nouveau kit que je prépare utilise des sorts encore plus longs :-/
En même temps, s'il est possible de creer un script du genre : Copie "pxlpea"x"".spl ->override/"pxlpea"x+1".spl et increment les durée de 6, pour créer en un seul code les 20 sorts, je suis preneur ^^ (mais ce n'est pas ce que je suis venu demander, n'en fait pas trop ^^) | |
|
| |
deratiseur Clown triste
Nombre de messages : 722 Age : 47 Localisation : GAP, Hautes alpes. Date d'inscription : 06/07/2008
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 26 Fév 2011 - 17:55 | |
| Oui, pour expliquer plus simplement, il y a peut-être moyen de reduire ça au minium : - Citation :
- COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal11.spl~ WRITE_BYTE 0xd8 132 WRITE_BYTE 0x108 132 WRITE_BYTE 0x138 132 WRITE_BYTE 0x168 132 WRITE_BYTE 0x198 132 WRITE_BYTE 0x1c8 132 WRITE_BYTE 0x1f8 132 WRITE_BYTE 0x288 132
COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal12.spl~ WRITE_BYTE 0xd8 144 WRITE_BYTE 0x108 144 WRITE_BYTE 0x138 144 WRITE_BYTE 0x168 144 WRITE_BYTE 0x198 144 WRITE_BYTE 0x1c8 144 WRITE_BYTE 0x1f8 144 WRITE_BYTE 0x288 144 COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal13.spl~ WRITE_BYTE 0xd8 156 WRITE_BYTE 0x108 156 WRITE_BYTE 0x138 156 WRITE_BYTE 0x168 156 WRITE_BYTE 0x198 156 WRITE_BYTE 0x1c8 156 WRITE_BYTE 0x1f8 156 WRITE_BYTE 0x288 156 COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal14.spl~ WRITE_BYTE 0xd8 168 WRITE_BYTE 0x108 168 WRITE_BYTE 0x138 168 WRITE_BYTE 0x168 168 WRITE_BYTE 0x198 168 WRITE_BYTE 0x1c8 168 WRITE_BYTE 0x1f8 168 WRITE_BYTE 0x288 168 COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal15.spl~ WRITE_BYTE 0xd8 180 WRITE_BYTE 0x108 180 WRITE_BYTE 0x138 180 WRITE_BYTE 0x168 180 WRITE_BYTE 0x198 180 WRITE_BYTE 0x1c8 180 WRITE_BYTE 0x1f8 180 WRITE_BYTE 0x288 180 COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal16.spl~ WRITE_BYTE 0xd8 192 WRITE_BYTE 0x108 192 WRITE_BYTE 0x138 192 WRITE_BYTE 0x168 192 WRITE_BYTE 0x198 192 WRITE_BYTE 0x1c8 192 WRITE_BYTE 0x1f8 192 WRITE_BYTE 0x288 192 COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal17.spl~ WRITE_BYTE 0xd8 204 WRITE_BYTE 0x108 204 WRITE_BYTE 0x138 204 WRITE_BYTE 0x168 204 WRITE_BYTE 0x198 204 WRITE_BYTE 0x1c8 204 WRITE_BYTE 0x1f8 204 WRITE_BYTE 0x288 204 COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal18.spl~ WRITE_BYTE 0xd8 216 WRITE_BYTE 0x108 216 WRITE_BYTE 0x138 216 WRITE_BYTE 0x168 216 WRITE_BYTE 0x198 216 WRITE_BYTE 0x1c8 216 WRITE_BYTE 0x1f8 216 WRITE_BYTE 0x288 216 COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal19.spl~ WRITE_BYTE 0xd8 228 WRITE_BYTE 0x108 228 WRITE_BYTE 0x138 228 WRITE_BYTE 0x168 228 WRITE_BYTE 0x198 228 WRITE_BYTE 0x1c8 228 WRITE_BYTE 0x1f8 228 WRITE_BYTE 0x288 228 COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal20.spl~ WRITE_BYTE 0xd8 240 WRITE_BYTE 0x108 240 WRITE_BYTE 0x138 240 WRITE_BYTE 0x168 240 WRITE_BYTE 0x198 240 WRITE_BYTE 0x1c8 240 WRITE_BYTE 0x1f8 240 WRITE_BYTE 0x288 240 J'ai essayer de travailler avec le code pour changer la target de chaque effet, mais ça n'a rien donné de concluant :-/ | |
|
| |
Zranoff Prétendant Cargoliste
Nombre de messages : 147 Age : 32 Localisation : Arles Date d'inscription : 14/02/2009
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 26 Fév 2011 - 19:09 | |
| OUTER_FOR ( i=11 ; i<20 ; i +=1) BEGIN COPY_EXISTING ~pxlmal10.spl~ ~override/pxlmal%i%.spl~ WRITE_BYTE 0xd8 132+12*(i -11) WRITE_BYTE 0x108 132+12*(i -11) WRITE_BYTE 0x138 132+12*(i -11) WRITE_BYTE 0x168 132+12*(i -11) WRITE_BYTE 0x198 132+12*(i -11) WRITE_BYTE 0x1c8 132+12*(i -11) WRITE_BYTE 0x1f8 132+12*(i -11) WRITE_BYTE 0x288 132+12*(i -11) END
Une simple boucle. Est-ce ce que tu cherches? | |
|
| |
deratiseur Clown triste
Nombre de messages : 722 Age : 47 Localisation : GAP, Hautes alpes. Date d'inscription : 06/07/2008
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 26 Fév 2011 - 19:51 | |
| Oui, c'est ça. j'ai vérifié sur "Protection contre le mal" quir ajoute 2 rounds par niveaux. Le premier sort ne compte pas puisqu'il appelle le sort de base, ma référence est donc le sort de niveau 2. J'ai adapté ton code comme ceci : OUTER_FOR ( i=3 ; i<21 ; i +=1) BEGIN COPY_EXISTING ~pxo1ma2.spl~ ~override/pxo1ma%i%.spl~ WRITE_BYTE 0xd8 36+12*(i -3) WRITE_BYTE 0x108 36+12*(i -3) WRITE_BYTE 0x138 36+12*(i -3) WRITE_BYTE 0x168 36+12*(i -3) WRITE_BYTE 0x198 36+12*(i -3) WRITE_BYTE 0x1c8 36+12*(i -3) WRITE_BYTE 0x1f8 36+12*(i -3) WRITE_BYTE 0x228 36+12*(i -3) WRITE_BYTE 0x258 36+12*(i -3) WRITE_BYTE 0x288 36+12*(i -3) WRITE_BYTE 0x2b8 36+12*(i -3) END J'ai changé les 11 en 3, le numéro du premier sort crée. J'ai changé les 132 en 36, la durée censée du numéro 3 (2 rounds par niveau), et j'ai écris 21 à la place de 20 pour avoir le 20eme niveau, et ça marche. Vu qu'il y avait 19 niveaux à dériver et 11 variables à changer, je te laisse imaginer le nombre de lignes d'installation que ton code fait économiser dans le setup. A multiplier par le nombre de sorts à dériver, bien sûr ^^ Et je vais rétro aplliquer ça à la lame arcnaique, pour gagner encore des lignes d'install. Thanks a lot, my friend Note : il faut que je note ce OUTER_FOR ( i=3 ; i<21 ; i +=1) BEGIN COPY_EXISTING ~pxo1ma2.spl~ ~override/pxo1ma%i%.spl~ ou comment installer en batch plusieurs fichier en rajoutant un numéro incrémentiel. Chouette. | |
|
| |
deratiseur Clown triste
Nombre de messages : 722 Age : 47 Localisation : GAP, Hautes alpes. Date d'inscription : 06/07/2008
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 26 Fév 2011 - 20:06 | |
| Et quand le I reste fixe (de 3 à 20), je cumule : OUTER_FOR ( i=3 ; i<21 ; i +=1) BEGIN COPY_EXISTING ~pxo1im2.spl~ ~override/pxo1im%i%.spl~ WRITE_BYTE 0xa8 36+6*(i -3) COPY_EXISTING ~pxo1po2.spl~ ~override/pxo1po%i%.spl~ WRITE_BYTE 0xa8 18+6*(i -3) WRITE_BYTE 0x138 18+6*(i -3) COPY_EXISTING ~pxo1ma2.spl~ ~override/pxo1ma%i%.spl~ WRITE_BYTE 0xd8 36+12*(i -3) WRITE_BYTE 0x108 36+12*(i -3) WRITE_BYTE 0x138 36+12*(i -3) WRITE_BYTE 0x168 36+12*(i -3) WRITE_BYTE 0x198 36+12*(i -3) WRITE_BYTE 0x1c8 36+12*(i -3) WRITE_BYTE 0x1f8 36+12*(i -3) WRITE_BYTE 0x228 36+12*(i -3) WRITE_BYTE 0x258 36+12*(i -3) WRITE_BYTE 0x288 36+12*(i -3) WRITE_BYTE 0x2b8 36+12*(i -3) END Zranoff, je t'aime Hou là, je m'emporte ! Ok, je sors........ | |
|
| |
Zranoff Prétendant Cargoliste
Nombre de messages : 147 Age : 32 Localisation : Arles Date d'inscription : 14/02/2009
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Dim 27 Fév 2011 - 9:50 | |
| Lol! Les joies de la boucle ^^ C'est de la magie pure, la force est avec toi maintenant! | |
|
| |
deratiseur Clown triste
Nombre de messages : 722 Age : 47 Localisation : GAP, Hautes alpes. Date d'inscription : 06/07/2008
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 25 Juin 2011 - 10:14 | |
| Des mois après, en fait, je revient à la charge. Toujours pour gagner de la place dans le TP2.
justement, si j'ai ça : COPY_EXISTING ~pxo4gl13.spl~ ~override/pxo4gl%i%.spl~ WRITE_BYTE 0xa8 84+6*(i -14) WRITE_BYTE 0xd8 84+6*(i -14) WRITE_BYTE 0x108 84+6*(i -14) WRITE_BYTE 0x138 84+6*(i -14) WRITE_BYTE 0x198 84+6*(i -14) WRITE_BYTE 0x1c8 84+6*(i -14) WRITE_BYTE 0x1f8 84+6*(i -14) WRITE_BYTE 0x228 84+6*(i -14) WRITE_BYTE 0x258 84+6*(i -14) WRITE_BYTE 0x288 84+6*(i -14) WRITE_BYTE 0x2b8 84+6*(i -14) WRITE_BYTE 0x2e8 84+6*(i -14) WRITE_BYTE 0x318 84+6*(i -14) WRITE_BYTE 0x348 84+6*(i -14) WRITE_BYTE 0x378 84+6*(i -14) WRITE_BYTE 0x3a8 84+6*(i -14) WRITE_BYTE 0x3d8 84+6*(i -14) WRITE_BYTE 0x408 84+6*(i -14) WRITE_BYTE 0x438 84+6*(i -14)
La ça commence à faire beaucoup de place, alors comme l’incrémentation est de 30, y a t-il un moyen de "batcher" ça ?
| |
|
| |
Zranoff Prétendant Cargoliste
Nombre de messages : 147 Age : 32 Localisation : Arles Date d'inscription : 14/02/2009
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 25 Juin 2011 - 15:59 | |
| Le seul moyen serait de faire COPY_EXISTING ~pxo4gl13.spl~ ~override/pxo4gl%i%.spl~ FOR (a=0 ; a< 20 ; a+=1) BEGIN WRITE_BYTE (0xa8+a*0x30) 84+6*(i-14) END En principe c bon | |
|
| |
deratiseur Clown triste
Nombre de messages : 722 Age : 47 Localisation : GAP, Hautes alpes. Date d'inscription : 06/07/2008
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 25 Juin 2011 - 16:15 | |
| Houlà. Ca s'éloigne un peu quand même de ce que j'ai essayé par moi même, à savoir :* - Code:
-
READ_LONG 0x6a effects_off READ_SHORT 0x90 num_effects FOR (a= 0; a < num_effects; a += 1) BEGIN WRITE_BYTE (effects_off + 0x30*i + 0xc) (6*(i -14)) END
Comme ça ne marchais pas, j'ai fait : - Code:
-
READ_LONG 0x6a effects_off READ_SHORT 0x90 num_effects Set ~value~ (6*(i -14) FOR (a= 0; a < num_effects; a += 1) BEGIN WRITE_BYTE (effects_off + 0x30*i + 0xc) ~value~ END Je vois que j'ai encore des progrès à faire, même si j'en ai déjà fait pas mal (j'ai compris d'où sont tirés 0x12 et 0x13 et j'ai écris ça moi même, qui fonctionne : - Code:
-
COPY ~Derats_kits/Essaim/Spells/Pxb6infe.spl~ ~override~ SAY NAME1 @565 SAY UNIDENTIFIED_DESC @566 SAY 0x18e @54101 SAY 0x24e @54102 SAY 0x30e @54103 SAY 0x33e @541031 SAY 0x48e @54104 SAY 0x4be @541041 SAY 0x51e @54105 SAY 0x5ae @54106 SET ZF_max_level = 20 SET ZF_inc_level = 1 SET ZF_inc_duree = 6 PATCH_INCLUDE ~Derats_kits/ZFcode.zfc~ READ_LONG 0x64 abilities_off READ_SHORT 0x68 num_abilities FOR (i = 0; i < num_abilities; i += 1) BEGIN // pour chaque habileté WRITE_BYTE (abilities_off + 0x570*i + 0x626) 60 // indiquer la mort par ver putride après 60 secondes WRITE_BYTE (abilities_off + 0x570*i + 0x656) 60 END | |
|
| |
deratiseur Clown triste
Nombre de messages : 722 Age : 47 Localisation : GAP, Hautes alpes. Date d'inscription : 06/07/2008
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 25 Juin 2011 - 17:00 | |
| Bon, en fait ça ne marche, il refuse de prendre (i-14) ou %i-14% comme integer. :-/ | |
|
| |
deratiseur Clown triste
Nombre de messages : 722 Age : 47 Localisation : GAP, Hautes alpes. Date d'inscription : 06/07/2008
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Sam 25 Juin 2011 - 17:17 | |
| OK, après multiple test (parenthèses, "set", etc,) j'ai trouvé, il accepte (i -14) (avec un espace au milieu) Et j'ai noté que a< 20 patche jusqu’au 20eme effet et ne patche pas le 21eme, ce qui en fait qqchose de modulable, c'est cool Encore encore encore merci à toi | |
|
| |
Zranoff Prétendant Cargoliste
Nombre de messages : 147 Age : 32 Localisation : Arles Date d'inscription : 14/02/2009
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait Dim 26 Juin 2011 - 12:05 | |
| oui tu peux remplacer le 20 par num_effects | |
|
| |
Contenu sponsorisé
| Sujet: Re: Un code simple qui ferait moins d'une ligne s'il te plait | |
| |
|
| |
| Un code simple qui ferait moins d'une ligne s'il te plait | |
|