Login: Pass:
Semcatala



Inscrit le: 08 Aoû 2005
Messages: 282
Message Posté le: 20/05/2007 14:59 Sujet du message: MAJ: BUG INTERMITENT : GetIsInCombat()
Juste pour dire que :

Avec les pnj, cette commande de script renvoie systématiquement 1
Avec les joueurs elle renvoie 1 quand le joueur ne combat pas , et renvoie 0 quand il est en combat.

mouarf .... ! Laughing


Dernière édition par Semcatala le 21/05/2007 11:35; édité 1 fois
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Antilia
Administrateur


Inscrit le: 21 Juin 2005
Messages: 492
Message Posté le: 20/05/2007 16:52 Sujet du message:
Fun. Very Happy
Je crois qu'Obsidian est tjrs passé à côté car visiblement elle est utilisé dans les scripts de mort (pour savoir quand le combat est fini pour rez tout le monde) et à peu d'endroits ailleurs visiblement, donc pour eux ça marchait normalement.

Faudrait quelqu'un pour la confirmer tout de même, ou que tu fournisses un script pour la tester si tu as (vu que visiblement tu as testé).

Si tu as envie de reporter le bug, tu as la méthode Grande Vitesse: Tu postes sur le forum de Bioware dans ce post: http://nwn2forums.bioware.com/forums/viewtopic.html?topic=557761&forum=114
Si tu es pas pressé, tu attends qu'un Community Manager (Drôle de terme d'ailleurs) le signalera à Atari France.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Semcatala



Inscrit le: 08 Aoû 2005
Messages: 282
Message Posté le: 20/05/2007 17:43 Sujet du message:
Voici le script que j'ai utilisé , je l'ai mis dans le ohb de la zone ou se trouvent 2 pnj , l'un étant hostile et l'autre neutre immortel.

Les résultats apparaissent en message serveur.
J'y comprends rien , maintenant tout semble correctement fonctionner alors que tout semblait délirer ..... ! Embarassed Crying or Very sad Evil or Very Mad


Code:
void main()
{

object objet = GetFirstObjectInArea(OBJECT_SELF);
    SendMessageToPC(GetFirstPC(),"//////////////////////");   
   
   
    while ( GetIsObjectValid(objet) )
    {
    //--------------------------------------

    if ( GetObjectType(objet) == OBJECT_TYPE_CREATURE )
    {
    SendMessageToPC(GetFirstPC(),GetName(objet) + " : Etat GetIsInCombat() = "
    +IntToString(GetIsInCombat(objet)));       
    }
   
    //--------------------------------------   
    objet = GetNextObjectInArea(OBJECT_SELF);
    }

}
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Argyl



Inscrit le: 26 Juil 2006
Messages: 347
Message Posté le: 20/05/2007 21:48 Sujet du message:
Alors il existe ce bug ou non ? Parce que pour l'instant il est répertorié et non confirmé depuis 16h11 aujourd'hui.

Pour le terme, je suis d'accord avec toi Antilia Smile
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Semcatala



Inscrit le: 08 Aoû 2005
Messages: 282
Message Posté le: 20/05/2007 22:30 Sujet du message:
Citation
Si tu es pas pressé, tu attends qu'un Community Manager (Drôle de terme d'ailleurs) le signalera à Atari France.


Laughing Désolé , mais, quand j'ai fait plusieurs fois le test et que j'ai vu que ça foirais plusieurs , j'ai posté dans le fofo officiel.

Mais pas seulement le premier post , la suite de ma démarche également ! Wink

------------------


Bon , pour faire un point a propos de ce " bug/pas bug ".

Lors de mes premiers tests j'avais crée un script de ohb placé sur les pnj.

Ce script avait pour rôle d'afficher sur message serveur du joueur l'état de la balise GetIsInCombat() du joueur ( le seul du module en test en solo ) , et la balise de chaque pnj qui portait ce script.

Il y avait le joueur et 2 pnj sur la zone , et l'un des pnj était en "hostile".

Avec ce test , les balises faisaient un peu n'importe quoi , et passaient d 0 a 1 de maniére aléatoire et illogique.


Ensuite j'ai refait un autre test , en virant le ohb_pnj , et en le mettant un nouveau ohb sur le ohb de la zone.

J'ai fait une boucle pour passer en revue toutes les créatures de la zone une par une , et véifier l'état de leur balise GetIsInCombat()

Et là , ça à fonctionait parfaitement.

--------------
Donc ça reste a vérifier par d'autres , mais voici ce que j'en conclu :


Lorsque l'on utilise cette fonction GetIsInCombat() en contrôlant des créatures les unes APRES les autres , ça fonctionne bien.

Mais par contre, si plusieurs scripts sont lancés en même temps, et utilisent EN MEME TEMPS cette fonction, alors ça foire et les résultats sont aléatoires.


Je ne vois pas de meilleure explication. Rolling Eyes Car dans le premier cas tout fonctionnait bien , et dans le second , j'ai bel et bien vu des balises a 1 alors que persone ne combatait dans la zone.

C'est le style de bug vicieux que je deteste ... ! Evil or Very Mad


Alors donc si on ne dois répertorier QUE les bugs FRANCS qui foirent en toute circonstances , alors il n'en fera peut être pas partie , a vous de voir ..... ! Rolling Eyes
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Montrer les messages depuis:   

Page 1 sur 1
Sauter vers:  

 

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum

Traduction par : phpBB-fr.com
Powered by phpBB © 2001, 2007 phpBB Group