PNJ jouant les Garcimore

Répondre
Partager Rechercher
Bien, étant une méga quiche en script, j'aimerai louer (à titre gratuit ) les talents des pros de Maskado. Je m'explique :

J'aimerais que lorsque le PJ passe sur un trigger cela fasse spawner un PNJ (avec un effet spécial identique à celui du sort de guérison). Le PJ pourrait alors entamer le dialogue (préalablement créé) avec le PNJ, et à l'issue de la conversation, le PNJ redisparaît avec le même effet spécial.

Ah oui, il faudrait aussi que la même chose se produise à chaque traversée du trigger par un nouveau PJ.

C'est possib' ?

Je chanterais les louanges de celui qui me pondra ce script pendant toute une semaine.

merci...
Oui c'est possible et même assez facile (ah bon tu posais pas la question ), maintenant une question primordiale se pose : Quelle guérison ? Majeure, mineure ?? Moyenne ?
Vi le script est simple à faire mais comme dit jedai, il y a plein d'effet différent avec le soin surtout entre le mineur et majeur, cela change énormément .

Mais bon, je pense que Jedaï va te faire ça , moi je retourne donc avec mes Doppel qui me prennent la tête grrr.
M E R C I Jedaï !

Pour l'effet, la grosse colonne de lumière bleue qui descend du ciel, je crois que c'est le soin supérieur (celui d'Aribeth)... en fait je m'en fiche, du moment que le PNJ apparaît et disparaît avec la classe !

Code PHP:

void SpawnNPC(object oObj);
void main()
{
object oPC GetEnteringObject();
if (
GetIsPC(oPC) && GetLocalInt(oPC,"BlahBlah")==FALSE)
    {
    
SpawnNPC(oPC);
    }
}

void SpawnNPC(object oObj)
{
location lLoc GetLocation(GetWaypointByTag("TAG_DU_WP_DE_FUTUR_APPARITION"));
effect eVFX EffectVisualEffect(VFX_IMP_HEALING_X );
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVFX,lLoc);
object oPNJ CreateObject(OBJECT_TYPE_CREATURE,"resref_de_ta_creature",lLoc);
AssignCommand(oPNJ,ActionStartConversation(oObj,"resref_du_dialogue"));
SetLocalInt(oPC,"BlahBlah",TRUE);

et a la fin de la conversation, tu met
Code PHP:

void main()
{
location lLoc GetLocation(OBJECT_SELF);
effect eVFX EffectVisualEffect(VFX_IMP_HEALING_X );
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVFX,lLoc);
DestroyObject(OBJECT_SELF);


voila qui devrait faire l'affaire.
Voyons voir si j'ai tout compris :

Je met le premier dans le "on enter" du trigger c'est ça ?

"BlahBlah" c'est le nom de la sauvegarde du dialogue de mon PNJ (genre dl_pnj) c'est ça ?

Dans le trigger, il faut que je mette un WP dont le TAG est repris dans le script, c'est ça ?

Le resref de mon PNJ, je n'y touche pas et je le met tel quel dans le script...

Et le deuxième script je le met dans "action conséquente" à la fin du dialogue c'est ça ?



Qui a dit que j'étais lourd ?
Arff, vi, j'ai oublie la conversation...

Desole, je suis alle un peu vite : j'avais reunion.

Alors :
Le premier va effectivement dans le OnEnter du trigger, repere si l'objet qui entre est un PJ, et si c'est la premiere fois qu'il a parlé à ce PnJ. (attention : y'a un edit)

BlahBlah, c'est une variable qui gere que ton PJ ne puisse parler qu'une fois a ce PnJ

Il faut que tu cree un WP a l'endroit ou tu veux que le PNJ apparaisse, et tu met bien son Tag dans le script

Le 2eme script va effectivement dans les script de fin (donc, soit action consequente, soit fin de dial (je crois qu'il y en a un)


Voila ^^

attention, aux Edit : je rajoute le depart de conversation
tu me dis qu'il te met
Citation :
17/03/2003 20:56:13 : Erreur. 'sc_elem2' n’est pas compilé.
sc_elem2.nss(20): ERREUR : UNKNOWN STATE IN COMPILER
mais mon script fait moins de 20 lignes.

Tu n'aurais rien rajouté ou mis en forme ?

Parceque la, sans info, je peut pas aider...
Bein, le pb, c'est que le script fait 19 ligne, donc soit y'a un include, soit tu as des espae que je ne peut pas compter.

Peut tu me dire, dans ton script, sur ton toolset, ce qui figure a la ligne 20?
La ligne 20 est vide.

Bon, j'ai refais un copier/coller de ton script, et maintenant voilà ce qu'il me dit :

18/03/2003 12:27:54 : Erreur. 'sc_elem2' n’est pas compilé.
sc_elem2.nss(18): ERREUR : VARIABLE DEFINED WITHOUT TYPE



voilà la ligne en question :

SetLocalInt(oPC,"BlahBlah",TRUE);

Bien sur...


Je merite des baffes :

Le oPC n'est pas declaré dans le void concerné, mais au dessus...

change, et met ca :

Code PHP:

SetLocalInt(oObj,"BlahBlah",TRUE); 

Desole pour cette erreure grossiere...
(un jour, je vaios m'installer un compilateur nwn au boulot, je ferait moins d'erreur aussi stupides ^^
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés