Voir le sujet précédent ¤
Voir le sujet suivant
|
Auteur |
Message |
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
|
Posté le : 09/07/2006 21:55:39 Sujet du message :
chevalier blanc a écrit :
EDIT : Citation :En fait il n'existe qu'un seul casque qui permet de respirer sous l'eau, donc il faut se servir de cet élément pour construire ton intrique : en plus je l'avais décrit tout en haut, à croire qu'on s'est mal compris Non tu etait assez clair sur le sujet, ce que j'entendait par cela c'est que tu a tout concentrer sur le hb de la zone. Moi je te suggère de travailler sur le casque et les variable locales. Tu n'y arrive pas ce n'est pas grave, on est ici pour t'aider, alors ce que je te propose, c'est de poster ici ce que tu n'est pas parvenu à compiler, a plusieur, on a souvent plus de chance de trouver que tout seul... _________________ De Tenebris Lumen Fulget.......
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 09/07/2006 23:30:40 Sujet du message :
Ok ok ok... Travailler sur les variables locales...
Bon pour tout avouer je suis un bide en script, ce que je n'arrivais pas à compiler c'était un travail sur le hb... car les variables locales , j'y connais un peu rien du tout.
(pour te dire j'arrive même pas à faire un interrupteur sur une zone qui ouvre une porte sur une autre zone... )
|
|
Revenir en haut |
|
|
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
|
Posté le : 10/07/2006 18:36:20 Sujet du message :
Arrffff désolé j'étais partit quelques jours.... bien oui en effet pour le nommination du casque j'avais zappé mais il suffit de le rajouter en condition en appelant son tag...
Et pour le reste je vois ça ds la soirée ou demain si j'ai pas le courage^^...
A++
Viduc _________________
|
|
Revenir en haut |
|
|
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
|
Posté le : 10/07/2006 21:29:41 Sujet du message :
Voilà, chose promise, chose due...
NWScript :void main() { object oPC= GetFirstObjectInArea(); while( oPC!= OBJECT_INVALID) { if( GetIsPC( oPC)) { object oCasque= GetItemInSlot( INVENTORY_SLOT_HEAD, oPC); effect eEffect1 = EffectVisualEffect( VFX_DUR_PROTECTION_GOOD_MINOR); effect eEffect2 = EffectVisualEffect( VFX_FNF_SMOKE_PUFF); effect eEffect3 = EffectMovementSpeedDecrease( 50); if( GetTag( oCasque)== "vp_casque") { ApplyEffectToObject( DURATION_TYPE_PERMANENT, eEffect1, oPC); ApplyEffectToObject( DURATION_TYPE_INSTANT, eEffect2, oCasque); ApplyEffectToObject( DURATION_TYPE_TEMPORARY, ExtraordinaryEffect( eEffect3), oPC , 6.0); } else { int nTemps= GetLocalInt( oPC, "temps"); int nCons= GetAbilityScore( oPC, ABILITY_CONSTITUTION); int nMax= nCons+ 20; ApplyEffectToObject( DURATION_TYPE_TEMPORARY, ExtraordinaryEffect( eEffect3), oPC , 6.0); if( nTemps< nMax/ 4) { nTemps= nTemps+ 1; FloatingTextStringOnCreature ( "vous retenez votre respiration", oPC); DeleteLocalInt( oPC, "temps"); SetLocalInt( oPC, "temps", nTemps); } if(( nTemps>= nMax/ 4)&&( nTemps< nMax/ 2)) { nTemps= nTemps+ 1; FloatingTextStringOnCreature ( "vous avez du mal a retenir votre respiration", oPC); DeleteLocalInt( oPC, "temps"); SetLocalInt( oPC, "temps", nTemps); } if(( nTemps>= nMax/ 2)&&( nTemps< nMax)) { nTemps= nTemps+ 1; FloatingTextStringOnCreature ( "vous suffoquez!!", oPC); DeleteLocalInt( oPC, "temps"); SetLocalInt( oPC, "temps", nTemps); } if( nTemps== nMax) { FloatingTextStringOnCreature ( "", oPC); DelayCommand( 3.0, ApplyEffectToObject( DURATION_TYPE_INSTANT, EffectDeath(), oPC, 1.0)); } } } oPC= GetNextObjectInArea(); } } 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.
J'ai testé chez moi tout marche, seul a priori la deuxième phrase pose pb dans le sens ou elle reste à l'écran, mais le script continue et quand vient le toure de la phrase suivante ça passe et c'est bon... je suis allé jusqu'au bout, mon perso meurt bien et tout et sans aucun bug... j'ai également rajouté un truc pour passer les immu, j'ai testé, normalement c'est bon mais hésitez pas à dire si ça marche pas chez vous... et enfin j'ai remplacer le actionspeakstring...
Voilou, j'attends vos testes^^
Viduc _________________
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 11/07/2006 00:32:56 Sujet du message :
Ca marche nettement mieux ! Vraiment un très bon boulot félicitations !
Mais cependant, avec un sort de "liberté de mouvement" j'arrive à contourner les effets du ralentissement... donc comment faire pour forcer les immunités ?
|
|
Revenir en haut |
|
|
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
|
Posté le : 11/07/2006 00:41:54 Sujet du message :
haaa???? ti jettes le sort sur toi? et si oui il fonctionne longtemps ???... si en tout cas liberté de mouvement ou autre marche là je vois pas comment faire, je crois qu'il y a un pb avec ce genre de truc... la commande que j'ai rajouté doit en résoudre une partie mais pas tout...
Viduc _________________
|
|
Revenir en haut |
|
|
Bhaalthedevil
Novice
Inscrit le: 05 Juil 2006
Messages: 10
|
Posté le : 11/07/2006 09:20:19 Sujet du message :
J'ai remarqué un petit probleme quand même : y'a t-il possibilité de mettre une ligne de commande qui arrêterais le script lorsqu'on est mort ? car en faite si on respawn (même dans une zone ou le script n'est pas actif) on remeurs :s.Je crois que ca vien de 6s du OnHeartBeat.
Ah oui , si on retourne aussi par la suite dans cette zone , çà reprend pas depuis le début , ca va directement a la ligne "Vous mourrez noyé" et donc le pj remeurs aussitôt
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 11/07/2006 09:27:03 Sujet du message :
J'avais déjà observé ce phénomène, mais je savais pas comment l'expliquer.
D'où l'intérêt d'utiliser les variables locales au lieu du HeartBeat peut être ?
|
|
Revenir en haut |
|
|
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
|
Posté le : 11/07/2006 09:35:46 Sujet du message :
je pense qu'il y a moyen de régler ça aussi.. je vois ça d'ici ce soir pas de pb^^
Viduc _________________
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 14/07/2006 11:15:40 Sujet du message :
Viduuuuuc !! Ou es tu ?
Je m'inquiète je n'ai plus de nouvelles, et je n'ai toujours pas fait mieux que toi !
|
|
Revenir en haut |
|
|
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
|
Posté le : 14/07/2006 14:33:49 Sujet du message :
Essaye ça :
script nommé comme le tag du casque :
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :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.
OnEnter des zones sous marines :
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :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.
OnExit des zones sous marines :
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :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.
Heartbeat du module :
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :void main() { object oPC = GetFirstPC(); while ( GetIsObjectValid( oPC)) { if ( GetLocalInt( oPC, "UNDERWATER")) { if (! GetLocalInt( oPC, "RESPAQUA")) { int nRespi = GetLocalInt( oPC, "RESPCOMPTEUR"); if (! nRespi) SetLocalInt( oPC, "RESPCOMPTEUR", 1+ FloatToInt( GetAbilityScore( oPC, ABILITY_CONSTITUTION)* 0.25)+ 5); else { SetLocalInt( oPC, "RESPCOMPTEUR",-- nRespi); string sMessage; switch ( nRespi) { case 1 : sMessage = ""; break; case 2 : case 3 : sMessage = "Vous suffoquez !"; break; case 4 : sMessage = ""; break; case 6 : sMessage = "Vous commencez avoir du mal a retenir votre respiration"; break; case 8 : case 10 : case 12 : sMessage = "Vous retenez votre respiration"; break; } FloatingTextStringOnCreature( sMessage, oPC); if ( nRespi == 1) DelayCommand( 2.0, ApplyEffectToObject( DURATION_TYPE_INSTANT, EffectDeath(), oPC)); } } } else if ( GetLocalInt( oPC, "RESPCOMPTEUR")) DeleteLocalInt( oPC, "RESPCOMPTEUR"); oPC = GetNextPC(); } } 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.
J'ai oublié le ralentissement, c'est pas le plus dur. Et il n'y a pas de réserves d'air sur le casque, ça peut se rajouter. L'avantage, c'est que la respiration n'est pas réinitialisée entre 2 zones sous marines, et que tu peux même mettre du coup des triggers dans tes zones où on peut retrouver son souffle (des poches d'air), sur les triggers tu inverses juste les scripts OnEnter/OnExit par rapport à la zone (en chageant la définition d'oPC du coup). Je crois que ça marche, j'ai pas testé des masses.
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 14/07/2006 20:44:32 Sujet du message :
Merci pour ces scripts... cependant si je puis me permettre deux trois remarques après test
Bon pour le temps resté sous l'eau sans casque ça marche très fort, ya pas de problème.
En revanche je n'ai pas vu de différence avec ou sans casque... on parlait bien du casque avec tag (ou resref ?) "vp_casque" ?
De plus pour le ralentissement je sais pas trop comment faire mieux que Viduc (ci dessus) et surtout comment et où l'intégrer à tes scripts... *sors s'acheter le guide du bon scripteur*
|
|
Revenir en haut |
|
|
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
|
Posté le : 14/07/2006 20:54:13 Sujet du message :
Chez moi ça marche le casque.
Il faut que le nom du script soit le même que le tag (donc ici "vp_casque" si c'est le tag du casque) et que les scripts "tagbased" soient activés (par défaut sur les modules depuis HotU) si c'est pas le cas, rajoute dans ton OnModuleLoad :
NWScript :#include "x2_inc_switches"void main() { SetModuleSwitch ( MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS, TRUE); } 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.
Pour le ralentissement, rajoute ce qu'avait fait Viduc dans le OnHeartBeat
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.
Il y a un peu mieux, mais c'est plus compliqué, je le ferai ptet un de ces jours, là déjà c'est pas mal.
|
|
Revenir en haut |
|
|
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
|
Posté le : 14/07/2006 21:58:17 Sujet du message :
Désolé gros bug informatique en ce moment chez moi (pb de réseau...), en tout cas je pense que Sith à la solution, par contre je n'ai pas le lien de tes scripts (spoiler) c'est normal ou j'ai un bug encore moi^^???
Viduc _________________
|
|
Revenir en haut |
|
|
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
|
Posté le : 14/07/2006 22:00:27 Sujet du message :
clique juste sur le texte "ceci est un spoiler bla bla"
|
|
Revenir en haut |
|
|
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77 |
Posté le : 15/07/2006 09:56:40 Sujet du message :
Bonjour a toutes et a tous.
En premier merci bien 'Sith Vicious' comme d'habitude tu fais des scripts très performants, mais peu tu nous dire où doit on changer les valeurs pour avoir plus de temps sous l'eau je trouve que le temps est très court et pour finir le ralentissement ne ce fait pas quant tu es immuniser .
Merci d'avance.
Patoche.
|
|
Revenir en haut |
|
|
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
|
Posté le : 15/07/2006 12:24:55 Sujet du message :
De rien de rien
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.
C'est cette ligne là, attention elle est dans 3 des scripts (comme quoi on peut toujours faire plus performant, d'ailleurs j'avais même pas vu le 1+x+5, ça c'est pas mal aussi au lieu de x+6).
Par contre si l'immunité empêche le ralentissement, ça on y peut rien (peut être en rajoutant du poids sur le PJ, ça ça ralentit un type avec liberté de mouvement ou bien ?)
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 15/07/2006 13:08:47 Sujet du message :
Si rajouter du poids est possible pour ralentir moi je suis pour !
Mais dans ce cas il faut tenir compte de la force du pj concerné, sinon si la formule est pour un pj avec une force de 16, un pj avec une force de 8 ne pourra meme plus bouger
Donc ça pourrait être intéressant de voir ça.
En attendant je vais tester tout ce qu'il y a plus haut. Merci beaucoup Sith
|
|
Revenir en haut |
|
|
SephirothFr
Ecuyer
Inscrit le: 24 Fév 2005
Messages: 57
Localisation: Rennes, bretagne |
Posté le : 15/07/2006 13:16:25 Sujet du message :
Popur ajouter du poid ? C'est pas possible avec un simple Déplacement ralentit ? (Question d'un gros noob en script... )
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 15/07/2006 13:27:59 Sujet du message :
Bon après test j'ai toujours le même problème... avec ou sans casque aucune différence, le temps reste le même en immersion.
J'ai placé tous les scripts au dessus comme marqué, j'ai mon script "vp_casque" (il faut bien le placer nulle part celui la, je me trompe pas ?), j'ai mon casque avec le tag "vp_casque" et j'ai le script OnModuleLoad par défaut de HotU... donc je pige pas où est le problème.
NWScript :#include "x2_inc_switches"void main() { SetModuleSwitch ( MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS, TRUE); } 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.
Cette ligne je l'ai déjà dans le script de HotU... il faut la placer au début ? Je ne pense pas que ça modifie beaucoup de chose
|
|
Revenir en haut |
|
|
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
|
Posté le : 15/07/2006 14:31:22 Sujet du message :
Heu là je vois pas du tout, si t'as le script par défaut il y a pas de raison que ça ne marche pas. Recompile tout, je vois pas du tout ^^.
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 19/07/2006 10:59:53 Sujet du message :
Je reviens à la charge... parce qu'après avoir tout recompilé tout revérifier eh bien... rien n'a changé.
Cependant j'ai remarqué un truc qui j'espère pourra vous donner une indication.
Quand on déséquipe et on rééquipe le casque, (dans mon cas) le compte à rebours est réinitialisé... cela voudrait dire en fait que le script ci dessus donne une réserve d'air au pj, c'est tout, pas une véritable respiration sous marine.
PS : et pour augmenter le poids sur un joueur on fait comment dites, dites, dites, dites ?
|
|
Revenir en haut |
|
|
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
|
Posté le : 19/07/2006 13:21:22 Sujet du message :
Ben si le compteur est réinitialisé, c'est que ça marche en gros non ? To joueur se noie quand même si il a le casque ou bien ?
Si tu veux que le compteur ne soit pas remis à 0 quand on équipe le casque, faut virer cette ligne dans le script du casque ("vp_casque") :
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.
Là le casque sert à respirer librement sous l'eau, c'est pas une réserve d'air, pour ça il faudrait fixer une variable sur le casque et la décrémenter quand le PJ est sous l'eau, si c'est ce que tu veux. J'ai ptet pas saisi comment tu veux que ça fonctionne...
Pour le poids c'est compliqué, j'ai un peu pas le courage de le faire.
En fait, il faut l'adapter à la force du joueur, coller une propriété sur un objet de l'inventaire, indroppable de préférence, pour l'augmentation du poids (et c'est crétin, mais sans modifier le 2da, seuls les objets "divers" peuvent recevoir cette propriété...). Le problème étant qu'il faudrait vérifier et ajuster l'augmentation du poids à chaque fois que le PJ ramasse un objet, pour que la limitation de vitesse soit correcte...
|
|
Revenir en haut |
|
|
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline |
Posté le : 19/07/2006 13:52:57 Sujet du message :
Bon après test de ton script (merci pour une reponse aussi rapide ), je crais qu'il y ait un couac.
En fait avec ton script le casque n'a plus aucune utilité puisque le compteur continue de décrémenter même avec le casque.
Mon idée départ était en fait que, quand le pj est équipé de son casque, il peut rester à loisir aussi longtemps qu'il le désire sous l'eau.
(Pour le poids a la limite c'est pas grave je me debrouillerai autrement, cependant si une ame charitable veux bien m'aider je dit pas non ! ^^)
|
|
Revenir en haut |
|
|
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
|
Posté le : 19/07/2006 14:06:18 Sujet du message :
j'ai essayé sur mon test, j'ai changé cette ligne (de "vp_casque"), ça venait ptet de là :
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.
voila mon module de test : ici
Dis moi si ça fonctionne différement de chez toi, moi ça me semble correct, le casque perme t de rester sous l'eau, le compteur n'est plus remis à 0 quand tu l'enlève. (l'eau c'est le tileset outreterre, et fait pas gaffe aux trucs qui trainent dans la zone de départ à part le casque c'est d'autres tests...)
|
|
Revenir en haut |
|
|
|