Page 1 sur 1

[KIT] Comment attribuer des habilités sous condition ?

Posté : dim. 10 avr. 2016, 16:55
par Freddy_Gwendo
Pour coller à sa description, j'ai décidé de n'accorder des habilités à ma Chevaucheuse de Licorne que lorsqu'elle possède une licorne.

1° étape : supprimer les AP_ concernés de la table CLUA.
2° étape : les conférer soit par script, soit par dialogue initié par la licorne lorsque la Chevaucheuse atteint les niveaux concernés.

Mais en commençant à coder ça, je me suis aperçu que je provoquais un problème que je n'arrive pas à résoudre : que se passe-t-il si plusieurs persos du groupe ont ce kit ?

Bref, comment identifier A QUI appartient la Licorne ?

Des idées ?

Posté : mar. 12 avr. 2016, 18:56
par Freddy_Gwendo
Personne n'aurait une intuition géniale ?

Posté : mer. 13 avr. 2016, 12:14
par mirandir
Tu peux peut-être mettre une variable locale sur le personnage possédant la licorne ?

Posté : mer. 13 avr. 2016, 12:42
par Freddy_Gwendo
Merci de répondre. :)

En fait, après voir étudié les fichiers CRE des PNJ du jeu, je me suis aperçu que je pouvais gérer ça avec le script du slot RACE qui n'est jamais utilisé.

J'ai commencé donc à coder ça hier soir : j'affecte le script GWCLDial au perso qui a le kit et je peux gérer le passage de niveau EN PRÉSENCE de la licorne (complexifié car non seulement la licorne change aussi de niveaux aux niveaux 20, 30, 35 et 40, mais bénéficie aussi de certaines habilités à cause du lien télépathique qui les unit : "Deux font une").

La seule chose que ne n'ai pas encore vérifié, c'est ceci : quid du mod level1NPC qui permet d'attribuer des kits différents en début de partie. Je dois ÊTRE CERTAIN que ce mod ne remplit pas le slot RACE des scripts.

Sinon, ça donne à peu près ceci :
► Afficher le texte

Code : Tout sélectionner

/* ===================================================================================================================== *
 *    INITIALISATION   du   DIALOGUE   lors   des   CHANGEMENTS   de   NIVEAU   de   la   CHEVAUCHEUSE   de   LICORNE    *
 * ===================================================================================================================== */

/* ---------------------------------------------------------------------------------------------- *
 *  NIVEAU 11 - VIGILANCE : la Chevaucheuse et sa Licorne bénéficient d'un bonus de 1 à leur CA.  *
 * ---------------------------------------------------------------------------------------------- */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,10)
	Global("GWChevaucheuse_L11","LOCALS",0)
	InActiveArea("GWLicor1")		// Licorne compagnon N10-19
	Delay(12)
THEN
	RESPONSE #100
		ApplySpellRES("GWCLAC1",Myself)
		ActionOverride("GWLicor1",ApplySpellRES("GWCLAC1",Myself))
		SetGlobal("GWChevaucheuse_L11","LOCALS",1)
END


/* ---------------------------------------------------------------------------------------------------------------------------- *
 *  NIVEAU 14 - SCIENCE de L'INITIATIVE : la Chevaucheuse et sa Licorne bénéficient d'un bonus de 1 à leur facteur de vitesse.  *
 * ---------------------------------------------------------------------------------------------------------------------------- */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,13)
	Global("GWChevaucheuse_L14","LOCALS",0)
	InActiveArea("GWLicor1")		// Licorne compagnon N10-19
	Delay(12)
THEN
	RESPONSE #100
		ApplySpellRES("GWCLIni1",Myself)
		ActionOverride("GWLicor1",ApplySpellRES("GWCLIni1",Myself))
		SetGlobal("GWChevaucheuse_L14","LOCALS",1)
END


/* ------------------------------------------------------------------------------------ *
 *  NIVEAU 15 - PISTAGE : la Chevaucheuse acquiert la capacité de pistage des rôdeurs.  *
 * ------------------------------------------------------------------------------------ */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,14)
	Global("GWChevaucheuse_L15","LOCALS",0)
	InActiveArea("GWLicor1")		// Licorne compagnon N10-19
	Delay(12)
THEN
	RESPONSE #100
		AddSpecialAbility("GWPist1")
		SetGlobal("GWChevaucheuse_L15","LOCALS",1)
END


/* ----------------------------------------------------------------------------------------------------------------- *
 *  NIVEAU 16 : la Chevaucheuse et sa Licorne gagnent un bonus de 2 aux dégâts qu'elles infligent au corps à corps.  *
 * ----------------------------------------------------------------------------------------------------------------- */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,15)
	Global("GWChevaucheuse_L16","LOCALS",0)
	InActiveArea("GWLicor1")		// Licorne compagnon N10-19
	Delay(12)
THEN
	RESPONSE #100
		ApplySpellRES("GWCLDam2",Myself)
		ActionOverride("GWLicor1",ApplySpellRES("GWCLDam2",Myself))
		SetGlobal("GWChevaucheuse_L16","LOCALS",1)
END


/* ---------------------------------------------------------------------------------------------- *
 *  NIVEAU 18 - VIGILANCE : la Chevaucheuse et sa Licorne bénéficient d'un bonus de 1 à leur CA.  *
 * ---------------------------------------------------------------------------------------------- */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,17)
	Global("GWChevaucheuse_L18","LOCALS",0)
	InActiveArea("GWLicor1")		// Licorne compagnon N10-19
	Delay(12)
THEN
	RESPONSE #100
		ApplySpellRES("GWCLAC1",Myself)
		ActionOverride("GWLicor1",ApplySpellRES("GWCLAC1",Myself))
		SetGlobal("GWChevaucheuse_L18","LOCALS",1)
END


/* --------------------------------- *
 *  NIVEAU 25 - BEAUTE SURNATURELLE  *
 * --------------------------------- */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,24)
	Global("GWChevaucheuse_L25","LOCALS",0)
	InActiveArea("GWLicor2")		// Licorne compagnon N20-29
	Delay(12)
THEN
	RESPONSE #100
		ApplySpellRES("GWBteSu",Myself)
		SetGlobal("GWChevaucheuse_L25","LOCALS",1)
END


/* -------------------------------------------------------------------------------------------------- *
 *  NIVEAU 30 - VIGILANCE     : la Chevaucheuse et sa Licorne bénéficient d'un bonus de 1 à leur CA.  *
 *              INTEMPORALITÉ : la Chevaucheuse bénéficie de la longévité de sa licorne               *
 * -------------------------------------------------------------------------------------------------- */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,29)
	Global("GWChevaucheuse_L30A","LOCALS",0)
	InActiveArea("GWLicor3")		// Licorne compagnon N30
	Delay(12)
THEN
	RESPONSE #100
		ApplySpellRES("GWCLAC2",Myself)
		ActionOverride("GWLicor3",ApplySpellRES("GWCLAC2",Myself))
		SetGlobal("GWChevaucheuse_L30A","LOCALS",1)
END


/* --------------------------------------------------------------------------------- *
 *  NIVEAU 30 - PISTAGE : la Chevaucheuse acquiert la capacité Empreintes fraîches.  *
 * --------------------------------------------------------------------------------- */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,30)
	Global("GWChevaucheuse_L30B","LOCALS",0)
	InActiveArea("GWLicor3")		// Licorne compagnon N30
	Delay(12)
THEN
	RESPONSE #100
		AddSpecialAbility("GWPist2")
		SetGlobal("GWChevaucheuse_L30B","LOCALS",1)
END


/* ------------------------------------- *
 *  NIVEAU 35 : Choix d'un nouveau sort  *
 * ------------------------------------- */

IF
	Class(Myself,PALADIN_ALL)
	LevelGT(Myself,34)
	Global("GWCLDIAL","GLOBAL",35)
	Global("GWChevaucheuse_L35","GLOBAL",0)
	Delay(12)
THEN
	RESPONSE #100
		SetGlobal("GWCLDIAL","GLOBAL",36)
		CreateCreatureObject("GWCLDial",Myself,0,0,0)
		ActionOverride("GWCLDial",StartDialogNoSet(Myself))
END


/* --------------------------------------------- *
 *  SORT CHOISI : ENDURANCE de l'OURS de GROUPE  *
 * --------------------------------------------- */

IF
	Global("GWCLDIAL","GLOBAL",3)			// Le sort de groupe a été choisi
	Global("GWChevaucheuse_L35","GLOBAL",1)
	PartyRested()
THEN
	RESPONSE #100
		SetGlobal("GWCLDIAL","GLOBAL",0)
		SetGlobal("GWChevaucheuse_L35","GLOBAL",0)
		AddSpecialAbility("GWCLOurs")
END


/* ------------------------------------------ *
 *  SORT CHOISI : FORCE de TAUREAU de GROUPE  *
 * ------------------------------------------ */

IF
	Global("GWCLDIAL","GLOBAL",3)			// Le sort de groupe a été choisi
	Global("GWChevaucheuse_L35","GLOBAL",2)
	PartyRested()
THEN
	RESPONSE #100
		SetGlobal("GWCLDIAL","GLOBAL",0)
		SetGlobal("GWChevaucheuse_L35","GLOBAL",0)
		AddSpecialAbility("GWCLTaur")
END

/* -------------------------------------- *
 *  SORT CHOISI : GRÂCE FÉLINE de GROUPE  *
 * -------------------------------------- */

IF
	Global("GWCLDIAL","GLOBAL",3)			// Le sort de groupe a été choisi
	Global("GWChevaucheuse_L35","GLOBAL",3)
	PartyRested()
THEN
	RESPONSE #100
		SetGlobal("GWCLDIAL","GLOBAL",0)
		SetGlobal("GWChevaucheuse_L35","GLOBAL",0)
		AddSpecialAbility("GWCLGFel")
END