Animation d'ambiance

Répondre
Partager Rechercher
J'essaye de rendre mon module légèrement plus vivant, j'ai activé dans le "on_spawn" les "setanimation" sur TRUE, mais rien ne ce passe...

J'ai aussi tester plusieurs script proposé sur le vault dont un français, que voici :

Code PHP:

//::///////////////////////////////////////////////
//:: EverNever Socialise NPC's
//:: http://evernever.keuf.net/
//:://////////////////////////////////////////////
/*
    PRINCIPES :

Nous voulons donner aux NPC (robots), un aspect plus social
ils pourront agir de façon un peu plus "vivante", leur donnant
un caractère, et une profondeur pour une immersion dans le jeu
assurée!

Ce système affecte les NPC de différentes manières :

- Les Nobles
- Les Gens de classe moyenne
- Les Gens de bas quartier
- Les Ivrognes


Quand le NPC aperçoit un PC, il va agir selon le type de classe sociale/animale qu'on lui a assigné.
Un anti-spam empêcheras le flood.

Voici les Tags a affecter a vos personnages :(6 premiere lettres)

Pour les humanoides
"_NOBLE" + votre tag
"_MOYEN" + votre tag
"_PAUVR" + votre tag
"_GARDE" + votre tag
"_AMBIE" + votre tag  // = AMBIENT
"_IVROG" + votre tag

exemple : "_NOBLE_MONTAG" ou "_PAUVRBLABLA"


*/
//:://////////////////////////////////////////////
//:: Created By:
//:: Created On:
//:://////////////////////////////////////////////



const float _ANTI_SPAM_DELAY 120.0;  // ON AJOUTERA +1d10.0 pour que les NPC ne parlent pas tous ensemble.
const float _ANTI_SPAM_DELAY_AMBIANT 160.0;//AJOUTERA +1d10.0 pour que les NPC ne parlent pas tous ensemble.



#include "nw_i0_generic"

void main()
{


/*                         VARIABLES MAJEURES                                 */
////////////////////////////////////////////////////////////////////////////////
object oPC     GetLastPerceived();
object oBot    OBJECT_SELF;

string sTag         GetStringLeft(GetTag(oBot),6);
string sName        GetName(oPC);
int    nLevel       GetHitDice(oPC);
int    nPCCharisme  GetAbilityModifier(ABILITY_CHARISMAoPC);

object oArmor   GetItemInSlot(INVENTORY_SLOT_CHESToPC);
object oWeapon  GetItemInSlot(INVENTORY_SLOT_RIGHTHANDoPC);
object oWeapon2 GetItemInSlot(INVENTORY_SLOT_LEFTHANDoPC);
object oCasque  GetItemInSlot(INVENTORY_SLOT_HEADoPC);

int nGenderPC     GetGender(oPC);
int nGenderNPC    GetGender(oBot);

string sTalk;
float fDirPC      =  GetFacingFromLocation(GetLocation(oPC));
float fDirNPC     =  GetFacingFromLocation(GetLocation(oBot));

location lOrigin GetLocation(oBot);
////////////////////////////////////////////////////////////////////////////////
/*                        SCRIPT DE BASE BIOWARE                              */
////////////////////////////////////////////////////////////////////////////////
if (!IsInConversation(oBot)) {
if (
GetIsPostOrWalking()) {
               
WalkWayPoints();
           } else if (
GetIsPC(oPC) &&
               (
GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS)
                || 
GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN)
                || 
GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS)
                || 
GetIsEncounterCreature()))
           {
                
SetAnimationCondition(NW_ANIM_FLAG_IS_ACTIVE);
           }
        }

/*                           ON COMMENCE ICI                                  */
////////////////////////////////////////////////////////////////////////////////
if(!GetIsPC(oPC)){return;}// Si le personnage apercu n'est pas un PC on s'arrete
////////////////////////////////////////////////////////////////////////////////
if(GetLocalInt(oBot,"_ISPOKEN")==TRUE){return;} // anti-spam
////////////////////////////////////////////////////////////////////////////////









/*                           AMBIENT                                          */
////////////////////////////////////////////////////////////////////////////////
if(sTag=="_AMBIE"// AMBIANCE
{
  
string s1;
  
string s2;
  
string s3;

if(
d4(1)==4)  // Une chance sur 4 de parler du temps qu'il fait   sinon ambiant normal
{
  if(
GetIsDusk()) //Crepuscule
   
{
    switch (
d4(1))
      {
      case 
s1="Dame Nuit nous salue! "; break;
      case 
s1="Il commence à se faire tard...  "; break;
      case 
s1="Voilà la nuit qui tombe. "; break;
      case 
s1="Ah, le soleil s'est couché. "; break;
      }
   }
  else if(
GetIsDawn()) //Aube
   
{
     switch (
d4(1))
     {
      case 
s1="Une belle journée devant nous! "; break;
      case 
s1="Le Soleil se lève. "; break;
      case 
s1="Voici l'Aube. "; break;
      case 
s1="Quelle belle journée qui s'annonce! "; break;
      }
   }
     else if(  
GetIsNight()) //Nuit
   
{
     switch (
d4(1))
     {
      case 
s1="La nuit... "; break;
      case 
s1="Quelle nuit! "; break;
      case 
s1="Les astres sont si écarlates de Nuit... "; break;
      case 
s1="Quelle nuit paisible! "; break;
      }
   }
     else if(  
GetIsDay()) //Jour
   
{
     switch (
d4(1))
     {
      case 
s1="Belle journée n'est-ce pas? "; break;
      case 
s1="Une bonne journée pour nos activités.  "; break;
      case 
s1="Quelle journée! "; break;
      case 
s1="Ahh.. Les rayons du soleil... "; break;
      }
   }



if(
GetWeather(GetArea(oBot))==WEATHER_CLEAR)   // temps clair
{
   switch (
d4(1))
     {
      case 
s2="Et quel temps clair! "; break;
      case 
s2="Avec un temps si doux... "; break;
      case 
s2="Le temps nous est favorable. "; break;
      case 
s2="J'espère que le temps restera aussi calme demain. "; break;
      }
}
else if(
GetWeather(GetArea(oBot))==WEATHER_RAIN)  // temps pluvieux
{
   switch (
d4(1))
     {
      case 
s2="Mais quel temps maussade! "; break;
      case 
s2="Quelle pluie! Nous ferions mieux de rentrer... "; break;
      case 
s2="Ah les dieux se déchaînent! Quelle pluie! "; break;
      case 
s2="Si seulement il pleuvait pas autant d'Hallebardes! "; break;
      }
}
else if(
GetWeather(GetArea(oBot))==WEATHER_RAIN)  // temps enneige
{
   switch (
d4(1))
     {
      case 
s2="La neige tombe en flocons... "; break;
      case 
s2="Cette neige n'est pas si désagréable... "; break;
      case 
s2="Ce sont les enfants d'Aurile qui doivent apprécier le moment... "; break;
      case 
s2="Mais j'espère que cette neige s'en ira vite... On meurt de froid. "; break;
      }
  }
}

else   
// DIVERS   AMBIENT
{
 switch (
Random(75))
     {
      case 
s1="Oui, je pense... "; break;
      case 
s1="Ah bon?"; break;
      case 
s1="Et quel âge a t-il aujourd'hui? "; break;
      case 
s1="*Sourit* "; break;
      case 
s1="Exactement! "; break;
      case 
s1="Oui "; break;
      case 
s1="Non je ne pense pas...* "; break;
      case 
s1="Mmmh.. Depuis une semaine je crois..."; break;
      case 
s1="Et comment vat-il? "; break;
      case 
10 s1="Incroyable, il a vraiment fait ça? "; break;
      case 
11 s1="En effet."; break;
      case 
12 s1="Et le travail?"; break;
      case 
13 s1="Quand je me promenais dans le parc..."; break;
      case 
14 s1="Mais quel ivrogne!"; break;
      case 
15 s1="Oui, ensemble..."; break;
      case 
16 s1="C'est alors qu'il ma dit..."; break;
      case 
17 s1="Vraiment?"; break;
      case 
18 s1="C'est un bon père."; break;
      case 
19 s1="La forêt rescelle toujours de bonnes et de mauvaises choses."; break;
      case 
21 s1="Et puis..."; break;
      case 
22 s1="C'est ainsi."; break;
      case 
23 s1="Et que faire?"; break;
      case 
24 s1="J'aimerais vraiment."; break;
      case 
25 s1="Et alors le nain  dit..."; break;
      case 
26 s1="Je m'en doutais."; break;
      case 
27 s1="Ensemble nous pourrions."; break;
      case 
28 s1="Combien d'hommes faut t-il pour tuer un troll?"; break;
      case 
29 s1="Un seul nain."; break;
      case 
30 s1="Oui une rapière et un grand Bouclier."; break;
      case 
31 s1="Une plume et un livre. C'est le minimum."; break;
      case 
32 s1="Donc..."; break;
      case 
33 s1="Mais je n'ai pas compris ce qu'il a voulu dire par..."; break;
      case 
34 s1="Je l'attendais. IL n'est pas venu."; break;
      case 
35 s1="C'est comme cela qu'ils font."; break;
      case 
36 s1="Oui, c'est une bonne idée."; break;
      case 
37 s1="Nous devrions..."; break;
      case 
38 s1="C'est parfois plus dur qu'on ne le crois!"; break;
      case 
39 s1="Au marché, oui."; break;
      case 
40 s1="Mais personne ne le croyais."; break;
      case 
41 s1="C'était un peu comme un dragon, de petite taille. Il était très rapide."; break;
      case 
42 s1="Quand c'est arrivé, le rôdeur a dû alerter les druides."; break;
      case 
43 s1="Tout s'est passé si vite. Le feu a pris sa grange, maintenant il ne sait plus quoi faire."; break;
      case 
44 s1="Sa fille est adorable."; break;
      case 
45 s1="Puisse notre Seigneur nous aider."; break;
      case 
46 s1="Combien? Il me proposait justement la même chose pour bien moins cher..."; break;
      case 
47 s1="Pff! un Petit dragon, et puis quoi encore? Ils ne savent plus quoi inventer pour se faire remarquer."; break;
      case 
48 s1="Ah mais quel pître celui là. Un jour il se trouvera entre 4 orques. Et... *sourit*"; break;
      case 
49 s1="Au lieu de balayer devant la porte de ses voisins... Il ferais mieux de nettoyer dans sa propre porte."; break;
      case 
50 s1="Ainsi soit-il."; break;
      case 
51 s1="vraiment..."; break;
      case 
52 s1="Encore deux jours, et ce sera fait."; break;
      case 
53 s1="Combien en avez-vous tué?"; break;
      case 
54 s1="Les Kobolds sont vraiment inofensifs seuls... Mais en groupe, me vaut se méfier."; break;
      case 
55 s1="Elminster? C'est'de Valombre'. Un grand Archimage. Non?"; break;
      case 
56 s1="Non c'est Tempus le Seigneur des Batailles... Pas Garagos."; break;
      case 
57 s1="Vous vous trompez."; break;
      case 
58 s1="Eauprofonde... J'aimerais tant y aller..."; break;
      case 
59 s1="Pouvez-vous y aller? C'est un très long voyage. La route n'est pas sûre."; break;
      case 
60 s1="J'espère, il nous faudra 4 semaines en caravane."; break;
      case 
61 s1="Cette potion? C'est un Gnome, il est alchimiste et j'avais besoin de préparer mon jardin plus rapidement cette année."; break;
      case 
62 s1="Cette année, le jardin nous a gâté."; break;
      case 
63 s1="Les Zentharims. Ma fille en a fait un cauchemard."; break;
      case 
64 s1="Elle est si belle, elle mérite un bon mari."; break;
      case 
65 s1="Je lui ait déjà proposé vingts pièces. Il dit que cela coûte plus. Mais il a perdu la raison..."; break;
      case 
66 s1="Encore deux mois."; break;
      case 
67 s1="Vous allez vraiment y aller? C'est assez dangereux d'après ce que j'ai entendu."; break;
      case 
68 s1="Ah! Je déteste les rumeurs."; break;
      case 
69 s1="C'est comme si on lancer du feu sur une écorce sèche. Ca l'attaque très vite."; break;
      case 
70 s1="J'attends le jour où les derniers seront les premiers. Et les premiers, les derniers! Gloire à notre Seigneur!"; break;
      case 
71 s1="une dinde, de la ciboulette...Carottes et d'autres choses... Le tout elle le jette dans la casserole et on attends."; break;
      case 
72 s1="Pouah!"; break;
      case 
73 s1="Je ne le supporterais pas. C'est ton choix..."; break;
      case 
74 s1="Le clergé? Oui peut-être."; break;
      case 
75 s1="Votre Dogme? C'est le Marche-pied du Notre. Si seulement vous saviez..."; break;


      default : 
s1="Exactement.";
      }
}


DelayCommand(IntToFloat(d6(1)),SpeakString(s1+s2+s3,TALKVOLUME_TALK)); // on ne parle pas tous en meme temps, c'est mal poli ;)
SetLocalInt(oBot"_ISPOKEN"TRUE);
DelayCommand(_ANTI_SPAM_DELAY_AMBIANT+IntToFloat(d6(1)),DeleteLocalInt(oBot"_ISPOKEN") );
return; 
//On quitte le scripte
}


////////////////////////////////////////////////////////////////////////////////







////////////////////////////////////////////////////////////////////////////////
if(GetIsObjectValid(oCasque) && sTag=="_GARDE"// LE JOUEUR PORTE UN CASQUE DEVANT UN GARDE
{
        
AssignCommand(oBotClearAllActions(TRUE));
        
SpeakString("Regarde suspicieusement "+sName+" sous son casque.*"TALKVOLUME_TALK);
        
SetFacingPoint(GetPosition(oPC));  // On regarde le Joueur
        
DelayCommand(2.0,SetFacing(fDirNPC));
        
SetLocalInt(oBot"_ISPOKEN"TRUE);
        
DelayCommand(_ANTI_SPAM_DELAY+IntToFloat(d6(1)),DeleteLocalInt(oBot"_ISPOKEN") );
        
DelayCommand(8.0,WalkWayPoints());
        return; 
// On quitte le  scripte
}
////////////////////////////////////////////////////////////////////////////////






////////////////////////////////////////////////////////////////////////////////
if(!GetIsObjectValid(oArmor)) // LE JOUEUR SE BALADE NU !
        
{
          if(
sTag=="_NOBLE")
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE )
              {
              
sTalk="Oh quelle honte!";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="Oh! Le goujeat!";
              }
              else
              {
              
sTalk="Oh! Encore une personne s'éxhibant!";
              }
          }
           else if(
sTag=="_MOYEN")
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE)
              {
              
sTalk="Non mais, elle est toute nue!";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="Seigneur! Que fait cet homme nu?!";
              }
              else
              {
              
sTalk="Apparemment cette personne avait un peu chaud!";
              }
          }
          else if(
sTag=="_PAUVR")
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE)
              {
              
sTalk="Et v'la que les donzelles montrent leur derrière en public!";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="Didonc c'est pas un bûcheron celui-là.";
              }
              else
              {
              
sTalk="Et v'la qu'on se donne en cirque. Pouah!";
              }
          }
          else if(
sTag=="_GARDE")
          {

              
sTalk="Par la Loi! Veuillez vous rhabiller immédiatement!";
              
DelayCommand(1.9,AssignCommand(oPCClearAllActions(TRUE)));
              
DelayCommand(2.0,AssignCommand(oPCActionUnequipItem(oWeapon)));// On de-equipe de l'arme portee (par precaution)
          
}

           else
           {
           
sTalk ="Cette personne...Se balade nue?!";
           }
        
AssignCommand(oBotClearAllActions(TRUE));
        
PlayVoiceChat(VOICE_CHAT_LOOKHEREoBot);
        
SpeakString(sTalk+" *En regardant "+sName+" déshabillé.*"TALKVOLUME_TALK);
        
SetFacingPoint(GetPosition(oPC));  // On regarde le Joueur
        
DelayCommand(2.0,SetFacing(fDirNPC));
        
SetLocalInt(oBot"_ISPOKEN"TRUE);
        
DelayCommand(_ANTI_SPAM_DELAY+IntToFloat(d10(1)),DeleteLocalInt(oBot"_ISPOKEN") );
        
DelayCommand(8.0,WalkWayPoints());
        return; 
// On quitte le  scripte
    
}




////////////////////////////////////////////////////////////////////////////////








////////////////////////////////////////////////////////////////////////////////
if(GetIsObjectValid(oWeapon)&& sTag =="_GARDE")// JOUEUR PORTANT UNE ARME DEVANT UN GARDE !
 
{

  if( 
GetBaseItemType(oWeapon)==BASE_ITEM_BASTARDSWORD
  
||GetBaseItemType(oWeapon)==BASE_ITEM_BATTLEAXE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_CLUB
  
||GetBaseItemType(oWeapon)==BASE_ITEM_DAGGER
  
||GetBaseItemType(oWeapon)==BASE_ITEM_DART
  
||GetBaseItemType(oWeapon)==BASE_ITEM_DIREMACE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_DOUBLEAXE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_DWARVENWARAXE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_GREATAXE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_GREATSWORD
  
||GetBaseItemType(oWeapon)==BASE_ITEM_HALBERD
  
||GetBaseItemType(oWeapon)==BASE_ITEM_HANDAXE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_HEAVYCROSSBOW
  
||GetBaseItemType(oWeapon)==BASE_ITEM_HEAVYFLAIL
  
||GetBaseItemType(oWeapon)==BASE_ITEM_KAMA
  
||GetBaseItemType(oWeapon)==BASE_ITEM_KATANA
  
||GetBaseItemType(oWeapon)==BASE_ITEM_KUKRI
  
||GetBaseItemType(oWeapon)==BASE_ITEM_LIGHTCROSSBOW
  
||GetBaseItemType(oWeapon)==BASE_ITEM_LIGHTFLAIL
  
||GetBaseItemType(oWeapon)==BASE_ITEM_LIGHTHAMMER
  
||GetBaseItemType(oWeapon)==BASE_ITEM_LIGHTMACE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_LONGBOW
  
||GetBaseItemType(oWeapon)==BASE_ITEM_LONGSWORD
  
||GetBaseItemType(oWeapon)==BASE_ITEM_MORNINGSTAR
  
||GetBaseItemType(oWeapon)==BASE_ITEM_RAPIER
  
||GetBaseItemType(oWeapon)==BASE_ITEM_SCIMITAR
  
||GetBaseItemType(oWeapon)==BASE_ITEM_SCYTHE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_SHORTBOW
  
||GetBaseItemType(oWeapon)==BASE_ITEM_SHORTSPEAR
  
||GetBaseItemType(oWeapon)==BASE_ITEM_SHORTSWORD
  
||GetBaseItemType(oWeapon)==BASE_ITEM_SHURIKEN
  
||GetBaseItemType(oWeapon)==BASE_ITEM_SICKLE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_SLING
  
||GetBaseItemType(oWeapon)==BASE_ITEM_THROWINGAXE
  
||GetBaseItemType(oWeapon)==BASE_ITEM_TRIDENT
  
||GetBaseItemType(oWeapon)==BASE_ITEM_WARHAMMER
  
||GetBaseItemType(oWeapon)==BASE_ITEM_TWOBLADEDSWORD
//||GetBaseItemType(oWeapon)==BASE_ITEM_WHIP    // ON ne condisere pas le fouet comme arme? Escalavagisme etc...
   
)
         {
         
AssignCommand(oBotClearAllActions(TRUE));
         
PlayVoiceChat(VOICE_CHAT_STOPoBot);
         
SpeakString("*!*",TALKVOLUME_TALK);
         
DelayCommand(2.0,SpeakString("Heh! Vous! Le port d'armes est strictement interdit! Veuillez Retirer vos armes!",TALKVOLUME_TALK));
         
SetFacingPoint(GetPosition(oPC));  // On regarde le Joueur
         
AssignCommand(oBot,ActionForceFollowObject(oPC1.0));
         
DelayCommand(1.9,AssignCommand(oPCClearAllActions(TRUE)));
         
DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oWeapon)));// On de-equipe de l'arme portee
         
DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oWeapon2)));// On de-equipe de l'arme portee  2
         
SetLocalInt(oBot"_ISPOKEN"TRUE);
         
DelayCommand(6.0,DeleteLocalInt(oBot"_ISPOKEN") );
         
DelayCommand(8.0,WalkWayPoints());
         return; 
// On quitte le scripte
         
}
}







////////////////////////////////////////////////////////////////////////////////







////////////////////////////////////////////////////////////////////////////////
if(GetIsObjectValid(oArmor) && nPCCharisme && !GetIsObjectValid(oCasque) && (sTag!="_IVROG" )) // LE JOUEUR SE BALADE NORMALEMENT SANS CASQUE et le JOUEUR(SE) ET PARTICULIEREMENT BEAU/BELLE   et n'est pas ivre
        
{
          if(
sTag=="_NOBLE" )
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE  )
              {
              
sTalk="*Semble très attiré par ";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="*Lance un regard très chaleureux à ";
              }
              else
              {
              
sTalk="Lance un sourrire chaleureux et discret à ";
              }
          }
           else if(
sTag=="_MOYEN")
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE )
              {
              
sTalk="*Regarde non sans attention la silhouette de ";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="*Semble marquée par la présence de ";
              }
              else
              {
              
sTalk="*Ne reste pas insensible à la présence de ";
              }
          }
          else if(
sTag=="_PAUVR")
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE)
              {
              
sTalk="*Aguiché par la shilouette de ";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="*Semble étonée de la présence de ";
              }
              else
              {
              
sTalk="*Regarde bizarrement ";
              }
          }
          else
          {
           
sTalk="*Ne reste pas insensible à la présence de ";
          }

        
AssignCommand(oBotClearAllActions(TRUE));
        
SetFacingPoint(GetPosition(oPC));  // On regarde le Joueur
        
DelayCommand(2.0,SetFacing(fDirNPC)); // On reprends la position initiale
        
SpeakString(sTalk+sName+" *"TALKVOLUME_TALK);
        
SetLocalInt(oBot"_ISPOKEN"TRUE);
        
DelayCommand(_ANTI_SPAM_DELAY+IntToFloat(d10(1)),DeleteLocalInt(oBot"_ISPOKEN") );
        
DelayCommand(8.0,WalkWayPoints());
        return; 
// On quitte le  scripte
    
}
////////////////////////////////////////////////////////////////////////////////







////////////////////////////////////////////////////////////////////////////////
if(GetIsObjectValid(oArmor) && nPCCharisme < -&& !GetIsObjectValid(oCasque)&& (sTag!="_IVROG" )) // LE JOUEUR SE BALADE NORMALEMENT SANS CASQUE et le JOUEUR(SE) ET PARTICULIEREMENT REPOUSSANT(E)  le pnj n'est pas ivre
        
{
          if(
sTag=="_NOBLE" )
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE  )
              {
              
sTalk="Seigneur quel immonde... *En regardant ";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="*Met une main devant sa bouche comme par dégoût en voyant ";
              }
              else
              {
              
sTalk="*Semble intrigué de la mochetée de ";
              }
          }
           else if(
sTag=="_MOYEN")
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE )
              {
              
sTalk="*Semble dégoûté à la vue de ";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="*Regarde avec un peu de dégoût le visage de ";
              }
              else
              {
              
sTalk="*Ne reste pas insensible à la laideur de ";
              }
          }
          else if(
sTag=="_PAUVR")
          {
              if (
nGenderPC == GENDER_FEMALE && nGenderNPC == GENDER_MALE)
              {
              
sTalk="*Amusé que quelqu'un soit aussi laid que ";
              }
              else if (
nGenderNPC == GENDER_FEMALE && nGenderPC == GENDER_MALE)
              {
              
sTalk="*Regarde avec un peu de dégoût le visage de  ";
              }
              else
              {
              
sTalk="*Regarde bizarrement ";
              }
          }
          else
          {
           
sTalk="*Ne reste pas insensible à la laideur repoussante de ";
          }

        
AssignCommand(oBotClearAllActions(TRUE));
        
SetFacingPoint(GetPosition(oPC));  // On regarde le Joueur
        
DelayCommand(2.0,SetFacing(fDirNPC)); // On reprends la position initiale
        
SpeakString(sTalk+sName+" *"TALKVOLUME_TALK);
        
SetLocalInt(oBot"_ISPOKEN"TRUE);
        
DelayCommand(_ANTI_SPAM_DELAY+IntToFloat(d10(1)),DeleteLocalInt(oBot"_ISPOKEN") );
        
DelayCommand(8.0,WalkWayPoints());
        return; 
// On quitte le  scripte
    
}
////////////////////////////////////////////////////////////////////////////////

/*
Principe de l'ivrogne : il est saoul et dit n'importe koi
il forme des phrases qui n'ont pas forcement de sens,
il melange tout et agit n'importe comment. :)

nous formons les phrases ainsi :

1ere partie : un sujet d'action
2eme partie : une action
3eme partie : un lieu d'action
*/
if(sTag =="_IVROG")// UN IVROGNE!
 
{
  
string sNimportKoi1;
  
string sNimportKoi2;
  
string sNimportKoi3;

  
effect eVomi =  EffectVisualEffect(VFX_COM_BLOOD_CRT_GREEN);
  
effect eVomi2 =  EffectVisualEffect(VFX_COM_BLOOD_LRG_GREEN);

  if(
d4(1)==4// une chance sur 4 de vomir ^^
  
{
  
PlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK1.06.0);
  
SpeakString("ooh.. Je ne me sent pas très bien..."TALKVOLUME_TALK);
  
DelayCommand(4.0SpeakString("ooh.lala.. Je vais.. *beurp*...hmm.."TALKVOLUME_TALK));
  
DelayCommand(6.0,PlayAnimation(ANIMATION_LOOPING_DEAD_FRONT1.02.0));
  
DelayCommand(6.0,ApplyEffectToObject(DURATION_TYPE_INSTANTeVomi2oBot));
  
DelayCommand(6.0,ApplyEffectToObject(DURATION_TYPE_INSTANTeVomioBot));
  
DelayCommand(6.0SpeakString("BWAARgrGRARRWARRFGggggggghhh...."TALKVOLUME_TALK));
  return;
  }

  switch (
d20(1))
  {

   case 
1  sNimportKoi1 "L'autre jour' euh, un chien, "; break;
   case 
2  sNimportKoi1 "Mais oui! Un arbre, "; break;
   case 
3  sNimportKoi1 "Tu crois quoi? Un oiseau, "; break;
   case 
4  sNimportKoi1 "L'ancien ami de mon ami, "; break;
   case 
5  sNimportKoi1 "Hihi, il était une fois un ours, qui "; break;
   case 
6  sNimportKoi1 "Et l'autre sorcière, "; break;
   case 
7  sNimportKoi1 "Pff, la princess, "; break;
   case 
8  sNimportKoi1 "Ca fait deux ans que le chef de la garde, "; break;
   case 
9  sNimportKoi1 "La montagne, "; break;
   case 
10 sNimportKoi1 "He ho! Tu m'écoutes?? La maison de mon frere, "; break;
   case 
11 sNimportKoi1 "Le Cheval du roi, "; break;
   case 
12 sNimportKoi1 "Ehoo..Le tavernier, "; break;
   case 
13 sNimportKoi1 "La truie de ma chèvre, "; break;
   case 
14 sNimportKoi1 "Eeeh..M'fils qui a vingt cinq bras et deux dent, "; break;
   case 
15 sNimportKoi1 "Moi j'gagne ma vie! Je suis très rich ...Ehhh pas comme' Roger qui, "; break;
   case 
16 sNimportKoi1 "Quoi?! Moi aussi j'avais un chat, "; break;
   case 
17 sNimportKoi1 "Le serpent de notre armée, hum... Oui c'est ça, le chef-serpent, "; break;
   case 
18 sNimportKoi1 "Oui!! Parfaitement!! Il "; break;
   case 
19 sNimportKoi1 "Ben non je savais pas qu'il "; break;
   case 
20 sNimportKoi1 "Cet homme est fou!! "; break;
  }


 switch (
d20(1))
  {

   case 
1  sNimportKoi2 "mange des pommes "; break;
   case 
2  sNimportKoi2 "tue des enfants "; break;
   case 
3  sNimportKoi2 "coupe du bois "; break;
   case 
4  sNimportKoi2 "pêche le poisson "; break;
   case 
5  sNimportKoi2 "étrangle les chats "; break;
   case 
6  sNimportKoi2 "joue aux dés "; break;
   case 
7  sNimportKoi2 "bois toujours du vin "; break;
   case 
8  sNimportKoi2 "invoque le diable "; break;
   case 
9  sNimportKoi2 "écrase les gnomes "; break;
   case 
10 sNimportKoi2 "lance des mouches sur des loups qui dansent sur les dragons, ou des dragons sur des mouches qui lance des loups aux poules "; break;
   case 
11 sNimportKoi2 "chante comme un Nain "; break;
   case 
12 sNimportKoi2 "mange du foin "; break;
   case 
13 sNimportKoi2 "danse tous les jours "; break;
   case 
14 sNimportKoi2 "a perdu la tête et bois de l'alcool "; break;
   case 
15 sNimportKoi2 "se lève toujours le matin sans savoir pourquoi "; break;
   case 
16 sNimportKoi2 "Quoi?! Moi aussi j'avais un chat, "; break;
   case 
17 sNimportKoi2 "entends des voix qui lui disent d'aller  "; break;
   case 
18 sNimportKoi2 "crois que les oiseaux existent "; break;
   case 
19 sNimportKoi2 "mange des oeufs de poissons-volants "; break;
   case 
20 sNimportKoi2 "adore jouer au bilboquet "; break;
  }
 switch (
d20(1))
  {

   case 
1  sNimportKoi3 "dans la forêt."; break;
   case 
2  sNimportKoi3 "sous l'eau."; break;
   case 
3  sNimportKoi3 "derrière les montagnes."; break;
   case 
4  sNimportKoi3 "dans la cave du roi."; break;
   case 
5  sNimportKoi3 "sous la taverne."; break;
   case 
6  sNimportKoi3 "dans notre temple!"; break;
   case 
7  sNimportKoi3 "sur les arbres!"; break;
   case 
8  sNimportKoi3 "sur la palce de ville, la nuit!!"; break;
   case 
9  sNimportKoi3 "dans une grotte derrière la forêt!!"; break;
   case 
10 sNimportKoi3 "dans les champs de blés!"; break;
   case 
11 sNimportKoi3 "derrière l'arène."; break;
   case 
12 sNimportKoi3 "sur des tonneaux de bières...Non?"; break;
   case 
13 sNimportKoi3 "et pis voilà quoi..."; break;
   case 
14 sNimportKoi3 "a perdu la tête et bois de l'alcool "; break;
   case 
15 sNimportKoi3 "se lève toujours le matin sans savoir pourquoi "; break;
   case 
16 sNimportKoi3 "maitenant... Peut être dans les égouts..."; break;
   case 
17 sNimportKoi3 "baaah... sur le toît de ta maison... si si.."; break;
   case 
18 sNimportKoi3 "tu ne l'aurais pas vu?! hé c'est important!"; break;
   case 
19 sNimportKoi3 "sous sa tente... qui est volante."; break;
   case 
20 sNimportKoi3 "sous le bistrot. Si si je l'ai vu."; break;
  }
        
PlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK1.06.0);
        
AssignCommand(oBotClearAllActions(TRUE));
        
SetFacingPoint(GetPosition(oPC));  // On regarde le Joueur
        
DelayCommand(2.0,SetFacing(fDirNPC)); // On reprends la position initiale
        
SpeakString(sNimportKoi1+sNimportKoi2+sNimportKoi3+" *Hic*"TALKVOLUME_TALK);
        
SetLocalInt(oBot"_ISPOKEN"TRUE);
        
DelayCommand(_ANTI_SPAM_DELAY+IntToFloat(d10(1)),DeleteLocalInt(oBot"_ISPOKEN") );
        
DelayCommand(8.0,WalkWayPoints());
        
AssignCommand(oBot,PlayVoiceChat(VOICE_CHAT_LAUGHoBot));
        return; 
// On quitte le  scripte
 
}


Ce scripte est génial, mais ne s'active qu'une fois quand le joueur est aperçu, auriez vous une astuce (je préfère éviter le OHB).
Salut, c'est moi qui est créé ce scripte, je viens de m'aperçevoir d'une erreure

ici
Code PHP:

else if(GetWeather(GetArea(oBot))==WEATHER_RAIN)  // temps enneige 

change le en

Code PHP:

else if(GetWeather(GetArea(oBot))==WEATHER_SNOW)  // temps enneige 

Personnellement, je baisse la portée de perception des hôtes du scripte au minimum (Caractéristiques > Avancé > Porté de perception (Courte))

a+

Ps : merci de l'utiliser =)
Répondre

Connectés sur ce fil

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