Location d'une chambre, par Volonter (24/03/08 - 18:11)
Introduction
Nous allons tout d'abord créer un PNJ qui nous donnera l’option de location d'une chambre.
Pour commencez, vous aurez besoin de :
- Le script du PNJ (Publican_NewlandsLodgeDervera)
- Le script de l’activator (PublicanNewlandsLodgeTriggerScript)
- Une porte
- Un lit
- Bed Rent Topic Changes (topic pour louer le lit)
I. Création de l'auberge
Pour créer une auberge, faites comme quand vous créez une maison mais pensez à mettre plusieurs lits !
Pour une auberge déjà crée (plus facile), allez dans "interior" dans le menu des "Cells", et cherchez :
CheydinhalNewlandsLodge (nom en ID (exemple, vous pouvez prendre une autre auberge)).
Une fois arrivé dedans, copiez tous les objet en faisant cette manipulation :
Reculez la vue pour voir tout au complet.
Cliquez et gardez le doigt appuyé sur le bouton de la souris tout en sélectionnant tous les objets.
Une fois tous les objets sélectionnés, faites CTRL+C.
Ensuite rendez-vous dans le menu World à Cells…
Assurez-vous que vous êtes dans "interior" dans votre nouveau tableau puis clic droit dans la grille puis new. Entrez ce nom dans la fenêtre qui viens d’apparaître :
SierrisNewlandLodge.
Dans l’onglet « Lighting », juste dans les trois premières cases, écrivez « 51 ».
Puis dans l’onglet "interior data", cochez "public area" et ajoutez le nom que vous désirez.
Ensuite cliquez sur OK et allez dans votre nouvelle cellule et une fois dedans , faite CTRL+V, pour coller tous les objets précédemment copiés.
Ensuite allez dans une monde extérieur et placez une maison.
Allez dans World Object > Static > Architecture > Cheydinal et glissez dans votre Render Window l’objet :
CheydinhalHouseMiddle04.
Placez-le comme bon vous semble et faites le lien avec une porte jusqu’à votre intérieur.
Aide : Créer sa (petite) maison
II. L'aubergiste
Dans votre cellule, ce trouve Dervera Romalen. Trouvez là et double cliquez dessus puis Edit Base. Changez la en Homme en décochant la case «Female » si vous le souhaitez.
Éditez son apparence comme bon vous semble.
Exemple :- Changer son ID pour : PeterCarbrie
- Changer son nom pour : Peter Carbrie
Puis faites OK.
Faites oui pour créer un nouveau personnage nommé PeterCarbrie (exemple qu'on utilisera pour la suite).
Faites OK puis dans la case "Référence Editor ID" écrivez :
PeterCarbrieRef.
III. Le coffre de l'aubergiste
Vous devez éditez le coffre de l’aubergiste pour qu’il appartienne à Peter Carbrie.
Dans la fenêtre "Cells View", sélectionnez votre auberge et cherchez NewlandLodgeDerveraChest.
Une fois trouvé, sélectionnez votre aubergiste puis dans l’onglet "Merchant Container", appuyer sur :
Select référence in render window.
Double-cliquez à présent sur le coffre.
IV. Location du lit et de la porte
Editez le lit que vous voulez, et changer le propriétaire du lit pour Peter Carbrie (votre aubergiste).
Dans la case "Reference editor ID", écrivez :
SRNewlandsLodgeRentBed.
Pour la location de la porte, éditez la porte de la chambre où le lit de Peter Carbrie se trouve et dans la case "Référence editor ID", écrivez :
SRNewlandsLodgeRentDoor.
Verrouillez la porte et donnez à la porte un autre propriétaire que Peter Carbrie.
Cela empêchera votre aubergiste d'utiliser le lit pour lui.
V. L’activateur et son script
Allez dans la cellule extérieur de votre auberge là ou vous l’avez mis.
Dans World object > Activator > Dungeon , trouvez
PublicanNewlandsLodgeTriggerObj et ouvrez-le.
Créez une nouvelle copie de celui-ci en changeant son ID en :
PublicanSierrisNewlandsLodgeTriggerObj.
Placez-le dans votre extérieur en dessous des escaliers de manière à ce que l’on ne le voit pas.
Dans la case Référence editor ID, ajouter ceci :
Sierris NewlandsLodgeTriggerRef.
Pour le script, je vais vous le donnez pour ne pas que vous aillez à le chercher.
Ouvrez un nouveau script puis marquer ceci :
ScriptName PublicanSierrisNewlandsLodgeTriggerScript
short doonce
Begin Gamemode
if ( PeterCarbrieRef.rent == 1 )
if (PeterCarbrieRef.Cleanup == 1 )
if ( doonce == 0 )
if ( GetDistance Player < 600 )
PeterCarbrieRef.EvaluatePackage
set doonce to 1
endif
endif
endif
endif
End
Sauvegardez le tout puis allez sauvegarder le mod et allez donner le script à votre activateur.
VI. Le script de l’aubergiste
Pour ce script, ouvrez un nouveau script, puis écrivez ceci :
Scriptname Publican_SierrisNewlandsLodgePeter
;CellName: SierrisNewlandLodge
;Publican: Peter Carbrie
;Room: Upstairs, room on the right
;Door Ref: SRNewlandsLodgeRentDoor
short rent
short rentday
short rentmonth
short cleanup
short setup
float renthour
begin gamemode
if ( rent == 1 )
if ( setup == 0 )
set rentday to GameDay
set renthour to GameHour
set rentmonth to GameMonth
set setup to 1
SRNewlandsLodgeRentDoor.unlock
SRNewlandsLodgeRentBed.SetOwnership
else
if ( GameDay > rentday )
if ( renthour >= 23 )
if ( GameDay > ( rentday + 1 ) )
set cleanup to 1
endif
elseif ( GameHour > ( renthour + 1 ) )
set cleanup to 1
endif
elseif ( GameMonth != rentmonth )
set cleanup to 1
endif
endif
if ( Player.GetinCell SierrisNewlandLodge == 0 )
if ( Cleanup == 1 )
set Cleanup to 2
endif
endif
if ( Cleanup == 2 )
set rent to 0
set setup to 0
set rentday to 0
set rentmonth to 0
set cleanup to 0
set NewlandsLodgeTriggerRef.doonce to 0
SRNewlandsLodgeRentDoor.SetOpenState 0
SRNewlandsLodgeRentDoor.lock 30
SRNewlandsLodgeRentBed.SetOwnership PeterCarbrie
endif
endif
End
Sauvegardez le tout, sauvegardez votre mod puis allez mettre le script à votre aubergiste.
VII. Le dialogue pour la location du lit (Partie Bed)
Ouvrez le menu des quêtes en appuyant sur le gros « Q ».
Dans la grille, sélectionnez BedRental.
Dans l’onglet Topic, sélectionner le topic « BED ».
Dans la ligne du haut, faites 2 fois clic droit puis new.
Dans le premier, écrivez : "Mais vous avez déjà loué une chambre pour la nuit !".
Dans le deuxième, écrivez : "J’ai un lit de libre pour 10 pièces. Ça vous intéresse ?".
Allez dans le topic "Mais vous avez déjà loué une chambre pour la nuit !". Mais cette fois ci, ne pas prendre celui que vous avez créé mais celui déjà créé.
Dans la fenêtre « Conditions », clic droit puis « copie all conditions ».
Retournez dans le vôtre, et faite « Pastes Conditions ».
Sélectionnez "GetisID" puis changez le « Fonction Parameter » par le nom de votre aubergiste.
Sélectionnez "GetScriptVariable" puis changez le « Fonction Paramèter » par la cellule de votre auberge dans le 2ème menu déroulant votre aubergiste.
Faites la même chose avec le topic "J’ai un lit de libre pour 10 pièces. Ça vous intéresse ?.
Mais dans celui-ci, dans la grille « Choices », ajoutea les topics "BedYes" et "BedNo" en cliquant droit puis addtopic.
VIII. Le dialogue pour la location du lit (Partie BedYes)
Toujours dans l’onglet Topic, sélectionnez le topic « BEDYES ».
Dans la ligne du haut, faites 2 fois clic droit puis new.
Dans le premier, écrivez : "Vous n’avez pas assez d’argent pour louer une chambre. Peut-être une autre fois ?".
Dans le deuxième, écrivez : "Montez les escaliers, c’est la porte à votre droite. Merci !".
Allez dans le topic : "Vous n’avez pas assez d’argent pour louer une chambre. Peut-être une autre fois ?".
Mais cette fois ci, ne pas prendre celui que vous avez créé mais celui déjà créé.
Dans la fenêtre « Conditions », clic droit puis « copie all conditions ».
Retournez dans le vôtre, et faite « Pastes Conditions ».
Sélectionnez "GetisID" puis changez le « Fonction Parameter » par le nom de votre aubergiste.
Allez dans le topic : "Montez les escaliers, c’est la porte à votre droite. Merci !".
Mais cette fois ci, ne pas prendre celui que vous avez créé mais celui déjà créé.
Dans la fenêtre « Conditions », clic droit puis « copie all conditions ».
Retourner dans le vôtre, et faites « Pastes Conditions ».
Sélectionnez "GetisID" puis changez le « Fonction Parameter » par le nom de votre aubergiste.
Puis dans la fenêtre de texte « Result Script », écrivez ceci :
player.removeitem gold001 10
set PeterCarbrieRef.rent to
Conclusion
Sauvegardez le tout puis allez testez votre mod!
Si le mod ne marche pas, vous avez fait quelque chose de pas correct.
Dans ce cas, relisez le tutoriel au complet.