Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Changer la faction du joueur

Par Shura de Nazga le 5/1/2003 à 23:29:58 (#2953072)

Voilà j'aimerai savoir si c'est possible de changer la faction du joueur après un dialogue (enrôlement dans une armée par exemple).
Si c'est possible pourrais-je avoir un script tout fait? Je sais je demande peut-être beaucoup mais je suis incapable de faire un script, et c'est pas faute d'avoir essayé *n'a pas la logique*.

J'ai fait des recherches mais tout ce que j'ai trouvé c'est des lignes de commandes, des morceaux de scripts, enfin que du chinois pour moi...

D'avance merci, sinon tant pis.:)

Par Mastokk le 5/1/2003 à 23:44:26 (#2953142)

http://forums.jeuxonline.info/showthread.php?s=&threadid=130922&highlight=Factions



// Adjust how oSourceFactionMember's faction feels about oTarget by the
// specified amount.
// Note: This adjusts Faction Reputation, how the entire faction that
// oSourceFactionMember is in, feels about oTarget.
// * No return value
void AdjustReputation(object oTarget, object oSourceFactionMember, int nAdjustment)


J'ai pas vérifié mais ca doit te donner un truc comme ca:


void main ()
{
object oPC = GetPCSpeaker();
AdjustReputation (oPC, OBJECT_SELF, +100);
}


Le +100 veut dire que la réputaion du PC par rapport au PNJ augmente de 100 (amélioration). J'ai utilisé 100 car c'est en général de cette valeur que la réputation décroît quand on attaque un PNJ.

le + est peut être inutile, j'en sais rien, à toi de tester.

voilà, si ça marche pas quelqu'un d'autre corrigera.

Par Shura de Nazga le 6/1/2003 à 0:13:26 (#2953280)

J'ai pris exactement le deuxième script et il refuse de le compiler.
ERREUR : UNKNOWN STATE IN COMPILER
sur la ligne : AdjustReputation (oPC, OBJECT_SELF, +100);

Par Mastokk le 6/1/2003 à 0:21:47 (#2953332)

enlève le +..... je t'ai dis que ça pouvait être faux...

Par Shura de Nazga le 6/1/2003 à 0:31:33 (#2953383)

Le script est bon mais il n'a pas l'effet désiré.
J'ai placé une créature de faction ennemie et elle est amicale.

Par Shura de Nazga le 6/1/2003 à 0:59:31 (#2953514)

Je vais donner tous les détails ça sera plus clair.
J'ai créé deux factions ennemies : Nazgaroth et Humains
Les factions marchent j'ai testé j'ai placé des créatures des deux factions dans la même zone et elle se sont entre-tuées :)

Moi ce qui m'intéresse c'est de faire en sorte que le joueur puissent rejoindre l'une ou l'autre des factions après avoir parlé au sergent recruteur de l'une ou l'autre faction.
Dans le dialogue je prévois d'introduire une branche du type : Voulez-vous rejoindre notre armée et participer à l'extermination de la vermine humaine?
Oui (c'est là que je veux changer la faction du PJ)
Non (rien ne se passe)

J'ai regardé un peu les commandes de script il y a :
Changefaction
mais d'après la description ça ne s'applique qu'aux PNJ, a moins d'avoir mal compris?

Voilà j'espère avoir été on ne peut plus clair :)

Par Mastokk le 6/1/2003 à 1:43:26 (#2953705)

Ok, ce que je t'ai filé te permet seulement de rendre la faction du PNJ à qui ton PJ parle amicale. Maintenant il faut rajouter une ligne qui rend la faction des ennemis mauvaise:

void main ()
{
object oPC = GetPCSpeaker();
AdjustReputation (oPC, OBJECT_SELF, 100);
AdjustReputation (oPC, "TAG_DU_RECRUTEUR_VILAIN", -100);
}


à tester, je sais pas si c'est le TAG qu'il faut mettre ici. Si ça ne marche pas, mets le resref. Et n'oublie pas les " pour entourer le tag ou le resref.

Par RAT le 6/1/2003 à 2:10:51 (#2953779)

la fonction demande deux objets donc tu ne peux pas lui faire passer un type string. Il faut qu'il chope l'objet ennemi. Et qu'il le mette à la place du string.

Par Mastokk le 6/1/2003 à 2:22:08 (#2953815)

Ha ok RAT comme ça alors:

void main ()
{
object oPC = GetPCSpeaker();
object oVilain = GetObjectByTag("TAG_DU_RECRUTEUR_VILAIN");
AdjustReputation (oPC, OBJECT_SELF, 100);
AdjustReputation (oPC, oVilain, -100);
}


c'était ce que je voulais faire au début mais je pensais que ça passerait directement avec le TAG dans la fonction.

Par Shura de Nazga le 6/1/2003 à 2:28:35 (#2953849)

Merci RAT, merci Mastokk c'est trop génial ça marche !!!!
*remotivé va se repencher sur son module jusqu'au petit jour*


Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !! Merci !!


C'est bien les scripts (quand on sait s'en servir :p )

Par RAT le 6/1/2003 à 3:33:49 (#2954005)

Vi tout à fait Mastokk, car tu chopes l'objet par le tag precis de la créature donc l'ordinateur le trouve automatiquement s'il existe bien. Par contre comme c'est un tag et non un resref, il faut bien que le tag du vilain soit unique sinon cela risque de créer un gros conflit.

et de rien Shura de Nazga, mais il ne faut pas me remercier, c'est Mastokk qui a fait le boulot :D:D:D, je n'ai servi que de correcteur :).

Donc bravo à toi Mastokk

Par Aer'Dalys le 17/2/2003 à 9:58:22 (#3252486)

est-ce que ça marche en multijoueur ? Je m'explique : un joueur a choisi une faction, un autre joueur choisit l'autre, seront-ils ennemis ?
Je suis en train d'essayer de créer un monde persistant ..... mais persistant que lorsque je serai la ....... donc en fait pas très persistant !! :D et j'aurais besoin de ces renseignements ........... merci

Par Reyan le 18/2/2003 à 17:58:47 (#3263971)

ben en fait, comme il en est question dans le sujet évoqué par mastokk, c'est pas évident, on a peu de moyen de jouer sur les fonction (pas moyen de mettre des fonctions custom en constante :enerve: ) mais, si je me souviens, y a deux nivo de "réputation" la faction, et l'individu, on peut très bien être pote avec un tas de gars mais y en a un qui nous revient pas.
le pb c'est qu'on peut pas donner de "faction" à un joueur" (enfin, il me semble), sauf le "SetPCDislike(object1, object2)" dont je viens de voir que ca existe et je vois pas ce que c'est. Donc, je crois pas que ce soit possible de mettre 2 joueur dans des factions opposé, ils sont tous dans "PC" mais les réaction des autre faction sont fonction du joueur. euh... je suis clair :doute:
enfin bref, je suis pas franchement sure, ou calé, mais je vois pas comment faire, sauf avec ce Dislike. Après on peut dire que tel PC appartient à Telle fonction, en fait si j'ai bien compris on s'arrange Juste pour qu'il est une réput de 100 avec cette faction, qui est ennemis à rellle autre => réput de 0, mais pour faire en sorte que des joueur "appartenant" aux deux factoins se frittent ... avec des Henchman peut être, un pote qu'on a, qui nous dit qui on aime ou pas ...

si quelqu'un dit que je me plante, tant mieux, ca m'intéresserais aussi :merci:

Par eMRaistlin le 18/2/2003 à 23:21:08 (#3266006)

En gros, c'est bien ca. Juste pour preciser que les factions entre joueur se decident en PvP : Avec le reglage du PvP et la possibilite de mettre des team ou non.

Apres, il n'est pas possible de rendre un Pj autrement que neutre ou amical face a un autre Pj.

JOL Archives 1.0.1
@ JOL / JeuxOnLine