Page 1 sur 1

[CRE] Plusieurs questions sur la création de personnages

Posté : jeu. 01 avr. 2004, 19:59
par ferrumach
5 questions pour la création de qq personnages (simple renseignement)

1) Peut-on créer(modifier) un moine, gardant ses capacités de moine, mais qui puisse utiliser des sorts ou alors pouvant utiliser des parchemins dans les objets à portées ?
2) Peut-on créer une arme qui à chaque coup lance un sort (par exemple souffle du dragon ou n'importe quel autre) sur la cible ?
3) Est-il possible qu'un sort soit déclenché par une attaque adverse ? Par exemple chaque fois que le mage prend un coup un sort de brume mortelle est déclenché dans la zone.
4) Peut-on facilement permettre à un guerrier/ clerc l'utilisation d'armes tranchantes ou perforantes ?
5) Peut-on modifier un barde pour qu'il garde sa capacité de chant mais qu'il puisse utiliser des sorts de prêtres ?

Edi t: je ne veux pas de nouveaux kits à faire si possible....
je m'adresse plutôt à ceux qui ont l'habitude d'utiliser les outils pour BG2...

merci d'avance

reedit: je précise que ce seront des npc non embauchables

Posté : jeu. 01 avr. 2004, 21:15
par Isaya
1) Oui. Puisque c'est un personnage non embauchable, il ne pourra utiliser des sorts ou des objets que par des scripts. Et par conséquent, tu pourras toujours forcer le personnage à lancer un sort ou utiliser un objet spécialement modifié pour lui en fonction des conditions dans ton script.

2) Oui. Prends une arme comme la masse améliorée à l'illithium (qui peut tuer d'un coup un mort-vivant) comme exemple.

3) Oui. Tu peux utiliser pour ça un script utilisant un trigger comme Hit() (ou quelque chose d'approchant) et qui déclenche alors ce que tu veux en désignant comme cible celui qui a attaqué par exemple (trigger du genre LastAttackerOf(Myself) peut-être). Les mages utilisent beaucoup de genre de choses dans leurs scripts, tu devrais y trouver des exemples.

4) Non (tu as dit facilement). Les restrictions de classes sont indiquées dans les objets eux-même, donc il faudrait tous les modifier. Ou alors faire un changement de classe, mais tu aurais d'autres problèmes. Cela dit, avec un personnage non embauchable, il est toujours possible de tricher puisque tu peux l'équiper d'un objet qu'il ne pourrait pas utiliser autrement. Reste à vérifier si le jeu l'accepte bien (et à changer les compétences en armes sinon le malus est pénalisant).

5) Oui (même raison qu'en 1).

Posté : jeu. 01 avr. 2004, 22:53
par ferrumach
Merci pour les réponses (très instructives)
demande de précision cependant:

2)
Le sort, lancé par l'arme est il instantané sur la cible ( pas de temps d'incantation) ?
Par exemple si j'affecte à une arme le sort arret du temps (temps d'incantation de 6 , je crois) y aura t il ,après le coup, un délai avant l'effet du sort ? ( j'espère que non )

3)peut on affecter un %(probabilité) au trigger : par exemple: 10 % des coups recus par le mage déclenchent brume mortelle

6) peut on créer une arme avec effet aléatoire ? par exemple, à chaque coup:
30% de chance de lancer dissipation
20% de chance de lancer contagion sur la cible
10 % de chance de lancer dégenerescence sur la cible
5 % de chance de lancer comète sur la cible
1% de chance de lancer emprisonnement sur la cible

et l'animation du sort apparait elle ou non ?( pas grave)

7) lors du script est il possible (facile?) de permettre au personnage de lancer des sorts périodiquement , selon une période que l'on a soit meme choisi (1 tour par exemple) mais aussi avec choix des sorts aléatoires à chaque tour...par exemple : à chaque tour 20% de chance de lancer la combinaison de sort a , b , c , d ,ou e ?
(avant chaque début de tour rien n'est donc prévisible parmi les 5 choix possibles)

8) peut on avoir un sort de facon permanente (non dissipable, ni par le temps ni par les ennemis), par exemple un pretre avec sphère de lame qui resterait jusqu'à la mort

merci d'avance (je crois que c'est tout...)

Posté : ven. 02 avr. 2004, 16:03
par Walar
2)
Le sort, lancé par l'arme est il instantané sur la cible ( pas de temps d'incantation) ?
Par exemple si j'affecte à une arme le sort arret du temps (temps d'incantation de 6 , je crois) y aura t il ,après le coup, un délai avant l'effet du sort ? ( j'espère que non )
Oui je crois. Exemple : le katana de Kuroisan qui tire des flèches acide de Melf dès qu'il touche (donc il n'y a aucune forme de temps d'incantation).
3)peut on affecter un %(probabilité) au trigger : par exemple: 10 % des coups recus par le mage déclenchent brume mortelle
Oui, ça se fait dans le script sous la forme. Par exemple

RESPONSE #50
a
RESPONSE #50
b

Il y a 50% de chance que ce produise l'effet a et de même pour l'effet b.
6) peut on créer une arme avec effet aléatoire ? par exemple, à chaque coup:
30% de chance de lancer dissipation
20% de chance de lancer contagion sur la cible
10 % de chance de lancer dégenerescence sur la cible
5 % de chance de lancer comète sur la cible
1% de chance de lancer emprisonnement sur la cible
Oui, c'est tout à fait possible. Exemple : la hache du mod Kim.
et l'animation du sort apparait elle ou non ?( pas grave)
Il me semble que oui, enfin c'est défini dans les paramètres de l'effet lors de la création de l'objet (ainsi on n'est pas cantonné à une certaine animation). Je suis pas à 100% sûr.
7) lors du script est il possible (facile?) de permettre au personnage de lancer des sorts périodiquement , selon une période que l'on a soit meme choisi (1 tour par exemple)
C'est assez facile de le faire en utilisant la commande : SetGlobalTimer
mais aussi avec choix des sorts aléatoires à chaque tour...par exemple : à chaque tour 20% de chance de lancer la combinaison de sort a , b , c , d ,ou e ?
(avant chaque début de tour rien n'est donc prévisible parmi les 5 choix possibles)
Oui c'est possible, comme pour avant avec les RESPONSE #100, d'ailleurs le script de mages améliorés fait par Weimer utilise ce genre de procédé me semble (de lancements aléatoires au début des combats). Ainsi cela rompt la monotonie.
8) peut on avoir un sort de facon permanente (non dissipable, ni par le temps ni par les ennemis), par exemple un pretre avec sphère de lame qui resterait jusqu'à la mort
Oui.

Posté : ven. 02 avr. 2004, 16:35
par Isaya
2) Pour supprimer le temps d'incantation, tu devras probablement recopier le sort sous un autre nom et modifier le temps d'incantation à 0 dans la copie. Il ne te reste qu'à utiliser le nouveau sort.
En fait ça dépend de la façon dont tu implémentes l'effet. Si tu ajoutes directement l'effet du sort, il y aura uniquement le délai que tu indiqueras par le paramètre délai de l'effet. Si par contre tu utilises l'effet Cast Spell pour lancer le sort, le temps d'incantation s'appliquera et tu devras recopier le sort et modifier la copie. Si tu veux récupérer sans effort les effets multiples d'un sort (aussi bien les effets que les animations, sons, ...) tu dois utiliser Cast Spell. Autrement, tu dois recopier l'intégralité des effets du sort dans ton objet, et dans ce cas, tu maîtrises le délai éventuel.

3) En complément de la réponse de Walar, tu peux indiquer dans un des choix que tu ne veux rien faire en utilisant la commande Continue().
Le moteur de script n'a pas bonne réputation sur la génération de valeur aléatoire : il semble que le premier choix de la liste a en fait une probabilité d'occurrence supérieure au poids relatif du RESPONSE par rapport aux autres. Alternativement, tu peux aussi utiliser la probabilité dans le sort lui-même, surtout si tu en fais une nouvelle version pour supprimer le temps d'incantation.

6) Oui. Je ne sais pas s'il y a un objet du jeu original qui le fait. La probabilité des effets s'exprime avec 2 valeurs qui définissent les bornes. Pour des effets à occurrence exclusive, tu mets des valeurs de probabilité qui ne se recouvrent pas:
0 - 30 Dissipation
31 - 50 Contagion
51 - 60 Dégénérescence
...

Pour que l'animation apparaisse, il faut soit que tu lances le sort par l'effet Cast Spell (et donc tous ses effets, y compris visuels), soit que tu recopies tous les effets du sort (par exemple dissipation, plus les effets visuels que le sort utilise) ce qui est un peu fastidieux mais élimine les problèmes de temps d'incantation et d'interruption.

7) Certes c'est possible, mais ce n'est pas forcément simple. En tout cas ça rend le script plus complexe en obligeant à utiliser plusieurs variables pour que tu puisses suivre le déroulement de chacune des séquences sans les mélanger.
Comme toujours, les exemples existants sont toujours plein d'enseignement.

8) Il existe plusieurs façons de procéder.
Tu peux ajouter les effets du sort au fichier CRE avec une indication d'effet permanent. Mais le personnage l'aura dès la première rencontre avant même que le combat ne commence.
Sinon, tu peux lancer le sort à partir d'un script spécifique attribué au personnage. Il te faudra créer une version modifiée du sort pour qu'il soit à effet permanent.
Dans les deux cas, tu devras aussi jouer sur le fait que l'effet du sort modifié (ou celui directement affecté au fichier CRE) soit bien indiqué non dissipable.

Posté : ven. 02 avr. 2004, 17:56
par ferrumach
Encore merci pour les réponses détaillées
qq précisions encore..

3)+6)
Pour ce qui est de la génération de valeur aléatoire:

0 - 30 Dissipation
31 - 50 Contagion
51 - 60 Dégénérescence
et
Le moteur de script n'a pas bonne réputation sur la génération de valeur aléatoire : il semble que le premier choix de la liste a en fait une probabilité d'occurrence supérieure au poids relatif du RESPONSE par rapport aux autres
dans ce cas appliqué( il y génération d'une valeur aléatoire) tu as l'air de dire que le poid relatif de dissipation (30) par rapport aux autres sera en fait plus élevé dans la réalité ? ( embetant ca...) pourtant walar cite la hache de kim (je dois dire que je ne la connais pas)
Alternativement, tu peux aussi utiliser la probabilité dans le sort lui-même, surtout si tu en fais une nouvelle version pour supprimer le temps d'incantation.
c.a.d: je recopie un sort par ex brume tueuse (à la place de brume mortelle) ,je met son temps d'incantation à 0 et je modifie un paramètre permettant alors de lancer le sort dans 10 % des cas (aulieu de 100%) ?( pour reprendre l'exemple du point 3)?

7)
Comme toujours, les exemples existants sont toujours plein d'enseignement
Justement je cherche un bon exemple de perso dans bg2 + mods ayant un script de cette complexité, je dis cela car j'ai l'impression que la majorité des scripts utilise un timer mais pour toujours la meme combinaison de sorts, pour mon cas cela serait un choix aléatoire à chaque tour avec mise en " boucle" de chacune des 5 combinaisons se répétant indéfiniment jusqu'à la mort du perso
(je ne demande qu'à etre contredis par un exemple similaire...)

merci pour les réponses

Posté : ven. 02 avr. 2004, 22:58
par Isaya
3+6) Je ne suis pas sûr. J'ai lu sur un forum (TeamBG ?) que ce problème de non-respect des probabilités se produisait dans les scripts (apparemment la personne avait fait un nombre de tests suffisant pour mettre en doute la génération aléatoire). Je n'ai jamais lu rien de tel sur les valeurs aléatoires utilisés pour les probabilités d'effet d'objet ou de sort. Ce qui ne veut pas dire que le problème n'est pas le même.

Oui, ce que je proposais est bien d'indiquer la probabilité dans l'effet du sort lui-même.

7) Walar t'indiquait le script de mage qui fait partie du mod Tactics.
Les timers sont aussi parfois utilisés par certains pour s'assurer que les scripts respectent la durée des rounds. Sinon un mage peut lancer plusieurs sorts par round et n'est plus limité que par le temps d'incantation.
Dans ton cas, le timer sert surtout à modifier une variable qui t'indique quelle séquence va être utilisée pendant le tour. Une fois la séquence choisie, il te reste à coder la séquence de sorts que tu veux utiliser, en vérifiant à chaque fois que tu es bien dans la séquence que tu veux. Il te faut alors utiliser une deuxième variable pour indiquer ton avance dans la séquence.

Posté : sam. 03 avr. 2004, 18:24
par ferrumach
Merci encore , une dernière chose :
9) peut on désarmer un adversaire lors d'une attaque dans bg2 ? (script
nécessaire?), l'arme peut elle etre projetée au loin (aulieu de tomber à coté) ?

Posté : dim. 04 avr. 2004, 22:33
par Isaya
9) Oui, c'est probablement possible. Dans TDD, il y a un kit qui le permet en théorie (je dis ça car je ne l'ai pas essayé). Par ailleurs, il y a aussi dans TDD un élémental de lave qui peut aussi à chaque coup te faire lâcher un objet.
Pour la réalisation, c'est soit un script soit un effet. Peut-être qu'en parcourant la liste des effets et des actions de script sur le site IESDP, tu trouverais la réponse (si le nom de l'effet ou de l'action est explicite, même s'il ne s'appelle pas désarmer).
Pour la lancer plus loin, c'est probablement plus compliqué.

Posté : dim. 11 avr. 2004, 20:03
par ferrumach
Merci encore ....
pour la pratique...( avec IEEP)
3)+6)
j'ai fait un essai pour créer une hache qui lance emprisonnenent dans 25 % des coups réussis ( c'est un essai évidemment...)
et qui déclenche brume mortelle dans 25% des coups recus par le porteur de la hache

J'utilise cast spell pour l'emprisonement, je met comme range de proba; 0%-25% :
pas de problème lors du test, ( en mettant le bon sort dans ressource key)

Par contre pour le sort de brume mortelle( je me suis inspiré de katana de kuroisan), utilisant cast spell condition, je mets:
target : self (logique)
ressource key: (sort de brume mortelle: SPWI614 )
proba: 0%- 25%
je mets 1 et 0 comme valeurs aux paramètres ( le sort est déclenché à chaque coup sur la target)

le sort ne se déclenche pas lorsque le porteur est touché de multiples fois
pourquoi?

j'ai fait pas mal d'essais en changeant les ranges( 26-51, 0-50) , qq fois j'obtiens un déclenchement mais alors dans 100% des cas (donc 5 coups recus , 5 brumes ) puis plus rien!!! comme si la hache était un objet à charges (évidemment que j'ai fait attention) ou autres explications.....?????)

pour résumer c'est tout ou rien (0% ou 100%) mais plutot rien.....

merci......

Posté : mar. 13 avr. 2004, 13:57
par ferrumach
Vraiment je ne comprends pas le cloud kill est lancé dans 100% des cas meme avec une proba de 00 à 30....

j'ai posé la question sur les forums de la team bg, on me donne pas vraiment d'explications , ou alors modifier le sort en mettant à 30 % tous les effects:

il y a 3 effects spell pour un cloud kill
1) lightning 3d
2) damage ( pour les dommages acide)
3) EFF file ?

j'ai mis 30 % aux 3 effets, mis 0 au tps dincantation, donné 1 autre nom au sort
je teste ...et le problème reste le meme ! ( 100% de cast à chaque coups recus par le porteur de l'arme) ( en tous cas pour l'animation, pour les dégats c'est difficile pour se rencre compte)

y a til une explication, un autre moyen de procéder... , ou si qq a une idée?

Posté : mar. 13 avr. 2004, 17:55
par Walar
Je ne connais que les bases de la création d'objet, donc j'ai pas d'idée précise. Mais si j'étais toi j'essayerai de le faire via un script. Enfin, le problème c'est que cette solution n'est valable que dans le cas ou cette arme ne finirait pas dans les mains du joueur je pense.

Du genre :
IF
      touché ou blessé (je me souviens pas du code)
THEN
  RESPONSE #25
      ReallyForceSpell(cequetuveux,lecodedeBrumeMortelle)
  RESPONSE #75
     Continue() ou autre truc, je sais pas.
END
Malgré ce qu'a dit Isaya sur cette façon. J'espère qu'il y a pas de coquille dans ce que je viens d'écrire car j'ai pas trop le temps de vérifier la.

Si ça ne répond pas du tout à ton problème je tenterai peut-être de faire aussi un objet.

Posté : mar. 13 avr. 2004, 22:40
par Isaya
On peut ajouter des effets aux objets de deux façons :
- quand tu le prends en main
- quand tu t'en sers

Dans le premier cas, ça permet d'ajouter des effets tant que tu portes l'arme par exemple. Ce n'est pas ce que tu recherches. Dans IEEP, ça se définit sur la première page (General) dans la partie Equipping effects.
Dans le deuxième, tu peux ajouter des "extensions headers" jusqu'au nombre de 3. Un d'entre eux désigne les coups portés (pour des armes), les autres servent à des fonctions spéciales (comme les sorts d'une baguette ou les apports spécifiques d'un objet comme la possibilité de lancer un sort une fois par jour). Ces effets se créent sur la troisième page (Other infos). Pour les coups d'une arme, il faut choisir "Weapon" dans "Use location", autrement c'est plutôt "Magical" (à vérifier dans des objets similaires à ceux que tu veux créer). Les effets s'ajoutent dans la partie Item effects.

Je t'invite à regarder comment sont réalisés certains objets du jeu qui ont le même effet que ton arme. Je pense en particulier au sceptre de terreur (N % de chances de perdre du charisme à chaque coup) qui porte le nom RODS05.ITM. Ou encore à l'épée annonciatrice : SW2H07.ITM.

Posté : mer. 14 avr. 2004, 00:59
par ferrumach
Bon excusez moi , c'est vrai qu'avec tous mes posts je dois vous embrouiller un peu...
Je dis cela, suite à :
On peut ajouter des effets aux objets de deux façons :
- quand tu le prends en main
- quand tu t'en sers

Dans le premier cas, ça permet d'ajouter des effets tant que tu portes l'arme par exemple. Ce n'est pas ce que tu recherches
Eh bien en fait si !
mon arme crée lancera:
25% emprisonnement à chaque coup ( c'est donc les coups portés) (3 eme page)
(pas de probleme pour cet effet)
ET
30 % de cloud kill lors des coups recus par son porteur(1 ere page car c'est un effet indépendant des actions de celui qui porte l'arme (qu'il l'utilise ou non)

le katana de kuroisan utilise le meme principe (contre coup acide sur l'attaquant chaque fois que celui ci inflige des dégats au porteur du katana), j'ai donc utilisé les meme paramètres en changeant simplement la probabilité ( 30 % aulieu de 100%), ce qui ne marche pas puisque le cloud kill est lancé à chaque fois ( c'est le problème)

Heu bon je suis tjs au meme point...
NB: ISAYA je n'arrive pas à extraire les armes que tu me proposes avec IEEP( ou puis je les loader avec IEEP ?:elles ne sont pas dans l'override) :gign: , cela dit ce sont des armes qui infligent un effet lorsque que l'on utilise l'arme( j'ai regardé avec IE) donc pas vraiment mon problème ....
Edit:
walar pour ton idée :
IF
Hitby(LastHitter,0)
HasItemEquipedReal("EPEPE",Myself)
THEN
RESPONSE#20
ReallyForceSpell(Myself,WIZARD_DEATH_FOG)
RESPONSE#80
Continue()
END
puis association du script à l'item:
j'utilise le spell effect set IA en mettant le nom du script dans ressource key
avec paramètres o et o ( *.bcs mis dans l'override)

mais cela ne marche pas...( pas de death fog) :sad: WHY?
(plus tard si les responses cheatent je ferai avec les triggers random et hitby)
Reedit: je vais me pencher sur winbiff...(merci Walar)

Posté : mer. 14 avr. 2004, 01:04
par Walar
Pour extraire des données (par exemple des armes) il faut utiliser Winbiff, le lien de téléchargement doit être mis dans le forum outil, et il doit y avoir un ou deux sujets traitant de ce programme simple à utiliser. ^^

Cela extrait le fichier où tu veux et ensuite tu peux l'ouvrir avec IEEP.

Posté : mer. 14 avr. 2004, 10:28
par nal'ex
J'y connais pas grand chose, mais il ne faudrait pas que tes 30 % de cloud kill soit suivi de 70% sans effet
je suis pas sur mais il me semble, après avoir lu differents tutoriaux, que le jeu recalcule les probabilités, ainsi ton 0-30 cloud kill pourrait très bien être compris par le moteur comme un 100% cloud kill.
Mais bon je ne garantie pas du tout cette réponse

alex
qui peine encore un peu

Posté : mer. 14 avr. 2004, 11:28
par Walar
@Ferrumach :
IF
Hitby(LastHitter,0)
HasItemEquipedReal("EPEPE",Myself)
THEN
RESPONSE#20
ReallyForceSpell(Myself,WIZARD_DEATH_FOG)
RESPONSE#80
Continue()
END
Je n'ai jamais essayé un script du genre, donc tu es sûr de la première ligne ?
Pour la deuxième tu peux je pense éliminer le "Real". Et je ne suis pas vraiment sûr du "Continue()". Mais bon, c'est en forgeant qu'on devient forgeron... :p
puis association du script à l'item:
j'utilise le spell effect set IA en mettant le nom du script dans ressource key
avec paramètres o et o ( *.bcs mis dans l'override)
Le problème est là. Il faudrait allouer le script au personnage qui manie l'objet et non pas à l'objet. D'où le défaut de cette méthode que j'ai évoqué dans mon premier message car la propriété de lancer Death_Fog serait innérente autant au PNJ qu' à l'objet. :snif: Enfin faudrait essayer pour voir si ça fonctionne.

Sinon, je vais essayer de créer un objet du même genre que le tien dès que j'ai la motivation, voir si ça cloche aussi chez moi.
J'y connais pas grand chose, mais il ne faudrait pas que tes 30 % de cloud kill soit suivi de 70% sans effet
je suis pas sur mais il me semble, après avoir lu differents tutoriaux, que le jeu recalcule les probabilités, ainsi ton 0-30 cloud kill pourrait très bien être compris par le moteur comme un 100% cloud kill.
Mais bon je ne garantie pas du tout cette réponse
La réponse est peut-être là mais ce qui est bizarre c'est que ce système fonctionne parfaitement pour son premier objet. ;)

Posté : mer. 14 avr. 2004, 12:39
par ferrumach
pour le script,
hitby est une trigger qui m'a l'air correspondre à ce que je veux....
0x0020 HitBy(O:Object*,I :D ameType*Damages)
Returns true only if the active CRE was hit by the specifed object by the specified damage type in the last script round. If the damage type is CRUSHING or 0 then this will return true for ANY damage type
Last hitter est un objet que j'ai trouvé dans les *.ids

je pense (puisque cela ne marche pas) qu'il faut que j'alloue le script au personnage ( je vais faire des essais.....)

Je crois que nal'ex a raison, sur teambg on me dit :
The reason it didn't work properly is this: rather than having the 30% chance of firing off the cloudkill, there is a 30% chance of enabling the condition to fire off a cloudkill (that would be fired off at a chance of 100%).
par ailleurs(c'est l'auteur d'un mega tutorial sur le script..)
Try creating a custom cloudkill spell which only does anything 30% of the time, and triggering that instead, with the probability of "cast spell on condition" being set to 100%.
j'ai modifié le sort ( cf plus haut ) meme problème...( comment customisé ce sort ?)

edit: pour revenir au script , il faut le mettre dans baldur.bcs ( script qui tourne en permanence), problème : comment déplacer mon script situé dans override ( Near infinity) pour l'y mettre (script à modifier :p layer 1 à 6 aulieu de myself) ( et dailleurs ou est il baldur.bcs?)( je découvre :gign: )

Posté : mer. 14 avr. 2004, 20:56
par Isaya
Un petit conseil pour commencer: évite au maximum de modifier le fichier BALDUR.BCS. Ce script tourne en permanence et plus il est gros, plus il fait ralentir le jeu. Ce script sert surtout à mettre tout ce qu'on ne peut pas faire autrement.
Pour les joueurs, il existe à ma connaissance les scripts DPLAYER2 (pour les perso de l'équipe) et DPLAYER3 (pour le personnage principal) qui peuvent éventuellement servir. Et tu pourras utiliser Myself sans te préoccuper du personnage.

Pour extraire des fichiers, WinBiff, DLTCEP et Near Infinity (ces deux derniers avec aussi des possibilités d'édition) sont possibles.

Pour faire ce que tu cherches sur les coups reçus, je pense qu'il n'y a pas d'autre solution qu'un script. Cela dit, puisque tu sembles prendre modèle sur un objet d'un mod, pourquoi ne fais-tu pas de la même façon (pour le script, notamment les triggers et les probas) ? A moins que je n'ai pas compris et que tu le fasses déjà.

A ma connaissance, SetIA (ou quelque chose de proche) permet de changer justement un script du personnage lui-même. Cela dit, cet effet n'a pas très bonne réputation (il me semble), car il ne faut pas oublier de remettre le script d'origine, ce qui n'est pas facile à faire puisqu'il n'y a rien de prévu dans le système de jeu pour cela. Les effets disparaissent quand tu enlèves l'objet, mais rien ne remet le script d'origine, je crois.
Maintenant que j'y pense, ton problème vient probablement de la façon dont l'effet lié à l'équipement de l'objet opère: il est évalué quand tu prends l'objet en main, et donc une fois pour toute jusqu'à ce que tu l'enlèves. Donc si quand tu le prends, ton jet de dés est dans la proba de 30%, le sort va apparaître systématiquement. Si le jet de dés est supérieur, ton sort n'apparaîtra jamais. La suggestion de faire un sort utilisé dans 100% des cas mais qui n'a que 30% de chances de provoquer l'effet résoudrait donc ton problème si cette hypothèse est correcte.

nal'ex, ce que tu as dit des probabilités est vrai dans un script (c'est le poids relatif des responses qui fait la proba, pas la valeur indiquée après response) mais la probabilité fonctionne bien dans les effets.

Posté : mer. 14 avr. 2004, 21:41
par ferrumach
Cela dit, puisque tu sembles prendre modèle sur un objet d'un mod, pourquoi ne fais-tu pas de la même façon
je redis que le katana evoqué utilise "cast spell on condition" et pas de script , la différence avec mon item c'est que ce katana à une réponse de 100% à l'agression(00-100)et quand je modifie la proba pour mon item à 30% (00-30) cela fonctionne encore à 100%
La suggestion de faire un sort utilisé dans 100% des cas mais qui n'a que 30% de chances de provoquer l'effet résoudrait donc ton problème si cette hypothèse est correcte.
je redis qu'en customisant le sort , en mettant 100% au spell effect de l'arme, et en mettant 30% aux 3 effets du sort primitif (lightning3d,damage,EFF.file) cela ne modifie en rien la réponse (tjs 100%)
3)</span> <span style=\'color:orange\'>Pour le script

IF
        HitBy(LastHitter,CRUSHING)
OR(6)
        HasItemEquipedReal("EPEPE",Player1)
        HasItemEquipedReal("EPEPE",Player2)
        HasItemEquipedReal("EPEPE",Player3)
        HasItemEquipedReal("EPEPE",Player4)
        HasItemEquipedReal("EPEPE",Player5)
        HasItemEquipedReal("EPEPE",Player6)
THEN 
  RESPONSE #30
        ReallyForceSpell(Myself,WIZARD_DEATH_FOG)
  RESPONSE #70
        Continue()// faut il mettre autre chose ?
END
.....ne marche pas (mis dans l'override), le script est il correcte, pour commencer et avant toute chose, meme si cela m'enuie de faire un script vu les mauvaises réputations deci delà......(embetant tout ca....) ?


je dois dire aussi que ce genre arme est pour une créature non embauchable, mais cela m'intéresse aussi pour une embauchable
merci
Edit:
ton problème vient probablement de la façon dont l'effet lié à l'équipement de l'objet opère: il est évalué quand tu prends l'objet en main, et donc une fois pour toute jusqu'à ce que tu l'enlèves. Donc si quand tu le prends, ton jet de dés est dans la proba de 30%
oui c'est l'explication , je viens de tester le katana de kuroisan modifié à 30%: quand je l'enlève et le remets ,c'est on ou off, le chiffre est donc bloqué tant que l'on tient l'arme

Reedit: bizarre : pour tester le script plus haut, j'ai supprimé le 2 eme response, (donc 100% de cloud kill), et la meme probleme qu'avec spell effect : cloud kill or not suivant que j'enlève puis remets l'arme!!!!!!!!!!!!!! :..: :..:
En fait si c'est logique si je ne le mets pas dans baldur.bcs ou dplayer2 ou dplayer3

DONC si l'arme est pour un npc non embauchable pas d'autres moyens que de le mettre dans baldur.bcs :gign:

Posté : jeu. 15 avr. 2004, 22:30
par Isaya
Désolé, j'ai lu un peu vite les messages et j'ai raté certains éléments clés.

Je répète qu'il faut éviter à tout prix d'utiliser le script BALDUR.BCS.
Pour les créatures recrutables, utilise le script que je t'ai indiqué. A ma connaissance tous les personnages l'utilisent.
Pour les non recrutables, puisque tu crées aussi les créatures, tu peux leur affecter les scripts que tu veux. Donc inutile de recourir à BALDUR.BCS pour ça. Fais-toi un script et affecte-le à la créature avec Creature Editor ou tout autre programme du même genre dans un des slots de script.
Qui plus est, dans les deux cas, tu pourras te contenter de tester avec Myself plutôt que d'avoir à tester avec les 6 PlayerN.

Comment affectes-tu le script ? Je pense qu'il faudrait éviter de le faire par un effet Set AI attribué à l'objet et activé quand tu le prends en main. Si tu as ce bout de script dans BALDUR.BCS, ça ne peut pas marcher car Myself est inconnu ou bien toujours le personnage principal (et donc ce n'est peut-être pas lui qui se fait frapper, donc le trigger ne fonctionne pas). Si tu mets ce bout de script dans DPLAYER2 ou 3, en ayant gardé un seul HasItem... avec Myself à la place de PlayerN, ça devrait marcher.

Autre chose concernant les scripts : ils sont évalués du haut en bas. Dès qu'une condition est remplie, l'action est effectuée et le script reprend au début. Donc si tu as une condition toujours vérifiée placée avant ta condition, tu n'atteindras jamais ta condition, donc ton code ne se déclenchera jamais.

A ma connaissance, l'action Continue() est bien celle qui permet de poursuivre le script après le bloc courant. Dans ton cas, je pense que tu pourrais aussi bien utiliser celle qui fait repartir au début du script sans que ça change le comportement.

J'espère n'avoir rien raté cette fois-ci ;)

Posté : ven. 16 avr. 2004, 17:39
par ferrumach
Concrètement j'assigne à mon npc non embauchable, son script de combat(blablabla), dans ce script je rajoute le bout de script sur le cloud kill

Mais le problème c'est que ce bout de script ne sera pas effectué en permanence lors du combat ? ( le script étant lu de haut en bas
Il faut que le cloud kill soit lancé :!!!: indépendamment de son script de combat, :!!!: sorts lancés etc.... ( c'est pour cela que j'avais pensé à créer un objet )

Posté : ven. 16 avr. 2004, 20:53
par Isaya
Je ne comprends pas.

Si ton objet lance le sort quant ton personnage est touché, c'est bien que tu es en combat, non ? Si tu continues à contrôler la présence de l'objet en main et le fait que le personnage vient d'être frappé, le sort ne sera bien lancé que dans ces conditions là. Je suppose que le trigger HitBy() ne s'active qu'après un coup porté et qu'il annule alors la condition.

Cela dit, je suis d'accord avec toi. Si tu pouvais le faire hors d'un script, tu aurais plus de chance que l'effet ne soit pas bloqué par le fait que d'autres éléments du script empêchent d'atteindre le bout de script. Quoique la solution consisterait alors à placer ton bout de script en début de script.