La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 10:37:32


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Amy Haen
Novice
Inscrit le: 14 Aoû 2003
Messages: 7
Répondre en citant
Posté le : 17/08/2003 15:59:25 Sujet du message : Un garde

Je suppose qu'un script du genre existe, mais par principe pour apprendre, je veux créer le mien pour en comprendre le fonctionnement.
En fait je veux un garde qui reviendra tjs à son point de départ ; en gros, il est immobile, sauf s'il voit qq d'hostile ; dans ce cas il l'attaque, puis il reviend à sa place ... .
Pour ca j'ai penser mettre à WP à son emplacement d'origine et faire quelque chose du genre


Code :
object oPlayer = GetLastPerceived();
void main()
{
if (GetIsPC(oPlayer) && GetLastPerceptionSeen())
{
if (oPlayer = ATTITUDE_AGGRESSIVE)
{
ActionSpeakString("Sus à l'ennemi !!!!");
ActionAttack(oPlayer);
}
}
}


Seulement il veut pas me compiler ca a cause de la ligne

Code :
if (oPlayer = ATTITUDE_AGGRESSIVE)


Je me suis trompé de constante ? C'est meme fort possible vu que je l'ai pris par instinct ^^

Ensuite, quelle est la fonction qui dit à un objet de ce déplacer jusqu'à un autre objet avec un tag particulier (en fait, faire un truc du genre

Code :
ActionMoveToTag("WP");


).
C'est faisable ca ? Comment ?

Si vous voyer d'autres erreures dans mon script dite le

Il se trouve dans OnPerception du garde en question.
_________________
Blablabla
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM Ignorer l'utilisateur
 
Xuyl
Acolyte
Inscrit le: 24 Juin 2003
Messages: 26
Localisation: Montpellier / France
Répondre en citant
Posté le : 17/08/2003 17:06:08 Sujet du message :

Le problème c est que tu fais :
Code :
if (oPlayer = ATTITUDE_AGGRESSIVE)


En fait tu compares un objet avec une constante, ce sont deux choses différentes qui ne peuvent pas etre comparées !
Pour le reste j'ai pas regardé désolés...
Il faudrait que tu récupères l'attitude du oPlayer et ensuite tu compares.
_________________
Là où il n'y a rien, même la mort ne peut rien prendre.
Loreval
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Yahoo Messenger Ignorer l'utilisateur
 
Xuyl
Acolyte
Inscrit le: 24 Juin 2003
Messages: 26
Localisation: Montpellier / France
Répondre en citant
Posté le : 17/08/2003 17:15:59 Sujet du message :

Bon plusieurs choses en fait Very Happy
Pourquoi tu déclares :
Code :
object oPlayer = GetLastPerceived();

En dehors du main ? Mets le dans la fonction principale.

Ensuite pour te déplacer à un objet bien précis, il suffit de récupérer l'objet à partir de son tag :
Code :
object oWay = GetObjectByTag("TAG")

Et de faire :
Code :
ActionForceMoveToObject(oWay)


En gros voila pour tes questions Smile
_________________
Là où il n'y a rien, même la mort ne peut rien prendre.
Loreval
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Yahoo Messenger Ignorer l'utilisateur
 
abelthorne
Ecuyer
Inscrit le: 06 Aoû 2003
Messages: 42
Répondre en citant
Posté le : 17/08/2003 18:00:02 Sujet du message : Re: Un garde


Amy Haen a écrit :


Code :

if (oPlayer = ATTITUDE_AGGRESSIVE)


Il faudrait remplacer le = par ==, non ? (pour faire un test et pas une affectation)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Numéro ICQ Ignorer l'utilisateur
 
Xuyl
Acolyte
Inscrit le: 24 Juin 2003
Messages: 26
Localisation: Montpellier / France
Répondre en citant
Posté le : 17/08/2003 18:24:05 Sujet du message :

Oui exact j'avais même pas vu Shocked
_________________
Là où il n'y a rien, même la mort ne peut rien prendre.
Loreval
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Yahoo Messenger Ignorer l'utilisateur
 
Amy Haen
Novice
Inscrit le: 14 Aoû 2003
Messages: 7
Répondre en citant
Posté le : 17/08/2003 19:32:11 Sujet du message :


Xuyl a écrit :

Il faudrait que tu récupères l'attitude du oPlayer et ensuite tu compares.
Et comment on fait ca ? Par ce que je débute et les fonctions je les connais vraiment pas ; a ce propos, a part le lexicon, vous ne connaiteriez pas une petite astuce ou un truc pour mémoriser toutes ces fonctions ? Car c'est parfois dur de s'y retrouver ... .
_________________
Blablabla
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM Ignorer l'utilisateur
 
Xuyl
Acolyte
Inscrit le: 24 Juin 2003
Messages: 26
Localisation: Montpellier / France
Répondre en citant
Posté le : 17/08/2003 19:54:59 Sujet du message :

Non le Lexicon considère maintenant que c'est ta bible ! Very Happy
Pour récupérer une attitude, désolés je vois pas Confused
Essaye ton script en changeant le '=' en '==' dans ta condition, on sait jamais peut etre qu'il acceptera cette comparaison...
_________________
Là où il n'y a rien, même la mort ne peut rien prendre.
Loreval
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Yahoo Messenger Ignorer l'utilisateur
 
Amy Haen
Novice
Inscrit le: 14 Aoû 2003
Messages: 7
Répondre en citant
Posté le : 17/08/2003 20:00:03 Sujet du message :

Ca marche pas !!! T'aurais pas un lien avec un script de garde ? Et je ferais avec tant pis ^^
_________________
Blablabla
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM Ignorer l'utilisateur
 
Xuyl
Acolyte
Inscrit le: 24 Juin 2003
Messages: 26
Localisation: Montpellier / France
Répondre en citant
Posté le : 17/08/2003 20:06:23 Sujet du message :

ça fonctionne pas, c'est à dire ça compile pas ?
Ou quand il voit un PJ il ne l'attaque pas , le PNJ reste passif ?
_________________
Là où il n'y a rien, même la mort ne peut rien prendre.
Loreval
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Yahoo Messenger Ignorer l'utilisateur
 
Amy Haen
Novice
Inscrit le: 14 Aoû 2003
Messages: 7
Répondre en citant
Posté le : 17/08/2003 20:19:11 Sujet du message :

Ca ne compile pas Sad
_________________
Blablabla
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM Ignorer l'utilisateur
 
Xuyl
Acolyte
Inscrit le: 24 Juin 2003
Messages: 26
Localisation: Montpellier / France
Répondre en citant
Posté le : 17/08/2003 20:36:40 Sujet du message :

Je viens de tester, en effet c est ça qui pose problème :
Code :
if (oPlayer == ATTITUDE_AGGRESSIVE)

On ne peut pas comparer cet objet et la constante.
En fait tu veux que le garde attaque le PJ, si celui ci veut l'attaquer.

Tu pourrais essayer :
Code :

void main()
{
    object oPlayer = GetLastPerceived();
    int iAction;

    if (GetIsPC(oPlayer) && GetLastPerceptionSeen())
    {
        iAction=GetCurrentAction(oPlayer);

        if (iAction==ACTION_ATTACKOBJECT)
        {
            ActionSpeakString("Sus à l'ennemi !!!!");
            ActionAttack(oPlayer);
        }
    }
}

_________________
Là où il n'y a rien, même la mort ne peut rien prendre.
Loreval
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Yahoo Messenger Ignorer l'utilisateur
 
DarkWolf(Pg)
Acolyte
Inscrit le: 20 Aoû 2003
Messages: 33
Répondre en citant
Posté le : 20/08/2003 11:22:41 Sujet du message :

Pour voir s'il est hostile tu peux utiliser la fonction GetIsEnemy

genre
Code :
void main(){
  object oPlayer= GetLastPerceived();

  if( GetIsEnemy(oPlayer) ){
      //baston
  }else{
      // copainnnnnnnnn
  }

}

prototype : int GetIsEnemy(object oTarget, object oSource=OBJECT_SELF)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Gorkk
Site Admin
Inscrit le: 12 Sep 2002
Messages: 1768
Localisation: Ici et ailleurs
Répondre en citant
Posté le : 20/08/2003 16:19:26 Sujet du message :

Je ne suis pas scripteur, mais il me semble que la ligne
Code :
prototype : int GetIsEnemy(object oTarget, object oSource=OBJECT_SELF)

étant hors du main, elle ne sert à rien (le script se sera arrêté avant), non ?
_________________
Sacred - FR - La Bibliothèque de Neverwinter - Titan Quest - FR Cool
Bloqué dans SoU ? La solution n'est pas loin...
HotU vous pose des problèmes ? Une seule solution Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 20/08/2003 16:24:44 Sujet du message :


Gorkk a écrit :
Je ne suis pas scripteur, mais il me semble que la ligne
Code :
prototype : int GetIsEnemy(object oTarget, object oSource=OBJECT_SELF)

étant hors du main, elle ne sert à rien (le script se sera arrêté avant), non ?
Tu as raison, mais je pense que cette ligne a juste été mise à titre d'indication. Elle ne fait pas partie du script et il était bon de le préciser Mr. Green
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
DarkWolf(Pg)
Acolyte
Inscrit le: 20 Aoû 2003
Messages: 33
Répondre en citant
Posté le : 20/08/2003 20:24:57 Sujet du message :

Tout à fait désolé, j'ai (encore^^) oublié de fermer une accolade :>>
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Xuyl
Acolyte
Inscrit le: 24 Juin 2003
Messages: 26
Localisation: Montpellier / France
Répondre en citant
Posté le : 20/08/2003 23:06:56 Sujet du message :

Au fait elle est ou la personne à l'origine du sujet ? Very Happy
Ce serait bien qu'elle nous dise comment elle a procédé...
C'est un joueur d'Althea j'ai remarqué à l'occasion.
_________________
Là où il n'y a rien, même la mort ne peut rien prendre.
Loreval
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Yahoo Messenger Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 33.668ms