bonsoir,
j'aimerai faire en sorte de pouvoir acheter une maison avec la possiblité de la mettre a louer qui rapporte des po tout les x temp...
voici une partie du script a compléter
Voulez vous achetez cette maison ?
--> Acheter
--> Etes vous sur de vouloir l'acheter ?
--> Oui (dans condition d'execution)
int StartingConditional()
{
object pc = GetPCSpeaker();
if(!HasItem(pc, "CastralRocMaison1"))
return FALSE;
if (GetGold(pc) < 200000)
return FALSE;
return TRUE;
}
et dans action conséquente
//::///////////////////////////////////////////////
//:: FileName prendre_or_maiso
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 28/06/2014 21:32:52
//:://////////////////////////////////////////////
void main()
{
// Donner les objets à la personne qui parle
CreateItemOnObject("CastralRocMaison1", GetPCSpeaker(), 1);
// Prendre de l’or au joueur
TakeGoldFromCreature(200000, GetPCSpeaker(), TRUE);
}
--> Finalement Non
Je suis le propriétaire que voulez vous faire ?
--> Entrer (dans condition d'execution)
//::///////////////////////////////////////////////
//:: FileName clef_entre_maiso
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 28/06/2014 19:58:56
//:://////////////////////////////////////////////
#include "nw_i0_tool"
int StartingConditional()
{
// Vérifier que le PJ qui parle possède ces objets dans son inventaire
if(!HasItem(GetPCSpeaker(), "item001"))
return FALSE;
return TRUE;
}
--> Faire des doubles ! (dans action conséquente)
//::///////////////////////////////////////////////
//:: FileName double_clef
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 28/06/2014 19:53:30
//:://////////////////////////////////////////////
void main()
{
// Donner les objets à la personne qui parle
CreateItemOnObject("item001", GetPCSpeaker(), 1);
}
--> Vendre (dans action conséquente)
//::///////////////////////////////////////////////
//:: FileName prendre_or_clef
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 28/06/2014 20:01:09
//:://////////////////////////////////////////////
void main()
{
// Prendre de l’or au joueur
TakeGoldFromCreature(200000, GetPCSpeaker(), TRUE);
// Enlever des objets de l’inventaire du joueur
object oItemToTake;
oItemToTake = GetItemPossessedBy(GetPCSpeaker(), "CastralRocMaison1");
if(GetIsObjectValid(oItemToTake) != 0)
DestroyObject(oItemToTake);
}
Entré par effraction (dans condition d'execution)
//::///////////////////////////////////////////////
//:: FileName prendre_or_clef
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 28/06/2014 20:01:09
//:://////////////////////////////////////////////
void main()
{
// Prendre de l’or au joueur
TakeGoldFromCreature(200000, GetPCSpeaker(), TRUE);
// Enlever des objets de l’inventaire du joueur
object oItemToTake;
oItemToTake = GetItemPossessedBy(GetPCSpeaker(), "CastralRocMaison1");
if(GetIsObjectValid(oItemToTake) != 0)
DestroyObject(oItemToTake);
}
Partir
(donc le 1er script ne compile pas et a partir du dialogue je suis le propriétaire etc n’apparaisse pas ? normal)
Ce qui faudrait rajouter
HasItem n'étant pas une fonction native, il faut l'implémenter. Pour ma part j'utilise la fonction
[GetItemPossessedBy(object, string)]
. Par exemple :
int HasItem(object a, string b)
{
// On renvoie FALSE si le retour de fonction est OBJECT_INVALID
return GetItemPossessedBy(a, b) != OBJECT_INVALID;
}
Il te reste à déclarer cette fonction dans les scripts où tu l'utilise. Après tout devrait être bon je pense.
Edit: note que si TakeGoldFromCreature fonctionne même si le joueur n'a pas assez de pièce, il serait intéressant de vérifier le nombre de pièces d'un joueur avant chaque tentative de lui prendre des PO.