Login: Pass:
Tatav



Inscrit le: 04 Oct 2006
Messages: 79
Message Posté le: 10/11/2006 12:19 Sujet du message: [résolu] Ecran de mort.
Bonjour,
J'ai un léger soucis sur l'affichage du screen de mort, les 2 méthodes suivantes ne fonctionnent pas:

PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH));
PopUpDeathGUIPanel(oPlayer));

j'ai regardé leur système ce n'est qu'une vulgaire dialogue box avec un bouton respawn dessus. J'ai donc fouillé dans les includes ( ginc_death le nom je pense de tête ) et impossible de le compiler car un autre script appelé par ginc_death possede une duplicate function implementation... ( x0_i0_match ). En ouvrant ce dernier, je n'ai trouvé aucune fonction avec une double implémentation Confused .

Je bidouille donc mon script en recopiant ce que j'avais besoin dans ginc_death ( pas très propre ca...) je lance et oh magique ca marche .



Enfin le soucis étant qu'il continue à utiliser la fonction lié au bouton respawn plutôt que le onplayerrespawn du module... Je pourrais encore bidouiller pour affecter ma fonction de respawn du module sur le bouton mais ca devient de plus en salement scripté.


Donc si quelqu'un sait si c'est un bug connu ou si je me suis totalement égaré merci de prévenir Very Happy
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
-MeteZ-



Inscrit le: 19 Nov 2005
Messages: 85
Localisation: Région Parisienne
Message Posté le: 10/11/2006 21:14 Sujet du message:
Qu'elle est la différence entre le respawn que tu veux et le respawn de bioware ?

Sinon, modifie directement les scripts génériques, comme ça tu est sûr qu'il soient executés.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Tatav



Inscrit le: 04 Oct 2006
Messages: 79
Message Posté le: 10/11/2006 22:27 Sujet du message:
Pour faire simple je veux que ce bouton respawn appelle le onPlayerRespawn de mon module et pas qu'il fasse relever le PJ sur place avec juste un effet groggy pendant deux secondes.

Je n'aime pas m'attaquer directement à leurs scripts quand cela n'est pas absolument nécessaire, et encore moins quand il est prévu des événements qui sont là pour traiter le cas. Sinon mon script est bien exécuté il n'y a que la fonction faisant apparaitre la fenetre de mort qui ne donne aucun résultat... Je souhaite avoir une fenêtre de mort comme sur nwn1 ( elle existe :p ) plutôt qu'un bouton de dialogue ou je dois lui implanter un script...

Même en multi, on obtient le même écran de base sans l'option attendre de l'aide...
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Tao
Animateur


Inscrit le: 25 Avr 2006
Messages: 184
Localisation: Quelque part en yhgdrazil
Message Posté le: 11/11/2006 0:18 Sujet du message:
Hmhmhh, n'étant jamais mort jusqu'ici je peux rien te dire pour l'instant, mais bon, des que je meurs sur mon module je pense que je saisirais le problème dont tu parles :p
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Alia Atreides



Inscrit le: 20 Nov 2006
Messages: 26
Message Posté le: 23/11/2006 11:23 Sujet du message:
pour ton problème, j'ai cherché tout hier et j'ai pas trouvé de moyens autre que modifier le fichier gui_death_respawn où sont toutes les donnees qu'il execute quand tu appuie sur le bouton respawn.

pensez a faire un RemoveDeathScreens(oPC) pour effacer la boite de dialogue d'après la mort
_________________
Alia Atreides, scripteuse en herbe
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
jahjah



Inscrit le: 13 Nov 2006
Messages: 26
Localisation: Orléans
Message Posté le: 23/11/2006 11:42 Sujet du message:
Regarde le fichier d'aide de l'éditeur, à la fin il y a un tuto pour faire une écran de mort custom et l'intégrer, juste en le nommant correctement il sera pris en compte par le script global Smile
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Tatav



Inscrit le: 04 Oct 2006
Messages: 79
Message Posté le: 25/11/2006 22:41 Sujet du message:
Whoops je l'avais oublié celui la de message :p


En fait mon problème venait du fait que j'ai importé mon ancien coninclude modifié d'un module de nwn1 donc toutes les modifications faites depuis pour le 2 n'était pas dedans donc j'étais dans l'impossibilité d'inclure le fichier "ginc_death". En incluant le "ginc_death", un appel à la fonction showProperDeathScreen(mon joueur) suffit pour afficher le bon écran de mort avec les boutons désirés, il vérifie de lui même si je suis en local ou multi.

Et comme dit Alia, il n'y a pas autre chose à faire que modifier directement le script "gui_death_respawn". Le onPlayerRespawn du module devient donc obsolète. Désolé Alia si j'avais mis à jour ici aussi, tu n'aurais pas cherché pour rien...
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Alia Atreides



Inscrit le: 20 Nov 2006
Messages: 26
Message Posté le: 26/11/2006 11:01 Sujet du message:
c'est pas grave hihihih ca m'a permit de connaître un peu plus les scripts hihihihihi pour l'instant je suis toujours en train de decouvrir.
_________________
Alia Atreides, scripteuse en herbe
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Slayne



Inscrit le: 02 Oct 2006
Messages: 33
Message Posté le: 28/11/2006 17:55 Sujet du message:
Si je peux me permettre, j'aimerai bien savoir les modifications qu'il faut faire afin d'obtenir l'ecran montré plus haut ?

Les seules choses que je réussi à avoir, c'est un ptit carré tout gris et tout pourrit avec le boutton respawn (et en plus il ne me recall pas à mon WP, mais sur place).
Sinon en bidouillant un peu, j'ai plus rien du tout. Mon Pj reste mort sans aucun choix possible.

Helpeuh !!
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Tatav



Inscrit le: 04 Oct 2006
Messages: 79
Message Posté le: 28/11/2006 21:09 Sujet du message:
Voila le script de base à placer dans le onPlayerDeath de ton module:

Code:
#include "ginc_death"
void main()
{
        ShowProperDeathScreen(GetLastPlayerDied());
}


Cette fonction active les boutons nécessaire selon si tu es en multijoueur ou en solo. Cela marche très bien en multi, où le bouton de chargement de partie est désactivé, mais en solo, le bouton respawn est désactivé.
Donc si ton module est un module solo, il y'a d'autres fonctions dans le ginc_death, suffit d'y jeter un coup d'oeil. comme ShowDeathScreen(...) qui permet de selectionner les boutons actifs ou non.

Sinon, le fait d'appuyer sur respawn, lance le script "gui_death_respawn" que tu dois donc modifier pour, dans ton cas, te téléporter sur ton WP.
Enfin, si tu modifies ce script, laisse quand même le
"RemoveDeathScreens( oPC );" pour enlever l'écran de mort.


Dernière édition par Tatav le 29/11/2006 15:18; édité 1 fois
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Slayne



Inscrit le: 02 Oct 2006
Messages: 33
Message Posté le: 29/11/2006 13:56 Sujet du message:
Bon voila, j'ai essayer de pondre un truc...

Code:
#include "ginc_death"
#include "ginc_debug"   
#include "x0_i0_henchman"

void ShowDeathScreen( object oPC, int bModal=TRUE, int bRespawn=TRUE, int bLoadGame=FALSE, int bWaitForHelp=TRUE );
void ShowDefaultDeathScreen( object oPlayer )
{
}
void main()
{
    ShowProperDeathScreen(GetLastPlayerDied());
   object oPlayer = GetLastPlayerDied();
    // Obtention d'amulette des abysses
   object oPC= GetLastPlayerDied();
   CreateItemOnObject("amulettedesabysses",oPC,1);
   //DisplayGuiScreen( oPlayer, GUI_DEFAULT_DEATH_SCREEN, FALSE );
   DisplayMessageBox( oPlayer, 0, GetStringByStrRef(181408), "gui_death_respawn", "", TRUE, "", 6603, "", 0, "" );
   object oRespawner = GetLastRespawnButtonPresser();
    object oMod = GetModule();
   object oSpawnPoint = GetObjectByTag("NW_DEATH_TEMPLE");
   
}


Mais y'a rien à faire, il respawn tjr sur place. Pourrais je savoir si je suis sur la bonne voie ?

Je crois que je vais créer un post afin de ne affecter ce post résolu ^^
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Tatav



Inscrit le: 04 Oct 2006
Messages: 79
Message Posté le: 29/11/2006 15:17 Sujet du message:
Si mon problème était le même, enfin pas sous la même tourne, je voulais que le bouton de respawn appelle le onPlayerRespawn du module mais ca ne marche pas, il faut gérer le respawn du joueur dans un script nommé "gui_death_respawn" qui remplacera celui de base du module.

Donc si ton écran de mort apparait normalement, il faut maintenant que tu modifies le script "gui_death_respawn" ou tu pourras gérer le respawn de ton joueur selon ton goût.

La mort d'un joueur utilise donc 2 scripts distincts, un pour la mort que tu nommes comme tu le chantes et que tu places dans le onPlayerDeath (ca doit s'appeler script déclancé par la mort du joueur ou un truc du genre... )de ton module. Et un autre ou tu gères le respawn de ton joueur qui se nomme obligatoirement "gui_death_respawn".


script 1 : nommé arbitrairement "mortjoueur" et placé dans le on playerDeath

Code:

#include "ginc_death"

void main()
{
    // Obtention d'amulette des abysses
   object oPC= GetLastPlayerDied();
   CreateItemOnObject("amulettedesabysses",oPC,1);
   ShowDeathScreen(oPC,TRUE,FALSE,TRUE,FALSE);
   
}



et le script "gui_death_respawn" nommé ainsi obligatoirement


Code:
#include "ginc_death"
void main()
{
   RemoveDeathScreens( OBJECT_SELF );
   AssignCommand(OBJECT_SELF,JumpToObject(GetObjectByTag("NW_DEATH_TEMPLE")));
}



Voila avec cela, si tu as bien placé le script de mort ou il faut et que ton WP existe, ca devrait marcher
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Rayek



Inscrit le: 30 Nov 2006
Messages: 134
Localisation: (30) Gard - Pont st Esprit
Message Posté le: 13/01/2007 20:19 Sujet du message:
J'ai testé toutes les solutions et à la mort d'un pj le perso respawn pas Sad
Je craque Evil or Very Mad

Dans le onPlayerDeath

Code:

#include "ginc_death"

void main()
{
   object oPC= GetLastPlayerDied();
   ShowDeathScreen(oPC,TRUE,TRUE,FALSE,TRUE);
   SetIsDeathPopUpDisplayed(oPC, TRUE);
//   ShowProperDeathScreen(GetLastPlayerDied());
}


Et le fichier "gui_death_respawn"

Code:

#include "ginc_death"

void main()
{
//  if(GetIsDeathPopUpDisplayed(OBJECT_SELF))
 // {
    RemoveDeathScreens( OBJECT_SELF );
    AssignCommand(OBJECT_SELF,JumpToObject(GetObjectByTag("WP_DEADRESPAWN")));
 // }
}


J'ai bien vérifié le nom du Tag de mon WP (j'ai fait un copier coller pour ête sur Razz)
Et rien à faire, l'écran de respawn apparait, quand je cliques sur Respawn l'écran disparait mais le pj n'est pas téléporté à mon point de spawn Sad
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Ashram



Inscrit le: 12 Nov 2006
Messages: 20
Message Posté le: 13/01/2007 22:37 Sujet du message:
Moi qui me triture la tête depuis quelques temps sur ce sujet, j'ai fini par penser que c'était moi qui était nul^^

finalement, je suis pas le seul à rencontrer ce problème!
_________________
Développeur des chroniques de la Terre du Milieu 2
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Anthraxcite



Inscrit le: 26 Juil 2006
Messages: 94
Message Posté le: 13/01/2007 23:17 Sujet du message:
On ne peut déplacer un personnage mort, si on veut déplacer son cadavre, on le resp on le déplace et on le retue.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   

Page 1 sur 2
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