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 12:38:08
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 |
ronin Acolyte Messages: 21 |
voila, afin de doter mon module d'un interet pvp supplementaire
je vous posterai le lien quand il sera en ligne, je souhaiterai doter celui ci d'un script d'hostiliter interfaction.... je suis un GOS NOOB en script, j'en fait donc appel a vous, qui a mon avuis etes bien meilleur **langue noire , collée par terre** donc en fait , il y a 3 factions en guerre, chacune se combattant l'une l'autre... y a t'il une solution simple qui permette ceci Merci a vous... [Edit de Lendraste : j'ai remi le titre du sujet en minuscule. Merci de ne plus refaire de titre en majuscule à moins que cela ait du sens (comme les acronymes)] |
Revenir en haut | |
Archéops Ecuyer Messages: 55 |
Salut,
si j'ai bien compris les 3 factions sont toutes hostile entre elles.. Pour ma part, je pense qu'il faut utiliser un script à mettre dans le OnEntreClient du module... Le problème c'est que je sais pas sur quoi tu te bases pour déterminer les factions : un objet dans l'inventaire, la race ect.... Pour ce script moi je me suis baser sur l'alignement du joueur, ça te donnera un exemple... En plus le script compile mais je sais pas si il marche... De plus je suis pas sur des seuils pour Mauvais et Bon mais bon.... Voilà le script : NWScript :
/// A placer dans OnClientEnter /// Pour un module avec trois factions differentes /// Chacune des faction tant hostile entre elle.... ////////////////////////////// //////////////////// object oPC=GetEnteringObject(); void main() { if (GetIsPC(oPC)) { int iAligne=GetAlignmentGoodEvil(oPC);/// on recupere l'alignement du joueur arrivant object oPlayer=GetFirstPC(); /// on amorce la boucle if (iAligne<=25) /// Cas ou le joueur est evil { while (GetIsObjectValid(oPlayer))/// debut de la boucle qui parcours tout les joueurs de la liste.. { int iPlayer=GetAlignmentGoodEvil(oPlayer);/// on recupere l'alignement des joueurs deja la if (iPlayer>25) { SetPCDislike(oPC,oPlayer); /// on change le comportement du joueur vis-avis des autres.. } oPlayer=GetNextPC();/// on continue de parcourir la listes des joueur } } if (iAligne>=75) /// meme chose pour les good { while (GetIsObjectValid(oPlayer)) { int iPlayer=GetAlignmentGoodEvil(oPlayer); if (iPlayer<75) { SetPCDislike(oPC,oPlayer); } oPlayer=GetNextPC(); } } if ((iAligne<75)&&(iAligne>25)) /// meme chose pour les neutres... { while (GetIsObjectValid(oPlayer)) { int iPlayer=GetAlignmentGoodEvil(oPlayer); if ((iPlayer>=75)||(iPlayer<=25)) { SetPCDislike(oPC,oPlayer); } oPlayer=GetNextPC(); } } } } Voila, il y a plus qu'à adapter le test (le if) si tu veux créer tes factions à partir d'un autre critère... De plus le script compile mais je sais pas s'il marche... |
Revenir en haut | |
jarah Voyageur Messages: 4 |
interessant tout cela moi j'aimerai savoir si apres la mort l'hostilité reste?
pour ma part je recherche un systeme permanent d'hostilé entre trois faction ( en fonction de l'alignement: bon mauvais et neutre) via un objet dans l'inventaire que l'on obtiendrait apres le choix de la faction indropable et qui permettrait une fois en jeu que les gens de la meme faction se voit en amicale et que si ils rencntrent une des deux autres factions ou les deux le curseur se transforme en mode attaque... en passant je viens de tester ton script ça ne marche pas |
Revenir en haut | |
Archéops Ecuyer Messages: 55 |
Pour le faire à partir d'objet, il faut juste changer les tests if..
Au lieu de : NWScript :
if (iAligne<=25) il faut mettre un truc comme : NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. exemple : le joueur est bon donc il a l'objet caractérisant les bons... et il faut ausi changer le test à l'intérieur de la boucle : NWScript :
if (GetIsObjectValid(GetItemPossessedBy(oPlayer,"tag de l'objet qui caracterise son alignement")) ||GetIsObjectValid(GetItemPossessedBy(oPlayer,"tag de l'objet qui caracterise son alignement"))) dans notre exemple, il faut mettre les tag des objets caractérisant les neutres et les mauvais... Bien sur si tu modifies le script de la façon suivante il faut que les joueurs aient un et seulement un objet qui caractérise l'alignement... Pour ce qui est de la persitance de l'hostilité aprés la mort je ne sais pas il faut tester. Si ça ne marche pas aprés la mort il faudra inclure ce script dans le OnPlayerRespawn du module mais trouver un moyen de l'exécuter quand un joueur est ressuciter par un autre joueur (là c'est plus compliqué). Une dernière chose aussi... Le script s'exécute une fois au début mais aprés le joueur est libre de changer son comprotement, c'est à dire qu'il peut redevenir neutre.. Il faudrai bloquer ceci mais là je vois pas comment faire !!! Si quelqu'un voit qu'il le dise... |
Revenir en haut | |
jarah Voyageur Messages: 4 |
je vois...
j'ai testé ton script de depart entre un chaotique mauvais et un loyal bon et il ne c'est rien produit on etait en amicale |
Revenir en haut | |
Archéops Ecuyer Messages: 55 |
Rhhh, j'ai fait une erreur sur le script en effet (ça m'apprendra à pas lire l'aide)...
Bon voila ce que ça donne en fait .. Et il marche celui-là je l'ai testé .... NWScript :
/// A placer dans OnClientEnter /// Pour un module avec trois factions differentes /// Chacune des faction tant hostile entre elle.... ////////////////////////////// //////////////////// object oPC=GetEnteringObject(); void main() { if (GetIsPC(oPC)) { int iAligne=GetAlignmentGoodEvil(oPC);/// on recupere l'alignement du joueur arrivant object oPlayer=GetFirstPC(); /// on amorce la boucle if (iAligne==ALIGNMENT_EVIL) /// Cas ou le joueur est evil { while (GetIsObjectValid(oPlayer))/// debut de la boucle qui parcours tout les joueurs de la liste.. { int iPlayer=GetAlignmentGoodEvil(oPlayer);/// on recupere l'alignement des joueurs deja la if ((iPlayer==ALIGNMENT_GOOD)||(iPlayer==ALIGNMENT_NEUTRAL)) { SetPCDislike(oPC,oPlayer); /// on change le comportement du joueur vis-avis des autres.. } oPlayer=GetNextPC();/// on continue de parcourir la listes des joueur } } if (iAligne==ALIGNMENT_GOOD) /// meme chose pour les good { while (GetIsObjectValid(oPlayer)) { int iPlayer=GetAlignmentGoodEvil(oPlayer); if((iPlayer==ALIGNMENT_NEUTRAL)||(iPlayer==ALIGNMENT_EVIL)) { SetPCDislike(oPC,oPlayer); } oPlayer=GetNextPC(); } } if ((iAligne==ALIGNMENT_NEUTRAL)) /// meme chose pour les neutres... { while (GetIsObjectValid(oPlayer)) { int iPlayer=GetAlignmentGoodEvil(oPlayer); if ((iPlayer==ALIGNMENT_GOOD)||(iPlayer==ALIGNMENT_EVIL)) { SetPCDislike(oPC,oPlayer); } oPlayer=GetNextPC(); } } } } c'est la même chose.. enfin quasiment... |
Revenir en haut | |
ronin Acolyte Messages: 21 |
Merci pour tout je pense que on va bien s'en sortir, de plus, je pense qu on basera l'hostilité sur les alignement donc gg , merci pour tout
|
Revenir en haut | |
Koybe Novice Messages: 15 |
Je voudrais que lorsque des PJ qui sont hostiles groupent... et ensuite qu'ils dégroupent, l'hositlité se remette en place. Il n'y a pas d'événement concernant les groupes, commet peut-on faire?
merci! |
Revenir en haut | |
Orlondow Acolyte Messages: 33 |
et pour que les neutres soient vraiment neutres avec les autres ? (que les autres ne soient pas en hostile avec)
_________________ Les portes de Gwalap serveur Persistent/Action |
Revenir en haut | |
Mars Seigneur Messages: 199 |
Salut
Voila je voudrais utiliser un système similaire, mais qui définirait la faction celon un objet dans l'inventaire et je voudrais savoir quelle ligne je dois changer. Et aussi par la même occasion si ça ne vous dérange pas,je voudrais savoir quel script mettre dans le OnEnter d'un trigger pour que le pj soit téléporté dans un endroit différent celon l'objet. un petit exemple au cas ou je serais pas tres clair: pj possede objet1 téléporté ville 1 pj possede objet 2 téléporté ville 2 J'espere que vous pourrez résoudre mon probleme A+ _________________ Retour de forums d'aide aux créateurs ===> La communauté d'Aurora ===>Le sanctuaire des Scripts ===>Le salon de la 3D |
Revenir en haut | |
Archéops Ecuyer Messages: 55 |
Pour ton système similaire à base d'objet il suffit de changer les tests if... A la place de
NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. tu mets : NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. De même pour les tests d'aprés, tu remplace tout les tests d'alignements par des tests sur les objets... Ensuite pour le Trigger, il faut donc créer un script dans le OnEnter de ce style. NWScript :
object oPC=GetEnteringObject(); void main() { if (GetIsPC(oPC))//si c'est un joueur { if (GetIsObjectValid(GetItemPossessedBy(oPC,"tag de l'objet1")))// si il a l'objet1 { location locVille1=GetLocation(GetObjectByTag("tag d'un waypoint dans la ville1"));// determination de la ville AssignCommand(oPC,ActionJumpToLocation(locVille1));// on envoie le joueur dans la ville } } } Bien sur tu peux complet le script en faisant du copier-coller et en changeant juste les différents tags... Voilà j'espère que ça marchera. |
Revenir en haut | |
Mars Seigneur Messages: 199 |
Merci d'avoir répondu aussi vite, mais il y a quelque chose qui m'intrigue, cette ligne là :
Code : int iAligne=GetAlignmentGoodEvil(oPC);/// on recupere l'alignement du joueur arrivant
object oPlayer=GetFirstPC(); /// on amorce la boucle Et aussi celle là : Code : int iPlayer=GetAlignmentGoodEvil(oPlayer);/// on recupere l'alignement des joueurs deja la
if ((iPlayer==ALIGNMENT_GOOD)||(iPlayer==ALIGNMENT_NEUTRAL)) J'ai quand même voulu essayer, mais j'ai du faire un connerie à la fin, puisque ça ne compile pas. Je suis sur que c'est une erreur bête genre une accolade mal plaçée ou un truc du genre, j'ai essayé d'en rajouter une puis d'en enlever mais sans aucun effet, je vous met ce que j'ai fais. Code : /// A placer dans OnClientEnter
/// Pour un module avec deux factions differentes /// Chacune des faction tant hostile entre elle.... ////////////////////////////////////////////////// object oPC=GetEnteringObject(); void main() { if (GetIsPC(oPC)) { int iAligne=GetAlignmentGoodEvil(oPC);/// on recupere l'alignement du joueur arrivant object oPlayer=GetFirstPC(); /// on amorce la boucle if (GetIsObjectValid(GetItemPossessedBy(oPC,"tag de l'objet1"))) /// Cas ou le joueur a chosit la fact1 { while (GetIsObjectValid(oPlayer))/// debut de la boucle qui parcours tout les joueurs de la liste.. { int iPlayer=GetAlignmentGoodEvil(oPlayer);/// on recupere l'alignement des joueurs deja la if ((iPlayer==ALIGNMENT_GOOD)||(iPlayer==ALIGNMENT_NEUTRAL)) { SetPCDislike(oPC,oPlayer); /// on change le comportement du joueur vis-avis des autres.. } oPlayer=GetNextPC();/// on continue de parcourir la listes des joueur } } if (GetIsObjectValid(GetItemPossessedBy(oPC,"tag de l'objet2"))) /// meme chose pour la fact2 { while (GetIsObjectValid(oPlayer)) { int iPlayer=GetAlignmentGoodEvil(oPlayer); if((iPlayer==ALIGNMENT_NEUTRAL)||(iPlayer==ALIGNMENT_EVIL)) { SetPCDislike(oPC,oPlayer); } oPlayer=GetNextPC(); } } _________________ Retour de forums d'aide aux créateurs ===> La communauté d'Aurora ===>Le sanctuaire des Scripts ===>Le salon de la 3D |
Revenir en haut | |
Archéops Ecuyer Messages: 55 |
Je vais essaye d'éclairer ta lanterne...
Tout d'abord en ce qui concerne NWScript :
int iAligne=GetAlignmentGoodEvil(oPC);/// on recupere l'alignement du joueur arrivant object oPlayer=GetFirstPC(); /// on amorce la boucle Dans ton cas la première ligne tu n'en as pas besoin... Quand à la seconde ligne : elle est INDISPENSABLE pour exécuter la boucle While. Comme je l'ai indiqué elle sert à amorcer la boucle (cette boucle sert à déterminer le comportement du joueur entrant vis-àvis des autre joueur). Je ne sais pas ce que tu ne comprends pas dans l'autre ligne mais je suppose que c'est ||. En fait ||, c'est l'opérateur logique OU tout simplement. Bon en fait ton script ça donne un truc comme ça ( je l'ai fait donc je te le mets) : NWScript :
/// A placer dans OnClientEnter /// Pour un module avec deux factions differentes /// Chacune des faction tant hostile entre elle.... ////////////////////////////// //////////////////// object oPC=GetEnteringObject(); void main() { if (GetIsPC(oPC)) { object oPlayer=GetFirstPC(); /// on amorce la boucle if (GetIsObjectValid(GetItemPossessedBy(oPC,"tag de l'objet1"))) /// Cas ou le joueur a chosit la fact1 { while (GetIsObjectValid(oPlayer))/// debut de la boucle qui parcours tout les joueurs de la liste.. { if (GetIsObjectValid(GetItemPossessedBy(oPC,"tag de l'objet2"))) { SetPCDislike(oPC,oPlayer); /// on change le comportement du joueur vis-avis des autres.. } oPlayer=GetNextPC();/// on continue de parcourir la listes des joueur } } if (GetIsObjectValid(GetItemPossessedBy(oPC,"tag de l'objet2"))) /// meme chose pour la fact2 { while (GetIsObjectValid(oPlayer)) { if(GetIsObjectValid(GetItemPossessedBy(oPC,"tag de l'objet1"))) { SetPCDislike(oPC,oPlayer); } oPlayer=GetNextPC(); } } } } En fait il te manquait des accolades et les tests des boucles étaient pas les bons (c'était les lignes qui t'intriguaient). |
Revenir en haut | |
Mars Seigneur Messages: 199 |
Merci pour tes explications et pour le script.
J'aurais surement à en ajouter avec le temps et maintenant je sais comment faire . [Edit] Ca marche pas En fait le script rend les pj hostile envers mes pnj et non pas entres eux. _________________ Retour de forums d'aide aux créateurs ===> La communauté d'Aurora ===>Le sanctuaire des Scripts ===>Le salon de la 3D |
Revenir en haut | |
Orlondow Acolyte Messages: 33 |
question stupide : Dans le module "bien contre le mal", comment font-ils pour que non seulement le groupe des pjs du "bien" soit hostile envers les pjs du "mal" et vice versa, mais aussi que les pnjs du "bien", (donc amicaux avec les pjs du "bien") soient hostiles aux pjs du "mal" (et que bien sûr les pnjs du "mal" soient hostiles aux pjs du "bien" et amicaux avec les pjs du "mal") ? (vous me suivez jusque là ?
note : ce script fonctionne avec un système d'objet indropable (on a une "pierre du bien" ou une "pierre du mal" à l'issue d'un dialogue quand on arrive la première fois sur le module). Par ailleurs, il y a des zones où tous les pjs sont amicaux entre eux (la zone "sanctuaire" de respawn) : c'est un script ou bien c'est simplement que cette zone est marquée "pas de JcJ" dans ses propriétés ? En tout cas c'est un très bon exemple de ce genre de système mais pour ce qui est de retrouver ce script... j'ai besoin d'un pro Merci d'avance _________________ Les portes de Gwalap serveur Persistent/Action |
Revenir en haut | |
kiky.le.magnifique Homme très gay Messages: 907 Localisation: Camping de la nation martienne... |
Mars a écrit : [Edit] Ca marche pas
- Il me semble que ça ne fonctionne pas bien avec le OnClientEnter :
En fait le script rend les pj hostile envers mes pnj et non pas entres eux. essaie de mettre ça dans le OnEnter des zones ou arrivent tes PJ. - ça ne peut pas affecter tes PNJ, ça doit venir d'ailleurs, avec la condition if (GetIsPC(oPC)) suivie du couple GetFirstPC()/GetNextPC() c'est tout simplement impossible! Orlondow a écrit : Dans le module "bien contre le mal" Et si t'allais leur demander?
ça serait beaucoup plus simple, non? _________________ http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin! |
Revenir en haut | |
Mars Seigneur Messages: 199 |
kiky.le.magnifique a écrit : - Il me semble que ça ne fonctionne pas bien avec le OnClientEnter :
Je ne vais pas vous contredire je n'y connais rien, je test dans le onter de ma zone et j'éditerais pour dire si ça marche ou non.
essaie de mettre ça dans le OnEnter des zones ou arrivent tes PJ. - ça ne peut pas affecter tes PNJ, ça doit venir d'ailleurs, avec la condition if (GetIsPC(oPC)) suivie du couple GetFirstPC()/GetNextPC() c'est tout simplement impossible! Et d'apres vous, d'où peut venir mon problème _________________ Retour de forums d'aide aux créateurs ===> La communauté d'Aurora ===>Le sanctuaire des Scripts ===>Le salon de la 3D |
Revenir en haut | |
Orlondow Acolyte Messages: 33 |
Citation : Et si t'allais leur demander?
mouai... je risque de me faire jeter mais bon, je vous tiendrais au courant si on me réponds ça serait beaucoup plus simple, non? _________________ Les portes de Gwalap serveur Persistent/Action |
Revenir en haut | |
aquamitchel Novice Messages: 5 Localisation: france |
c'est un vieux sujet mais j'espere qu'on va pouvoir me repondre ^^
==> le script d'Archeops marche bien mais les PNJ eux restent ou "gentils" avec tout le monde ou "méchant" avec tout le monde...donc est-il possible de faire que le script des alignements s'applique aussi aux PNJ.....??? c'est à dire ==> un PNJ d'alignement "mauvais" hostile à un PJ et à un PNJ d'alignement "bon" ...et un PNJ d'alignement "neutre" gentil avec un PJ "neutre" mais méchant avec un PNJ d'alignement "mauvais"....etc... je me fais comprendre ? |
Revenir en haut | |
Orlondow Acolyte Messages: 33 |
tu vas trouver ça terrible comme réponse mais je crois que ça avait déjà été posé à un moment et à un autre et... il n'y a pas moyen de faire ça (enfin il me semble que c'est ce qu'on m'avait répondu).
le problème c'est qu'on peut pas donner une faction de PNJ (par exemple la faction "hostile" par défaut) à un joueur. C'est un peu comme si les joueurs et les NPC avaient des factions différentes et qu'il était impossible de concilier les deux mais il existe peut-être une solution () qui consisterait à faire en sorte que les NPC "neutres" à l'origine deviennent "hostiles" lorsqu'ils perçoivent des joueurs "mauvais". Mais bon c'est bof comme solution parce que du coup si un "bon" se pointe ils vont l'attaquer si il y a un perso "mauvais" dans le coin. En plus se pose le problème de faire redevenir "neutres" les NPC devenus "hostiles" après que le "mauvais" soit parti. Le gros problème réside donc, comme tu l'as dit, que les NPC ont un comportement uniforme face aux PC, et ne peuvent donc par conséquent être "amicaux" avec l'un et "hostiles" avec l'autre. je suppose qu'il y a toujours pas moyen d'assigner des factions de NPC aux PC malgré toutes ces merveilleuses avancées scriptologiques ? Sinon si quelqu'un a un moyen de biaiser ça ce serait super ! NB : j'ai pas réussi à ce qu'on me file le script du "bien contre le mal", et franchement je vois pas comment ils faisaient. _________________ Les portes de Gwalap serveur Persistent/Action |
Revenir en haut | |
Argyl Grand Sage du Conseil Messages: 704 |
J'ai une proposition, mais qui n'est pas du domaine du script (et oui, ils ne peuvent pas tout ) :
Vous créez de nouvelles factions et vous définissez les relations entre toutes ces factions dans le .2da qui gère tout ça. Sympa ! Non ? |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
> Aquamitchel : D'abord Bonjour !
Aquamitchel a écrit : ==> le script d'Archeops marche bien mais les PNJ eux restent ou "gentils" avec tout le monde ou "méchant" avec tout le monde...donc est-il possible de faire que le script des alignements s'applique aussi aux PNJ.....??? Oui, en effet, ce script est fait "pour" les joueurs ^^.
Citation : c'est à dire ==> un PNJ d'alignement "mauvais" hostile à un PJ et à un PNJ d'alignement "bon"
oui, bien sûr, c'est tout à fait possible. C'est même assez facile ^^
...et un PNJ d'alignement "neutre" gentil avec un PJ "neutre" mais méchant avec un PNJ d'alignement "mauvais"....etc... > Orlondow : Orlondow a écrit : le problème c'est qu'on peut pas donner une faction de PNJ (par exemple la faction "hostile" par défaut) à un joueur. C'est un peu comme si les joueurs et les NPC avaient des factions différentes et qu'il était impossible de concilier les deux Sad D'ailleurs, dans le script d'Archéops, il n'y a pas de fonction script qui fait quoi que ce soit aux factions. Les factions : il y en a 5 par défaut : STANDARD_FACTION_COMMONER STANDARD_FACTION_DEFENDER STANDARD_FACTION_HOSTILE STANDARD_FACTION_MERCHANT Plus celle du joueur qui en effet, ne peut être modifié, mais sur laquelle on peut influer, mais pas dans le sens qui t'intéresse. On peut cependant en rajouter autant que l'on veut pour les PNJs seulement, comme le disait Argyl. La réputation : Il y en a trois et pas une de plus : Enemy Friend Neutral Argyl > Dans la mesure où l'éditeur permet de créer directement des factions personnalisées, je pense que dans ce cas, il est inutile de trifouiller les 2da. En fait, si tu veux que les PNJs se comportent de tel ou tel manière face à d'autres PNJs ainsi qu'aux PJs appartenant à une autre nation ou bande, ( je n'utilise pas le terme de faction, afin de ne pas être confus ) tu as deux possibilités : Soit tu créés trois Subraces (ethnies) différentes : " Les bons", "Les moyens", "Les pas bons". Et tu les opposes. Soit tu utilises l'alignement. Le problème de ce système, est que si un joueur change d'alignement en faisant de bonnes ou de mauvaises actions, alors il change automatiquempent de faction. Cela peut être un inconvénient comme un avantage, à toi de voir. Ce que je te propose pour aller dans la continuité de ce que tu as déjà fait : Créer trois factions personnalisées directement avec l'éditeur pour régler le comportement de PNJ à PNJ. Chacune de ces factions devra être neutre avec la faction du joueur. Ensuite, dans le script de perception de tes PNJs, tu précises que si un le PNJ qui est l'hôte du script (OBJECT_SELF) est d'alignement bon et si le joueur qu'il voit est d'alignement mauvais alors OBJECT_SELF doit devenir enemy. Il ne change pas de faction, donc si un PJ "bon" passe par là, il sera considéreé comme neutre. Tu fais d'autres conditions du même type pour les autres alignement. Enjoy, comme dirait notre cher ami Argyl ! |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Salut à vous.
Bon voila j'ai un petit script pour vous, trés simple qui peut ce faire avec autant de faction que vous voulez. Déjà au lieu de vous basez sur un objet basé vous sur un truc simple lol, genre SetLocalInt (c'est mon script) : NWScript :
object oEnemi = GetFirstPC(); int iTeamPC = GetLocalInt(oPC, "Team"); if(GetIsPC(oPC) && GetIsPC(oEnemi)) { while(GetIsObjectValid(oEnemi)) { int iTeamEnemi = GetLocalInt(oEnemi, "Team"); if(iTeamPC != iTeamEnemi) { SetPCDislike(oPC, oEnemi); } else if(iTeamPC == iTeamEnemi) { SetPCLike(oPC, oEnemi); } oEnemi = GetNextPC(); } } Voila, vous avez juste a entré la variable lorsque le joueur choisi sa faction (SetLocalInt(oPC, "Team", 1 (pour bien)- 2 (pour mal)- 3 (pour neutre) ainsi dessuite). Voila @ pluche Edit : ceux qui sont nouveau, donc qui viennent d'entrer sur le serveur auront comme team 0, donc ils seront hostile aussi envers le joueur qui entre dans une équipe. Ecarté les joueurs qui n'ont pas d'équipe, et ceux qui en ont. _________________ [http] |
Revenir en haut | |
Argyl Grand Sage du Conseil Messages: 704 |
Enki a écrit : Argyl > Dans la mesure où l'éditeur permet de créer directement des factions personnalisées, je pense que dans ce cas, il est inutile de trifouiller les 2da.
Oui, je veux bien, mais si tu veux déterminer le degré de "tolérance" à quel point la faction est amie avec celle du joueur ou hostile à celle-ci ou a défaut d'une tendance dans l'un ou l'autre sens neutre, il faut passer par le .2da qui gère les factions et leurs relations.Enjoy, comme dirait notre cher ami Argyl ! |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Non, tu peux le faire directement par le biais de l'éditeur.
> Outil, éditeur de faction > Avancées. Les 2da pour les factions peuvent te servir à changer les modifications de comportement entre les factions. Ex : de combien ton alignement va baisser si tu voles un membre de la faction X ou si tu le tues, etc .... le tout en fonctiuon de témoins éventuels, etc.... |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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