La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 16:10:52
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Viduc de Papironda Grand Chevalier Messages: 119 |
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 :
void main() { object oMur=GetObjectByTag("VP_PiegeMur_1"); location lLoc=GetLocation(GetWaypointByTag("VP_Pass_Mur1_1")); AssignCommand(oMur,ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE,1.0,10.0)); } 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 | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
lylver Héros Messages: 274 |
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 | |
Viduc de Papironda Grand Chevalier Messages: 119 |
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)); } 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); } } 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 | |
-MeteZ- Seigneur Messages: 205 Localisation: Région Parisienne (95) |
mdr, c'est trop bourrin 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 | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
edisnotdead Grand Chevalier Messages: 132 |
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 } } |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
-Nog- Chevalier Messages: 81 |
ça va dans le Onuse ou le onenter?
|
Revenir en haut | |
gussometre Ecuyer Messages: 56 Localisation: Petit asteroïde dans le finistére sud |
onused je suppose(vu que opc est defini par getlastusedby )
_________________ N'oublions pas le proverbe:quand on a faim il faut manger! |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
-Nog- Chevalier Messages: 81 |
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 | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
edisnotdead Grand Chevalier Messages: 132 |
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 } } 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 | |
-Nog- Chevalier Messages: 81 |
parfais, j'avais pas regardé le script j'avais essayé de le mettre dans le onused du mur merci pour la petite explication
|
Revenir en haut | |
José Novice Messages: 18 |
Une petite question stupide on le prend où le mur??
|
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
José Novice Messages: 18 |
Moi j'aimerais faire apparaitre et disparaitre le mur a intervalle regulier comment faire? Je suis vraiment nul en script
|
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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