PDA

Voir la version complète : Messages BBS



Azz
19/11/2007, 01h09
Je me suis penché sur la gestion des BBS dans X3
J'ai fait pas mal de recherches aujourd'hui, c'est à la fois simple et complexe :-D

Les BBS sont générées par un script, très simple, et les messages eux-mêmes sont stockés dans un fichier texte.

La partie script n'utilise que deux commandes :

$key = display news article: page=$text.page.id newsid=$news.id occurences=$occurences maxoffertime=null maxtime=null placeholder:race1=$race race2=null customarray=$news.array
et :


change event news availability: $key race=$race sector=null jumps=null

le script sera lancé une fois au démarrage du jeu (script 'setup...' donc)
X3 se chargera ensuite automatiquement d'intégrer les nouvelles BBS suivant les règlages de ces commandes

Ceci nous donnera un script du genre :


001 load text: id=7181
002
003 $Count = 10
004 while $Count
005 dec $Count =
006 $O = = random value from 3 to 11 - 1
007 $Key = display news article: page=7181 newsid=1 occurrences=$O maxoffertime=null maxtime=null placeholder:race1=null race2=null customarray=null
008 change event news availibility: $Key race=Argon sector=null jumps=null
009 change event news availibility: $Key race=Boron sector=null jumps=null
010 change event news availibility: $Key race=Split sector=null jumps=null
011 change event news availibility: $Key race=Paranid sector=null jumps=null
012 change event news availibility: $Key race=Teladi sector=null jumps=null
013 change event news availibility: $Key race=Pirates sector=null jumps=null
014 change event news availibility: $Key race=Yaki sector=null jumps=null
015 end
016 return null

Vous noterez que la commande 'change event news avaibality' permet de restreindre l'affichage de la page du fichier BBS aux stations d'une ou plusieurs races particulières. Si on veut avoir des BBS différentes selon les races (ou des groupes de races) il faudra donc créer autant de page différentes dans le fichier texte que nécessaire.


La partie texte (fichier 't') est par contre un peu complexe à appréhender au départ.

Il faut bien comprendre le principe de base :

Le moteur de X3 peut génèrer des BBS de façon semi aléatoire, ce qui entraine une structure très précise et rigide du fichier 't' contenant les messages, où plutôt les morceaux de messages à assembler.
Le but du jeu est en effet de définir différentes parties de message (par exemple : auteur - titre - intro - commentaire - formule de politesse - signature ...etc)
Puis il faut ensuite indiquer différentes façons d'agencer ces parties
Le moteur de X3 fera le reste et prendra au hazard dans les schéma d'assemblage, puis au hazard dans les différents composants indiqué dans son schéma d'assemblage sélectionné.

On peut de plus indiquer un no d'évènement pour restreindre la génération de BBS à certains composants de textes seulement, ce qui permet de générer des BBS relatant un évènement particulier. C'est le rôle du paramètre 'newsid' dans la commande de script.


Prenons par exemple le fichier texte '337181' qui sera assigné aux BBS du mod 'nouveaux horizons'


Sa structure sera :



337181.xml
<?xml version="1.0" encoding="UTF-8" ?>
<language id="33">

<page id="7181" title="BBS NH" descr="news BBS mod Nouveaux Horizons">

<!-- Liste des races (obligatoire) -->
<t id="101">Argon</t>
<t id="102">Boron</t>
<t id="103">Split</t>
<t id="104">Paranid</t>
<t id="105">Teladi</t>
<t id="108">Pirates</t>
<t id="151">Argon</t>
<t id="152">Boron</t>
<t id="153">Split</t>
<t id="154">Paranid</t>
<t id="155">Teladi</t>
<t id="158">Pirates</t>


<!-- Messages Génériques (non liés à un évènement) -->
<!-- Messages 1ère partie -->
<t id="10000">Message 1</t>
<t id="10001">Message 2</t>
...
<t id="10099">Message 99</t>

<!-- Messages 2eme partie -->
<t id="10100">Message 1</t>
<t id="10101">Message 2</t>
...
<t id="10199">Message 99</t>

<!-- Messages 3eme partie -->
<t id="10200">Message 1</t>
<t id="10201">Message 2</t>
...
<t id="10299">Message 99</t>

etc on peut définir ainsi 99 parties différentes

<!-- Messages Spécifiques (liés à un code évènement indiqué dans le script de génération de BBS) -->
<!-- Messages evenement 1 1ère partie -->
<t id="2010000">Message 1</t>
<t id="2010001">Message 2</t>
...
<t id="2010099">Message 99</t>

<!-- Messages evenement 1 2eme partie -->
<t id="2010100">Message 1</t>
<t id="2010101">Message 2</t>
...
<t id="2010199">Message 99</t>

<!-- Messages evenement 1 3eme partie -->
<t id="2010200">Message 1</t>
<t id="2010201">Message 2</t>
...
<t id="2010299">Message 99</t>

<!-- Messages evenement 2 1ère partie -->
<t id="2020000">Message 1</t>
<t id="2020001">Message 2</t>
...
<t id="2020099">Message 99</t>

... etc



<!-- Définition des différentes parties (obligatoire), pour les événements génériques (200000) et évènements spécifiques (200001) -->
<t id="200000">[Part1][Part2][Part3]</t>
<t id="200001">[PartEvent1][PartEvent 2]</t>



<!-- Définition des variables supplémentaires (facultatif) -->
<t id="210000">$ware$</t>
<t id="210001">$id.ship$</t>



<!-- Définition des différentes façon d'utiliser les parties définies (générique) -->
<t id="1000000">
[Part1][Part2]</t>
<t id="1000001">
[Part1]\n[Part2]</t>
<t id="1000002">
[Part1]\n[Part2]\n[part3]</t>
...

<!-- Définition des différentes façon d'utiliser les parties définies (spécifique) -->
<t id="1010000">
[Part1]\n[Part2]\n[part3]</t>
<t id="1010001">
[Part1]\n[Part2]</t>
...

</page>
</language>




On peut utiliser comme dans tous les fichiers 't' des enrichissements :



les couleurs :
\033A - gris
\033B - bleu
\033C - Cyan
\033G - vert
\033M - Magenta
\033R - rouge
\033W - blanc
\033Y - jaune
\033X - fin du formatage de couleurs


Les formatage de texte :


et : le texte entre ces deux balises apparaitra comme l'auteur de la bbs
et : le texte entre ces deux balises apparaitra comme titre de la BBS
et : le texte entre ces deux balises sera justifié

et : le texte entre ces deux balises sera centré

et ou
et : centrer le texte à droite ou gauche
\n : passer à la ligne suivante


Variable utilisables dans un article BBS :


$THISSTATION$ - La station a laquelle le joueur est docké
$THISPEOPLE$ - La race de la station
$THISRACEGOVERNMENT$ - la race a laquelle le type de station appartient
$THISPERSON$ - nom aléatoire, en fonction de la race de la station
$AUTHOR$ - nom aléatoire, en fonction de la race de la station


Ont peut définir éventuellement d'autres variables qui seront utilisables dans les textes des bbs, comme indiqué dans l'exemple au-dessus, mais elle devront être gèrées par le script qui génère la BBS (par exemple un produit, un type de vaisseau etc....)


Un exemple concret sera peut être plus parlant :


337181.xml
<?xml version="1.0" encoding="UTF-8" ?>
<language id="33">

<page id="7181" title="BBS NH" descr="news BBS mod Nouveaux Horizons">

<!-- Liste des races (obligatoire) -->
<t id="101">Argon</t>
<t id="102">Boron</t>
<t id="103">Split</t>
<t id="104">Paranid</t>
<t id="105">Teladi</t>
<t id="108">Pirates</t>
<t id="151">Argon</t>
<t id="152">Boron</t>
<t id="153">Split</t>
<t id="154">Paranid</t>
<t id="155">Teladi</t>
<t id="158">Pirates</t>


<!-- Messages Génériques (non liés à un évènement) -->
<!-- Messages 1ère partie -->
<t id="10000">$AUTHOR$</t>
<t id="10001">\033Y $AUTHOR$\033X à votre service</t>
<t id="10002">Bienvenue sur $THISSTATION$</t>



<!-- Messages 2eme partie -->
<t id="10100">Une nouvelle incroyable vient de tomber !![/titre]</t>
<t id="10101">[title]Notre envoyé spécial vient de nous contacter[/titre]</t>
<t id="10102">[title]Une situation préocupante[/titre]</t>


<!-- Messages 3eme partie -->
<t id="10200">Les vaches agnus sont toutes devenues folles dans notre secteur $secteur$ </t>
<t id="10201">Apparition d'un vaisseau inconnu dans le secteur $secteur$</t>
<t id="10202">Pénurie de métal, les splits sont inquiets</t>

<!-- Messages 4eme partie -->
<t id="10200">A bientôt dans notre station $THISSTATION$ </t>
<t id="10201">Fin de message</t>




<!-- Messages Spécifiques (liés à un code évènement indiqué dans le script de génération de BBS) -->
<!-- Messages evenement 1 (éruption solaire) 1ère partie -->
<t id="2010000">$AUTHOR$</t>

<!-- Messages evenement 1 (éruption solaire) 2eme partie -->
<t id="2010100">[title]Le soleil est devenu fou[/titre]</t>
<t id="2010101">[title]Inquiétude sur l'éruption solaire[/titre]</t>


<!-- Messages evenement 1 (éruption solaire) 3eme partie -->
<t id="2010200">Le soleil est en passe de battre son record, l'éruption sera de très forte amplitude</t>
<t id="2010201">Une très grosse éruption solaire se prépare sur notre soleil </t>




<!-- Définition des différentes parties (obligatoire) (pour générique (200000) et spécifique (200001)) -->
<t id="200000">[1auteur][2titre][3corps][4signature]</t>
<t id="200001">[1auteur][2titre][3corps]</t>


<!-- Définition des variables supplémentaires (facultatif) -->
<t id="210000">$secteur$</t>
<t id="210001">$id.ship$</t>



<!-- Définition des différentes façon d'utiliser les parties définies (générique) -->
<t id="1000000">[1auteur]
[2titre]\n[3corps]\n\n[4signature]</t>
<t id="1000001">
[1auteur]\n\033Y[2titre]\033X\n\n[3corps]</t>


<!-- Définition des différentes façon d'utiliser les parties définies (spécifique) -->
<t id="1010000">
[1auteur]\n[2titre]\n[3corps]</t>


</page>
</language>

ce fichier définit des messages génériques (apparition d'un vaisseau, vaches agnus, pénurie de métal) qui seront mixés de différentes façon avec l'auteur et le titre, et des messages spécifiques autour d'une éruption solaire, qui ont leur propres règles d'assemblage. Ces messages propres à l'éruption seront déclenchés au moment opportun par un script avec la variable 'newsid' adéquate.




Un exemple encore plus simple de fichier 't' BBS' peut être celui-ci, où on abandonne le côté aléatoire pour générer uniquement des messages entier prédéfinis :


337181.xml
<?xml version="1.0" encoding="UTF-8" ?>
<language id="33">

<page id="7181" title="BBS NH" descr="news BBS mod Nouveaux Horizons">

<!-- Liste des races (obligatoire) -->
<t id="101">Argon</t>
<t id="102">Boron</t>
<t id="103">Split</t>
<t id="104">Paranid</t>
<t id="105">Teladi</t>
<t id="108">Pirates</t>
<t id="151">Argon</t>
<t id="152">Boron</t>
<t id="153">Split</t>
<t id="154">Paranid</t>
<t id="155">Teladi</t>
<t id="158">Pirates</t>


<!-- Messages Génériques -->

<t id="10000">$AUTHOR$ [title]Un été très chaud\nL'été a été particulièrement chaud cet été\n\nA bientôt</t>
<t id="10001">Station Balnéaire $THISSTATION$Un séjour gratuit vous est offert si vous nous livrez 1 esclave en bonne forme</t>
<t id="10002">Bienvenue sur $THISSTATION$\n\nNous sommes toujours très heureux de vous recevoir, c'est pour nous un honneur</t>


<t id="10100">c'était une communication de l'équipe NH. </t>



<!-- Définition des différentes parties -->
<t id="200000">[Message][signature]</t>


<!-- Définition des différentes façon d'utiliser les parties définies -->
<t id="1000000">[Message]\n\n[right][signature]</t>


</page>
</language>

Ce fichier définit 3 messages BBS qui seront utilisés aléatoirement, accolés à chaque fois à la signature 'c'était une communication de l'équipe NH.'...


voilà, c'est tout pour aujourd'hui
Je n'ai pas encore testé tout celà, mais ça doit déjà vous éclairer sur le fonctionement de ce système de BBS et vous donner des indications sur la façon de rédiger ces fameux messages.... :-)

phlt
19/11/2007, 10h09
Ca c'est du Tuto - Merci Azz :-P

Avec une bonne discipline dans la rédaction des messages, on peut donc faire apparaître certains messages dans des stations de races choisies. Excellent.


il faudra donc créer autant de page différentes dans le fichier texte que nécessaire

Quand tu parles de page, il s'agit de parties différentes dans le même fichier "t" n'est-ce pas ?

Concernant les variables, on est obligé de les rentrer via le script editor je pense, et non pas les saisir directement en html ?

BenIsra
19/11/2007, 20h49
C'est pas la partie qui me faisait le plus peur à aborder, mais super tuto. :-)

Je testerai tout cela une fois que j'aurai bouclé l'ajout de la commande pour le TEU. Pas tout de suite par contre. J'ai un boulot monstre, je rentre tard, et je suis un peu naze.

Azz
20/11/2007, 00h31
Quand tu parles de page, il s'agit de parties différentes dans le même fichier "t" n'est-ce pas ?
On peut utiliszr un seul fichier 't' pour toutes les BBS (ex : 7181)
Mais on peut le découper en pages différentes (ex 7181, 7182, 7183 etc) pour séparer les BBS suivant les races des stations dans lesquelles on veut qu'elles apparaissent
Les pages sont définies par les balises 'page id'


ex :

337181.xml
<?xml version="1.0" encoding="UTF-8" ?>
<language id="33">

<page id="7181" title="BBS NH" descr="news BBS mod Nouveaux Horizons">

...
les bbs pour les argons
...
</page>

<page id="7182" title="BBS NH" descr="news BBS mod Nouveaux Horizons">
...
les BBS pour les splits et les borons
....
</page>

etc ...

</language>

du côté script ça donnera :




000 load text: id=7181
001
002 * Les BBS des argons
003 $Count = 10
004 while $Count
005 dec $Count =
006 $O = = random value from 3 to 11 - 1
007 $Key = display news article: page=7181 newsid=1 occurrences=$O maxoffertime=null maxtime=null placeholder:race1=null race2=null customarray=null
008 change event news availibility: $Key race=Argon sector=null jumps=null
009 end
010
011 * les BBS des splits et borons
012
013 $Count = 10
014 while $Count
015 dec $Count =
016 $O = = random value from 3 to 11 - 1
017 $Key = display news article: page=7182 newsid=1 occurrences=$O maxoffertime=null maxtime=null placeholder:race1=null race2=null customarray=null
018 change event news availibility: $Key race=Boron sector=null jumps=null
019 change event news availibility: $Key race=Split sector=null jumps=null
020 end
016 return null



Concernant les variables, on est obligé de les rentrer via le script editor je pense, et non pas les saisir directement en html ?

non les variables


$THISSTATION$ - La station a laquelle le joueur est docké
$THISPEOPLE$ - La race de la station
$THISRACEGOVERNMENT$ - la race a laquelle le type de station appartient
$THISPERSON$ - nom aléatoire, en fonction de la race de la station
$AUTHOR$ - nom aléatoire, en fonction de la race de la station

sont disponibles telles quelles pour les BBS, le moteur de X3 se charge de les transcrire directement sans ajout de script...




J'ai un boulot monstre, je rentre tard, et je suis un peu naze.

idem for me malheureusement :-)
Tout ça c'est ce que j'ai compris en théorie, mais pas eu le temps de tester et vérifier... il peut y'avoir quelques petites erreurs

BenIsra
20/11/2007, 20h42
Je m'étais penché sur la question il y a quelques temps, et je retrouve dans ton tuto une bonne partie d'éléments que je connaissais. Donc ça doit pas être trop trop mal. :-)

BenIsra
11/01/2008, 00h39
Bon, je viens de me poser la question des BBS, et c'est grave la galère.

Plusieurs points:
- Apparemment, la liste des races au début de l'annonce n'est pas obligatoire. J'arrive à obtenir des résultats sans la mettre.

- De la même façon, on n'est pas obligé de mettre le "display news article" dans un fichier setup. Pour ma part, j'ai des résultats en le déclenchant dans un fichier on ne peut plus normal.

- Je n'arrive pas à déclencher plusieurs annonces situés sur une même page. Voilà mon fichier actuel:


<language id="33">

<page id="7921" title="BBS TEU" descr="news BBS du script TEU">

<!-- Messages evenement 1 1ère partie -->
<t id="10000">Partie 1-1-1</t>
<t id="10001">Partie 1-1-2</t>
<t id="10002">Partie 1-1-3</t>
<t id="10003">Partie 1-1-4</t>

<!-- Messages evenement 1 2eme partie -->
<t id="10100">Partie 1-2-1</t>
<t id="10101">Partie 1-2-2</t>
<t id="10102">Partie 1-2-3</t>
<t id="10103">Partie 1-2-4</t>

<!-- Messages evenement 1 3eme partie -->
<t id="10200">Partie 1-3-1</t>
<t id="10201">Partie 1-3-2</t>
<t id="10202">Partie 1-3-3</t>
<t id="10203">Partie 1-3-4</t>

<!-- Messages evenement 2 1ère partie -->
<t id="20000">Partie 2-1-1</t>
<t id="20001">Partie 2-1-2</t>
<t id="20002">Partie 2-1-3</t>
<t id="20003">Partie 2-1-4</t>

<!-- Messages evenement 2 2eme partie -->
<t id="20100">Partie 2-2-1</t>
<t id="20101">Partie 2-2-2</t>
<t id="20102">Partie 2-2-3</t>
<t id="20103">Partie 2-2-4</t>

<!-- Messages evenement 2 3eme partie -->
<t id="20200">Partie 2-3-1</t>
<t id="20201">Partie 2-3-2</t>
<t id="20202">Partie 2-3-3</t>
<t id="20203">Partie 2-3-4</t>

<!-- Définition des différentes parties (obligatoire) (pour générique (200000) et spécifique (200001)) -->
<t id="200000">[1auteur][2titre][3corps]</t>

<!-- Définition des différentes façon d'utiliser les parties définies (générique) -->
<t id="1000000">[1auteur][br/][2titre][br/][3corps][br/][br/]</t>

</page>
</language>
Mon fichier script est rudimentaire. Il charge le fichier texte, et lance le "display news article". J'ai essayé en mettant plusieurs valeurs différentes dans le newsid. Je pensais que mettre "1" active les entrées 10000, et "2" les entrées 20000, etc... Mais ce n'est pas le cas. Je n'active de cette façon, et avec mon fichier texte, que les entrées 10000.
J'ai oublié quelque chose, ou fait une petite boulette?

Azz
11/01/2008, 23h13
Tout à fait normal que le 'display news article' fonctionne dans un script autre que setup, il est simplement plus pratique de le mettre dans un script 'setup....', pour le lancer automatiquement au chargement du jeu.
En fait je ne crois pas qu'il existe une seule commande script résservée aux seuls scripts 'setup'.

Pour les races je n'ai pas encore compris l'utilité de la nomenclature, peut être pour remplir certaines variables réservées aux messages BBS... Mystère

Quant à ton problème, il me semble que tu ne respecte pas la règle des codes de messages.

Normalement tes messages 'spécifiques', liés à un no d'évènemement transmit par le newsid devraient être du genre 2010000 (7 digits) :


<!-- Messages Spécifiques (liés à un code évènement indiqué dans le script de génération de BBS) -->
<!-- Messages evenement 1 1ère partie -->
<t id="2010000">Message 1</t>
<t id="2010001">Message 2</t>
...
<t id="2010099">Message 99</t>

<!-- Messages evenement 1 2eme partie -->
<t id="2010100">Message 1</t>
<t id="2010101">Message 2</t>
...
<t id="2010199">Message 99</t>

<!-- Messages evenement 1 3eme partie -->
<t id="2010200">Message 1</t>
<t id="2010201">Message 2</t>
...
<t id="2010299">Message 99</t>

<!-- Messages evenement 2 1ère partie -->
<t id="2020000">Message 1</t>
<t id="2020001">Message 2</t>
...
<t id="2020099">Message 99</t>

de même il te faut rajouter la description de leur utilisation en plus de celle des évènements génériques :




<!-- Définition des différentes façon d'utiliser les parties définies (spécifque)>

<t id="1010000">
[Part1]\n[Part2]\n[part3]</t>
<t id="1010001">
[Part1]\n[Part2]</t>

BenIsra
12/01/2008, 00h33
Dans mon cas, il faut que je lance une annonce sous conditions. Le setup n'est pas vraiment la méthode la plus efficace dans mon cas.

Sinon... C'était mon deuxième essai. Pour le premier essai, j'avais fait ça:


<language id="33">

<page id="7921" title="BBS TEU" descr="news BBS du script TEU">

<!-- Messages evenement 1 1ère partie -->
<t id="2010000">Partie 1-1-1</t>
<t id="2010001">Partie 1-1-2</t>
<t id="2010002">Partie 1-1-3</t>
<t id="2010003">Partie 1-1-4</t>

<!-- Messages evenement 1 2eme partie -->
<t id="2010100">Partie 1-2-1</t>
<t id="2010101">Partie 1-2-2</t>
<t id="2010102">Partie 1-2-3</t>
<t id="2010103">Partie 1-2-4</t>

<!-- Messages evenement 1 3eme partie -->
<t id="2010200">Partie 1-3-1</t>
<t id="2010201">Partie 1-3-2</t>
<t id="2010202">Partie 1-3-3</t>
<t id="2010203">Partie 1-3-4</t>

<!-- Messages evenement 2 1ère partie -->
<t id="2020000">Partie 2-1-1</t>
<t id="2020001">Partie 2-1-2</t>
<t id="2020002">Partie 2-1-3</t>
<t id="2020003">Partie 2-1-4</t>

<!-- Messages evenement 2 2eme partie -->
<t id="2020100">Partie 2-2-1</t>
<t id="2020101">Partie 2-2-2</t>
<t id="2020102">Partie 2-2-3</t>
<t id="2020103">Partie 2-2-4</t>

<!-- Messages evenement 2 3eme partie -->
<t id="2020200">Partie 2-3-1</t>
<t id="2020201">Partie 2-3-2</t>
<t id="2020202">Partie 2-3-3</t>
<t id="2020203">Partie 2-3-4</t>

<!-- Définition des différentes parties (obligatoire) (pour générique (200000) et spécifique (200001)) -->
<t id="200001">[1auteur][2titre][3corps]</t>

<!-- Définition des différentes façon d'utiliser les parties définies (générique) -->
<t id="1010000">[1auteur][br/][2titre][br/][3corps][br/][br/]</t>
<t id="1010001">[1auteur][br/][2titre][br/][3corps][br/][br/]</t>

</page>
</language>


Si je mets le newsid à 1 dans le message, j'ai le premier message Partie 1-x-x, tout marche correctement. Si je mets le newsid à 2, ça ne marche pas. Je n'ai aucun message qui s'affiche.

Pour le problème de nomenclature, faudra également m'expliquer pourquoi Cycrow utilise des id à 3000000 pour ses messages. Et dans son cas, ça marche bien. J'ai également essayé de reproduire son schéma, sans succès pour le moment.

BenIsra
02/02/2008, 21h13
Allez, encore une petite couche pour les messages BBS.

Les parties de messages entre parenthèses ne sont pas pris en compte. Ou alors, les parenthèses ont une autre fonction.

Si on veut mettre des parenthèses dans un message, il faut les précéder d'un antislash. En gros, si vous voulez mettre "message (ce message)", vous devez mettre "message \(ce message\)" dans le fichier t.

Je le note, parce que j'ai perdu pas mal de temps avec ce truc.


Autre chose, le premier qui trouve la formule pour écrire "10% des recettes" pour le joueur gagne le gros lot. Je galère comme un fou, cet abruti prend le "% d" pour un "%d" et donc pour un paramètre entier... Et comme il n'y a pas de paramètre entier correspondant, il me le replace par un 0, et ça donne "10 0es recettes"... Je vais devoir passer par des moyens détournés, mais ça me lourde, cette histoire.

phlt
02/02/2008, 23h51
Les joies du scripting et du Modding ! :razz:

Je me suis découvert des trésors de patience insoupçonnés depuis que je suis dans ce business ! :-)

.

BenIsra
03/02/2008, 01h02
Oh, je suis pas du genre à m'énerver facilement. Mais pendant que je me bats sur des trucs de ce genre qui paraissent simples au premier abord, je me déconcentre et je fais des conneries par ailleurs qui m'obligent à réécrire un script de presque 300 lignes. Et là, je suis furieux.
Vraiment furieux.

BenIsra
15/06/2008, 14h25
Youhooooooo!

Ouais, ça y est! J'arrive à faire des annonces BBS! Je me suis inspiré du script Mercenaries Guild de Cycrow.

Voici le script :

001 load text: id=7921
002
003 $tab = array alloc: size=0
004 append Remparts to array $tab
005 $news = display news article: page=7921 newsid=3 occurrences=20 maxoffertime=null maxtime=null placeholder:race1=null race2=null customarray=$tab
006 change event news availibility: $news race=Argon sector=Remparts jumps=null
007 return null


Et le fichier texte :


<language id="33">
<page id="7921" title="Guild BBS News" descr="0">
<t id="10000">Galaxy Network - GalNet</t>
<t id="10100">$AUTHOR$, Editeur en Chef, GalNet Guild News</t>
<t id="10101">$AUTHOR$, Editeur Assistant, GalNet Guild News</t>
<t id="200000">[Author][Byline]</t>
<t id="200002">[Headline][Text]</t>
<t id="210000">$SECTOR$</t>
<t id="3010000">La Guilde des Marchands construit une nouvelle station</t>
<t id="3010100">La rumeur court que la Guilde des Marchands aurait construit un nouveau chantier naval quelque part dans le secteur $SECTOR$\nCe chantier naval offrirait un large choix de vaisseaux marchands aux membres de la guilde.\n\nD'après nos sources, la Guilde ne vendrait ces vaisseaux qu'aux membres de la Guilde d'un rang élevé, mais cet endroit est avant tout un bon endroit pour rejoindre la Guilde, ou pour trouver des missions.</t>
<t id="3020000">La Guilde des Assassins construit un nouvel avant-poste</t>
<t id="3020100">La Guilde des Assassins aurait construit un nouvel avant-poste quelque part dans le secteur $SECTOR$\nDans cette station, les membres de la guilde devraient trouver un vaste choix de missions leur permettant de se faire beaucoup d'argent.</t>
<t id="3030000">La Guilde des Conducteurs de Taxi construit une nouvelle station</t>
<t id="3030100">Il paraîtrait que la guilde des Conducteurs de Taxi aurait construit une nouvelle station quelque part dans le secteur $SECTOR$\nCette station permettrait d'installer des cabines afin de transporter des passagers.\n\nOn croit également que bon nombre de passagers attendraient d'être transportés à partir de cette station.</t>
<t id="3040000">La Guilde des Mercenaires construit une nouvelle station</t>
<t id="3040100">Il paraîtrait que la Guilde des Mercenaires aurait construit une nouvelle station quelque part dans le secteur $SECTOR$\nA partir de cette station, vous pouvez vous inscrire à la Guilde, et démarrer une carrière de mercenaire pour toucher de belles récompenses.</t>
<t id="1000000">[Author][Headline][Text][br/][br/][Byline]</t>
</page>
</language>
Pourquoi ça marche avec des ID 3000000 et pas avec des ID 2000000, je n'en sais absolument rien... Mais du moment que ça marche...

Tiens, dernière chose, essayez d'oublier de mettre la balise <language> dans un fichier texte pour rigoler... J'ai perdu 20 minutes à cause de cette bêtise...

Bon, je m'inspire de cela pour ajouter toutes les annonces BBS qui manque, ajouter celles dont j'ai besoin, et c'est mes amis traducteurs qui vont morfler! :biggrin:

phlt
16/06/2008, 02h50
Excellentes nouvelles tout ça ! :-D

BenIsra
16/06/2008, 22h56
Yep.

Mais je pense que je commence à y voir plus clair.

Cette histoire de messages génériques et spécifiques m'a toujours profondément embrouillé. Et je pense qu'en fait... Y a pas de messages spécifiques ou génériques.

Et je viens de comprendre les id à 3000000, ça doit venir de ce <t id="200002">.

Donc si je pousse le raisonnement un peu plus loin :
si on a une id en "2000XX", on doit avoir des id de messages en (XX+1)000000.
Je vais pas faire le test plus poussé, car trois niveaux de message, ça me suffit amplement... Mais faudra quand même que j'y regarde un jour.