Outils du site

fr:creation_nouvel_objet

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

fr/creation_nouvel_objet.txt · Dernière modification: 2016/09/14 07:03 (modification externe)