La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 22:36:29
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Amy Haen Novice Messages: 7 |
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 | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
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 | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Bon plusieurs choses en fait
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 _________________ Là où il n'y a rien, même la mort ne peut rien prendre. Loreval |
Revenir en haut | |
abelthorne Ecuyer Messages: 42 |
Amy Haen a écrit : Code : if (oPlayer = ATTITUDE_AGGRESSIVE) |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Oui exact j'avais même pas vu
_________________ Là où il n'y a rien, même la mort ne peut rien prendre. Loreval |
Revenir en haut | |
Amy Haen Novice Messages: 7 |
Xuyl a écrit : Il faudrait que tu récupères l'attitude du oPlayer et ensuite tu compares. _________________ Blablabla |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Non le Lexicon considère maintenant que c'est ta bible !
Pour récupérer une attitude, désolés je vois pas 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 | |
Amy Haen Novice Messages: 7 |
Ca marche pas !!! T'aurais pas un lien avec un script de garde ? Et je ferais avec tant pis ^^
_________________ Blablabla |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
ç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 | |
Amy Haen Novice Messages: 7 |
Ca ne compile pas
_________________ Blablabla |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
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 | |
DarkWolf(Pg) Acolyte Messages: 33 |
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 | |
Gorkk Site Admin Messages: 1768 Localisation: Ici et ailleurs |
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 Bloqué dans SoU ? La solution n'est pas loin... HotU vous pose des problèmes ? Une seule solution |
Revenir en haut | |
lendraste Grand Maître Chanteur du Conseil Messages: 1403 Localisation: Quelque part ailleurs |
Gorkk a écrit : Je ne suis pas scripteur, mais il me semble que la ligne
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 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 ? _________________ 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 | |
DarkWolf(Pg) Acolyte Messages: 33 |
Tout à fait désolé, j'ai (encore^^) oublié de fermer une accolade :>>
|
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Au fait elle est ou la personne à l'origine du sujet ?
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 | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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