La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 18/05/2024 22:38:00


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 04/05/2006 15:21:06 Sujet du message : Les murs bougent

Salut à tous, voilà j'aimerais faire une salle piégée, quand on entre les deux murs opposés se rapprochent. J'ai trouvé ce plaçable:



Je me dis qu'il doit y avoir une animation lié à celui ci, mais je ne sais pas où la trouver. J'ai essayé de faire un script comme ça:

NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


que j'ai mit dans le onenter de la zone mais ça marche pas (je m'en doutais), j'ai aussi essayé avec la commande actionmovetolocation mais pareil.... si quelqu'un a une idée sur le sujet....

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 04/05/2006 15:36:45 Sujet du message :

en faite ça marche!!!RazzRazzRazzRazzRazz

Il suffisait de le le mettre en utilisable et non statique^^^bon le seul problème c'est qu'il passe à travers le joueur et qu'il ne le pousse pas... mais ça je devrais pouvoir trouver...Very HappyVery HappyVery Happy

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 04/05/2006 16:02:18 Sujet du message :

Bon forcément j'ai des pbs quand même^^.... je n'arrive pas à faire varier la vitesse de l'animation... si quelqu'un sait pourquoi...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 04/05/2006 16:16:16 Sujet du message :

Ca ressemble à un plaçable CEP je me trompe ?
Dans ce cas il va falloir que tu gères (par destruction/création) les "gate_block" invisibles qui empêche le passage.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 04/05/2006 18:33:59 Sujet du message :

Oui je vois ce que tu veux dire... mais ce ne sera pas pour de suite que je vais me plonger dans ce genre de truc^^...

Pour l'instant j'ai opté pour une formule plus lourde mais qui marche... j'ai fait un petit couloir, avec 18 Waypoints qui se suivent... puis je créer un "mur" (cep) toute les 30 scs sur les wp... et ça fonctionne comme je le désire, les joueurs sont obligés de reculer ... c'est un peu lourd mais bon...

voici l'image de départ avec les wps:


au démarrage:


a mi parcour:


et pour finir:


J'ai fait ceci comme script:

dans le onenter de la zone:
NWScript :
void main()
{
DelayCommand(1.0,ExecuteScript("vp_create_mur1",OBJECT_SELF));
DelayCommand(10.0,ExecuteScript("vp_create_mur1",OBJECT_SELF));
DelayCommand(20.0,ExecuteScript("vp_create_mur1",OBJECT_SELF));
DelayCommand(30.0,ExecuteScript("vp_create_mur1",OBJECT_SELF));
DelayCommand(40.0,ExecuteScript("vp_create_mur1",OBJECT_SELF));
DelayCommand(50.0,ExecuteScript("vp_create_mur1",OBJECT_SELF));
DelayCommand(59.0,ExecuteScript("vp_move_mur2",OBJECT_SELF));

}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

la dernière commande renvoyant sur un script indentique qui renvoit lui même au script vp_move_mur3, afin de ne pas dépasser 60 sc par script...

et ceci:

NWScript :
void main()
{
object oLoc1=GetObjectByTag("VP_Pass_Mur1_1");
object oLoc2=GetObjectByTag("VP_Pass_Mur1_2");
object oLoc3=GetObjectByTag("VP_Pass_Mur1_3");
object oLoc4=GetObjectByTag("VP_Pass_Mur1_4");
object oLoc5=GetObjectByTag("VP_Pass_Mur1_5");
object oLoc6=GetObjectByTag("VP_Pass_Mur1_6");
object oLoc7=GetObjectByTag("VP_Pass_Mur1_7");
object oLoc8=GetObjectByTag("VP_Pass_Mur1_8");
object oLoc9=GetObjectByTag("VP_Pass_Mur1_9");

int nVar1=GetLocalInt(oLoc1,"VarMur");
int nVar2=GetLocalInt(oLoc2,"VarMur");
int nVar3=GetLocalInt(oLoc3,"VarMur");
int nVar4=GetLocalInt(oLoc4,"VarMur");
int nVar5=GetLocalInt(oLoc5,"VarMur");
int nVar6=GetLocalInt(oLoc6,"VarMur");
int nVar7=GetLocalInt(oLoc7,"VarMur");
int nVar8=GetLocalInt(oLoc8,"VarMur");
int nVar9=GetLocalInt(oLoc9,"VarMur");

location lLoc1=GetLocation(GetWaypointByTag("VP_Pass_Mur1_1"));
location lLoc2=GetLocation(GetWaypointByTag("VP_Pass_Mur1_2"));
location lLoc3=GetLocation(GetWaypointByTag("VP_Pass_Mur1_3"));
location lLoc4=GetLocation(GetWaypointByTag("VP_Pass_Mur1_4"));
location lLoc5=GetLocation(GetWaypointByTag("VP_Pass_Mur1_5"));
location lLoc6=GetLocation(GetWaypointByTag("VP_Pass_Mur1_6"));
location lLoc7=GetLocation(GetWaypointByTag("VP_Pass_Mur1_7"));
location lLoc8=GetLocation(GetWaypointByTag("VP_Pass_Mur1_8"));
location lLoc9=GetLocation(GetWaypointByTag("VP_Pass_Mur1_9"));

    if (nVar1==1)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc1,FALSE);
    DestroyObject(oLoc1);
        }
    if (nVar2==1&&nVar1==0)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc2,FALSE);
    DestroyObject(oLoc2);
        }
    if (nVar3==1&&nVar2==0)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc3,FALSE);
    DestroyObject(oLoc3);
        }
    if (nVar4==1&&nVar3==0)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc4,FALSE);
    DestroyObject(oLoc4);
        }
    if (nVar5==1&&nVar4==0)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc5,FALSE);
    DestroyObject(oLoc5);
        }
    if (nVar6==1&&nVar5==0)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc6,FALSE);
    DestroyObject(oLoc6);
        }
    if (nVar7==1&&nVar6==0)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc7,FALSE);
    DestroyObject(oLoc7);
        }
    if (nVar8==1&&nVar7==0)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc8,FALSE);
    DestroyObject(oLoc8);
        }
if (nVar9==1&&nVar8==0)
        {
    CreateObject(OBJECT_TYPE_PLACEABLE,"vp_piegemur_1",lLoc9,FALSE);
    DestroyObject(oLoc9);
        }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


et un deuxième identique avec les waypoints qui changent... (ceci par soucis de flemme ça allait plus vite comme ça... mais on peut en faire qu'un...)

Voilà, l'ensemble marche... ceci dit si y'en a qu'on des idées la dessus ou qui verrait comment on peut alléger le script....

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 04/05/2006 18:57:03 Sujet du message :

mdr, c'est trop bourrin Razz mais c'est la seule solution si aucune fonctions nwn ne permet de faire ca autrement.
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 04/05/2006 19:51:05 Sujet du message :

Very HappyVery HappyVery HappyVery Happy tu m'étonnes que c'est bourrin^^ mdr!!! je suis assez d'ac avec toi... mais bon tant que ça fonctione^^.... mdr

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 05/05/2006 05:55:46 Sujet du message :

j ai fais ca y a un moment
pas besoin de waipoint just le placeable de depart et ca roule ^^

NWScript :
#include "x0_i0_position"

void main()
{
object opc =GetLastUsedBy();
object oArea = GetArea(opc);
  int mur = GetLocalInt(GetArea(opc),"mur");
object louser = GetObjectByTag("tag du placeable sans le 0 qui faudra rajouter a la fin sur l objet" + IntToString(mur));
//exemple "mur" et sur l objet le tag sera "mur0"
float fOrient = GetFacing(louser);
int murtemp = mur +1;
int ancienmur = mur - 1;
float distance = 0.5;//distance de progression
vector vVect = GetPosition(louser);
vector vloca = GetChangedPosition(vVect,distance ,fOrient );
location lLoc = Location(oArea,vloca,fOrient);
if (mur <=20 )//nombre de replication de mure
{
CreateObject(OBJECT_TYPE_PLACEABLE,"test",lLoc,FALSE,"tag du placeable" + IntToString(murtemp));
SetLocalInt( GetArea(louser) ,"mur",murtemp);
DestroyObject(GetObjectByTag("tag du placeable" + IntToString(ancienmur)),0.0);
DelayCommand(3.0 ,ExecuteScript("nom de se script",OBJECT_SELF));//pour qui se rappelle a lui meme ;temp de progression
}
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 05/05/2006 15:16:30 Sujet du message :

exellent!!! j'avais vu ton script mais je n'y comprenais pas tout, mais là je vois mieu, je vais tester ça.... ça a l'air d'être ce qu'il me faut....

Merci:grin:Very HappyVery Happy

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-Nog-
Chevalier
Inscrit le: 25 Jan 2006
Messages: 81
Répondre en citant
Posté le : 18/05/2006 16:29:13 Sujet du message :

ça va dans le Onuse ou le onenter?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
gussometre
Ecuyer
Inscrit le: 11 Jan 2006
Messages: 56
Localisation: Petit asteroïde dans le finistére sud
Répondre en citant
Posté le : 18/05/2006 19:27:31 Sujet du message :

onused je suppose(vu que opc est defini par getlastusedby Very Happy )
_________________
N'oublions pas le proverbe:quand on a faim il faut manger!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 18/05/2006 23:45:18 Sujet du message :

j'ai pas encore eu le temps de tester le script de edisnotdead, mais si c'est sur un onused je sais pas ou, moi mon script je l'ai mit sur le onenter de la zone....

Mais à voir

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-Nog-
Chevalier
Inscrit le: 25 Jan 2006
Messages: 81
Répondre en citant
Posté le : 29/06/2006 10:40:21 Sujet du message :

j'ai du faire une erreur parce que ça ne marche pas chez moi, et serait il possible de faire bouger le mur a l'aide d'un levier ? si oui vous pourriez m'expliquer la démarche sans me mettre le code pour que j'essaye de le faire ? merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 29/06/2006 10:47:42 Sujet du message :

bah juste de tête comme ça je pense qu'en mettant l'idée du script sur le onused du levier (en n'oubliant pas que celui ci doit être utilisable...).

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 01/07/2006 08:29:46 Sujet du message :

heuuu..mon script est fait pour un levier
bon petit tuto pour ce script ^^
prend l objet mure et met le sur ta mappe
clik droit dessus>propriété>general ou autre:
met lui comme tag mur0 (0 etant zero le chiffre)
met un levier sur ta map
clike droit dessus >propriété>script
met ce script dans son onused
NWScript :
#include "x0_i0_position"

void main()
{
object opc =GetLastUsedBy();
object oArea = GetArea(opc);
  int mur = GetLocalInt(GetArea(opc),"mur");
object louser = GetObjectByTag("mur" + IntToString(mur));
//exemple "mur" et sur l objet le tag sera "mur0"
float fOrient = GetFacing(louser);
int murtemp = mur +1;
int ancienmur = mur - 1;
float distance = 0.5;//distance de progression
vector vVect = GetPosition(louser);
vector vloca = GetChangedPosition(vVect,distance ,fOrient );
location lLoc = Location(oArea,vloca,fOrient);
if (mur <=20 )//nombre de replication de mure
{
CreateObject(OBJECT_TYPE_PLACEABLE,"test",lLoc,FALSE,"tag du placeable" + IntToString(murtemp));
SetLocalInt( GetArea(louser) ,"mur",murtemp);
DestroyObject(GetObjectByTag("mur" + IntToString(ancienmur)),0.0);
DelayCommand(3.0 ,ExecuteScript("murbouge",OBJECT_SELF));//pour qui se rappelle a lui meme ;temp de progression
}
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

enregistre le script avec pour nom murbouge
coche le comme utilisable et verifie que a l emplacement onused de ses script ,soit marqué murbouge

et voila

en esperant que j ai été clair
bonne prog
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-Nog-
Chevalier
Inscrit le: 25 Jan 2006
Messages: 81
Répondre en citant
Posté le : 01/07/2006 10:44:38 Sujet du message :

parfais, j'avais pas regardé le script j'avais essayé de le mettre dans le onused du mur Very Happy merci pour la petite explication
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
José
Novice
Inscrit le: 30 Juin 2006
Messages: 18
Répondre en citant
Posté le : 05/07/2006 18:49:10 Sujet du message :

Une petite question stupide on le prend où le mur??Confused
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 05/07/2006 19:51:02 Sujet du message :

les deux que j'ai utilisé font partit du cep... donc si tu l'as dans les placeable/Personnalisé je crois

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
José
Novice
Inscrit le: 30 Juin 2006
Messages: 18
Répondre en citant
Posté le : 05/07/2006 23:21:58 Sujet du message :

Moi j'aimerais faire apparaitre et disparaitre le mur a intervalle regulier comment faire? Je suis vraiment nul en script Laughing
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 06/07/2006 00:24:44 Sujet du message :

en utilisant ou le onheartbeat de la zone, ou des delaycommande, des boucles ou autre, tout dépend de ce que tu veux en faire et surtout comment tout se passe...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 54.035ms