LEGENDES
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Vers l'Infinity et Baldur's Gate
 
AccueilAccueil  PortailPortail  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
Le Deal du moment :
Manga Chainsaw Man : où acheter le Tome 17 ...
Voir le deal
19.99 €

 

 Un code simple qui ferait moins d'une ligne s'il te plait

Aller en bas 
2 participants
AuteurMessage
deratiseur
Clown triste
deratiseur


Nombre de messages : 722
Age : 47
Localisation : GAP, Hautes alpes.
Date d'inscription : 06/07/2008

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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 ^^)
Revenir en haut Aller en bas
deratiseur
Clown triste
deratiseur


Nombre de messages : 722
Age : 47
Localisation : GAP, Hautes alpes.
Date d'inscription : 06/07/2008

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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 :-/
Revenir en haut Aller en bas
Zranoff
Prétendant Cargoliste
Zranoff


Nombre de messages : 147
Age : 32
Localisation : Arles
Date d'inscription : 14/02/2009

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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?
Revenir en haut Aller en bas
deratiseur
Clown triste
deratiseur


Nombre de messages : 722
Age : 47
Localisation : GAP, Hautes alpes.
Date d'inscription : 06/07/2008

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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 Smile

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.
Revenir en haut Aller en bas
deratiseur
Clown triste
deratiseur


Nombre de messages : 722
Age : 47
Localisation : GAP, Hautes alpes.
Date d'inscription : 06/07/2008

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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 Smile

Hou là, je m'emporte ! Ok, je sors........
Revenir en haut Aller en bas
Zranoff
Prétendant Cargoliste
Zranoff


Nombre de messages : 147
Age : 32
Localisation : Arles
Date d'inscription : 14/02/2009

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Dim 27 Fév 2011 - 9:50

Lol!

Les joies de la boucle ^^
Un code simple qui ferait moins d'une ligne s'il te plait 179792
C'est de la magie pure, la force est avec toi maintenant!

Revenir en haut Aller en bas
deratiseur
Clown triste
deratiseur


Nombre de messages : 722
Age : 47
Localisation : GAP, Hautes alpes.
Date d'inscription : 06/07/2008

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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 ?
Revenir en haut Aller en bas
Zranoff
Prétendant Cargoliste
Zranoff


Nombre de messages : 147
Age : 32
Localisation : Arles
Date d'inscription : 14/02/2009

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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 Smile
Revenir en haut Aller en bas
deratiseur
Clown triste
deratiseur


Nombre de messages : 722
Age : 47
Localisation : GAP, Hautes alpes.
Date d'inscription : 06/07/2008

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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
Revenir en haut Aller en bas
deratiseur
Clown triste
deratiseur


Nombre de messages : 722
Age : 47
Localisation : GAP, Hautes alpes.
Date d'inscription : 06/07/2008

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 25 Juin 2011 - 17:00

Bon, en fait ça ne marche, il refuse de prendre (i-14) ou %i-14% comme integer. :-/
Revenir en haut Aller en bas
deratiseur
Clown triste
deratiseur


Nombre de messages : 722
Age : 47
Localisation : GAP, Hautes alpes.
Date d'inscription : 06/07/2008

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Sam 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 Smile

Encore encore encore merci à toi Smile
Revenir en haut Aller en bas
Zranoff
Prétendant Cargoliste
Zranoff


Nombre de messages : 147
Age : 32
Localisation : Arles
Date d'inscription : 14/02/2009

Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1Dim 26 Juin 2011 - 12:05

oui tu peux remplacer le 20 par num_effects
Revenir en haut Aller en bas
Contenu sponsorisé





Un code simple qui ferait moins d'une ligne s'il te plait Empty
MessageSujet: 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 Icon_minitime1

Revenir en haut Aller en bas
 
Un code simple qui ferait moins d'une ligne s'il te plait
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Encore besoin d'un code simple svp
» Script le moins lourd possible
» Svp, besoin d'un script simple
» SAY_EVALUATED. Pas si simple, en fait :)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
LEGENDES :: LE MONDE DU MODDING :: Entraide :: Les scripts et le weidu : Zranoff-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser