[Script] Emulation de l'évènement OnHeartBeat avec moins de charge CPU

Fil fermé
Partager Rechercher
ah no problem, normalement il te suffis de mettre le second script que j'ai donné (celui du haut par le message de Tynril est bidon) dans le OnEnter de la zone, et un autre dans le OnExit, et de remplir le code dans la fonction OnHeartBeat.
ok dans le On Load du module on fé plus rien, je prends t 2 script pour le enter area et exit area, le seul truc ke je comprends pas c le code ??? kel code ???

ps : je c ke je suis mauvais
bien je parle du code que tu aurais mis dans ton OnHeartBeat.

au lieux de le mettre sur l'évenement OnHeartBeat de ton area, ou de n'importe quoi, tu le met

Code PHP:

void OnHeartBeat()
{
    if(!
GetLocalInt(OBJECT_SELF"nbrPC")) return;

    
//ICI !!!!!

    
DelayCommand(6.0fOnHeartBeat());//On active le script qui definira l'action

ca va mieux ?
J'avoue (au risk de paraitre lourd) ke je comprends pa comment ca peut marcher...

exemple : dans le OHB des pnj d'une taverne, g mis un script ki leur fait faire des actions aleatoires (boire, etre saoul, dormir...). Si je te suis je dois enlever ce script des pnjs et le mettre la ou tu me l'indike. Cependant, comment mes pnj vont etre affectés ??? Honnetement je capte pas du tout...
Citation :
Provient du message de ruru666
Azrael me laisse pas tomber stp !!!
Ca n'est pas compliqué, reprenons l'exemple d'azrael juste au dessus :

-Dans le on enter, tu appels la fonction OnHeartBeat()
-La fonction s'exécute une fois
-La fonction se rappelle elle même au bout de 6 secondes
...6 secondes plus tard....
-La fonction s'exécute une 2e fois
-La fonction se rappelle elle même au bout de 6 secondes
...6 secondes plus tard....
etc...
Je crois ke ni vous ni moi... personne ne se comprends...

J'aimerais avoir si en mettant c fichiers dans les zones consernées, g autre chose a faire de spécial ou si ca va bien stoper mes pnj ki utilise les OHB ???????????????????????????????????????????

apres rererelecture du post je crois comprendre ke ce systeme n'est pas interessent pour ce ke je voulais... vous ki vous y connaissez vous auriez pu comprendre ca plus vite (ok ca dois etre de ma faute, en effet ya les scripteurs foux et les MD D&D).

En bref g peur ke les OHB k'il y a sur mes pnjs me bouffe bcp de memoire, pour un peut plus d'embience je ne voudrais pa ke mon serveur soit trop ralentie...
sisi, je pense que ca peut t'interesser

donne moi précisément ce que tu veux faire

Ce script produit EXACTEMENT le même effet qu'un OnHeatBeat, sauf qu'il n'est actif que si il y a un joueur dans la zone.

Donne moi un exemple du genre d'action que tu veux, ca ira mieux
voila un exemple, g mis dans ma taverne des ivrognes :

Code PHP:

//a rajouter dans le OHB de la creature bien sure :p


int iRollTen d10(1);


DelayCommand(10.0ActionRandomWalk());//Se promène n'importe où
if(d100(1) > 41)            //60% de chance d'avoir une animation de type bourré
    
{
      {
        switch(
iRollTen)    //Génère le nombre et joue l'une des dix anims
            
{
            case 
1:
            
ClearAllActions();
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(PlaySound("as_pl_tavtoastm2"));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_LISTEN));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
2:
            
ClearAllActions();
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
3:
            
ClearAllActions();
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(PlaySound("as_pl_tavdrunkm2"));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_VICTORY2));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
4:
            
ClearAllActions();
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(PlaySound("as_pl_tavdrunkm1"));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
5:
            
ClearAllActions();
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
ActionDoCommand(PlaySound("as_pl_hiccupm2"));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
6:
            
ClearAllActions();
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(PlaySound("as_pl_tavdrunkm3"));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
7:
            
ClearAllActions();
            
ActionDoCommand(PlaySound("as_pl_tavtoastm3"));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_TALK_LAUGHING));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
8:
            
ClearAllActions();
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(PlaySound("as_pl_tavdrunkm4"));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
9:
            
ClearAllActions();
            
ActionDoCommand(PlaySound("as_pl_hiccupm2"));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            case 
10:
            
ClearAllActions();
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
effect eVis EffectVisualEffect(VFX_IMP_SLEEP);
            
ApplyEffectToObjectDURATION_TYPE_PERMANENTeVisOBJECT_SELF);
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
ApplyEffectToObjectDURATION_TYPE_PERMANENTeVisOBJECT_SELF);
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS));
            
ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
            break;
            }
         }
      } 
donc ke ferais tu ??? et kestion technik etant donné ke dans mon module il y a des gardes ki ce baladent (avec des betes WP), et ce dans plusieurs villes, ils ont un OHB eux aussi (script par defaut de NWN), donc ca aussi ca pompe des ressources... non ?...
bien tu passe ce script dans mon code, puis tu ajoute AssignCommand(oCreature,
devant chacunes de tes lignes avec un ActionDoCommand(
et tu met en haut de ton code :
object oCreature = GetObjectByTag("TonTag");

et voila ^^
Citation :
Provient du message de ruru666
vous ki vous y connaissez vous auriez pu comprendre ca plus vite (ok ca dois etre de ma faute, en effet ya les scripteurs foux et les MD D&D).
j'arrive toujours pas à déterminer si c'est une insulte, un compliment ou un gros préjugé qui renifle des arpions (fin bon, chuis pas un scripteur fou après tout alors ... )

toujours est t'il que c'est pas vrai Nous en avons un exemple (il me semble) qui se balade sur ces forums

et oui le pauvre à deux fois plus de raisons d'avoir oublié sa vie sociale
euh... moi non plus j'ai pas determiné ce qu'il falait entendre par ce message (j'ai rien dis, j'ai la sale manie de m'enflammer un peu vite alors je me retiens )

Par contre, j'avoue que ton message Rey est encore plus incompréenssible...

Citation :
toujours est t'il que c'est pas vrai Nous en avons un exemple (il me semble) qui se balade sur ces forums

et oui le pauvre à deux fois plus de raisons d'avoir oublié sa vie sociale
(ouais, je sais, le HS ca commence à faire bcp, mais bon, c'est le printemps, les goutte de pluie tombe, tt ca . . .
et pis je voudrais pas laissé un misundertrucmuche bitwin 0100000101111010011100100110000101100101011011000011000000110111 and I )

donc, /mode decode on

Citation :
toujours est t'il que
pour en revenir au propos et oublier ce petit interlude polémique . . .
Citation :
c'est pas vrai
c'est faux (le propos, à savoir
Citation :
Provient du message de ruru666
vous ki vous y connaissez vous auriez pu comprendre ca plus vite (ok ca dois etre de ma faute, en effet ya les scripteurs foux et les MD D&D).
)

Citation :
hin hin hin (rire sardonique (en effet, sardonique n'est là que pour faire joli))

voir
hu hu hu
tout dépend de la facon dont on l'entend

Citation :
Nous en avons un exemple
nous connaissons un "scripteurs foux MD D&D"

Citation :
(il me semble)
( si je ne me trompe pas )

Citation :
qui se balade sur ces forums
qui sévit sur le forum maskado

Citation :
re hin hin hin (ou hu hu hu) avec un nuance de fausse innocence dans la voix et le sourire

Citation :
et oui le pauvre à deux fois plus de raisons d'avoir oublié de vvre une vie normale, normale au sens où la majorité des gens ditsnormaux l'entende,nt, sans pc sauf au bureau et avec peine, et sans jeu de rôle parce que ca rend schyzophrène
cette infortuné "scripteurs foux MD D&D" a deux fois plus de rason d'avoir oublié de s'ouvrir aux monde réel ( rq tt a fait subjective et bourré d'apprioris), non seulement il script commeun fou, mais en plus il masteurise à D&D (ou assimilé, ou autre)
et re hin hin hin de fausset



ps : ce message n'est pas complètement du foutage de geule et n'a jamais eu pour but de se moquer de qui que ce soit, simplement de ... euh ... ba faire rire son auteur, ce qui n'est pas dur en soit, mais lui fait toujours plaisir
Bon ça suffit !
*appel les hommes en blanc**petite musique d'ambiance*
Here come the men in White * Choeur* MEN IN WHITE
Allez hop embarquez moi tout ça et dites à Mireille Dumas qu'on a un super reportage à lui proposer sur des Cyber Addict Roliste et si on fouille un peu, il doit y avoir des zoophiles dans le tas

Jaha Effect
Fil fermé

Connectés sur ce fil

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