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 13:59:16
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 |
Ido Acolyte Messages: 26 Localisation: France/Aisne(02)/ Picardie/ Saint Quentin |
Posté le : 04/07/2004 12:10:35 Sujet du message : Brrrrr fait froid Grrrrr j'y suis presqueee.................
Bon alors voila je poste ces deux liens ici aussi svp je vous en supplie à l'aideeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee help meeeeeeeeeeeeeeeeeeeeeeeeee pleaaaaaaseeeeeeeeeeeeeeeeeeeee j'y suis presque..............
Le principe: La règle que je voudrais adapter: Par temps de froid (température inferieure à 5°c)*, un personnage non protégé doit réussir un jet de vigueur par heure (DD15, +1 par jet effectué au préalable) pour ne pas subir 1d6 de dégats non létaux*. Un aventurier possédant la compétances survie peut bénéficier d'un bonus, voir en faire profiter ses compagnons (voir Manuel du joueur, page 85). extrait page 304 du Guide du maître livre de règles II v3.5 de D&D 3 froid important (-15°c): un jet de vigueur tout les 10 minutes avec +1 de difficulté a chaque jet ou perte de 1d6 pdv non létaux froid extrème (-30°c): 1d6pdv létaux sans jet de sauvegarde puis un jet de vigueur tout les 10 minutes avec +1 a chaque jet ou perte de 1d4pdv non létaux* non létaux*: ce qui veux dire que la créature récupère les pdv perdu au prochain changement de zone vers une zone plus chaude. Tous ce qui est écrit ci dessus fonctionne actuellement avec le script écrit de cette manière (les détails m'en tap le principe est nikel pour le reste y a k adapter) (script appliqué sur le OnEnter d'une zone) Code : void setAreaTemperature(object oPC, float fTemperature, float fRecheck = 600.0f, int bFirst = TRUE) {
//if(!GetIsPC(oPC)) return; Modification: Retirer les // pour rendre le script effectif uniquement sur un joueur if(bFirst) { // On enregistre dans la variable locale fTemperature la temperature du // joueur, au cas ou, pour une utilisation hors de cette fonction. SetLocalFloat(oPC, "fTemperature", fTemperature); SetLocalString(oPC, "sTemperatureArea", GetName(GetArea(oPC))); // On fait effectuer au joueur le jet de vigueur contre le froid, avec // pour DD 15 + nombre de fois que le joueur a fait un jet de vigueur // pour des raisons de temperature. } // Si on est toujours dans la meme zone froide if(GetName(GetArea(oPC)) == GetLocalString(oPC, "sTemperatureArea")) { float fRecheckMod = fRecheck; int nDamage = 0; if(fTemperature <= -30.0f) { // Si la temperature est inferieure ou egale a -30 degres nDamage = d6(1); // 3D6 de dommage fRecheckMod = fRecheck - 590; } else if(fTemperature <= -15.0f) { // Si la temperature est inferieure ou egale a -15 degres nDamage = d6(1); // 2D6 de dommage fRecheckMod = fRecheck - 500; } else if(fTemperature <= 5.0f) { // Si la temperature est inferieure ou egale a -5 degres nDamage = d6(); // 1D6 de dommage fRecheckMod = fRecheck; } int nSave = FortitudeSave(oPC, GetLocalInt(oPC, "nTemperatureShooted") + 15, SAVING_THROW_TYPE_COLD); // On sauve que le joueur a fait un jet de vigueur pour les prochaines fois SetLocalInt(oPC, "nTemperatureShooted", GetLocalInt(oPC, "nTemperatureShooted") + 1); // On verifie si le joueur a reussi son jet (ou s'il est immunise aux degats // de froid), dans ce cas on ne fait pas de dommages. Sinon... if(!(nSave >= 1)) { SendMessageToPC(oPC, "Vous êtes victime du froid, il fait " + FloatToString(fTemperature, 18, 0) + "°C." + FloatToString(fRecheckMod, 18, 0) + FloatToString(fRecheck, 18, 0)); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDamage, DAMAGE_TYPE_COLD), oPC); SetLocalInt(oPC, "nTemperatureDamaged", nDamage + GetLocalInt(oPC, "nTemperatureDamaged")); } DelayCommand(fRecheckMod, setAreaTemperature(oPC, fTemperature, fRecheck, FALSE)); } else { // Sinon on regenere les HP perdu de 1d6 HP par fRecheck seconde int nRegen = d6(); float fRecheckMod = fRecheck; fRecheckMod = fRecheck - 599; // Au cas ou on aurai rendu tous ses HP au joueur, on stop le script if(nRegen > GetLocalInt(oPC, "nTemperatureDamaged")) { nRegen = GetLocalInt(oPC, "nTemperatureDamaged"); } SendMessageToPC(oPC, "De retour à une température normale, votre corps se réchauffe."); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nRegen), oPC); int nNewDamaged = GetLocalInt(oPC, "nTemperatureDamaged") - nRegen; if(nNewDamaged > 0 && GetMaxHitPoints(oPC) > GetCurrentHitPoints(oPC)) { SetLocalInt(oPC, "nTemperatureDamaged", nNewDamaged); DelayCommand(fRecheckMod, setAreaTemperature(oPC, fTemperature, fRecheck, FALSE)); } else { SendMessageToPC(oPC, "Votre corps a retrouvé une température normale."); // On libere la memoire DeleteLocalInt(oPC, "nTemperatureDamaged"); DeleteLocalInt(oPC, "nTemperatureShooted"); DeleteLocalString(oPC, "sTemperatureArea"); DeleteLocalFloat(oPC, "fTemperature"); } } } void main() { // On recupere l'objet entrant object oEntering = GetEnteringObject(); setAreaTemperature(oEntering, -30.0f, 600.0f); } Des zones de ce type peuvent aussi etre adjacente a la première les créatures ne doivent pas pouvoir récupérer de pdv dans ces zones mais au contraire les jets et degats seront plus grave. voila ce qui m'a permi d'écrire ce script [http] voila ou j'en suis [http] voila mon prob actuel (c la que se situe ma question svp les dieux du scripts, aider moi a finir ): je voudrais que ce script fonctionne sur plusieurs zones, lorsque le perso (ou monstre) change de zone, le script ne se lance pas une deuxieme fois, en faisant attention aussi a ce que les perso ne regagnent pas de pdv dans les zones désirées mais que o contraire les degats s'accumulent de facon (comme ils sont mémorisés)a ce que les victimes du froid regagnent leur points de vie plus tard une fois en zone saine ou devrais-je dire chaude. grr de script je n'en demande pas trop? Bah je sais qu'il y des betes parmis vous (enfin j'espere). NB: c normal ce script doit s'appliquer à tous y compris le nounours qui poursuit votre personnage depuis 4 zones seulement a la fin je verrais pour faire en sorte que nounours polaire ne soit pas trop gené par le froid enfin suivant l'importance du froid mais la non plus ce n'est pas ce qui m'interresse. L'important est en rouge et en vert. |
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
Sipposition parseque la je suis crevé, je fais que passer et jai lu en diagonale ton script.
Et si tu le mettai dans le OnClientEnter du module plutot (en modifiant un peu peut etre) Voila jai dit ce que javai a dire et desole si cest pas la bonne reponse et bonne nuit. _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
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