Vers l'Infinity et Baldur's Gate
 
AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  

Partagez | 
 

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

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
deratiseur
Clown triste
avatar

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

MessageSujet: 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 ^^)

_________________
Plein d'idées, des milliers de lignes écrites, mais encore et toujours bloqué par le manque de ressources....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
deratiseur
Clown triste
avatar

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

MessageSujet: 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 :-/

_________________
Plein d'idées, des milliers de lignes écrites, mais encore et toujours bloqué par le manque de ressources....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Zranoff
Prétendant Cargoliste
avatar

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

MessageSujet: 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?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
deratiseur
Clown triste
avatar

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

MessageSujet: 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 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.

_________________
Plein d'idées, des milliers de lignes écrites, mais encore et toujours bloqué par le manque de ressources....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
deratiseur
Clown triste
avatar

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

MessageSujet: 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 Smile

Hou là, je m'emporte ! Ok, je sors........

_________________
Plein d'idées, des milliers de lignes écrites, mais encore et toujours bloqué par le manque de ressources....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Zranoff
Prétendant Cargoliste
avatar

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

MessageSujet: 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!

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
deratiseur
Clown triste
avatar

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

MessageSujet: 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 ?

_________________
Plein d'idées, des milliers de lignes écrites, mais encore et toujours bloqué par le manque de ressources....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Zranoff
Prétendant Cargoliste
avatar

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

MessageSujet: 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 Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
deratiseur
Clown triste
avatar

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

MessageSujet: 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

_________________
Plein d'idées, des milliers de lignes écrites, mais encore et toujours bloqué par le manque de ressources....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
deratiseur
Clown triste
avatar

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

MessageSujet: 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. :-/

_________________
Plein d'idées, des milliers de lignes écrites, mais encore et toujours bloqué par le manque de ressources....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
deratiseur
Clown triste
avatar

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

MessageSujet: 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 Smile

Encore encore encore merci à toi Smile

_________________
Plein d'idées, des milliers de lignes écrites, mais encore et toujours bloqué par le manque de ressources....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Zranoff
Prétendant Cargoliste
avatar

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

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
Un code simple qui ferait moins d'une ligne s'il te plait
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU]Problème très simple (grappin)
» Code pour les besoins ?
» Alerte vin à moins de 15$!
» Simple API Utility & Weather Service
» *lettre simple, à écriture rouge sang sur fond noir* Chers Gardes.

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: