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 11:29:02


  Page 2 sur 3 ¤ Aller à la page Précédente  1, 2, 3  Suivante

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
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 Surprised Very Happy
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...Very Happy
_________________
De Tenebris Lumen Fulget.......
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 09/07/2006 23:30:40 Sujet du message :

Ok ok ok... Travailler sur les variables locales... Shocked

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.Surprised

(pour te dire j'arrive même pas à faire un interrupteur sur une zone qui ouvre une porte sur une autre zone...Embarassed)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
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 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 : 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);//modifie la vitesse du joueur

                }
            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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Bhaalthedevil
Novice
Inscrit le: 05 Juil 2006
Messages: 10
Répondre en citant
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
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. Smile

D'où l'intérêt d'utiliser les variables locales au lieu du HeartBeat peut être ? Surprised
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 14/07/2006 11:15:40 Sujet du message :

Viduuuuuc !! Ou es tu ? Very Happy

Je m'inquiète je n'ai plus de nouvelles, et je n'ai toujours pas fait mieux que toi ! Embarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
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 :
#include "x2_inc_switches"
void main()
{
    int nEvent = GetUserDefinedItemEventNumber();
    if (nEvent == X2_ITEM_EVENT_EQUIP)
    {
        object oPC = GetPCItemLastEquippedBy();
        SetLocalInt(oPC,"RESPAQUA",TRUE);
        DeleteLocalInt(oPC,"RESPCOMPTEUR");

    }
    else if (nEvent == X2_ITEM_EVENT_UNEQUIP)
    {
        object oPC = GetPCItemLastUnequippedBy();
        DeleteLocalInt(oPC,"RESPAQUA");
        if (GetLocalInt(oPC,"UNDERWATER"))
            SetLocalInt(oPC,"RESPCOMPTEUR",1+FloatToInt(GetAbilityScore(oPC,ABILITY_CONSTITUTION)*0.25)+5);
    }
    SetExecutedScriptReturnValue();
}
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 :
void main()
{
    object oPC = GetEnteringObject();
    if (!GetIsPC(oPC) || GetIsDM(oPC)) return;
    SetLocalInt(oPC,"UNDERWATER",TRUE);
    if (! GetLocalInt(oPC,"RESPCOMPTEUR"))
    SetLocalInt(oPC,"RESPCOMPTEUR",1+FloatToInt(GetAbilityScore(oPC,ABILITY_CONSTITUTION)*0.25)+5);
}
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 :
void main()
{
    object oPC = GetExitingObject();
    DeleteLocalInt(oPC,"UNDERWATER");
}
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")) //on prend ceux qui sont sous l'eau
        {
            if (!GetLocalInt(oPC,"RESPAQUA")) //ils n'ont pas le casque
            {
                int nRespi = GetLocalInt(oPC,"RESPCOMPTEUR");
                if (!nRespi) //compteur pas en marche (devrait pas arriver mais bon...)
                SetLocalInt(oPC,"RESPCOMPTEUR",1+FloatToInt(GetAbilityScore(oPC,ABILITY_CONSTITUTION)*0.25)+5);
                else
                {
                    SetLocalInt(oPC,"RESPCOMPTEUR",--nRespi); //on decremente le compteur
                    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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
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 Smile

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
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);
//suite de ton script

}
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 :


if (GetLocalInt(oPC,"UNDERWATER")) //on prend ceux qui sont sous l'eau
{
//rajoute
effect eEffect3 = EffectMovementSpeedDecrease(50);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,SupernaturalEffect(eEffect3),oPC , 6.0);//modifie la vitesse du joueur
/* warning: 1 unclosed block {} */
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 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 : 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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 14/07/2006 22:00:27 Sujet du message :

clique juste sur le texte "ceci est un spoiler bla bla" Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
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 Sad .

Merci d'avance.

Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 15/07/2006 12:24:55 Sujet du message :

De rien de rien

NWScript :
SetLocalInt(oPC,"RESPCOMPTEUR",1+FloatToInt(GetAbilityScore(oPC,ABILITY_CONSTITUTION)*0.25)+5);
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 15/07/2006 13:08:47 Sujet du message :

Si rajouter du poids est possible pour ralentir moi je suis pour ! Smile

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 Wink

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
SephirothFr
Ecuyer
Inscrit le: 24 Fév 2005
Messages: 57
Localisation: Rennes, bretagne
Répondre en citant
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... Razz )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
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);
//suite de ton script

}
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 Surprised
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
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 ? Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
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 :
#include "x2_inc_switches"
void main()
{
    int nEvent = GetUserDefinedItemEventNumber();
    if (nEvent == X2_ITEM_EVENT_EQUIP)
    {
        object oPC = GetPCItemLastEquippedBy();
        SetLocalInt(oPC,"RESPAQUA",TRUE);
        //DeleteLocalInt(oPC,"RES PCOMPTEUR"); //ici

    }
    else if (nEvent == X2_ITEM_EVENT_UNEQUIP)
    {
        object oPC = GetPCItemLastUnequippedBy();
        DeleteLocalInt(oPC,"RESPAQUA");
        if (GetLocalInt(oPC,"UNDERWATER"))
       
        if (!GetLocalInt(oPC,"RESPCOMPTEUR")) SetLocalInt(oPC,"RESPCOMPTEUR",1+FloatToInt(GetAbilityScore(oPC,ABILITY_CONSTITUTION)*0.25)+5);
    }
    SetExecutedScriptReturnValue();
}
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 19/07/2006 13:52:57 Sujet du message :

Bon après test de ton script (merci pour une reponse aussi rapide Smile ), 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
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 :
else if (nEvent == X2_ITEM_EVENT_UNEQUIP)
{
object oPC = GetPCItemLastUnequippedBy();
DeleteLocalInt(oPC,"RESPAQUA");

if (GetLocalInt(oPC,"UNDERWATER") && !GetLocalInt(oPC,"RESPCOMPTEUR")) SetLocalInt(oPC,"RESPCOMPTEUR",1+FloatToInt(GetAbilityScore(oPC,ABILITY_CONSTITUTION)*0.25)+5);
}
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 2 sur 3 ¤ Aller à la page Précédente  1, 2, 3  Suivante


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 56.427ms