La pixie

Répondre
Partager Rechercher
C'est assez facile à faire vu que POLYMORPH_TYPE_PIXIE existe déjà. Tu fais un anneau personnalisé, tu lui donne un tag bien reconnaissable, tu lui donne la capacité "pouvoir unique sur soi uniquement" avec utilisation illimité, et puis tu tripatouille l'event OnActivateItem de ton module pour qu'il lance un EffectPolymorph() d'une durée de 60 secondes (6 s/round) sur le PJ qui utilise l'anneau.
Tu sais utiliser le OnActivateItem ?
Dommage

Bon, je te donne un script standard que tu n'auras plus jamais besoin de modifier, met le bien sur le OnActivateItem du module (propriétés du module) :
Code PHP:

//OnActivateItem (by Jedaï)

void main() 

  
object oPC GetItemActivator(); 
  
object oItem GetItemActivated(); 
  
object oTarget GetItemActivatedTarget(); 
  
location lTarget GetItemActivatedTargetLocation(); 


  if( ! 
GetIsObjectValidoItem ) ) 
      return; 

  
string sTagItem GetTagoItem ); 
  
string sScript "item_" GetStringLeftGetStringLowerCasesTagItem ), 11 ); 

  
SetLocalObject(oPC"oItAct"oItem); 
  
SetLocalObject(oPC"oItTarg"oTarget); 
  
SetLocalLocation(oPC"lItLocTarg"lTarget); 

  
ExecuteScriptsScriptoPC ); 

Ensuite tu crée un script de nom "item_"+le tag de ton anneau (en minuscule), te préoccupe pas si ça rentre pas en entier, c'est pas grave, pour la suite je suppose que ton anneau a pour tag "IT_RINGPIXIE", ton script s'appellera donc "item_it_ringpixi" (le nom d'un script ne peut faire plus de 16 caractères):
Code PHP:

//script "item_it_ringpixi"

void main()
{
    
object oSelf OBJECT_SELF;
    
    
effect eChange EffectPolymorphPOLYMORPH_TYPE_PIXIE );
    
    
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeChangeoSelfRoundsToSeconds10 ) );

Voilà, change le tag de ton objet ou le nom du script, si tu as bien créé l'anneau comme je te l'ai dit, ça devrait marcher comme sur des roulettes !
J'aurais plein de question mais bon, ça prendrait trop de temps, je n'ai pas le niveau de ce genre de scripts pour l'instant ^^ .
Je débute totalement dans la création de scripts ; je suis spécialisé dans la création de module et de dialogues où je suis assez bon, malheureusement j'ai des lacunes énormes de ce côté et ça compromets énormément la création de modules corrects. Aussi je poste ici toutes les demandes plus difficiles qu'un scripts : ajouter de l'intelligence .
Je vais m'imprimer le tutorial pour lire le soir en attendant je te fais une confiance aveugle, et je te remercie de ton aide très beaucoup .



ps : j'avais chercher à change, à transformation, à creature mais pas à Polymorph donc je n'avais rien trouvé...
Bon, on m'a confirmé que les fonctions du type GetItemActivatedTarget() marcherait dans les scripts des items, alors on peut simplifier mon script sur le OnActivateItem :
Code PHP:

//OnActivateItem (by Jedaï & Jassper)

void main() 

    
ExecuteScript"item_" GetTagGetItemActivated() ), GetItemActivator() ); 

Faut avouer que c'est plus court

Si ça marche pas avec celui-là, utilise l'ancien et avertit moi
Et si je veux faire une transformation en pixie spéciale améliorée par moi ?
Et si je veux me détransformer ?
Je pense qu'il faut créer une constante, ou alors utiliser une constante POLYMORPH qui utilise un Blueprint ou un tag, mais je trouve pas...
Et sinon je peux utiliser la fonction ExecuteScript() dans mes autres scripts ? C'est bien pratique quand même...
Pour ça, il faut ajouter une ligne au fichier polymorph.2da, impossible d'utiliser directement une fonction.

Tu peux tout à fait utiliser ExecuteScript(), mais cette fonction n'est pas toujours utile, on peut souvent procéder autrement de façon plus rationnelle. Enfin ça dépend des goûts...
Je teste tout de suite...
J'ai juste une autre petite question sans rapports ur laquelle je viens de tomber. Je reconstitue Carsomyr de BGII mais le niveau est trop supérieur au niveau 20. Même en baissant le plus possible je ne peux pas faire tenir et le +5 en dégâts, et le +5 en jet d'attaque, et la dissipation magique (et c'est en oubliant les fonctions épées de juste et dégâts contre les chaotiques). Y a t-il un moyen d'éditer le niveau ? Ou faut-il que je scripte une des capacités en pouvoir spécial ?
Ben... dans le répertoire utils/ de NWN, tu dois trouver un truc du genre Hak*.exe, tu le lance, tu rajoute les fichiers que tu veux mettre dedans et tu sauve le hakpack dans le répertoire hak/, ensuite tu va dans les propriétés de ton module et tu choisis ton hak...voilà !

Dans ton script n'oublie pas d'utiliser le chiffre de ton Polymorph, et pas POLYMORPH_TYPE_GOLDDRAGON, je crois que les polymorph_* sont en fait définis dans le nwscript.nss. (Pas sûr )
Ca marche : mon anneau le transforme en dragon d'or.
Revenons à mon problème, plus dur : la pixie que je veux hakpaker est immunisée aux attaques magiques à 50% et a vitesse. Je fais comment ? Je scripte mon item_it_ringpixi afin qu'en plus de la transformation il fasse les effets protections magiques 50% et vitesse ? Et si je voulais qu'elle dégage une lumière bleue, y a t-il un effet qui le fasse (comme projectile magique ?). Merci encore tu m'es d'une aide précieuse.
Oui je pense que le mettre dans ce script est encore le mieux à faire, sinon pour les effets visuels, je suis pas un spécialiste, mais je crois qu'il existe des modules de test, où l'on peut regarder les effets de chaque...effet.
Peut-être que VFX_DUR_SANCTUARY pourrait aller mais comme je l'ai jamais essayé...
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés