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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Ensorceleur et Focus

Par Morethil le 6/11/2002 à 10:49:46 (#2493557)

Hello,
J'ai une question a vous soumettre. Je voudrait savoir si il est possible de limiter l'utilisation des sorts par la possetion d'un objet.
Tous simplement, j'ai crée un PNJ ensorceleur qui ne peux utiliser ses pouvoir que s'il a un Focus sur lui (ça c'est pour la petite histoire...) et je voudrait que cela soit effectivement le cas.
Pensez vous qu'il soit possible d'implementer ça a l'aide d'un scripte ?
Je vous previens, je n'ai aucune piste, et pour le moment je gere ça avec les évènements de mon scenario (sans scripte). Mais je pose la question plus par curiosité (et eventuellement pour l'utiliser plus tard) qu'autre chose.

Par miriandel le 6/11/2002 à 12:14:35 (#2494104)

Il existe plusieurs manières de faire cela, et la plus évidente qui me vient à l'esprit, c'est l'utilisation des nouvelles fonctions introduites avec la 1.26: SetMaxSpells ou un truc comme ça.
Comme je suis contraint d'utiliser encore la 1.24 ( :enerve: ) je ne peux te donner le nom exact de la fonction.

Par Tynril le 6/11/2002 à 12:30:18 (#2494222)

Tu peux modifier la totalité des scripts de sort par défaut pour rajouter un test conditionnel..

Par miriandel le 6/11/2002 à 13:04:38 (#2494565)

Provient du message de Tynril
Tu peux modifier la totalité des scripts de sort par défaut pour rajouter un test conditionnel..


Sauf erreur, il demandait une solution simple, pas qu'on se foute de sa gueule :rolleyes:

Par coolstar le 6/11/2002 à 13:16:08 (#2494694)

lol

Par Jedaï le 6/11/2002 à 14:30:39 (#2495543)

Bah y a peut-être moyen de faire un petit programme qui fasse ce que dit Tynril automatiquement, un petit peu de reconnaissance de chaîne, une boucle dans les fichiers de la forme nw_s0_*.* et hop !
Bon mais effectivement, c'est possible avec DecrementRemainingSpellUses() mais c'est assez fastidieux et lourd... sauf si cette fonction accepte SPELL_ALL_SPELLS.
Je ne connais pas beaucoup ces nouvelles fonctions et ne suis pas très sûr des effets. Quelqu'un qui connaisse cette fonction pourrait peut-être faire une proposition.

Par Tynril le 6/11/2002 à 17:14:45 (#2497238)

Provient du message de miriandel
Sauf erreur, il demandait une solution simple, pas qu'on se foute de sa gueule :rolleyes:
C'est pas compliqué, c'est juste un peu long :D

Par miriandel le 6/11/2002 à 18:02:22 (#2497795)

Mais bien sûr, et le jour où Bioware change ses scripts de base, il est bon pour tout refaire.

Rahhh là là, ces bidouilleurs... une sorte de nouvelle race créée en même temps que l'informatique il faut croire.
Race trèèèèès dangereuse, comme j'en fréquente tous les jours au boulot.
Le genre qui te dit, sourire en coin, comment ils ont réussi à empapouater l'OS pour faire le truc méga-cool, qui, bien sûr, interdit de jamais envisager d'upgrader le système sous peine de foutre tout le bazar en l'air.

Et après ça, on s'étonnera d'être regardés avec un mélange de crainte et de dérision.

Note qu'après tout, foutre le bouzouf partout dans son code est une méthode qui a fait ses preuves pour se rendre indispensable.
Mais les temps changent, on demande des résultats de nos jours, et un directeur informatique avisé ne veut plus de ces p'tits gars capables de bricoler une optimiseur de compilation en Yak & Lek... comme de foutre par terre la pérénité de leur entreprise.

Merde, je suis parti en HS là, mais quand j'entends certaines choses, ça fait bouillir un peu...

Par LeProctophantasmiste le 6/11/2002 à 18:15:14 (#2497920)


Mais bien sûr, et le jour où Bioware change ses scripts de base, il est bon pour tout refaire.

Ben non il ne seront tout simplement pas modifiés pour son module. Les ajustements dans l'override ont essentiellement été produits pour mieux coller au règle de D&D, il n'y a plus de sort buggé autant que je saches, et cela fait un moment qu'un patch n'a pas touché à un sort je crois. Bon, je cherche un peu la petite bête parce que sur le fond je suis assez d'accord avec toi Miriandel (pour ce qui est des sorts parce que pour le reste, je ne suis pas informaticien moi :D).

Par Morethil le 6/11/2002 à 18:45:17 (#2498231)

lol.
Bon, en tous cas merci pour les réponses :) Je viens de passer an 1.26, donc je vais jeter un oeil du cote des nouvelles fonctions.
Et non, quoi qu'il arrive je ne toucherai pas aux scriptes de base des spells :)

Par Jedaï le 6/11/2002 à 20:32:59 (#2499289)

Bah c'est pas tellement compliqué, suffit juste de rajouter un test au début qui fait return si c'est pas bon,ensuite tu le copie puis tu ouvre tous les fichier commençant par nw_s0 (filtre Spell) et tu colle au début de chacun d'eux le test, qui devrait ressembler à ça :


object o = OBJECT_SELF;
string sTag = "FOCUS";
if(GetClassByPosition(1,o) == CLASS_TYPE_SORCERER ||
GetClassByPosition(2,o) == CLASS_TYPE_SORCERER ||
GetClassByPosition(3,o) == CLASS_TYPE_SORCERER)
if(!GetIsObjectValid(GetItemPossessedBy(o,sTag)))
{
FloatingTextStringOnCreature("Vous ne pouvez lancer de sort sans focus !",o);
return;
}


Je trouve personellement que ça serait plus rapide de copier tous ces fichiers avec la légère modification citée au-dessus dans un dossier que tu leur dédierait à l'aide d'un petit programme dédié à cette tache, puis de les importer en masse dans ton module, ça te prendrait peu de temps et ça marcherait bien !

Pour le coup ça serait une modification radicale du gameplay !:eek:

Par Morethil le 7/11/2002 à 2:52:41 (#2501642)

Provient du message de Jedaï
Bah c'est pas tellement compliqué, suffit juste de rajouter un test au début qui fait return si c'est pas bon,ensuite tu le copie puis tu ouvre tous les fichier commençant par nw_s0 (filtre Spell) et tu colle au début de chacun d'eux le test, qui devrait ressembler à ça :


object o = OBJECT_SELF;
string sTag = "FOCUS";
if(GetClassByPosition(1,o) == CLASS_TYPE_SORCERER ||
GetClassByPosition(2,o) == CLASS_TYPE_SORCERER ||
GetClassByPosition(3,o) == CLASS_TYPE_SORCERER)
if(!GetIsObjectValid(GetItemPossessedBy(o,sTag)))
{
FloatingTextStringOnCreature("Vous ne pouvez lancer de sort sans focus !",o);
return;
}


Je trouve personellement que ça serait plus rapide de copier tous ces fichiers avec la légère modification citée au-dessus dans un dossier que tu leur dédierait à l'aide d'un petit programme dédié à cette tache, puis de les importer en masse dans ton module, ça te prendrait peu de temps et ça marcherait bien !

Pour le coup ça serait une modification radicale du gameplay !:eek:


Franchement je ne touche pas a des trucs comme ça :)
1) pour moi ce serait long.
2) comme tu dis ça modifierait largement le gameplay.
3) Il faudrait forcement 1 tag par Focus dès que tu voudrait toucher aux focus (multiplié par le nombre de scripte) ou alors se limiter à 1 focus par zone (voir par module)

Enfin, je sait que des specialistes me trouveront des solutions longue et compliqué, mais rien qu'a voir ce que vous proposez je me dit que c'est plus simple de me debrouiller comme je le fait actuellement. :mdr:

JOL Archives 1.0.1
@ JOL / JeuxOnLine