Aller au contenu


Faire Disparaitre Un Sort D'un Mort


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

#1 Daxterminator

Daxterminator

Posté 03 octobre 2006 - 21:24

Salut,
j'aimerais savoir si on peut faire disparaitre un sort ( une capacité plus précisement ) dès qu'un NPC meurt. Et comme je prévois d'utilser cette technique sur un grand, très grand nombre de NPC ( mais des "clonés", comme les gardes ) j'aimerais que cela ne ralentisse pas trop trop le jeu, si possible ( si vous avez des petits trucs pour que le jeu risque moins de ralentir, ça m'intérresse aussi ).  :?
Dax

#2 LordNecron

LordNecron

Posté 03 octobre 2006 - 22:33

Voir le messageDaxterminator, le 03.10.2006 à 22:24, dit :

Salut,
j'aimerais savoir si on peut faire disparaitre un sort ( une capacité plus précisement ) dès qu'un NPC meurt. Et comme je prévois d'utilser cette technique sur un grand, très grand nombre de NPC ( mais des "clonés", comme les gardes ) j'aimerais que cela ne ralentisse pas trop trop le jeu, si possible ( si vous avez des petits trucs pour que le jeu risque moins de ralentir, ça m'intérresse aussi ).  :?

Salut,

tu veux parler de la commande
RemoveSpell "exemple de sort"
qui supprime totalement le sort ? (qui marche pour les sorts comme pour les capacités je pense).
Ou bien tu souhaites désactiver le sort/capacité actif avant la fin de leur "timer"?
Je n'ai pas vraiment saisi l'histoire quand un npc mourrait en fait...
~~LordNecron~~

#3 Daxterminator

Daxterminator

Posté 04 octobre 2006 - 11:37

En fait, le NPC a l'armure liée en capacité ( en effet constant donc ) comme ça le NPC a une armure et le joueur ne peux pas la prendre  :shock: , mais lorsque le NPC tombe a terre, mort, il a encore l'armure sur lui, et avec 50 cadavres avec tous leurs armure liée, le jeu ralentis. Donc je voudrais qu'ils se débarrasent de leur armure qui fait ralentir le jeu, sans que le joueur soit obligé de supprimer tous les cadavres pour continuer a jouer normalement.
Dax

#4 Vardac

Vardac

Posté 04 octobre 2006 - 12:27

Salut

Facile, soit tu fait disparaitre les NPC quand ils meurts, soit dés qu'un NPC tombe à terre (meurt) tu fait disparaïtre cette capacité du jeu donc à tout les autres, sauf si tu met 50 ID différente :laughing1:

Pour les faires disparaitre quand ils meurt c'est :

Begin desapear_NPC

If ( OnDeath == 1 )
	"ID_du_perso", disable
endif
endif

end


#5 Daxterminator

Daxterminator

Posté 04 octobre 2006 - 12:38

ok merci, mais un trop grand nombre de scripts ne fait-il pas ralentir le jeu?  :laughing1:
Dax

#6 chef

chef

Posté 04 octobre 2006 - 13:15

Si.


Le script de Vardac est pas tout a fais se que tu veux.

Ensuite, si tu fais "ton bonhomme"->removespell "Nom du sort" il aura plus ce sort dans sa liste de sort.

Donc,

Begin name

If ( OnDeath == 1 )

removespell "Nom du sort"; si tu attache se script au perso, plus besoin de cibler la ligne...
endif


end


Comme sa, sa devrais marcher, je le sais vu que j'utilise souvent les fonction add et remove spell pour ajouter, retirer des capatitée au joueur (par exemple un script qui retire de la fatigue quand on marche dans des sable mouvent... Ou encore on donne de la magie quand on est dans une sources d'eau chaude magique ^^)

Wala wala...


Edit : Vardac, en plus d'avoir mis un endif de trop a ton script, c'est "machin->disable", pas "machin, disable"...  :laughing1: A moins que les deux marche, mais sa m'etonnerais.

Modifié par chef, 04 octobre 2006 - 13:56.

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#7 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 04 octobre 2006 - 13:38

Voir le messageDaxterminator, le 04.10.2006 à 13:38, dit :

ok merci, mais un trop grand nombre de scripts ne fait-il pas ralentir le jeu?  :?
Ca fait ralentir, mais si tes 50 PNJs sont dans 50 cells différentes, ça ne se traduira pas par des pertes de performances significatives (voire même observables sur des scripts aussi simples ! :laughing1:).



Voir le messagechef, le 04.10.2006 à 14:15, dit :

Previsualisation du code

Begin name

If ( OnDeath == 1 )

"ID_du_perso", disable
removespell "Nom du sort"; si tu attache se script au perso, plus besoin de cibler la ligne...
endif


end
...

Edit : Vardac, en plus d'avoir mis un endif de trop a ton script, c'est "machin->disable", pas "machin, disable"...  :green: A moins que les deux marche, mais sa m'etonnerais.
Grillé par l'edit ! :D Je confirme, ça ne devrait normalement pas marcher ! ;)
En plus, si tu as 50 PNJs identiques, il ne faut pas que tu appelles leur ID dans le disable (sans quoi tu n'as aucun moyen d'être sur que celui qui sera disabled est celui qui vient de mourir). Comme ton script est local, il te suffit d'appeler la fonction Disable seule sans spécifier explicitement l'ID sur laquelle tu l'appelles, le script prendra par défaut pour cible l'objet auquel le script est associé ! ;) (exactement comme pour le RemoveSpell, cf le commentaire de chef ! :)) Celà dit, tu n'en as peut-être plus besoin... :?
Ce qui donnerait au final :
Previsualisation du code
Begin name

if ( OnDeath == 1 )
; Disable ; Retirer le premier commentaire (le premier point-virgule) si tu ne veux pas que le cadavre disparaisse
RemoveSpell "Nom du sort" ; si tu attache se script au perso, plus besoin de cibler la ligne...
endif

End

Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#8 chef

chef

Posté 04 octobre 2006 - 13:59

ARF !
le disable qui étais la, aurais du etre supprimé, c est une erreur de copier collé !!

Donc, enfaite on dois pas le suprimer, donc je retire le disable... (je le barre pas, sinon sa va faire foirer le copier collé de Daxterminator XD

Bref, le disable n'a rien a faire la ^^

Merci pour ta rectification ^^

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill


#9 Vardac

Vardac

Posté 05 octobre 2006 - 06:44

Salut

Ah oui j'avais pas vu, merci de le faire remarquer, je suis aller trop vite ne écrivant,

A+

#10 chef

chef

Posté 06 octobre 2006 - 15:39

Si tu veux, tu peux mettre une armure sur puissante a tes perso, et quand il meurt tu leur met ses lignes a la place du removespell  :


Removeitem "casque" 1
Removeitem "cuirasse" 1
Removeitem "jambe" 1
Removeitem "épauliere" 1
Removeitem "bottes" 1
...

Sa marchera aussi...

Team Stargate



"Si vous traversez l'enfer, ne vous y arrêtez pas." - Wiston Churchill





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

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