Scripting Tutorial: How Do I Start My Store?
Tutorial de Script : Comment je commence mon magasin ?
par David Gaider
L'installation d'un magasin de base et assez facile... tout ce que vous avez à faire est d'utiliser le Store Wizard et cela vous installe votre magasin de base : vous avez un magasin avec un inventaire, des réductions et augmentations, un nom et un tag. Mais qu'est ce que vous allez en faire, maintenant ?
Etape 1 : Placez l'objet magasin dans votre module. Un magasin qui n'est qu'un unplaced blueprint ne peut être accessible par votre module. Vous devez maintenant le poser quelque part. Vous noterez quand vous le placerez, qu'il ressemble à un Waypoint... c'est bon. Les joueurs ne verront pas cet objet et ne seront pas capable d'interagir avec lui, de quelque manière que ce soit... il a juste besoin d'exister, de préférence à proximité de l'objet qu'il appelle.
Etape 2 : Créez l'accès à votre objet. Normalement c'est un marchand PNJ... mais ça peut ne pas l'être. Tout les objets capables de lancer un script peuvent ouvrir un magasin. Avoir un négociant est la méthode la plus facile cependant. Créez simplement votre marchand et faites lui un dialogue. La méthode la plus simple est de lui faire dire "Bienvenue ! Vous voulez voir mes marchandises ?" Et ajouter deux réponses : "Oui" et "Non".
Etape 3 : Ajoutez un script pour ouvrir l'objet. Dans le dialogue du dessus, vous devriez ajouter ce script dans la section Actions Taken pour la réponse "oui" du joueur... ainsi lorsque le joueur sélectionne cette réponse, le magasin s'ouvre. Vous n'avez rien besoin d'ajouter à "Non"... cela fermera simplement le dialogue.
Voici le script de base pour ouvrir le magasin:
void main()
{
object oStore = GetObjectByTag("STORE_TAG_HERE");
OpenStore(oStore, GetPCSpeaker());
}
...et c'est tout. Evidement vous devez remplacer "STORE_TAG_HERE" par le tag de votre magasin objet.
Si vous regardez de plus près la structure de la commande OpenStore, vous verrez que vous pouvez ajouter une réduction ou augmentation supplémentaire... qui sont là juste au cas où vous voudriez modifier les prix. Prenez le script qui vient par exemple... le vendeur double les prix pour les elfes (je pense qu'il ne les aiment pas) :
void main()
{
object oStore = GetObjectByTag("STORE_TAG_HERE");
if (GetRacialType( GetPCSpeaker()) == RACIAL_TYPE_ELF)
{
OpenStore(oStore, GetPCSpeaker(), 100);
}
else OpenStore( oStore, GetPCSpeaker());
}
Dernière chose sur les magasins : Les possibilités de l'objet standard sont assez limitées pour le moment. Peut-être que ça changera. Pour le moment, sachez que vous ne pouvez pas appliquer de réduction sur un type d'item en particulier... le marchand applique la même réduction ou augmentation indépendamment des articles... vous ne pouvez pas non plus déterminer quel type d'article un marchand achètera ou non. C'est tout ou rien.