script pour faire comme garde spectrale
#1
Posté 29 juin 2005 - 19:51
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 ) 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
merci davance B)
#2
Posté 29 juin 2005 - 20:01
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!
#3
Posté 29 juin 2005 - 20:12
Encore merci...
Modifié par lavachekiripo, 29 juin 2005 - 20:14.
#4
Posté 29 juin 2005 - 20:48
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
Posté 30 juin 2005 - 08:59
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.
#6
Posté 30 juin 2005 - 12:43
#7
Posté 30 juin 2005 - 16:22
Enfait je ne suis pas sûr que le sort soit déclenché.
#8
Posté 02 juillet 2005 - 11:03
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.
#9
Posté 21 septembre 2005 - 12:08
#10
Posté 21 septembre 2005 - 14:21
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... )
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
Posté 21 septembre 2005 - 16:02
J'avais aussi préparé ma sauce alors je propose ceci :
Déclarer à 0 une variable globale : Vallune
Sur lunétoile :
Citation
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
Sur chacun des 3 objets :
Citation
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
#12
Posté 21 septembre 2005 - 16:31
a3jv, le 21.09.2005 à 17:02, dit :
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
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
Posté 05 octobre 2005 - 21:35
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)