Restriction de race dans un script ou le PNJ engage la conversation tout seul...

Répondre
Partager Rechercher
Voici mon script actuel, il est correct :
Code PHP:

void main()
{
   
object oNPC GetObjectByTag("TAG_DU_PNJ");
   
object oPC GetEnteringObject();
   if(
GetIsPC(oPC) && GetLocalInt(oPC,"Dlg_Init_TAG_DU_PNJ" GetTag(oNPC)) == FALSE && !IsInConversation(oNPC))
   {
      
AssignCommand(oPC,ClearAllActions());
      
AssignCommand(oNPC,ClearAllActions());
      
AssignCommand(oNPC,ActionMoveToObject(oPC));
      
AssignCommand(oNPC,ActionStartConversation(oPC));
   }

Cela fait que le PNJ, au moment où le PJ rentre dans un trigger, engage la conversation tout seul. Et bien, je voudrais que cela n'arrive que si le PJ est un nain. En d'autres mots, le PNJ n'accosterais le PJ que si ce dernier est un nain. Quel ligne de code dois-je ajouter pour cela ?
un test avec "GetRacialType()"
genre
Code PHP:

void main()
{
   
object oNPC GetObjectByTag("TAG_DU_PNJ");
   
object oPC GetEnteringObject();
   
int nRace GetRacialType(oPC);
   if(
GetIsPC(oPC) && GetLocalInt(oPC,"Dlg_Init_TAG_DU_PNJ" GetTag(oNPC)) == FALSE && !IsInConversation(oNPC) && (nRace ==RACIAL_TYPE_DWARF)
   {
      
AssignCommand(oPC,ClearAllActions());
      
AssignCommand(oNPC,ClearAllActions());
      
AssignCommand(oNPC,ActionMoveToObject(oPC));
      
AssignCommand(oNPC,ActionStartConversation(oPC));
   }

pas testé (edit) mais corrigé
Quel nom ?
Get racial type... je ne sais pas si ça fonctionne. Mais de toute façon, je ne connais pas l'équivalent du nom des races dans le langage des scripts ! Est-ce "Dwarf" pour Nain ? Aidez-moi !
Sisi, ça doit fonctionner avec cette fonction
Pour info (tiré du Lexicon, et traduit) :
Code PHP:

GetRacialType (object oCreature)
 => 
Donne la race de la créature 
Et effectivement, "Dwarf" c'est bien le nom anglais pour "Nain". Et après tout, le langage du script utilise pour l'essentiel des termes anglais

pour finir, la fonction que t'a donné Reyan correspond bien a ce que tu demandais

Sans vouloir te vexer, un tout petit peu de recherche (et un essai) t'aurais permis de voir que c'était que tu bonheur comme script
Exclamation
Code PHP:

   if(GetIsPC(oPC) && GetLocalInt(oPC,"Dlg_Init_TAG_DU_PNJ" GetTag(oNPC)) == FALSE && !IsInConversation(oNPC) && (nRace ==RACIAL_TYPE_DWARF]) 

-> ERREUR : UNKNOWN STATE IN COMPILER

Marche pas !

le script en entier :
Code PHP:

void main()
{
   
object oNPC GetObjectByTag("Semli");
   
object oPC GetEnteringObject();
   
int nRace GetRacialType(oPC);
   if(
GetIsPC(oPC) && GetLocalInt(oPC,"Dlg_Init_Semli" GetTag(oNPC)) == FALSE && !IsInConversation(oNPC) && (nRace ==RACIAL_TYPE_DWARF)
   {
      
AssignCommand(oPC,ClearAllActions());
      
AssignCommand(oNPC,ClearAllActions());
      
AssignCommand(oNPC,ActionMoveToObject(oPC));
      
AssignCommand(oNPC,ActionStartConversation(oPC));
   }

rooo, c'est un bête ] en trop
je corrige
et les constante, les fameux "RACIAL_TYPE_*" ba on les trouve en cliquant sur l'onglet "constante", tu met dans le filtre "racial_type", info que te donne la description de la fonction, et t'as toute tes races sous les yeux
il est qd même achement bien fait aurora
enfin moi je trouve ^_^

la version corrigée :

Code PHP:

void main()
{
   
object oNPC GetObjectByTag("TAG_DU_PNJ");
   
object oPC GetEnteringObject();
   
int nRace GetRacialType(oPC);
   if((
GetIsPC(oPC)) && (GetLocalInt(oPC,"Dlg_Init_TAG_DU_PNJ" GetTag(oNPC)) == FALSE) && !(IsInConversation(oNPC)) && (nRace ==RACIAL_TYPE_DWARF))
   {
      
AssignCommand(oPC,ClearAllActions());
      
AssignCommand(oNPC,ClearAllActions());
      
AssignCommand(oNPC,ActionMoveToObject(oPC));
      
AssignCommand(oNPC,ActionStartConversation(oPC));
   }

Répondre

Connectés sur ce fil

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