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


  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 : 29/04/2007 20:14:36 Sujet du message : [HB Script tele] [RESOLU]

Bonjour bonjour (ou bonsoir =))

Voila, j'ai un sérieux problème avec le Hearbeat du module... Normalement, mon serveur présente des rounds. En fin de round, tous les joueurs sont pétrifiés 6 secondes, et sont télepoter 1 seconde après à leur camp.

Dans ce système, ils recoivent aussi de l'xp.

Bon, mon problème c'est qu'il ne se téleporte pas ! Et le pire, c'est que c'est un script importer de mon ancienne arène, qui marchait parfaitement.

Voici le script en question:

Pour les joueurs bien:
NWScript :
void GoPlayerGood(int iGain)
{
object oPC = GetFirstPC();
    while(GetIsPC(oPC) == TRUE && GetIsDM(oPC) == FALSE)
    {
    int iTeam = GetLocalInt(oPC, "Team");
    SpeakString(Couleur()+"[TEST: "+GetName(oPC)+"] est dans l'equipe "+IntToString(iTeam), TALKVOLUME_SHOUT);
        if(iTeam == 1)
        {
            if(GetTag(GetArea(oPC)) != "BienChateau")
            {
            RemoveAllEffect(oPC);
            DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPetrify(), oPC, 6.0));
            }
            if(GetLocalString(GetModule(), "Name_M_Point") == GetName(oPC))
            {
            DelayCommand(10.0, SendMessageToPC(oPC,Couleur(7,14,13)+"Vous etes le Survivor de la partie. Vous recevez 5% du score de votre equipe."));
            DelayCommand(10.0, GiveXPGP(oPC, 5*iGain/100));
            }
            if(GetLocalString(GetModule(), "Name_M_Kill") == GetName(oPC))
            {
            DelayCommand(10.0, SendMessageToPC(oPC, Couleur(7,14,13)+"Vous etes le Tueur de la partie. Vous recevez 5% du score de votre equipe."));
            DelayCommand(10.0, GiveXPGP(oPC, 5*iGain/100));
            }
            if(GetLocalString(GetModule(), "Name_M_XP") == GetName(oPC))
            {
            DelayCommand(10.0, SendMessageToPC(oPC, Couleur(7,14,13)+"Vous etes le joueur qui a recut le plus d'xp de la partie. Vous recevez 5% du score de votre equipe."));
            DelayCommand(10.0, GiveXPGP(oPC, 5*iGain/100));
            }
            DelayCommand(10.0, GiveXPGP(oPC, iGain));
            SpeakString(Couleur()+"Compte!", TALKVOLUME_SHOUT);
            DelayCommand(7.5, AssignCommand(oPC, JumpToLocation(GetLocation(GetWaypointByTag(BDS_WP_BIEN)))));
        }
    oPC = GetNextPC();
    }
}
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.


Pour les joueurs mal

NWScript :
void GoPlayerEvil(int iGain)
{
object oPC = GetFirstPC();
    while(GetIsPC(oPC) == TRUE && GetIsDM(oPC) == FALSE)
    {
    int iTeam = GetLocalInt(oPC, "Team");
    SpeakString(Couleur()+"[TEST: "+GetName(oPC)+"] est dans l'equipe "+IntToString(iTeam), TALKVOLUME_SHOUT);
        if(iTeam == 2)
        {
            if(GetTag(GetArea(oPC)) != "MalChateau")
            {
            RemoveAllEffect(oPC);
            DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPetrify(), oPC, 6.0));
            }
            if(GetLocalString(GetModule(), "Name_M_Point") == GetName(oPC))
            {
            DelayCommand(10.0, SendMessageToPC(oPC,Couleur(7,14,13)+"Vous etes le Survivor de la partie. Vous recevez 5% du score de votre equipe."));
            DelayCommand(10.0, GiveXPGP(oPC, 5*iGain/100));
            }
            if(GetLocalString(GetModule(), "Name_M_Kill") == GetName(oPC))
            {
            DelayCommand(10.0, SendMessageToPC(oPC, Couleur(7,14,13)+"Vous etes le Tueur de la partie. Vous recevez 5% du score de votre equipe."));
            DelayCommand(10.0, GiveXPGP(oPC, 5*iGain/100));
            }
            if(GetLocalString(GetModule(), "Name_M_XP") == GetName(oPC))
            {
            DelayCommand(10.0, SendMessageToPC(oPC, Couleur(7,14,13)+"Vous etes le joueur qui a recut le plus d'xp de la partie. Vous recevez 5% du score de votre equipe."));
            DelayCommand(10.0, GiveXPGP(oPC, 5*iGain/100));
            }
            DelayCommand(10.0, GiveXPGP(oPC, iGain));
            SpeakString(Couleur()+"Compte!", TALKVOLUME_SHOUT);
            DelayCommand(7.5, AssignCommand(oPC, JumpToLocation(GetLocation(GetWaypointByTag(BDS_WP_MAL)))));
        }
    oPC = GetNextPC();
    }
}
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.


Les joueurs mal sont representer par GetLocalInt(oPC, "Team") == 2 et les joueurs bien GetLocalInt(oPC, "Team") == 1.

BDS_WP_BIEN = "WP_S_Bien"
BDS_WP_MAL = "WP_S_Mal"

J'ai mis, comme vous avez pu le remarqué, un message, pour bien tester le fonctionnement du système. Voici ce qui s'affiche:


Citation :
[TEST: Sbizz] est dans l'équipe 2
[TEST: Sbizz] est dans l'équipe 2
Compte !
Déjà premier truc louche, il repete 2 fois le message pour la team. Le message "Compte!" signifie qu'il a bien été compté, et qu'il devrait alors se teleporter ! Mais non il veut pas...

Avez vous des solutions à mon problème?

Franchement, j'ai refait une dizaine de fois ce script, mais rien à faire...

Merci d'avance.

BK

EDIT: enfaite les 2 messages, c'pasque c'est placer avant le if(GetLocalInt(oPC, "Team") == x).

Et avant de me dire "t'es sur que c'est le bon tag?" oui, car je l'utilise pour qu'ils se teleportent dans leur camp, quand ils le choisissent.
_________________
[http]
Dernière édition par Black Knight le 02/05/2007 17:14:39; édité 2 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 30/04/2007 14:51:15 Sujet du message :

Pris la main dans le sac Black Knight ! *sort sa badine en osier cloûté* Very Happy

Essaye de mettre un titre explicite à ton sujet stp, merci Smile
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
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 : 30/04/2007 16:50:40 Sujet du message :

L'oublie est humain *sifflote*

Editer =)

BK
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 30/04/2007 18:13:55 Sujet du message :

Ça ne viendrait pas du fait que les joueurs "bougent" lors de la seconde d'ecart entre la fin de la pétrificaiton et la téléportation ?

En fait si ils bougent à mainte reprise ils empèchent l'action (téléportation via AssignCommand) de s'assigner dans la queue d'action en effectuant une action (marche via clique ^^).
Si c'est le cas il doit y avoir moyen de contourné le problème avec la réglages du temps, des fonctions alternative à l'effet petrify qui permettrait au joueur de se téléporter meme immobilisé, etc

Comme ça j'ai pas d'autres idées de la cource du problème.
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
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 : 30/04/2007 20:33:18 Sujet du message :

Nop c'pas ça. Moi même ce bug m'arrive, et je ne bouge pas. Je precise que ça ne le fait pas à tous les joueurs ! Je crois que ça compte que 1 joueur.

J'vais voir pour faire avec JumpToObject ... peut etre que ça marche qui sait ^^

Mais si vous avez des soluces...
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
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 : 02/05/2007 17:14:58 Sujet du message :

J'ai enlever les delays command, et ça marche
_________________
[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 36.358ms