TESCS2 : Vendre une maison au joueur

De Wiwiki
Aller à la navigation Aller à la recherche


Voici un tutoriel qui vous servira à créer une maison à vendre.


Avant toute chose


  • Avant tout, vous devez commencer par savoir faire ceci:
-Créer l'extérieur d'une maison
-Créer une cell intérieure, et la nommer "Maison à vendre".
-Créer l'intérieur de la maison et le décors.
-Créer un NPC qui vendra cette maison.
-Créer la clef de la maison, en copiant par exemple une des clefs existantes parmi les objets de base Item/Key .
-Créer une quête ( je vous conseille comme ID de prendre exemple sur celles de base, exemple: "House (le nom de votre ville)", de priorité 20.


Préparation de la maison


  • Premièrement, ajouter deux portes, une à l'intérieur, et l'autre à l'extérieur. Relier les deux ensemble avec l'onglet Teleport de la référence. Verrouiller à l'aide d'une clef (onglet lock de la référence de la porte) et désigner la clef correcte.
  • Définir ensuite quel sera la décoration qui sera choisie avec chaque série de set. Un set est égal à un ensemble de meubles qui forment une pièce ou une fonction (exemple: les plantes, les conteneurs etc... ) dans votre maison)
  • Dans chaque set vous aurez besoin de renseigner l'onglet "Enable Parent", vous n'aurez qu'à choisir l'un de vos objets pour cela, suivez donc ces indications:
  • Double-cliquez sur l'objet en question et cochez la case "Persistant Reference", lui donnez ensuite une ID Reference propre. Exemple: BedroomParentRef.
  • Double-cliquez sur les autres objets du même ensemble et allez sur l'onglet "Enable Parent", puis "Select Reference in Render Window", enfin double-cliquez sur l'objet ayant l'ID *Reference renseignée ci-dessus, repétez l'opération pour chaque objet du set.


Mainteant votre maison est prête.

Le NPC


  • Le NPC aura besoin de quelques dialogues afin de vendre votre maison.
  • Allez sur l'onglet de votre quête crée pour cette utilisation puis sur l'onglet "Topics".
  • Clique-droit sur la liste vide à gauche et validez le champ "Add Topic", ajoutez alors les onglets "HouseDecline" et "HouseInquiry.
  • Retournez alors sur la liste 'AddTopicList", double-clique et validez de nouveau l'option "Add Topic", puis créez les onglets intitulés "Housebuy" (le nom de votre ville) et un autre "HouseTooMuch" (le nom de votre ville).

Avant de poursuivre, vous devez choisir un prix pour votre maison.

  • Maintenant sélectionnez votre topic "Housebuy". Dans le champ "Topic Text" , écrivez quelque chose dans ce genre: "Je veux bien payer 3000 d'or pour cette maison" (si le coût de la maison est égal à 300 bien sûr)
  • Ensuite, allez à la liste se trouvant en dessous, faites un clique-droit et sélectionnez "New". Dans le texte de réponse, écrivez quelque chose dans ce genre: "Excellent choix, voici votre clé...",
  • Puis ajoutez le fichier audio correspondant, si vous ne voulez ou ne pouvez pas enregistrer votre propre voix, vous pouvez décompresser quelques voix d'Oblivion (écrit dans le texte...), ou servez vous du système de son dit "blanc", validez le tout en appuyant sur Ok.
  • Dans le champ "Result Script" écrivez ceci:

SetStage (Le nom de votre quête) 10

  • Dans la liste "Conditions", double-cliquez droit et appuyez sur "New". Réglez la fonction "Condition Function" sur "GetGold", laissez les paramètres "Function Parameters" vierge, réglez le menu déroulant "Comparison" sur >=, le champ "Value" sur le nombre d'or requit à l'achat de la maison et cliquez sur "Run on Target" plus haut.
  • Maintenant ajoutez une nouvelle condition, réglez "Condition Function" sur GetisId, cliquez sur "Function Parameters", renseignez l'ID votre NPC, mettre "Comparison" sur ==, le champ "Value" sur 1 et cliquez sur "Run on Target".
  • Sélectionnez "HouseDecline", ajoutez une nouvelle réponse dans ce genre "Je préfère discuter uniquement de la propriété avec des acheteurs sérieux.", ajoutez le fichier audio, puis une condition comme le second choix du précèdent topic.
  • Sélectionnez "HouseInquiry", ajoutez une nouvelle réponse dans ce genre "J'ai rendu visite au propriétaire d'une maison particulière que je possède.", ajoutez le fichier audio, et une condition comme le précèdent topic, ensuite vous ajoutez une nouvelle condition, "Condition Function" sur "IsCellOwner", "Function Parameters" sur (cellule de votre maison)Player, "Comparison" sur == et "Value" sur 0.
  • Puis ajoutez une troisième condition, "Condition Function" sur "GetDisposition", "Comparison" sur >= et "Value": (la disposition que le PNJ doit avoir envers vous afin de vous permettre de l'acheter").
  • Dans la liste de choix, ajoutez "HouseBuy", "HouseDecline" et "HouseDecline".
  • Sélectionnez "HouseTooMuch", écrivez "Je ne peux pas vous offrir 3000 pièces d'or." dans le champ "Topic Text".
  • Ajoutez une nouvelle réplique du genre "Quelle honte. Je suppose que je dois chercher un autre acheteur.", ajoutez le fichier audio et enfin une condition avec l'habituel "Condition Function" en "GetIsID".


Les dialogues sont enfin terminé.

L'ameublement


  • Tout d'abord il vous faut créer un parchemin pour chaque ensemble de meubles et de les nommer comme cela: Chambre de la maison ou Salle à manger de la maison.
  • Dans ces derniers il vous faudra écrire ce que ce set de meubles ajoutera à votre maison, quelque chose comme ceci:
Cela ajoutera à votre maison les meubles suivant:
- Un lit
- Un tapis
- Une bibliothèque avec un livre
- Une commode et trois vêtements
- Un tabouret


  • Ajouter ensuite ce script à votre parchemin:
Scriptname HouseFurnReceiptScript
short Doonce
begin OnAdd player
if ( Doonce == 0 )
	SetItemValue 0
	set Doonce to 1
endif
end


  • Puis, ajoutez une valeur aux parchemins.
  • Vous pouvez faire la partie suivante selon différentes manières, voici l'une d'entre elle.
  • Sélectionnez le vendeur de ces parchemins, vous pouvez très bien utiliser le vendeur de la maison ou tout aussi bien quelqu'un d'autre, peu importe.
  • Double-cliquez sur le coffre de ce marchand et ajoutez ceci à son script:
short once
begin gamemode
	if getstage (Le nom de la quête) >= 10
		if once == 0
			additem (ID du premier set) 1
			additem (ID du second set) 1
                       ; Faites cela pour toutes les références des sets de meubles.                      
			set once to 1
		endif
	endif
end


La quête


  • Ajoutez ce script de type "Quest" à votre quête:
scn aaabuyinghouse
short TotalCount ; Le nombre de sets que possède votre maison
short Doonce1    ; vérifie si vous avez bien acheter les objets
short Doonce2    ; vérifie si vous avez bien acheter la maison
;add "Short Doonce3" si vous avez bien les trois objets
float fQuestDelayTime
begin gamemode
; Mets un terme au script si les conditions ne sont pas remplies
if ( GetStage housearea2 < 10 )
	Return
endif
if getstage (Nom de la quête) == 10 && player.getincell   (Nom de la cell ou se trouve la maison)   == 1
	setstage (Nom de la quête) 20
endif
; Il s'agit de la varaible qui déclanche la suite lorsque la maison est acquise
if ( Player.GetItemCount (ID du parchemin) == 1 ) && ( Doonce1 == 0 )
	(ID du premier set de fournitures).Enable
	set TotalCount to ( TotalCount + 1 )
	set Doonce1 to 1
endif
if ( Player.GetItemCount (ID du parchemin) == 1 ) && ( Doonce2 == 0 )
	(ID du second set)..Enable
	set TotalCount to ( TotalCount + 1 )
	set Doonce2 to 1
endif
;Ends Fin de la quête si tout à été acheté
if ( TotalCount == 2 )    ; Changez le nombre deux selon le nombre de sets à acheter
	setstage (Nom de la quête) 30
	set fQuestDelayTime to 0
endif
end


  • Aller sur l'onglet "Quest Stages" et ajoutez à "Index" les étapes 10, 20 et 30.
  • Sélectionnez l'index 10 et effectuez une nouvelle entrée de journal avec le texte suivant: "Je viens d'acheter une maison à (le nom de le votre ville)."
  • Dans le champ "Result Script", ajoutez ceci:
(Réference du premier set de meubles).disable
(Réference du second set de meubles).disable
; Faites cela pour toutes les réferences des sets de meubles.
Player.RemoveItem Gold001 (Le prix de votre maison)
Player.AddItem (L'ID de la clef) 1
SetCellOwnership (Cell de la maison)
SetCellFullName (Cell de la maison) "Maison (le nom de votre ville)."
ModPCMiscStat 15 1
set (Nom de la quête).fQuestDelayTime to 1


  • Sélectionnez l'index 20 et insérez une nouvelle entrée de journal avec le texte suivant: "Maintenant que je suis dans ma nouvelle maison de (le nom de votre ville), il faudrait peut-être que j'aille voir (le nom du NPC vendant les meubles), à la boutique (nom de la boutique), afin d'acheter de quoi la meubler.
  • Sélectionnez l'index 30 et insérez une nouvelle entrée dans le journal avec le texte suivant: "J'ai acheté tout ce que (le nom du NPC ayant vendus les meubles) pouvait me proposer pour ma maison à (le nom de votre ville)."
  • A cette index 30, cochez l'option "Complete Quest" et ajoutez ceci dans le champ "Result Script":
stopquest (nom de la quête)


  • Voilà maintenant vous savez créer de jolies petites bicoques ou bien même, soyons fous, de grands manoirs à vendre !