Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Les potions

Par Cazou Tyrhius le 1/8/2002 à 16:20:57 (#1891250)

Je voudrais savoir si il êtait possible de faire des potions maudites,a effets néfastes, c'est pour intégrer dans mon module des achools différants de ceux de la campagne solo. Et en même temps je voudrai savoir comment on fait pour que l'on puisse utiliser les alchools quand on les achete.

Voila j'espere que c'était clair...

Par Flint Gorgefeu le 1/8/2002 à 19:52:17 (#1892965)

Pas tellement, non :D

Ben en fait, pour faire des effets négatifs (comme pour faire n'importe quel effet) suffit que tu définisse l'effet de ta potion. Tu mets quelque chose de négatif si ca te chante bien sur, pas de problème la dessus.


Ensuite pour boire une potion quand on l'achete j'ai aps bien suivi :p
Tu l'achete, elle est dans ton inventaire, ben tu la bois c'est tout.
Sinon si c'est pour faire boire un PJ en fonction d'un dialogue (par exemple : Je veux boire telle potion), ben tu fais semblant :)
Tu fais jouer l'animation de boir au PJ et tu lui donne les effets de la potion, ca donne l'illusion...

Par Caillou PierreSang le 1/8/2002 à 21:16:50 (#1893662)

Le problème, c'est que lorsque l'on crée une potion, il n'y a AUCUN effet négatif sélectionnable dans la liste;). Par exemple, si on veut faire un alccol qui rend dingue, l'effet feeblemind (débilité mentale) n'est pas selectionnable, pas plus que "daze" (hébêtement).

Le probème de boire une potion quand on l'achète : lorsqu'on achète une bière par exemple, il se peut que "alcohol, beer, single use" dans le menu radial soit grisé et par là même la bière "imbuvable".

Par Cazou Tyrhius le 1/8/2002 à 21:17:11 (#1893664)

Quand tu achete une potion, c'est bizard mais tu peut pas la boire !:D

Et j'ai pas trouvé les effets négatif dans les effet,y a que des positif...

Par Azharial del'Amrhyn le 1/8/2002 à 21:29:01 (#1893751)

Comme le précise Caillou, il n'y a aucun effet de sort négatif sélectionnable pour une potion.

Je crois que pour faire ce genre de potion il me parait nécessaire de passer par l'évenement OnActivateItem du module, tester si le tag de l'item activé correspond à la potion et si oui lancer l'effet à partir de là, mais comme je n'ai pas encore essayé ca, je m'avance peut-etre :p.

* Va essayer par curiosité * :rolleyes:.

Par Caillou PierreSang le 1/8/2002 à 21:32:39 (#1893777)

Ah, merci Azharial, tu essayes donc ? Bon commme je suis assez occupé avec le Toolset je te laisse me dire si ça marche.;)

Si tu trouves, tu auras toute ma gratitude !:merci:

Par Cazou Tyrhius le 1/8/2002 à 21:35:15 (#1893793)

Et celle de tout les Protecteurs du Bien...
(Caillou est un peut etoudit c'est pour ca qu'il oublie ce genre de details :D )

Par Azharial del'Amrhyn le 1/8/2002 à 21:48:17 (#1893886)

Oui oui, ca fonctionne bien, essayez-ca :

void main()
{
object oItem = GetItemActivated();
object oPC = GetItemActivator();

if (GetTag(oItem) == "potiontest")
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDazed(), oPC, 10.0);
}
}

Mettez ce script dans OnActivateItem du module, créez vous une potion sur mesure avec un effet quelconque ou unique (qui ne fait rien en gros), votre potion une fois bue vous mettra en etat Dazed pour 10 secondes, a ca vous pouvez ajouter des effets visuels si vous voulez. J'ai fais au plus rapide pour tester si ca fonctionne ;).

Il est possible aussi d'utiliser GetItemActivatedTarget ou GetItemActivatedTargetLocation pour specifier une cible ou une zone (lancer de potion par exemple).

Par Caillou PierreSang le 1/8/2002 à 22:05:30 (#1894052)

Merci beaucoup !!:merci:

Je vais essayer ceci dès que j'en ai terminé avec mon area !

Faudra que je regarde les autres effets/effets visuels qu'on peut lui attacher.

Si tu as encore d'autres scripts aussi bien à nous faire partager, ou si tu as trouvé des améliorations, n'hésite pas !

Par Cazou Tyrhius le 1/8/2002 à 22:10:22 (#1894108)

Merci,
nous allons tout des suite inclure se script dans notre module.
Je vous remercie ,si vous avez un probleme, vous pouvez conter sur nous (même si on n'est pas sur de le resoudre).

Par Azharial del'Amrhyn le 1/8/2002 à 22:17:35 (#1894174)

Provient du message de Caillou PierreSang
Faudra que je regarde les autres effets/effets visuels qu'on peut lui attacher.

Si tu as encore d'autres scripts aussi bien à nous faire partager, ou si tu as trouvé des améliorations, n'hésite pas !


Euh... pas d'autres scripts non, c'est du fait sur mesure là, pour repondre à votre problème, et vu que ca me titillait aussi j'ai regardé ce que je pouvais faire :).

Pour les effets speciaux, utilise le mod que j'ai mis en ligne (cf. thread sur la Tour Effondrée) il te permet de visualiser tous les VFX proposé par NwN :).

Par Cazou Tyrhius le 1/8/2002 à 22:25:12 (#1894246)

J'ai essayé le dernier module HRC, et ils donne une bagette qui permet de faire 2 ou 3 effets.

Par Caillou PierreSang le 1/8/2002 à 22:28:29 (#1894279)

Oui, Azharial, j'ai téléchargé ton module, et il faut avouer qu'il va s'avérer très pratique.
Au fait, bon travail .:D ;)

Par Flint Gorgefeu le 1/8/2002 à 23:34:45 (#1894885)

Arf, désolé de m'etre avancé pour rien dire, je suis allé trop vite, sorry.

Par Caillou PierreSang le 18/9/2002 à 22:32:04 (#2184384)

Bon, force est de constater, que j'ai toujours 2 problèmes avec ces boissons !!!:hardos:

1) Quand on achète n'importe quelle boisson au marchand la commande dans le menu radial "Alcohol : Beer, Single Use" (par ex.) apparaît en grisé, et il est alors impossible de boire trnaquille sa bière...
Ca arrive à qqun ? Vs savez comment y rémédier ?

2) Le script précédent ne marche pas, pourtant c'est pas faute d'avoir essayé. Auriez-vous d'autres idées de script qui marche pour ma boisson, ce dont je vous serai entièrement reconnaissant ?

:aide: :merci:

Par Elminf le 18/9/2002 à 22:49:46 (#2184488)

Bon alors comme Caillou je voudrai le meme genre d'effet ....
Mais je voudrai savoir si on pouvait aussi en faire une avec pour effet de donner un " Knockdown " sans degats ....
une autre avec pour effets de donner 1d4 pt de degats si on est pas un nain et/ou une personne specifique ?

Merci de rêpondre a Messire Caillou et par la meme a moi aussi ...

Par Sempai le 18/9/2002 à 23:25:13 (#2184714)

A première vue, sans avoir le NWscript sous la main...

...

Je vais plutôt mettre en route Aurora, finalement...

Bon... Je pense qu'il y a un moyen de contourner le problème.

En utilisant les objets divers (Misc. Items), dans le lot, il doit bien y avoir un objet qui ressemble à une bouteille.

Dans Propriétés (Properties) --> Available properties, sélectionnez "Cast Spell" puis "Unique Power Self Only"

Dans assignes properties, je suggère de laisser "Single Use" mais vous pouvez faire "1 charge/use" en limitant le nombre de charges pour préciser qu'on boit par gorgée plutôt que cul-sec en une fois. Surtout pas les "X uses/day". Non pas que ça crash quoi que ce soit, mais ça paraît bizarre une bouteille qui se reremplit d'elle-même pendant le repos... ou alors pour simuler un type qui fait un régime et qui n'a trouvé que ce moyen pour s'abstenir.
"Vous avez droit à une chopine par repas, monsieur Ratinier"
Voilà qui peut faire l'idée d'une nouvelle guilde : les A.A. Je m'y attèle à l'instant, d'ailleurs. Sur mon prochain module, il y aura cette redoutable guilde de nains tentant de renier leurs pulsions soiffardes, mais là n'est pas le sujet.

Dans les propriétés du module, Advanced --> emplacement OnActivateItem

S'il y a plusieurs objets de ce type (ou plusieurs boissons créées de la même manière), faire un GetTag().

Le script à placer devrait ressembler à ça :


void main()
{
object oItem = GetItemActivated();
object oIvrogne = GetItemActivator();
string sTag = GetTag(oItem);

if (sTag == "gourde")
{
AssignCommand(oIvrogne, /*action à faire*/);
}
}


NOTE: j'ignore si cela détruit automatiquement l'objet après usage mais je ne le crois pas. Si c'est ce que vous voulez, ajoutez une ligne DestroyObject(oItem, /*délai avec la destruction*/); juste avant la dernière } et pensez bien à configurer l'objet en "Single Use".
Si vous ne voulez qu'il se détruise mais que l'usage est limité, pourquoi ne pas élaborer une script (avec une fontaine ou un tonneau par exemples) où le possesseur pourra remplir sa bouteille ? (notez que cela à l'avantage qu'on peut changer le liquide contenu à chaque remplissage, il suffit d'insérer une variable de n'importe quelle nature (string, int, float) dans les 2 scripts (celui présenté ci-dessus et celui du re-remplissage), variable stocké sur la bouteille.

Petit exemple bonus :


void main()
{
object oItem = GetItemActivated();
object oIvrogne = GetItemActivator();
string sTag = GetTag(oItem);
string sItem = GetLocalString(oItem, "boisson");

if (sTag == "gourde")
{
if (sItem = "eau pure")
AssignCommand(oIvrogne, /*action à faire*/);
if (sItem = "51")
AssignCommand(oIvrogne, /*action à faire*/);
}
}


Dernier point, l' "action à faire" est en général un ApplyEffectOnObject.

Euh... j'ai bon ?

Par Caillou PierreSang le 20/9/2002 à 22:44:18 (#2198560)

Voilà, merci de ton GROS coup de pouce Sempai, et grâce à toi, je suis arrivé à faire quelquechose de convenable, et ... qui MARCHE !!!!:hardos: :hardos: :hardos:

Comme vous êtes tous sympa ici, et qu'on peut vous demander pas mal de trucs, j'aporte ma petite pierre à l'édifice, en mettant le script final (enfin, un des scripts) qui marche et que j'utilise.:D

void main()
{
object oItem = GetItemActivated();
object oIvrogne = GetItemActivator();
string sTag = GetTag(oItem);

if (sTag == "boisson")
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDazed(), oIvrogne, 10.0);
}
}



:merci: :merci:

PS : j'ai pas continué sur le AssignCommand, vu qu'y avait rien qui m'intéressait vraiment dans cette catégorie, à part le "Cast Spell", mais je suis pas un pro en script, alors je suis allé au plus simple avec le ApplyEffectToObject.
Voilà.
Merci encore.:merci:

Par Darkmore le 20/9/2002 à 23:02:38 (#2198670)

Provient du message de Elminf
je voudrai savoir si on pouvait aussi en faire une avec pour effet de donner un " Knockdown " sans degats ....
Oui.une autre avec pour effets de donner 1d4 pt de degats si on est pas un nain et/ou une personne specifique ? Oui
Merci de rêpondre a Messire Caillou et par la meme a moi aussi De rien :D

Par Caillou PierreSang le 20/9/2002 à 23:10:07 (#2198718)

Darkmore !!! :hardos:

Tu as fini :

1) De te prendre pour Daynos.

2)De pourrir le thread

3)De faire du HS

(Rayer les mentions inutiles, à savoir... aucune):p

Par Darkmore le 20/9/2002 à 23:15:14 (#2198750)

En fait je pensais me rattraper en postant les scripts en question mais puisque tu m'as vexé :D
Elminf dépose tes plaintes aupres de Caillou ... :rolleyes:

Aller hop

void main()
{
object oItem = GetItemActivated();
object oUser = GetItemActivator();
string sTag = GetTag(oItem);

if (sTag=="dwarf_only" && GetRacialType(oUser)!=RACIAL_TYPE_DWARF)
{
effect eDamage=EffectDamage(d4(1));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oUser);
}

else if(sTag=="knock_down")
{
effect eKnock=EffectKnockdown();
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eKnock, oUser, 3.0);
}
}

Par Caillou PierreSang le 20/9/2002 à 23:34:24 (#2198864)

Arf, Darkmore, je reconnais bien là ta magnanimité.:merci:

Au fait, bizarre, pq tu mets "Effect eKnock" ??? Moi, pour une autre boisson j'ai mis Effect KnockDown, et ça marche bien ...:confus:

Par Elminf le 20/9/2002 à 23:48:55 (#2198954)

Merci merci :merci: et Caillou vilain lol
Par contre Darkmore pas mal le coups des reponse ... lol

Sinon pour le script avec le Knock on peut rajouter le nom d'un personnecomme pour Dwarf only ? si oui ou ?

et euh les question ct pour trois boisson differente.... une que ne peut boire que les nains et une personne speciale et se prendre sinon 1d4 ...

une autre avec pour effet knock... mais bon chais pas si c ce que tu a s fait y connais quequik en script lol :D
:merci: kan meme de l'avoir fait

Par Jedaï le 21/9/2002 à 11:32:50 (#2200712)

edit : j'avais pas vu la deuxième page :bouffon:

Par Jedaï le 21/9/2002 à 11:48:58 (#2200794)

Caillou,
"effect" est un type de variable tout comme "int" ou "float" ou "object" ou "string" ou "location". Donc ce qu'a fait Darkmore c'est créer une variable de type "effect" qu'il a appelé eKnock mais qu'il aurait aussi pu appeler eBiduleTrucChouette ;) (le "e" n'est pas indispensable mais c'est une convention pour montrer qu'on a affaire à une variable de type effet comme le "n" pour les entier "int" et le "o" pour les objets).
Ensuite par le biais du "=" il a affecté une valeur à cette variable eKnock, il aurait pu lui donner n'importe quelle valeur de type effet mais par souci de cohérence il lui a donné comme valeur "EffectKnockdown()" (il aurait aussi bien pu lui affecter un "EffectDamage(d4(1))" mais ça n'aurait pas vraiment correspondu au nom :cool: ).
Par ailleurs "eKnock" est plus court que "Knockdown" mais il faut garder en mémoire que le nom des variables n'as aucune importance pour le programme. :lit:

Par Darkmore le 21/9/2002 à 11:59:52 (#2200842)

Pour caillou : En fait eKnock est une variable dans laquelle je "mets" EffectKnockdown().
J'aurais put le mettre directement dans l'Applyeffect mais ça donne des truc un peu lourd à vérifier en cas de problème.

Sinon pour le script avec le Knock on peut rajouter le nom d'un personnecomme pour Dwarf only ? si oui ou ?
Tu peux le rajouter dans la condition IF ... par exemple
.../...
if (sTag=="dwarf_only")
if (GetRacialType(oUser)!=RACIAL_TYPE_DWARF || GetName(oUser)=="Caillou")
{
effect eDamage=EffectDamage(d4(1));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oUser);
}
Dans le script il y a que deux boisson, celle 1d4 si non-nain et non-Caillou :p
Et celle qui knock le buveur.
C'est quoi la troisième :confus:

A noter que si vous vouler eviter de surcharger votre script OnActivated il peut être intéressant d'utiliser les fonctions... une fonctions par boison c'est encore plus clair en cas d'erreurs.

EDIT Oups a répondu en même temps que Jedai :merci:
EDIT2 : non en fait c'est juse que j'ai mit 10 minutes a répondre :merci:

Par Caillou PierreSang le 21/9/2002 à 15:30:15 (#2202085)

LOL; ben merci de vos explications...:D :merci:

*faudra que je pense à mettre une potion qui tue tous les non-Caillou*:monstre: :monstre:

(bah c'est pour être dans la vague T4C qui débarque en ce moment sur NWN...:rasta: )

Par Elminf le 21/9/2002 à 22:55:24 (#2204778)

EUH ..... :rolleyes: la troisieme boisson est dans ma tête ... :rolleyes: Je me suis mal relut penser l'avoir mise sur le post sorry ... :D

et puis arrive pu a m'en souvenir ... tête en l'air ...

JOL Archives 1.0.1
@ JOL / JeuxOnLine