La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 21:56:43
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Lisan Anthelus Chevalier Messages: 73 Localisation: Lyon (FRANCE) |
[Problème posé sur conception de module persistant]
Bonjour, après avoir pas mal cherché, j'ai enfin compris comment sauver et restituer une position et un état du PJ (sans aucun DelayCommand() !!!) à la connection du joueur. En effet, les DelayCommand(), je les aient utilisés au début, jusqu'à ce que je comprenne que je ne codais pas correctement (code présent dans les mauvais scripts, accumulation de DelayCommand(), ...). Aujourd'hui, je sauvegarde convenablement mes personnages en base et je les restitue presque convenablement. J'ai dis presque, parce que mon problème se situe sur la fonction que j'appelle lorsqu'un joueur mort s'est déconnecté. En effet, si le joueur est vivant, la sauvegarde du personnage se passe bien puisqu'à la reconnection (après reboot serveur), il récupère bien toutes les infos de ma base campagne. De plus, il se téléporte parfaitement à l'endroit désigné de la base. Le souci réside dans ceci: NWScript :
ActionJumpToLocation(GetLocalLocation(oPC,"PCLocation")); if(GetLocalInt(oPC,"PCDead")) { SetLocalInt(oPC,"PCDeadLogin",TRUE); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(FALSE, FALSE),oPC); } En effet, si le PJ est mort, la fonction qui le tue invalide sa téléportation. J'ai tout d'abord pensé que sa 'location' n'était pas bien sauvegardée en base ... Que nini, sa 'location' est parfaitement valide puisque j'ai pu faire apparaitre un effet à l'endroit désigné de sa mort suivant la 'location' restituée par la même variable que celle fournie à ActionJumpToLocation(). Pour info, j'ai appelé l'effet juste avant ActionJumpToLocation(), donc les variables possèdent les bonnes données, même si le joueur est mort. J'ai alors pensé que l'effet de mort avait une incidence sur la 'location' ... Du pipeau, après avoir appelé le même effet visuel après l'effet de mort, il est bien apparu à l'endroit de la mort du personnage. J'ai enfin pensé que cela venait peut-être du script "onPlayerDeath" et je l'ai donc customisé et même entièrement vidé ... Rien n'y fait, le PJ ne peut se téléporter si on le tue derrière la téléportation (dans le script). Voyant ceci, j'ai foutu la ligne d'effet de mort en commentaire et là, nom de dieu, ca marche au détail près que le joueur est vivant. J'ai donc pensé que c'était l'exécution de la fonction d'effet de mort qui annulait la téléportation ... mais non, j'ai tenté de téléporter le PJ après l'effet de mort, que dalle. J'ai finalement appliqué un DelayCommand() sur l'effet de mort. Cela fonctionne mais ce n'est absolument pas propre et ca m'énerve du coup (risque de croisements de traitements avec ces maudits DelayCommand() s'ils sont utilisés abusivement, déjà que je m'en sers pour les cutscenes, grrr). Alors je me pose la question suivante: La procédure ActionJumpToLocation() ne renvoyant donc rien et étant exécutée en parallèle(ouverture d'un autre thread je suppose), existe-t-il un moyen de capturer l'évênement de fin de téléportation, ou encore mieux, existe-il un moyen de téléporter un PJ mort ? Merci d'avance. _________________ Un cerveau... c'est fait pour agir. La pensée n'est là que pour rendre plus efficace l'action. H. Laborit |
Revenir en haut | |
Stan Grand Chevalier Messages: 126 |
Idée peut-être faisable.
Et si tu creais un corps à l'endroit de la mort et mettais le PJ dans une zone où il peut demander à quelqu'un s'il préfère respawn, ou qu'il reste dans cette zone en attendant une rez. Et quand quelqu'un lance une rez sur le corps, tu teleportes le PJ à la plae du corps et tu delete le corps. |
Revenir en haut | |
Lisan Anthelus Chevalier Messages: 73 Localisation: Lyon (FRANCE) |
L'idée est sympa mais je suis un peu sadique, je tiens à ce qu'il se reconnecte mort.
En fait, je traine un peu sur les forums de bioware et il me semble que la seule grosse solution de gestion persistante passe par la customisation du .ini afin de rebooter le module sur des sauvegardes auto. _________________ Un cerveau... c'est fait pour agir. La pensée n'est là que pour rendre plus efficace l'action. H. Laborit |
Revenir en haut | |
Mars Seigneur Messages: 199 |
C'est pas possible de téléporter un PJ mort même en bidouillant, il faut le téléporter avant de le tuer.
|
Revenir en haut | |
Lisan Anthelus Chevalier Messages: 73 Localisation: Lyon (FRANCE) |
Mars a écrit : C'est pas possible de téléporter un PJ mort même en bidouillant, il faut le téléporter avant de le tuer. oui je sais, c'est pour cela justement que j'expose mon problème _________________ Un cerveau... c'est fait pour agir. La pensée n'est là que pour rendre plus efficace l'action. H. Laborit |
Revenir en haut | |
Mars Seigneur Messages: 199 |
Tu le téléporte et tu le tue ensuite, il aura pas le temps de faire quoique se soit.
|
Revenir en haut | |
Lisan Anthelus Chevalier Messages: 73 Localisation: Lyon (FRANCE) |
Mars a écrit : Tu le téléporte et tu le tue ensuite, il aura pas le temps de faire quoique se soit. Nom de dieu, tu le fais exprès ou quoi ?
Puisque j'ai déjà expliqué que j'arrive à le téléporter avant de le tuer MAIS que cela implique un "DelayCommand". Relis bien mon premier post, il y a deux questions en une seule. Primo, y-a-il un moyen de détecter la fin d'évenement d'un JumpToLocation. Secundo, existe-t-il un moyen de téléporter un PJ mort. N'ayant pu réussir ni l'un, ni l'autre, je me doute bien que de prime abord, on ne peut pas. Cependant, je pose quand même la question, au cas où quelqu'un aurait trouvé un moyen. En d'autres termes, mes questions concernent d'éventuels scripteurs qui auraient réussi. PS: Personnellement, je le trouve un peu trop basique le scripting nwn (comparé au scripting unreal par exemple), ca limite pas mal les possibilités et ca force un peu trop le bidouillage. A croire qu'Aurora est un produit loin d'être fini ! _________________ Un cerveau... c'est fait pour agir. La pensée n'est là que pour rendre plus efficace l'action. H. Laborit |
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Lisan Anthelus a écrit : Secundo, existe-t-il un moyen de téléporter un PJ mort. Pas a ma connaissance...
Lisan Anthelus a écrit : PS: Personnellement, je le trouve un peu trop basique le scripting nwn (comparé au scripting unreal par exemple), ca limite pas mal les possibilités et ca force un peu trop le bidouillage. A croire qu'Aurora est un produit loin d'être fini ! Sa se compare pas, c'est pas le même style de jeu, déjà UT à moins d'évenement a gérer niveau script (ta pas plein de sort des dons etc), aussi UT c'est assez bidouille quand tu doit chercher les fichiers liers ^^.
A par ça c'est claire il a ces limites on fait avec ce qu'on a... _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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