Aller au contenu


script pour faire comme garde spectrale


  • Veuillez vous connecter pour répondre
12 réponses à ce sujet

#1 lavachekiripo

lavachekiripo

Posté 29 juin 2005 - 19:51

bon voila, apres avoir fait mon petit coffre et tout, jaimerai que les objets qui y sont soit "comme" lamentation et broyeur, cest a dire qu'il faut un certain objet pour pouvoir s'en equiper. N'y connaissant rien au script, j'implore votre aide  :D

Voila, jai trois objet et je voudrais que, si on veut se les equiper sans souffrir, il faut etre equipé de lunétoile (cest un "mod"{mon tout premier} pour le nerevar)
alors deja je voudrais savoir si:
il faut un script pour chaque objet (je pense que oui, mais broyeur n'en a pas, bizarre non sleeping.gif ) et que devrais-je mettre...
Les effets seraient par exemple diminution de santé 100pts, est-ce qu'il faut que je le crée dabord dans spellmaking ou enchanting, ou bien le script fera tout??

Voila cest tout  :cry:   :green:
merci davance    B)
L'éternité c'est long... surtout vers la fin (Franz Kafka)

#2 bahamot

bahamot

Posté 29 juin 2005 - 20:01

Je peux pas te faire le script (de toute façon il serait surement pas bon), mais pour les scripts sur les armes, si garde spectrale n'en as pas, c'est peut être que le script est sur Lunétoile.
Mais dans ce cas la je te déconseille de modifier le script de lunétoile pour tes armes.

Le plus simple ça serait que pour chaque objet tu fasses un script qui des que tu équipe l'objet si tu n'a pas lunétoile (avec la fonction GetItemCount) cela déclenche un sort particulier, que tu devra en effet je pense faire au préalable.


Bon j'espere t'avoir un peu aidé quand même!
Feel Good Inc.

#3 lavachekiripo

lavachekiripo

Posté 29 juin 2005 - 20:12

Oui merci, toute proposition est la bienvenue, puisque comme je lai dit, je ny connait rien aux scripts :cry: . Cela me semble une bonne idée de faire le scipt sur les objets (robe, bouclier et baton) et non sur lunétoile :green: , qui, comme je viens de le verifier, a deja un script. Je pense que sa eviterai pas mal de probleme. sleeping.gif
Encore merci...

Modifié par lavachekiripo, 29 juin 2005 - 20:14.

L'éternité c'est long... surtout vers la fin (Franz Kafka)

#4 Nerwal

Nerwal

    SAMU Kalendaarien


Posté 29 juin 2005 - 20:48

Broyeur et Lamentation (sunder et keening) ont bien un script chacun (ouch_sunder et ouch_keening), et les dégâts infligés par l'absence de Garde Spectrale sont bien dans ces deux scripts.
Une autre façon de faire serait d'empêcher complètement le PJ de s'équiper de l'objet s'il ne remplit pas la condition exigée : c'est le cas dans le mode Shironeko-Nekojins par exemple (les griffes à level)

#5 lavachekiripo

lavachekiripo

Posté 30 juin 2005 - 08:59

donc en fait, tu propose de recopier les script de broyeur et lamaentation, changer quelques ID, et hop! le tour est joué. Jvais essayer...


EDIT  sa marche pas, ou alors jai mal remplacer les ID mais a mon avis jai dû oublier un truc... ba sinon c'est pas mal quand meme mais bon, jaurais bien aimer faire sa

Modifié par lavachekiripo, 30 juin 2005 - 12:30.

L'éternité c'est long... surtout vers la fin (Franz Kafka)

#6 Ptolémis

Ptolémis

Posté 30 juin 2005 - 12:43

J'ai regardé les scripts des armes et  :hum: on decouvre la variable 'wraithguardEquipped' qui ferai que les scripts que tu copirai/collerai ne marcheront pas... alors j'ai tt betement fait comme je le sentai  ;)


Spoiler


#7 bahamot

bahamot

Posté 30 juin 2005 - 16:22

Pour la commande "addspell" je sais pas si ça donnera l'effet désiré...
Enfait je ne suis pas sûr que le sort soit déclenché.
Feel Good Inc.

#8 lavachekiripo

lavachekiripo

Posté 02 juillet 2005 - 11:03

ok ok  je regarde sa tout de suite et je vous dit quoi

EDIT: bon, apres avoir resolu quelque probleme (jen regler un, un autre apparaissait, un de ces bordels..) mais jai tester et le script ne fait pas effet...
quelqu'un aurait-il une autre idée?

EDIT 2: bon cest soit "addspell" qui marche pas, soit mon "sort" qui est pas bon... jdois le mettre comment?? sort? maladie? malediction?

Modifié par lavachekiripo, 04 juillet 2005 - 12:57.

L'éternité c'est long... surtout vers la fin (Franz Kafka)

#9 MadW

MadW

Posté 21 septembre 2005 - 12:08

Je up ce topic pour savoir si, lavachekiripo, tu as réussi à faire ce que tu voulais, avec des armes équipables que si l'on a un objet précis dans l'inventaire??? ça m'intéresse...
Vieux d'la vieille sentant la fougère et un léger soupçon de moisissure au petit matin.

#10 Angora

Angora

    Danse avec les bugs


Posté 21 septembre 2005 - 14:21

Le script de Ptolémis a un problème, c'est qu'il est définitif ! En supposant qu'il marche, si tu retires ensuite l'objet qui fait "ouch", ben tant pis pour toi, le sort continu de t'abîmer !

Le premier jet est le bon, partir d'une variante de ouch_keening.

Voilà ma proposition :

Begin ouch_objet

short extraDamage
short OnPCEquip
float timer
short messageOnce
short PorteLunetoile; remplace WraithGuardEquipped

if ( MenuMode == 1 )
	return
endif

if ( Player->GetHealth <= 0 )
	return
endif

if ( Player->HasItemEquipped "Lunétoile" == 1 )
	set PorteLunetoile to 1
else
	set PorteLunetoile to 0
endif

if ( OnPCEquip == 1 )

	if ( timer < 1 )
  set timer to ( timer + GetSecondsPassed )
  return
	endif

	set timer to 0

     if ( PorteLunetoile == 0 )
          Set extraDamage to Random 75
          Set extraDamage to ( 0 - extraDamage )
  Set extraDamage to ( extraDamage - 50 )
          player->ModCurrentHealth extraDamage
  if ( messageOnce == 0 )
 	 Set messageOnce to 1
 	 MessageBox "Objet vous fait terriblement souffrir. Ça vous apprendra à ne pas porter Lunétoile, jeune sacripand de Nérévarine !"
  endif
     endif
endif

End ouch_objet

Remplacer "objet" par ce qui est approprié, bien sûr. (Et le message peut être modifié, aussi... :))
Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#11 a3jv

a3jv

    ... à 4 je reviens.


Posté 21 septembre 2005 - 16:02

OnPCEquip passe et reste à 1 tant que l'objet est équipé mais se remet à 0 dès qu'il est déséquipé.  :)

J'avais aussi préparé ma sauce alors je propose ceci :

Déclarer à 0 une variable globale : Vallune

Sur lunétoile :

Citation

Begin Lav_Lunetoile

short OnPCAdd
short OnPCDrop

if ( OnPCAdd == 1 )
     set Vallune to 1
     set OnPCAdd to 0
endif

if ( OnPCDrop == 1 )
     set Vallune to 0
     set OnPCDrop to 0
endif

end
Permet d'être immunisé simplement en ayant lunétoile sur soi (dans son inventaire), évite donc d'être obligé de s'en équiper. C'est toi qui voit !

Sur chacun des 3 objets :

Citation

Begin Lav_Testequip

short OnPCEquip

if ( MenuMode == 1 )
     return
endif

if ( Vallune == 1 )
     return
endif

if ( OnPCEquip == 1 )
     Player->ModHealth -1
     MessageBox "Sans lunétoile cet objet est dangereux pour son porteur."
endif

end

Les choses n'ont que l'importance ou la valeur qu'on leur donne.

#12 Angora

Angora

    Danse avec les bugs


Posté 21 septembre 2005 - 16:31

a3jv, le 21.09.2005 à 17:02, dit :

OnPCEquip passe et reste à 1 tant que l'objet est équipé mais se remet à 0 dès qu'il est déséquipé.  :)

Oui mais ça devrait alors se mettre dans le script de Lunétoile, ce qui n'est pas le cas de mon utilisation de Player->HasItemEquipped...

Tiens, variente optimisée (puisqu'en fait on a pas besoin de la variable du tout, après tout) :

Begin ouch_objet

short extraDamage
short OnPCEquip
float timer
short messageOnce

if ( MenuMode == 1 )
return
endif

if ( Player->GetHealth <= 0 )
return
endif

if ( OnPCEquip == 1 )

if ( timer < 1 )
 set timer to ( timer + GetSecondsPassed )
 return
endif

set timer to 0

    if ( Player->HasItemEquipped "Lunétoile" == 0 )
         Set extraDamage to Random 75
         Set extraDamage to ( 0 - extraDamage )
 Set extraDamage to ( extraDamage - 50 )
         player->ModCurrentHealth extraDamage
 if ( messageOnce == 0 )
  Set messageOnce to 1
  MessageBox "Objet vous fait terriblement souffrir. Ça vous apprendra à ne pas porter Lunétoile, jeune sacripant de Nérévarine !"
 endif
    endif
endif

End ouch_objet

Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#13 MysticalShadow

MysticalShadow

Posté 05 octobre 2005 - 21:35

Il ne faut pas mettre des "Set timer to ( timer + GetSecondsPassed )" dans un bloc if-endif/while-endwhile, paraît-il.
De plus, il me paraît un peu plus léger de faire ceci:

BEGIN ouch_objet

short extraDamage
short OnPCEquip
float timer
short messageOnce

if ( MenuMode == 1 )
	Return
endif

if ( OnPCEquip == 0 )
	Return
endif

if ( Player->HasItemEquipped "Lunétoile" == 1 )
	Return
endif

if ( timer > 1 )

	Set timer to 0
		Set extraDamage to ( Random, 75 )
	   	Set extraDamage to ( 0 - extraDamage - 50 )
		Player->ModCurrentHealth, extraDamage
		
	if ( messageOnce == 0 )
		Set messageOnce to 1
		MessageBox "Objet vous fait terriblement souffrir. Ça vous apprendra à ne pas porter Lunétoile, jeune sacripant de Nérévarine !"
	endif

endif

Set timer to ( timer + GetSecondsPassed )


END

(pourquoi bloquer le script à la mort du joueur?)

Modifié par MysticalShadow, 05 octobre 2005 - 21:35.





0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)