un npc vous Interpelle? comment faire?

Répondre
Partager Rechercher
Code PHP:

void main() 

object oPC GetLastPerceived(); 
object oNPC OBJECT_SELF

if (!
IsInConversation(oNPC)) 

AssignCommand(oNPCClearAllActions()); 
AssignCommand(oNPCActionMoveToObject(oPCFALSE)); 
AssignCommand(oNPCActionStartConversation(oPC,"heptoilabas")); 


Code PHP:

include "nw_i0_generic"
int StartingConditional()
{
object oPC GetLastPerceived();
object oNPC OBJECT_SELF;

    
// Restriction selon l'alignement du joueur
    
if(GetAlignmentGoodEvil(oPC) != ALIGNMENT_EVIL)
        return 
FALSE;

    return 
TRUE;
}
void main()
{

if (!
IsInConversation(oNPC))
{
AssignCommand(oNPCClearAllActions());
AssignCommand(oNPCActionMoveToObject(oPCFALSE));
AssignCommand(oNPCActionStartConversation(oPC,"guardnorland"));

Merci tyrion! j'y suis presque grace a toi


Comme tu vois, j'ai ajouté une condition. Si le personnage est mauvais il va venir vers moi me parler. Mais le prob, c que je sois bon ou mauvais il m'attaque qd meme

Dans le dialogue j'ai créé avec l'editeur ce script:

Code PHP:

#include "nw_i0_generic"

void main()
{

    
// Paramétrer la faction de manière à ce qu'elle déteste le joueur et l'attaque
    
AdjustReputation(GetPCSpeaker(), OBJECT_SELF, -100);
    
DetermineCombatRound(GetPCSpeaker());

ce qui ne me plait pas c le GetPCSpeaker...
Car je suis obliger de donner une réponse pour que la condition sois pris en compte
du style,

hey toi la bas!
Quoi?! <- là j'ai seulement le getspeaker!

alors que j'aurrai voulu juste un "hey toi là bas" et le guard m'attaque directement.
Code PHP:

void main()
{
object oPC GetLastPerceived();
object oNPC OBJECT_SELF;



 if(
GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL// Restriction selon l'alignement du joueur
{
 
AssignCommand(oNPCClearAllActions());
 
AssignCommand(oNPCActionSpeakString("hey toi la bas!"));
 
AssignCommand(oNPCActionMoveToObject(oPCFALSE));
 
AdjustReputation(oPCoNPC, -100); // Paramétrer la faction de manière à ce qu'elle déteste le joueur et l'attaque
 
DetermineCombatRound(oPC);
  }

 if(
GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD// Restriction selon l'alignement du joueur
  
{
   
AssignCommand(oNPCActionSpeakString("tu as de la chance"));
   }




Bien voilà mon script qui marche je commence a comprendre un peu les nuances du code.

ça marcher pas a cause du "=" il fallait un "==", je me suis souvenu des explications que vous m'avez donné

ah c bowéno! v pouvoir enfin dormir trankil ce soir
Bon là je pige pas, y a surement une variante ds mon cas.

J'expose la situation...

Trois Drows guardent l'entrée d'une grotte.
le sergent drow dit:"Hey! halte-là!" (speakstring)

il s'avance vers vous qd il vous voit... et doit démarrer un dialogue que j'ai appelé "test" pour le moment.


Voici le script en cour
Code PHP:

#include "nw_i0_generic"


void main()
{
object oPC GetLastPerceived();
object oNPC OBJECT_SELF;



 if(
GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD// Restriction selon l'alignement du joueur
{
 
AssignCommand(oNPCClearAllActions());
 
AssignCommand(oNPCActionSpeakString("Sortez les armes! faites couler le sang!!!"));
 
AssignCommand(oNPCActionMoveToObject(oPCFALSE));
 
AdjustReputation(oPCoNPC, -100); // Paramétrer la faction de manière à ce qu'elle déteste le joueur et l'attaque
 
DetermineCombatRound(oPC);
  }

if(
GetSubRace(oPC) == "Drow")
    {
      
AssignCommand(oNPCClearAllActions());
   
AssignCommand(oNPCActionSpeakString("Hey toi! halte-la!"));
 
AssignCommand(oNPCActionMoveToObject(oPCFALSE));
 
AssignCommand(oNPCActionStartConversation(oPC,"test"));
 
//BeginConversation("test", oNPC);
}


Premier probleme rencontrer... le sergent s'avance bien sur moi mais aussi sur les autre npc drow si je m'eloigne.

il me dit bien "hey halte-là!" s'avnce devant moi mais jamais aucune conversation ne commence. Meme si je click dessu il parle pas

le plus frustrant de tout... , c'est qd je me casse, lui il continue son inspection avec les autres guards et commence le dialogue en speakstring

Donc du coup je sais a la limite comment faire mainteant pour un dialogue de contoire
Bien j'y perd mon latin, j'ai effacé mon perso recopier coller les meme scripts et là ça remarche

bon faut que je dise qu'il ne doit parler seulement aux joueur et pas aux autres npc...
Bon je compre mieu, j'avais simplment un probleme sur mon locuteur! c t pas le sergent drow donc ça pouvais pas marcher! suis vert...




Petite suggestion pour differentier un pj d'un npc... il suffirait pas demander si la creature n'appartiendrai pas a une faction PJ pluto que de s'enmerder a ecrire des scripts de 50000 pages?
je comprend pas très bien...
je comprend pas très bien...

Citation :
Petite suggestion pour differentier un pj d'un npc... il suffirait pas demander si la creature n'appartiendrai pas a une faction PJ pluto que de s'enmerder a ecrire des scripts de 50000 pages?
La fonction GetIsPC(object) fait ça très bien ...

Citation :
GetIsPC(object)
Check whether a creature is player controlled.

int GetIsPC(
object oCreature
);
Parameters
oCreature

The creature to check for PC status.



Description
Returns TRUE if oCreature is a player controlled character, otherwise FALSE.

A player controlled character is treated as one of the following: a PC, DM avatars, familiars possessed by PCs, monsters possessed by DMs.
__________________
MadCat
Code PHP:

{

object oPC GetLastPerceived();
object oNPC OBJECT_SELF;
string sTag ;




 if(
GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD// Restriction selon l'alignement du joueur
{
 
AssignCommand(oNPCClearAllActions());
 
AssignCommand(oNPCActionSpeakString("hey!!! toi la bas!"));
 
AssignCommand(oNPCActionMoveToObject(oPCFALSE));
 
AdjustReputation(oPCoNPC, -100); // Paramétrer la faction de manière à ce qu'elle déteste le joueur et l'attaque
 
DetermineCombatRound(oPC);
  }

if (
GetIsPC(oPC))
{
AssignCommand(oNPCClearAllActions());
AssignCommand(oNPCActionSpeakString("hey! halte-la!"));
AssignCommand(oNPCActionMoveToObject(oPCFALSE));
AssignCommand(oNPCActionStartConversation(oPC,"indentifiezvous"));
}


voilà, cette fois ça marche nikel! pas besoin de strigger ou autre, bien que les strigger vont me servir pour autre chose

j'ai donc simplement implanté le GetIsPC et le npc n'a va plus ennuyer les autres npc

super cool
Répondre

Connectés sur ce fil

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