Création d'un nouvel objet
Tutoriel en cours de rédaction/test/modification
Exemple de la création d'un objet “Tente”
Copier le fichier :
L:\leveldesign\game_elem\creature\objects\object_watch_tower.creature
en
L:\leveldesign\Game_elem\creature\objects\object_tent_01.creature
Ouvrir ce fichier et changer la ligne 8 par :
<ATOM Name=“Item” Value=“GE_Mission_tente.shape”/>
qui est le fichier .shape de notre nouvel objet
On utilise le logiciel make_sheet_id dans /code/build/bin pour obtenir un sheets_id.bin :
$ cd /home/khanat/ryzomcore/code/build/bin/
$ ./make_sheet_id -o /home/khanat/ryzomcore/code/ryzom/common/data_leveldesign/leveldesign/Game_elem/sheet_id.bin /home/khanat/ryzomcore/code/ryzom/common/data_leveldesign/leveldesign/Game_elem /home/khanat/ryzomcore/code/ryzom/common/data_leveldesign/leveldesign/game_element /home/khanat/ryzomcore/code/ryzom/common/data_leveldesign/leveldesign/World
ou bien :
$ cd /home/khanat/ryzomcore/code/ryzom/common/data_leveldesign/leveldesign/
$ /home/khanat/ryzomcore/code/build/bin/make_sheet_id -o Game_elem/sheet_id.bin Game_elem game_element World
On copie ce fichier sheets_id.bin (créé/modifié dans /home/khanat/ryzomcore/code/ryzom/common/data_leveldesign/leveldesign/Game_elem/ ) dans le répertoire /user du client sur l'ordinateur du client On le copie aussi dans /home/khanat/ryzomcore/code/ryzom/common/data_leveldesign/leveldesign/Game_elem/ (remplacer l'ancien éventuellement)
On utilise le sheets_packer pour obtenir les *.packed_sheets :
Aller dans le répertoire /home/khanat/ryzomcore/code/ryzom/tools/sheets_packer
Lancer la commande : /home/khanat/ryzomcore/code/build/bin/sheets_packer
Les *.packed_sheets sont fabriqués dans : ryzomcore/code/ryzom/client/data
On copie ces *.packed_sheets dans le répertoire /user du client sur l'ordinateur du client
A faire éventuellement :
On ajoute un nom à notre objet
- Éditer le creature_words_en.txt dans /home/khanat/ryzomcore/code/ryzom/server/data_shard/language
- Éditer creature_en.txt dans le $client_dir$/user
- Ajouter à chacun une ligne du type :
_A07A5C396E75AF9C arma My Arma a the Armas the
Attention à bien séparer d'une tabulation chaque champ.
Placer des objets sur le serveur par le World Editor
Cela place l'objet de façon dynamique à chaque redémarrage du serveur
Avec le World Editor, on place des tentes dans la Primitive BotObject de NewbieLand de façon similaire à la Watch Tower. On enregistre.
Faire un copier/coller du fichier sur le serveur RC local
On efface les packed_sheets du serveur, qui les recalculera à la volée lorsqu'il redémarrera :
$ shard stop
$ cd /home/khanat/ryzomcore/code/ryzom/server/data_shard
$ rm *.packed_sheets
$ shard start
Ajout temporaire
On va invoquer l'objet par une commande qui nécessite certains privilèges : eventCreateNpcGroup
Puis ensuite appeler l'objet que l'on veut faire apparaitre :
/a eventCreateNpcGroup <player eid> <nbBots> <sheet> [<dispersionRadius=10m> [<spawnBots=true> [<orientation=random|self|-360..360> [<name> [<x> [<y>]]]]]]")
<player eid> : pas nécessaire quand la commande est passée directement via le chat, par défaut c'est le EID du joueur qui invoque (qui doit avoir des privilèges de GM)
<nbBots> : nombre d'objets
<sheet> : nom de la datasheet de l'objet ou nom de l'objet dans cette dernière
<dispersionRadius> : Angle sur lequelle pop va se faire
<spawnBots> : ??
<orientation> : orientation de l'objet (self=identique à l'invocateur)
<name> : nom à donner à l'entité si on ne veut pas celui par défaut
<x> <y> : coordonnées du centre du pop