Oyez, oyez !
Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !
Merci à toutes et à tous pour votre participation !
N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...
Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !
Merci à toutes et à tous pour votre participation !
N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...
Combiner 2 fichiers 2DA
- deratiseur
- Golem de fer
- Messages : 3698
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
Combiner 2 fichiers 2DA
.
Imaginons que j'ai un fichier .2da listant des invocation de morts vivants nommé pxMV1.2da et un fichier .2da listant les invocations d'animaux nommé pxANIM1.2da.
Existe t'il un fonction Weidu me permettant de combiner les deux fichiers en un seul : toutes les entrées de pxANIM1.2da rajoutés aux entrées de pxMV1.2da ?
Existe t'il un fonction Weidu me permettant de combiner les deux fichiers en un seul : toutes les entrées de pxANIM1.2da rajoutés aux entrées de pxMV1.2da ?
Modifié en dernier par deratiseur le mer. 30 oct. 2024, 08:09, modifié 1 fois.
-
- Adepte de Grondemarteau
- Blême
- Messages : 952
- Enregistré le : dim. 25 juil. 2004, 21:28
- Contact :
- Statut : En ligne
.
C'est la première chose que j'ai codé pour ItemDispatcher
Voici une version allégée pour ton besoin. Je t'ai mis quelques commentaires pour que tu puisses adapter au besoin
Voici une version allégée pour ton besoin. Je t'ai mis quelques commentaires pour que tu puisses adapter au besoin
Code : Tout sélectionner
COPY ~pxANIM1.2da~ ~override~
READ_2DA_ENTRIES_NOW ~rows~ 1 // A adapter selon le nombre de colonnes que tu as
// row = 0 si tu veux récupérer aussi la première ligne, si tu veux passer des lignes, row = xx où xx est le nombre de lignes à passer
FOR (row = 0; row < rows; ++row) BEGIN
// Lire chacune de tes colonnes
READ_2DA_ENTRY_FORMER ~rows~ row 0 creature
// Recréer la ligne à ajouter, si tu n'as qu'une seule colonne, cette ligne est inutile, et tu peux directement ajouter le contenu de creature dans ton fichier
SPRINT ~line~ ~%creature%~
INNER_ACTION BEGIN
APPEND_OUTER ~pxMV1.2da~ ~%line%~ UNLESS ~%line%~
END
END
BUT_ONLY
Modifié en dernier par Selphira le mer. 30 oct. 2024, 08:28, modifié 1 fois.
- deratiseur
- Golem de fer
- Messages : 3698
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
merci.
j'ai essayé ça :
ça me copie à chaque fois la première colonne, mais ni la 2ème ni la 3ème. Si je met "READ_2DA_ENTRY_FORMER ~rows~ row 1 creature" ça me copie la 2eme mais pas la 1ère et la 3eme. Qu'est-ce que j'ai loupé ?
j'ai essayé ça :
Code : Tout sélectionner
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt0.2da~ ~override~
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt2.2da~ ~override~
READ_2DA_ENTRIES_NOW ~rows~ 3 // A adapter selon le nombre de colonnes que tu as
// row = 0 si tu veux récupérer aussi la première ligne, si tu veux passer des lignes, row = xx où xx est le nombre de lignes à passer
FOR (row =0; row < rows; ++row) BEGIN
// Lire chacune de tes colonnes
READ_2DA_ENTRY_FORMER ~rows~ row 0 creature
// Recréer la ligne à ajouter, si tu n'as qu'une seule colonne, cette ligne est inutile, et tu peux directement ajouter le contenu de creature dans ton fichier
SPRINT ~line~ ~%creature%~
INNER_ACTION BEGIN
APPEND_OUTER ~override\pxl2rpt0.2da~ ~%line%~ UNLESS ~%line%~
END
END
BUT_ONLY
-
- Adepte de Grondemarteau
- Blême
- Messages : 952
- Enregistré le : dim. 25 juil. 2004, 21:28
- Contact :
- Statut : En ligne
.
Oui, tu dois adapter cette partie à ton besoin vu que tu as plusieurs colonnes
Qui pourrait devenir quelque chose comme ceci pour 3 colonnes
Code : Tout sélectionner
// Lire chacune de tes colonnes
READ_2DA_ENTRY_FORMER ~rows~ row 0 creature
// Recréer la ligne à ajouter, si tu n'as qu'une seule colonne, cette ligne est inutile, et tu peux directement ajouter le contenu de creature dans ton fichier
SPRINT ~line~ ~%creature%~
Code : Tout sélectionner
// Lire chacune de tes colonnes
READ_2DA_ENTRY_FORMER ~rows~ row 0 creature
READ_2DA_ENTRY_FORMER ~rows~ row 1 colonne1
READ_2DA_ENTRY_FORMER ~rows~ row 2 colonne2
// Recréer la ligne à ajouter, si tu n'as qu'une seule colonne, cette ligne est inutile, et tu peux directement ajouter le contenu de creature dans ton fichier
SPRINT ~line~ ~%creature%%TAB%%colonne1%%TAB%%colonne2%~
- deratiseur
- Golem de fer
- Messages : 3698
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
Je l'ai !
Il manquait ça "SPRINT ~line~ ~%creature% %collonne1% %colonne2%~". (ça ne se voit pas mais je cherche et teste beaucoup de changements différents avant d'abandonner et de demander de l'aide )
Ok, merci beaucoup
Avant, pour chaque sort que je rajoutait à l'interplan je devais modifier trois ou quatre autres trucs, et pas toujours simple à la main avec dltcep ou NI. Pour la V9 je vais passer à des patchages de groupe plus dynamiques. Prochaine étape : construire un sort où 1% donne 1 %parchemin% (100 entrées variables) !
Il manquait ça "SPRINT ~line~ ~%creature% %collonne1% %colonne2%~". (ça ne se voit pas mais je cherche et teste beaucoup de changements différents avant d'abandonner et de demander de l'aide )
Ok, merci beaucoup
Avant, pour chaque sort que je rajoutait à l'interplan je devais modifier trois ou quatre autres trucs, et pas toujours simple à la main avec dltcep ou NI. Pour la V9 je vais passer à des patchages de groupe plus dynamiques. Prochaine étape : construire un sort où 1% donne 1 %parchemin% (100 entrées variables) !
- deratiseur
- Golem de fer
- Messages : 3698
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
De retour :
Et ça, comment je le fais s'il te plait ?
C'est pour l'utiliser comme ça :
Et ça, comment je le fais s'il te plait ?
Code : Tout sélectionner
DEFINE_DIMORPHIC_FUNCTION PX_RUPTURE STR_VAR fichier = ~~
COPY ~Derats_Magasin_2/Sorts/Special/%fichier%.2da~ ~override~ // Ça coince ici
READ_2DA_ENTRIES_NOW ~rows~ 2 // A adapter selon le nombre de colonnes que tu as
// row = 0 si tu veux récupérer aussi la première ligne, si tu veux passer des lignes, row = xx où xx est le nombre de lignes à passer
FOR (row = 0; row < rows; ++row) BEGIN
// Lire chacune de tes colonnes
READ_2DA_ENTRY_FORMER ~rows~ row 0 sort
READ_2DA_ENTRY_FORMER ~rows~ row 1 ref
READ_2DA_ENTRY_FORMER ~rows~ row 2 trois
// Recréer la ligne à ajouter, si tu n'as qu'une seule colonne, cette ligne est inutile, et tu peux directement ajouter le contenu de creature dans ton fichier
SPRINT ~line~ ~%sort% %ref% %trois%~
INNER_ACTION BEGIN
APPEND_OUTER ~override\pxl2rpt0.2da~ ~%line%~ UNLESS ~%line%~
END
END
BUT_ONLY
END
Code : Tout sélectionner
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt0.2da~ ~override~
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt1.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt1~ END
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt2.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt2~ END
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt3.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt3~ END
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt4.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt4~ END
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt5.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt5~ END
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt6.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt6~ END
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt7.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt7~ END
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt8.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt8~ END
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt9.2da~ ~override~ LPF PX_RUPTURE INT_VAR fichier = ~pxl2rpt9~ END
-
- Adepte de Grondemarteau
- Blême
- Messages : 952
- Enregistré le : dim. 25 juil. 2004, 21:28
- Contact :
- Statut : En ligne
.
Ceci ne suffit pas ? Ne pas faire de double COPY et appeler la méthode dans le contexte ACTION (LAF) et non pas PATCH (LPF)
Code : Tout sélectionner
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt1~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt2~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt3~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt4~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt5~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt6~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt7~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt8~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt9~ END
- deratiseur
- Golem de fer
- Messages : 3698
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
je n'arrive même pas à cette étape. Dans mon premier code du message précédent il y a un "//ça coince ici".
et pardon, du coup avec cette ligne c'est une double copie. Donc l'appel de la fonction serait plutot :
et pardon, du coup avec cette ligne c'est une double copie. Donc l'appel de la fonction serait plutot :
Code : Tout sélectionner
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt0.2da~ ~override~
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt1~ END //(instruction qui copie le fichier pxl2rpt1.pda et qui ajoute toutes ses entrée au fichier pxl2rpt0.2da)
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt2~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt3~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt4~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt5~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt6~ END// (instruction qui copie le fichier pxl2rpt6.pda et qui ajoute toutes ses entrée au fichier pxl2rpt0.2da)
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt7~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt8~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt9~ END
Modifié en dernier par deratiseur le mer. 30 oct. 2024, 11:39, modifié 2 fois.
-
- Adepte de Grondemarteau
- Blême
- Messages : 952
- Enregistré le : dim. 25 juil. 2004, 21:28
- Contact :
- Statut : En ligne
.
Sans pouvoir tester, c'est compliqué.deratiseur a écrit : ↑mer. 30 oct. 2024, 11:30 je n'arrive même pas à cette étape. Dans mon premier code du message précédent il y a un "//ça coince ici".
et pardon, du coup avec cette ligne c'est une double copie. Donc l'appel de la fonction serait plutot :Code : Tout sélectionner
COPY ~Derats_Magasin_2/Sorts/Special/pxl2rpt0.2da~ ~override~ LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt1~ END //(instruction qui copie le fichier pxl2rpt1.pda et qui ajoute toutes ses entrée au fichier pxl2rpt0.2da) LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt2~ END LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt3~ END LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt4~ END LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt5~ END LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt6~ END// (instruction qui copie le fichier pxl2rpt6.pda et qui ajoute toutes ses entrée au fichier pxl2rpt0.2da) LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt7~ END LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt8~ END LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt9~ END
Pour moi, ton code complet devrait ressembler à ceci
Code : Tout sélectionner
DEFINE_ACTION_FUNCTION PX_RUPTURE STR_VAR fichier = ~~
COPY ~Derats_Magasin_2/Sorts/Special/%fichier%.2da~ ~override~ // Ça coince ici
READ_2DA_ENTRIES_NOW ~rows~ 2
FOR (row = 0; row < rows; ++row) BEGIN
READ_2DA_ENTRY_FORMER ~rows~ row 0 sort
READ_2DA_ENTRY_FORMER ~rows~ row 1 ref
READ_2DA_ENTRY_FORMER ~rows~ row 2 trois
SPRINT ~line~ ~%sort% %ref% %trois%~
INNER_ACTION BEGIN
APPEND_OUTER ~override\pxl2rpt0.2da~ ~%line%~ UNLESS ~%line%~
END
END
BUT_ONLY
END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt1~ END //(instruction qui copie le fichier pxl2rpt1.pda et qui ajoute toutes ses entrée au fichier pxl2rpt0.2da)
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt2~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt3~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt4~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt5~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt6~ END// (instruction qui copie le fichier pxl2rpt6.pda et qui ajoute toutes ses entrée au fichier pxl2rpt0.2da)
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt7~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt8~ END
LAF PX_RUPTURE INT_VAR fichier = ~pxl2rpt9~ END
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité