Peut-on asseoir un PNJ ?

Répondre
Partager Rechercher
Bonjour,

J'ai bien trouvé comment rendre possible qu'un PJ s'assoit, et ça fonctionne. Par contre, je voudrai avoir un PNJ assis en permanence sur un tabouret.

Cela est-il possible ? Si non, dois-je/puis-je passer par un script déclenché par l'utilisateur, qui dirait au PNJ d'aller s'asseoir ?
Merci
Citation :
Publié par Lilo Yapudbier
Met ce script dans le OnSpawn et le npc juste à côté de la chaise.
Merci Lilo,
Dans l'idée c'est ce que je cherchais à faire. Mais ce script est destiné à la chaise et non au PNJ, et il n'y a pas de OnSpawn sur un plaçable (du moins je ne trouve pas dans la liste des scripts par défaut).
Voila une solution


Code PHP:

void animation(object Objstring anim)
{
    
PlayCustomAnimation(Obj,anim,1);
}



void main()
{
    
object chaise=GetNearestObjectByTag("chaise");
    
object PNJ=OBJECT_SELF;
    
location Lloc=Location(GetArea(chaise),GetPosition(chaise),GetFacing(chaise)+180);
    
AssignCommand(PNJ,JumpToLocation(Lloc));
    
DelayCommand(30.0,animation(PNJ,"sitidle"));

A mettre sur le onspawn du PNJ

Le delaycommand est necessaire sinon, il se peut que la creature ne soit pas completement sapwné quand le script se declenche et donc, elle ne s assoie pas.

30.0 est un exemple, on doit pouvoir baisser la valeur. Mais la je suis sur que cela fonctionne.
Alors Le PNJ s'assoit, l'animation est correcte. Par contre, il ne bouge pas et s'assoit là où il se trouve, ignorant le tabouret (ça marche aussi sur les tabourets ou que les chaises ?) à côté de lui (disons 1,50m de lui).

Je récapitule, dans les propriétés du tabouret :
. Basics > Tag > chaise
. Comportement > Statique > False
. Comportement > Utilisable > True

Autre chose ou quelque chose à corriger ?

Merci
Bah moi aussi , et meme pour les Pj, tout les scripts utilisés font qu'on se retrouve les fesses dans le vide, comme l'explique Eduen... loin de la chaise.

Je comprend pas... y a un truc particulier à faire pour que le script fonctionne ?

A+
Bah moi ca fonctionne....

J ai testé sur toutes les chaises / tabourets/ bancs et ca fonctionne. Par contre pour les tabouret, le perso s assoit "dedans" a mi-hauteur...

Essayer de supprimer votre chaise et de la recreer. ( j avais des chaises definies en objet d environnement que j avais transformé en placeables et ca ne fonctionnait pas, il a fallu que je les detruises et recrees pour que cela fonctionne ).

sinon, verifiez que votre chaise n est pas dans un endroit inaccessible ?

Autrement tu peux tenter ca :

A la place du assigncommand, tu met :

Code PHP:

DelayCommand(29.5,AssignCommand(PNJ,JumpToLocation(Lloc))); 

Je met ça sur la perception du PNJ et ca fonctionne très bien

Code:
void main() 
{
	object oUser = OBJECT_SELF; 
	object oChaise = GetNearestObjectByTag("chaise");
	location lLoc; 
	float fFacing = GetLocalFloat(oChaise,"Facing"); 
	
	lLoc = Location(GetArea(oChaise), 
	GetPosition(oChaise), 
	GetFacing(oChaise) +fFacing);
	
	AssignCommand(oUser,JumpToLocation(lLoc)); 
	PlayCustomAnimation(oUser,"sitidle",1); 
}
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés