La teleportation, ca manque un peut non?...

Répondre
Partager Rechercher
Voila g une petite idée mais je suis toujours incapable de mettre ca en pratique sur script :

Si possible je verrais bien un parchemin ki ouvre un dialogue (unikement utilisable par magicien et sorcier), et propose plusieurs lieux pour la teleportation. il ce detruirait apres utilisation, et permettrait la teleportation a tout les membres du groupe sur une aire d effet (c la ke ca se corse).

Sinon j avais trouvé un truc interressant mais il fallait modifier les script du module, et j utilise le HCR donc impossible a utiliser...

Ki a une solution ?...
Pour la fenêtre de dialogue, inspire toi de l'emote wand.
Pour la téléportation en elle-même, il va falloir créer des waypoints directement accessibles via ton script.
Pour l'effet de groupe, tu devrais t'inspirer du script de guérison à la Aribeth qui permet d'appliquer l'effet à tous les membres du groupe (PJ, PNJ, familiers/invocs).
En effet bonne idée, mais bon je voyais un truc plus simple avec des lieux de teleportation (WP), et un choix multiple dans le dialogue...

Un type comme RAT (mRaisin, jedhai..), peuvent faire ca facilement je pense... (si c pas un cris du coeur ca !!! )
ouai enfin si vous pouvez faire aussi avec les balise a poser c top (voila les mage qui si ca send le rouci il se teleporte dans la maison qu'il on acheté sur le module ^^ grace a une balise qu'il ont placé dedans)
Avec le script generator je pourrais preske me débrouiller mais je ne c pas activer un dialogue avec un parchemin...

Et bon g pas l impression ke ce post attire l attention des scripteur.
ba, si, mais c facil
tu sais déclencher un dialogue avec un objet ?
si non, y a un tut decu me semble
alors dans la réponse qui va bien, y un onglet "action conséquentes" avec un emplacement pour le script ouala
tu as du mal lire Reyan, je ne c pas déclencher de dialogue avec un objet... sinon mettre les scriptes dans un dialogue je savais... mais ton intervention prouve ke tu t intéressé a mon problème l espace d une seconde... Merci
mais bien sur qu'on s'y interesse a ton pb (même si je persiste a dire que tu pourrais faire bcp toi même en te mettant au peu au script )

bon, je sais pas comment font les autres, mais moi j'en ai besoin hier .. enfin cette nuit ... fin y a pas longtemps quoi, et g trouvé

Code PHP:

AssignCommand(oPCActionStartConversation(oPC"dia")); 

oui, le pc dialogue avec lui même
bon, c p-e pas ca, mais bon ... ca ca marche, faut juste faire gaffe quand on veux récupérer l'objet qui déclenche le dialogue dans des scripts après

donc pour le oPC tu fais un "GetLastUsedBy" par exemple, et pour le dialogue, tu le nomme comme tu veux

faut pas t'apitoyer comme ca, un grand duc comme toi
Citation :
Provient du message de DarkShaman
ouai enfin si vous pouvez faire aussi avec les balise a poser c top (voila les mage qui si ca send le rouci il se teleporte dans la maison qu'il on acheté sur le module ^^ grace a une balise qu'il ont placé dedans)
ba, de tout facon ca reste relativement des WP tt ca non ?
donc bon ...
après on peut finacer sur la manière de récupere les wp, mais la base c ca je crois :
Code PHP:

void main()
{
    
object oPC GetTonPCAvecLeGetQuiTeBotte();
    
object oWp GetObjectByTag("TAG_DU_WP");
    
location lLoc GetLocation(oWp);
    
//tous les effets qui vont bien dont tu a envi, si tu en met tu met un "DelayCommand(1.0, "devant le assign command et une parenthese a la fin ^_^ 
    
AssigneCommand(oPCActionJumpToLocation(lLoc));
//zou, ne passez pas par la case depart etc. ca permet de sauter d'une zone a l'autre aussi

bon, et pour ton parchemin, je te met le script en entier, a mettre dans le OnActivateItem du module

Code PHP:

void main()
{
   
object oItem GetItemActivated();
   
object oPC GetItemActivator();
   
string sItem GetTag(oItem);
      
   if(
sItem == "TAG_DU_PARCHEMIN")
      {
      
AssignCommand(oPCActionStartConversation(oPC"dia"));
      }


si y a déjà un script (surement si c HCR) faut bieser, je te donne un truc sure de marcher : tu change le nom des varable en un truc idiot qui n'est surement pas utilisé, et tu copie tt sans le void main() { et sans la } finale, genre :

Code PHP:

//a mettre entre les balises "void main() {" et "}" (finale) d'un onactivateitem (oui je sais, c pas des balises, c pour faire simple ^_^

   
object oMachin GetItemActivated();
   
object oIdiot GetItemActivator();
   
string sMachin GetTag(oMachin );
      
   if(
sMachin == "TAG_DU_PARCHEMIN")
      {
      
AssignCommand(oIdiot ActionStartConversation(oIdiot "dia"));
      } 
et ouala, quand tu utiliseras ton parchemin créé dans la palette, en lui mettant un pouvoir unique utilisable à l'infini, ca lanceras le dia

ouala, hope ca va aider
t'aurais pas icq ? non ? ba prend le
bon, alors l'utilisation d'objets spéciaux dans ce genre, necessitant des scripts, repose sur un truc vachement cool de nwn : les pouvoirs uniques.
quand tu créé un objet, tu peux lui donner des propriété magiques, celon l'objets, tu a telles ou telles capacite, y a une qu'on a tt le tps me semble "lancer un sort"
pour avoir accès a tt ca, tu cré un objet personnalise, tu l'edite, et dans l'onglet propriété, t'as tt ce qu'il faut
dans la categorie lancer un sort, t'as "pouvoir unique" et "pouvoir unqiue sur soi uniquement" toi c "pouvoir unique sur soi uniquement"
quand tu chercheras a l'utiliser dans le jeu, tu activeras "l'event" "onactivateitem", comme quand tu entre dans un trigger, c "onenter"
et c la dedans que tu met le script, dans le onactivateitem du module

c plus clair ? sinon icq

(moi zaime pas les mp dsl )
ok j avais donc précisé au début ke j utilisais le HCR et ke j avais trouvé le script suivant :

Code PHP:

void main()
{
object oItem=GetItemActivated();
object oActivator=GetItemActivator();
object oCible GetItemActivator();
effect eVisual EffectVisualEffect(VFX_FNF_FIRESTORM);
effect eVisual1 EffectVisualEffectVFX_FNF_IMPLOSION );
effect eVisual2 EffectVisualEffectVFX_FNF_SUMMON_CELESTIAL  );



if(
GetTag(oItem) == "tag du parchemin")
 {



   
DelayCommand (2.9,
                         
AssignCommand(GetItemActivator(),
   
JumpToLocation(GetLocation(GetObjectByTag("tag du lieu de destination")))));
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisual1oCible);
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisual2oCible);
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisualoCible);
 }

mais dans le on activate de mon module ya déjà un script des HCR alors comment l incorporer ??
Citation :
Provient du message de Reyan
si y a déjà un script (surement si c HCR) faut bieser, je te donne un truc sure de marcher : tu change le nom des variable en un truc idiot qui n'est surement pas utilisé, et tu copie tt sans le void main() { et sans la } finale, genre :

Code PHP:

//a mettre entre les balises "void main() {" et "}" (finale) d'un onactivateitem (oui je sais, c pas des balises, c pour faire simple ^_^

   
object oMachin GetItemActivated();
   
object oIdiot GetItemActivator();
   
string sMachin GetTag(oMachin );
      
   if(
sMachin == "TAG_DU_PARCHEMIN")
      {
      
AssignCommand(oIdiot ActionStartConversation(oIdiot "dia"));
      } 
et ouala, quand tu utiliseras ton parchemin créé dans la palette, en lui mettant un pouvoir unique utilisable à l'infini, ca lanceras le dia

ouala, hope ca va aider
c marqué là
Bon ok tout marche mais bien evidement, je suis perfectionniste, et j aimerais savoir comment fait on a partir de ce bo script pour ke le groupe entier (dans un rayon déterminé style 50m) soit téléporté avec le mage ???

Code PHP:

void main()
{

object oPC GetPCSpeaker();

AssignCommand(oPCClearAllActions());

object oTarget;
oTarget GetWaypointByTag("TPVENDEN");

DelayCommand(3.0AssignCommand(oPCActionJumpToObject(oTarget)));

oTarget oPC;

ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_IMP_UNSUMMON), GetLocation(oTarget));


Code PHP:

void main()
{
//------------- editable :
//ici tu change la distance maximale entre les Pj et ce qui appele le script ^_^
float fBet 50.0;
//-------------


object oTarget GetWaypointByTag("TPVENDEN");
object oPC GetPCSpeaker();
object oPJ GetFirstFactionMember(oPC);
while(
GetIsObjectValid(oPJ))
   {
    
float fDistance GetDistanceBetween(oPJoPC);
        if((
fDistance <= fBet) && (GetArea(oPJ) == GetArea(oPC) ))
          {
         
AssignCommand(oPJClearAllActions());
         
DelayCommand(3.0AssignCommand(oPJActionJumpToObject(oTarget)));
         
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_IMP_UNSUMMON), GetLocation(oPJ));
          }
     
oPJ GetNextFactionMember(oPC);
    }
AssignCommand(oPCClearAllActions());

DelayCommand(3.0AssignCommand(oPCActionJumpToObject(oTarget)));

ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_IMP_UNSUMMON), GetLocation(oPC));


le principe c'est de faire une boucle qui passe les PC en revu et quand ils sont a moins de 50 m ils sont téléporté aussi ..
bon c pas etsté, même pa compilé si y a une faute, préviens
et ouala

edit : ca compil

edit 2 : déplacer seulement le groupe, doit manquer les familier encore, vais voir le sticky

edit 36000 : bon, ba la ca devrait marcher
edit 36001 : c ds le bon sens maintenant
he galère, c tjrs comme ca, je te pari qu'il en est truffé de co***** ds le genre
bon, je le fais compiler et j'edit
bon, alors

ERREUR : PARSING VARIABLE LIST

ca c souvent une erreur d'écriture, le plus souvent une majuscule, ca loupe pas, la c t mi GetFirstPc au lieu de GetFirstPC

ERREUR : VARIABLE DEFINED WITHOUT TYPE

ca ca veut dire que y a une variable qu'il ne reconnait pas : elle n'a jamais recu son "string" "int" ou "float" etc. devant
encore généralement des ereur d'écriture, encore une majuscule, il connait oPJ mais pas oPj ...

ERREUR : VARIABLE DEFINED WITHOUT TYPE

re bellotte oPI au lieu de oPJ

et ouala
j'edit el post au dessus
Hum ... j'ai pas tout lu, c'est mal je sais ... Mais si le pb est de téléporter un groupe de persos, d'abord y a un persistant de script qui s'appelle "Déplacer tout les persos en une fois" et dans ce dernier la boucle est faite avec un GetNextFactionMember, le premier persos étant trouvé avec un getfirstpc. Me demandez pas pourquoi faut faire du nextfaction member j'en sais rien à part qu'il y avait l'air d'avoir un pb sinon

Le script du persistant est testé et approuvé. Lors de son utilisation j'ai pu constater qu'un perso assis n'est pas téléporté. Je crois que c'est parce qu'un perso assis ne peut faire qu'une seule action, c'est se lever.
chavais bien que c t mis qq part
alors le coup du
Citation :
nextfaction
c parce que c le gourpe qu'on bouge, aps tous les PC connecté, je corrige, pis le cop du assis, un clearallactions ca suuffit pas ? sinon on fait un test savoir si l'est assis
je corrige et je vais voir le sticky
Répondre

Connectés sur ce fil

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