[Script] Détection de créature
Posté : 23 déc. 2011, 15:18
En lien direct avec mon projet : http://www.confrerie-des-traducteurs.fr ... 21&t=10520
Solution au « problème » : http://www.confrerie-des-traducteurs.fr ... 94#p187594
Je préfère compartimenter la partie « avancement » et la partie « recherche ».
Actuellement je bloque sur quelques morceaux de script. Voici le premier :
Sur le principe (du moins ce que je pense avoir fait), cela scrute toutes les références de type NPC dans la cellule du joueur. Si la référence N a pour cible le joueur, et qu'elle n'est pas une créature, alors elle stoppe le combat. La référence suivante est scrutée, et ainsi de suite.
Le problème, c'est que cela stoppe le combat pour n'importe quel assaillant - ce qui me laisse perplexe étant donné la double condition ( 35 = NPC) et GetIsCreature == 0 qui élimine la possibilité que Ennemi, soit une créature. Je veux que les créatures continuent de m'attaquer ! Une suggestion, peut-être au niveau de la construction de la boucle ?
Edit : script alternatif, pour tester la boucle et la différentiation
Après différents essais je commence à me dire que ce sont les fonctions ref.IsCreature / ref.GetIsCreature qui ne fonctionnent pas (ou alors que je n'arrive pas à utiliser), car ici j'arrive à faire stopper le combat à tous les NPCs m'ayant pour cible, sauf les gardes.
Ou alors il n'existe aucunes créatures et ce sont toutes des NPCs (puisque je scrute que des références de NPCs (et pas des Actors), donc je ne vois pas pourquoi ça influe sur des références de créatures !?)
Solution au « problème » : http://www.confrerie-des-traducteurs.fr ... 94#p187594
Je préfère compartimenter la partie « avancement » et la partie « recherche ».
Actuellement je bloque sur quelques morceaux de script. Voici le premier :
Code : Tout sélectionner
set Ennemi to GetFirstRef 35
while (Ennemi)
if (Ennemi.GetCombatTarget == Player) && (Ennemi.GetIsCreature == 0)
Ennemi.StopCombat
endif
set Ennemi to GetNextRef
loop
Le problème, c'est que cela stoppe le combat pour n'importe quel assaillant - ce qui me laisse perplexe étant donné la double condition ( 35 = NPC) et GetIsCreature == 0 qui élimine la possibilité que Ennemi, soit une créature. Je veux que les créatures continuent de m'attaquer ! Une suggestion, peut-être au niveau de la construction de la boucle ?

Edit : script alternatif, pour tester la boucle et la différentiation
Code : Tout sélectionner
set Ennemi to GetFirstRef 35 1
while (Ennemi)
If Ennemi.GetCombatTarget == Player
if Ennemi.IsGuard
message "un garde vous a vu mourrir..." 3
endif
Ennemi.StopCombat Player
endif
Ou alors il n'existe aucunes créatures et ce sont toutes des NPCs (puisque je scrute que des références de NPCs (et pas des Actors), donc je ne vois pas pourquoi ça influe sur des références de créatures !?)
