La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 12/05/2024 00:00:01


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 03/06/2007 17:17:04 Sujet du message : Reconnaître un piège, grâce au HB.

Bonjour.

Voila j'utilise un script qui permet de donner des points à une équipe, quand elle tue un adversaire. Le problème, c'est que le serveur reconnaît QUE les joueurs, et non les pièges.

J'utilise ces fonctions

NWScript :
object oDeath = GetLastPlayerDied();//Joueur Mort
object oPC = GetLastHostileActor(oDeath);//Joueur Vivant
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Mon script et séparé en deux catégories :

- Si le oDeath est bien mort. Si le oPC est un objet valide, et si oPC n'est pas un MD. Ici ce trouve toutes les fonctions qui donnent des points quand un joueur tue un autre joueur.

NWScript :
if(GetIsDead(oDeath) && !GetIsDM(oPC) && GetIsObjectValid(oPC))
{
//Script des points JcJ
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


- Le deuxième c'est : Si le oDeath est bien mort. Si le oPC est un objet NON valide. À ce moment la, intervient, deux sous catégories:

NWScript :
else if(!GetIsObjectValid(oPC) && GetIsDead(oDeath))
{

}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


* On regarde si le joueur n'est pas un piège, ou n'est pas un familier

NWScript :
if(GetObjectType(oPC) == OBJECT_TYPE_CREATURE)
            {
                if(GetIsPossessedFamiliar(oPC))
                {
                sNamePC = sTexte+GetName(oPC)+""+sCouleurPC+GetName(GetMaster(oPC))+sTexte+" ["+sVert+IntToString(GetHitDice(GetMaster(oPC)))+sTexte+"]";
                oPC = GetMaster(oPC);
                iTeamPC = NF_GetTeam(oPC);
                }
            }
            else if(GetObjectType(oPC) == OBJECT_TYPE_TRIGGER)
            {
            oPC = GetTrapCreator(oPC);
            iTeamPC = NF_GetTeam(oPC);
            sNamePC = sTexte+"Le piege de "+sCouleurPC+GetName(oPC)+sTexte+" ["+sVert+IntToString(GetHitDice(GetMaster(oPC)))+sTexte+"]";
            }
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


* Si la première sous catégorie n'est pas bonne, alors le joueur est mort tout seul (MD, ou autre chose (suicide))

NWScript :
else
        {
        NF_SendMessage(sNameDeath+sTexte+"");
            if(iTeamDeath == 1)
            {
            NF_SetScoreTeam(2, NF_GetScoreTeam(2)+0.3);
            }
            else if(iTeamDeath == 2)
            {
            NF_SetScoreTeam(1, NF_GetScoreTeam(1)+0.3);
            }
        }
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Mais, voyant la description de GetLastHostileActor(), j'ai remarqué qu'il ne comptait pas :
- Les pièges

Donc, pour ce faire, dès que j'entrais dans la deuxième catégorie, je remplacer:

oPC = GetLastHostileActor(oDeath);

par

oPC = GetLastKiller();

Pourtant rien ne marche, à chaque fois, la fonction revoit vers la deuxième SOUS catégorie, si ce n'est pas un joueur qui tue oDeath.

Vous avez des solutions?
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 24.941ms