Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Faire parler une porte (un objet)

Par Morethil le 26/10/2002 à 1:10:51 (#2409994)

J'ai un petit ennui, dans mon module j'ai un personnage derrière une porte opaque (en metal solide, pas une grille), avec qui les PJ peuvent parler, donc pour simuler ça j'ai ecrit une conversation entre les Pj et la porte.
Le probleme c'est qu'en test l'icone de dialogue n'apparait pas sur la porte. Elle est piégé, et verouillé...

... Je viens de penser que c'est peut etre un pbm de faction (hostile par defaut pour les objets) mais si vous pensez que le pbm viens d'autre chose, dites le moi.

Edit : Je viens de reverifier, ce n'est pas un pbm de faction. J'avais mis la porte sur la meme faction que le personnage de derrière.

Par eMRaistlin le 26/10/2002 à 1:32:18 (#2410091)

tu as affecté le dialogue a la porte ? ou un script de declenchement de conversation dans le "OnUsed" ?

Par Morethil le 26/10/2002 à 1:59:10 (#2410189)

Oui, le dialogue est affecté a la porte, mais par contre j'ai as mis de scripte, je ne sait pas faire encore ça :doute:
Bon, je vois ce qu'il me reste a faire :rolleyes:

par contre il n'y a pas d'emplacement "OnUsed". Enfin bon, vu que c'est un scripte, je chercherait dans la liste des scriptes et je trouverait bien où le mettre :)

Par eMRaistlin le 26/10/2002 à 2:11:03 (#2410227)

bon, si tu as bien affecté le dialogue a la porte, je vois pas de raison que cela ne se declenche pas.

Sinon, tu met dans le OnFailToOpen le script suivant :


void main()
{
object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
object oPrisonnier = GetObjectByTag("TAG_DU_personnage derrière une porte opaque ");

AssignCommand(oPrisonnier,(BeginConversation("nom_de_la_conversation",oPC));
}


Ca devrait fonctionner de la boulette ^^

Par Morethil le 26/10/2002 à 16:06:03 (#2412560)

Je viens de le mettre, et il refuse de le compiler.
Le message est "unknown state in compiler"

:doute:

Par coolstar le 26/10/2002 à 16:24:06 (#2412660)

Heeuuu... pour le cas où vous vous prennez trop la tête... y'a aussi la possibilité d'aller Décortiquer la Procédure sur la Porte du Zoo dans la Campagne de Bioware ... :D

Par Morethil le 26/10/2002 à 18:21:22 (#2413158)

Provient du message de eMRaistlin
Sinon, tu met dans le OnFailToOpen le script suivant :


void main()
{
object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
object oPrisonnier = GetObjectByTag("TAG_DU_personnage
derrière une porte opaque ");

AssignCommand(oPrisonnier,(BeginConversation
("nom_de_la_conversation",oPC));
}

Ca devrait fonctionner de la boulette ^^


J'ai trouvé ça dans la liste des scriptes :

void main()
{
object oPC = GetLastUsedBy();
if (GetIsPC(oPC))
{
ActionStartConversation(oPC, "NomDeLaConversation",TRUE);
}
}

Mais c'est a placer dans le OnUsed (d'un item)

Donc, la question : Est ce que ce scripte là (en dessous) fonctionnerai dans le OnFailToOpen ?


void main()
{
// J'ai changé le object oPC = GetLastUsedBy();
object oPC = GetNearestCreature
if (GetIsPC(oPC))
{
ActionStartConversation(oPC, "NomDeLaConversation",TRUE);
}
}


Bon, je vais essayer en tous cas.

Par Morethil le 26/10/2002 à 19:36:42 (#2413577)

Donc au final ça donne ça :

compilation réussie
Ca donne ça, on va voir si ca marche :



void main()
{
object oPC = GetNearestCreature
(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
if (GetIsPC(oPC))
{
ActionStartConversation
(oPC, "nom_du_fichier_de_conversation",TRUE);
}

}


Et ca marche.
Merci a ceux qui m'ont aidé :)

PS : N'heistez pas a améliorer si besoin, je suis pas sur de l'aspect indispensable du "if (GetIsPC(oPC))"

Par coolstar le 26/10/2002 à 20:01:23 (#2413701)

et merci pour avoir transmis le résultat de tes progressions... ;)

JOL Archives 1.0.1
@ JOL / JeuxOnLine