JeuxOnLineForumsPlusConnectés : 487 (sites) | 790 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Assign command un peu (beaucoup) louche RSS
   
Répondre
Partager Outils Rechercher
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
ben je vais te mettre le script en entier :

Code PHP:
void UpdateEvanouis()
{
    
ClearAllActions();
    
ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT1.0f2.0f);
    
ActionDoCommand(UpdateEvanouis());
}

void TombeEvanouis(int nCauseobject oCreaturefloat fDuration=0.0f)
{
    
int nEvanouis GetLocalInt(oCreature"Evanouis");
    if(
nEvanouis nCause)
    {
        
AssignCommand(oCreatureUpdateEvanouis());
        
SetCommandable(FALSEoCreature);

        if(
nCause == EVANOUIS_CAUSE_TEMPORAIRE)
        {
            
DelayCommand(fDurationNonEvanouisParCause(oCreaturenCause));
        }

        if(
nCause >= EVANOUIS_CAUSE_EMORAGIE)
        {
            
//Perte de points de vie
        
}

        
SetLocalInt(oCreature"Evanouis"nCause);
    }
}

void main()
{
    
object oPC GetLastUsedBy();
    
SendMessageToPC(oPC"file : ok");
    
TombeEvanouis(10oPC);

pendre : voila voila, c'est un peu plus complexe que ce que tu as mis , et je ne comprend TOUJOURS PAS pourquoi ca marche pas Y_Y

Code PHP:
if(MarcheChez(oSkanzo) || LaisseTomber(oSkanzooAzrael)) AssignCommand(oAzraelActionSeTireUneBalle());
if(
TrouveSolution(oSkanzo)) AssignCommand(oAzraelActionRemerci(oSkanzoREMERCIMENT_INFINIMENT)); 
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Je peux te poser une question idiote ?


tu met un SetCommandableFalse, c'est ca ?

Parceque pour ce que j'en sait, ca n'empeche pas le controle, mais ca empeche de remplir la pile d'action (ce qui revient au meme, sauf que ca ni*** ton truc, normalement...)

Essaye de faire pareil, mais en Mettant Un SetCommandableTrue avant ta pile d'action, et un DelayCommand(SetCommandable(FALSE)) apres...



enfin, encore une fois, c'est comme ca que j'ai toujours fait avec SetCommandable...
Lien direct vers le message - Vieux
Avatar de Skanzo Sylan
Skanzo Sylan
Empereur
 
Avatar de Skanzo Sylan
 
Mouarf, vi, c'est exactement ça

J'allais répondre quand au même moment j'ai vu la réponse de Raistlin. Excellent!

Pô besoin de tester le script, not'modo trouve direct le truc qui foire


Au résultat t'es bloqué Azra, paske t'arrivera jamais à faire passer ta boucle d'action tant que SetCommandable sera FALSE

Je crois que j'avais vu quelque pôrt un truc pour qu'une animation LOOPING tourne en rond tout le temps, du genre je met 0.0f à une des valeurs...
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
Ouaip, ok pour ca, je savais pas (dailleur c'est pas terrible qu'on ne puisse pas toucher a la chaine d'action par scripts... :/ enfin passons)

Mais lorsque l'action est lacée pour la première fois, le "SetCommandable" n'est pas encore a FALSE .....

Enfin je vais essayer quand même, on sais jamais, mais je vois pas pourquoi ca marcherais...

EDIT : ben oui bien sur, la ligne du dessus c'est un AssignCommand c'est plus lent qu'un ligne directe..... désolé j'avais la tête ailleur
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
Ouiaaaaaaaaaaaaaaaaaaaaaa ca marche

en effet, la été le problème.

Je m'excuse humblement auprès de bioware pour tout le mal que j'ai pu dire ou penser d'eux....

Si jamais ca interesse quelqu'un le code débuggé, voila la bibliothèque :

Code PHP:
int GetIsEvanouis(object oCreature)
{
    
int nCause GetLocalInt(oCreature"Evanouis");
    return 
nCause;
}

void UpdateEvanouis()
{
    
SetCommandable(TRUEOBJECT_SELF);

    
ClearAllActions();
    
ActionDoCommand(SetCommandable(FALSEOBJECT_SELF));
    
ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT1.0f3600.0f);
    
ActionDoCommand(UpdateEvanouis());
}

void NonEvanouisParCause(object oCreatureint nCause)
{
    
int nRealCause GetLocalInt(oCreature"Evanouis");
    if(
nRealCause <= nCause)
    {
        
SetCommandable(TRUEoCreature);
        
AssignCommand(oCreatureClearAllActions());
        
DeleteLocalInt(oCreature"Evanouis");
    }
}

void TombeEvanouis(int nCauseobject oCreaturefloat fDuration=0.0f)
{
    
int nEvanouis GetLocalInt(oCreature"Evanouis");
    if(
nEvanouis nCause)
    {
        
AssignCommand(oCreatureUpdateEvanouis());

        if(
nCause == EVANOUIS_CAUSE_TEMPORAIRE)
        {
            
DelayCommand(fDurationNonEvanouisParCause(oCreaturenCause));
        }

        if(
nCause >= EVANOUIS_CAUSE_EMORAGIE)
        {
            
//Perte de points de vie
        
}

        
SetLocalInt(oCreature"Evanouis"nCause);
    }

Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Assign command un peu (beaucoup) louche
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 09h27.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite