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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Tout mes Problemes! :)

Par Stritis le 30/10/2002 à 8:41:42 (#2437786)

Bon bon bon...Alors on m'a demande de faire un sujet a moi au lieu de squatter celui des autres et ben je le fais :)

Bon je vais vous demander des scripts:

Je cherche le script qui permet qu'un garde arrete un PJ lorsqu'il agresse un PNJ et l'envoie en prison s'il accepte ou le tue s'il veut pas.Bon si cela n'est pas integre j'aimerai que le PJ perde beaucoup plus d'XP et de PO qu'une mort normale, voila!

J'aimerai avoir un script tout simple c'est que le personnage ne dise qu'une fois la meme phrase
ex:Bonjour....Je m'apelle et que l'autre fois que je lui parle il dise "Ah vous revoila comment allez-vous..."Je l'ai trouve mais je suis pas sur qu'il marche

J'aimerai qu'une phrase de dialogue ne s'affiche pas lorsque que le PJ ne remplit pas les conditons d'executions et j'aimerai cette exemple avec de l'argent
ex:Mon PNJ veut acheter une cle mais il n'a pas 50 PO j'aimerai que la phrase dialogue "acheter..." ne s'affiche pas et la remplace par "je n'ai pas..." et vice versa que la phrase "je n'ai pas assez" ne s'affiche pas lorsque le PJ a 50PO

Ensuite...Et bein c'est tout...pour l'instant :D
Merci de repondre meme si c'est questions vous paraissent simple (apres il y en aura des plus compliqués)!!:ange:

Par Etienne le 30/10/2002 à 8:51:21 (#2437822)

Une fois en prison, comment le scénar permettra t'il au personnage de faire amaende honnorable ? C'est quand m^me un meurtre ?

Par Stritis le 30/10/2002 à 9:05:51 (#2437873)

Je comprend pas ta question (et a qui elle s'adresse) mais bon je repons d'apres ce que j'ai compris...
D'apres ce que j'ai compris tu veux une punition (je capte pas "amaende "...)(Desole si je me trompe mais je comprend pas ta question :cool: )
Je ne peux pas trop penaliser le PJ comme meme mais si j'y arrive j'essayerai de faire plusieurs peine selon les delits
une si le personnage a arrete a la demande du garde il perdra tout son equipement et ira en prison sans perte d'XP. et si il veut pas s'arreter et ben il retourne niveau 1 et sans matos car il est trop reste en prison et cela lui a fait perdre son experience , voila
Bon s'il a tue plein de PNJ il est tue sans respawn ou si il y a recidive , bon et apres je sais pas...
Et bon d'abord j'essaie de faire des scripts et de savoir utiliser l'editeur ensuite je verrai pour le scenario

Par eMRaistlin le 30/10/2002 à 9:39:40 (#2438050)

J'aimerai avoir un script tout simple c'est que le personnage ne dise qu'une fois la meme phrase
ex:Bonjour....Je m'apelle et que l'autre fois que je lui parle il dise "Ah vous revoila comment allez-vous..."Je l'ai trouve

mais je suis pas sur qu'il marche

J'aimerai qu'une phrase de dialogue ne s'affiche pas lorsque que le PJ ne remplit pas les conditons d'executions et j'aimerai

cette exemple avec de l'argent
ex:Mon PNJ veut acheter une cle mais il n'a pas 50 PO j'aimerai que la phrase dialogue "acheter..." ne s'affiche pas et la

remplace par "je n'ai pas..." et vice versa que la phrase "je n'ai pas assez" ne s'affiche pas lorsque le PJ a 50PO


Euh... la, y'a des tutoriaux tres bien fait qui decrivent ca en details.

Je veux bien aider, mais pas faire a ta place.



Je cherche le script qui permet qu'un garde arrete un PJ lorsqu'il agresse un PNJ et l'envoie en prison s'il accepte

ou le tue s'il veut pas.Bon si cela n'est pas integre j'aimerai que le PJ perde beaucoup plus d'XP et de PO qu'une mort

normale, voila!


ca va etre un peu plus compliqué, la !

Tout d'abords, tu dois t'arranger pour que tes guardes ne deviebnnent pas hostile en voyant le PJ frapper le passant qui

passe.
Pour cela, c'est tres simple : Faction > Soldat envers passant = 50.

Ensuite, ca se complique. La solution la plus simple pour moi serait de mettre une fonction du style :

void main()
{
object oPC = GetLastKiller(); // Si tu neux veux que des meutrier. Tu peux remplacer par getLastHostilActor()
SetLocalInt(oPC,"nMeutrier",1);
SetLocalLocation(oPC,"lWhere",GetLocation(oPC));
}


Tu met ca dans le OnDeath (ou dans le onphysicallyAttacked si tu as mis lasthostileactor) de TOUS tes npc.

J'insiste bien. En fait, le but n'est pas que les guardes s'apercoivent que le PJ a été aggressif, mais plutot que le NPC

"flaggue" le PC comme ayant été un aggresseur...

Puis, dans le OnPerception des Gardes, tu met ceci :


void main()
{
object oLastPerceived = GetLastPerceived();

if (GetIsPC(oLastPerceived))
{
if (GetLocalInt(oLastPerceived,"meutrier")==1)
{
//if (GetDistanceBetween(GetLocation(oLastPerceived),GetLocalLocation(oLastPerceived,"lWhere"))<= 30.0f) //c'est optionnel
AssignCommand(OBJECT_SELF,ActionStartConversation(oLastPerceived , "resref_de_la_conversation");
//}
}
}
}


Puis, tu crée une conversation qui va laisser le choix au PJ.
(Sans oublier de reinitialiser les valeurs locales sur le PC ("nMeutrier" et "lWhere").

Autre detail, je t'ai laissé dans le szcript la possibilite de considerer (realistement) que au dela d'une certaine distance, les PC n'etaient plus mis en cause. (si tu decommente les commentaire idoines.)

Je te conseille vivement aussi de faire en sorte que l'area transition de la zone ou se trouve le PC nettoie l PC de ses crimes s'il n'a pas été incriminé apres... car comme toute les variables que tu inscrit, elle va rester apres coup, sauf si tu pense bien a la remettre a 0...

Par Stritis le 30/10/2002 à 9:49:54 (#2438117)

Merci je lis le script que tu m'a mit et je vais essaye de le comprendre point par point merci :)

Par Zariel le 30/10/2002 à 10:05:19 (#2438198)

Provient du message de Etienne
Une fois en prison, comment le scénar permettra t'il au personnage de faire amaende honnorable ? C'est quand m^me un meurtre ?


Trés pertinent ;)

C'est vrai qu'il est illogique de pouvoir réintégrer un personnage dans une ville aprés un meutre délibéré et une arrestation par les gardes mais tous les gouts sont dans la nature ;)

Par exemple, dans mes villes, si un Pj s'en prend à plus faible que lui, le script de prison se déclenche automatiquement et il se retrouve en taule (enfants, vieux ou passants par exemple) et la partie est terminée pour lui "Ciao". Sil veut se faire du bleu ou même du rouge, c'est la mort obligatoire. (un garde ou un "officiel de la ville" genre un banquier ou un marchand").

Si tes PJ commencent à allumer tous ce qui se trouvent dans la ville, je te raconte pas le bordel ;)

Il faut que les PJ comprennent qu'une ville n'est pas un défouloir, ni une zone ou l'agression est chose courante, comme chez nous quoi ;)(à part si tu incarnes des CM dans une ville ou les CM ont l'habitude de trainer..)

Enfin, moi c'est ma vision des choses :)

Par Stritis le 30/10/2002 à 10:22:34 (#2438288)

Mais on penalise trop en meme temps ! car mon module ne sera pas au niveau pour des vraix joueurs RP et tout ça...et il trouverai l'histoire nul et patati et patata , je n'ai pas assez de competence en D&D pour leur donner ce qu'il veulent, donc cela s'adressera aux petits joueurs , bon c'est sur que la plupart vont demolir mes PNJs (j'ai deja fait l'experience sur un module un gars il a trucide tout mes PNJs) mais comme il vont cree leur perso sur mon module il seront a un bas niveau et seule ceux interesser qui auront jouer plus de temps seront capables d'augmenter de niveaux car les autres se feront vite choper par les gardes ou ils deconnecteront apres etre redevenu niv 1 donc deja devoir cree un perso sur mon serveur cela va reduire le nombre de joueurs et bon apres j'improviserai mais c'est vrai que c'est un probleme

Re: Tout mes Problemes! :)

Par TyKeM le 30/10/2002 à 11:30:47 (#2438785)

Provient du message de Stritis




J'aimerai avoir un script tout simple c'est que le personnage ne dise qu'une fois la meme phrase
ex:Bonjour....Je m'apelle et que l'autre fois que je lui parle il dise "Ah vous revoila comment allez-vous..."Je l'ai trouve mais je suis pas sur qu'il marche

J'aimerai qu'une phrase de dialogue ne s'affiche pas lorsque que le PJ ne remplit pas les conditons d'executions et j'aimerai cette exemple avec de l'argent
ex:Mon PNJ veut acheter une cle mais il n'a pas 50 PO j'aimerai que la phrase dialogue "acheter..." ne s'affiche pas et la remplace par "je n'ai pas..." et vice versa que la phrase "je n'ai pas assez" ne s'affiche pas lorsque le PJ a 50PO



pour ces problemes c ds la faq sur les dialogues :)

il faut faire varier les condition dexecution c tout con ...

Par TyKeM le 30/10/2002 à 11:32:41 (#2438802)

Provient du message de Zariel
Trés pertinent ;)

C'est vrai qu'il est illogique de pouvoir réintégrer un personnage dans une ville aprés un meutre délibéré et une arrestation par les gardes mais tous les gouts sont dans la nature ;)

Par exemple, dans mes villes, si un Pj s'en prend à plus faible que lui, le script de prison se déclenche automatiquement et il se retrouve en taule (enfants, vieux ou passants par exemple) et la partie est terminée pour lui "Ciao". Sil veut se faire du bleu ou même du rouge, c'est la mort obligatoire. (un garde ou un "officiel de la ville" genre un banquier ou un marchand").

Si tes PJ commencent à allumer tous ce qui se trouvent dans la ville, je te raconte pas le bordel ;)

Il faut que les PJ comprennent qu'une ville n'est pas un défouloir, ni une zone ou l'agression est chose courante, comme chez nous quoi ;)(à part si tu incarnes des CM dans une ville ou les CM ont l'habitude de trainer..)

Enfin, moi c'est ma vision des choses :)


je suis daccord avec toi mais alors tu ne pe pas faire une q dassasinat : /
moi je cherche un script a mettre sur les GARDES et si EUX te voille il apelle du renfort ...
mais si il y a pas de temoins :)))))

Par Zariel le 30/10/2002 à 12:01:14 (#2439108)

Mais si bien sûr, suffit de retirer les scripts concernés sur le PNJ à assasiner ;)

Je pars du principe, qu'une ville est un endroit sécurisant (surtout que mes villes ne sont pas immenses, donc trés bien surveillés) et qu'un malfaiteur ne pourra pas s'enfuir si il tue ou agresse quelqu'un.

En ce moment, je suis sur la construction de Chateau Krag (dans le Valombre) qui est immense et où je devrai revoir ces règles car il y aura plus de chances de commettre des méfaits sans être pris.

Et puis il y a les beaux quartiers et les bas quartiers (ou tu limites l'attention des gardes). Mais il est vrai malheuresement qu'il n'existe pas de demi-mesure dans ce genre de script...

Par Nylou le 30/10/2002 à 12:23:58 (#2439346)

Tu peux peut etre creer 2 types de gardes en modifiant juste leur distance de perception.
Un garde avec une distance de perception plus grande sera plus attentif à ce qui l'entoure.

Par LeProctophantasmiste le 30/10/2002 à 13:25:39 (#2439960)

Tykem, peut être y a t il des solutions pour ce que tu veux faire, en utilisant très peu de script (via le système de faction)

Je pense qu'utiliser des "cris silencieux", comme Bio le fait, peut donner de bons résultats. A la place du flag de eMRaistlin, Tu fais crier le PNJ:



SpeakString("ON_M_A_ASSASSINE", TALKVOLUME_SILENT_SHOUT);


Dans l'OnSpawn de tes gardes:

SetListening(OBJECT_SELF,TRUE);
SetListenPattern(OBJECT_SELF,"ON_M_A_ASSASSINE",10);


Dans leur OnConversation tu ajoute (attention je part du script par défaut "nw_c2_default4", donc les variables non déclarées viennent de là):

if(nMatch == 10)
{
if(GetObjectSeen(oShouter))
{
object oAssassin = GetLastHostileActor(oShouter);
SetIsTemporaryEnemy(oAssassin);
//Ici tu peux appeler des renforts
DetermineCombatRound(oAssassin);
}
}

Par eMRaistlin le 30/10/2002 à 13:29:07 (#2439986)

Tres tres bonne idée...:amour:

Par LeProctophantasmiste le 30/10/2002 à 13:37:29 (#2440082)

Merci :D, je viens tout de même de me rendre compte que mon code est assez idiot


SetIsTemporaryEnemy(oAssassin);
//Ici tu peux appeler des renforts
DetermineCombatRound(oAssassin);

étant donné qu'il reproduit quasiment ce que fait le moteur par défaut si les gardes sont amicaux envers la victime :chut:. Ceci dit en mettant les gardes neutres, à partir de ce script, tout est possible, tu peux leur faire initier une conversation avec le meurtrier, le faire escorter en prison (là, j'exagère peut-être :mdr: )...

Par Stritis le 30/10/2002 à 13:49:11 (#2440198)

Bon je pense que je vais simplement laisse comme c'est car un assassin de toute façon ne va pas se rendre ce serait debile et quoiqu'il arrive il sera mort , en se rendant ou en se battant.Mais je vais essayer de mettre le script pour plus qu'il ne puisse jouer avec son perso lorsqu'il se fait tuer par certaines personnes (on peut le faire si je cree une faction "garde"?)mais si je veux que le garde aille directement attaque le PJ n'importe ou il soit je dois enlever quelle ligne ? deja je crois que je dois enlever celle la:

//if (GetDistanceBetween(GetLocation(oLastPerceived),GetLocalLocation(oLastPerceived,"lWhere"))<= 30.0f) //c'est optionnel
AssignCommand(OBJECT_SELF,ActionStartConversation(oLastPerceived , "resref_de_la_conversation");
//}

Mais apres je sais pas ce qui faut faire:sanglote: je suppose que je dois mettre un truc que des que mon garde l'apercoit et l'attaque mais je sais pas comment faire:confus:

PS: eMRaistlin
Tu m'as dit de mettre les lignes dans tous les NPCs mais il n'y a pas un moyen pour que je le mette une fois en utilisant le systeme de faction (Je dis ca un peu au pif)

Par Zariel le 30/10/2002 à 14:16:48 (#2440479)

Ouai, mais si on met un script dans le Onspawn des gardes, ils perdent leurs POST_ ou leur WP_...Pas pratique.

Par eMRaistlin le 30/10/2002 à 14:23:16 (#2440547)

il le perdent pas si tu fais #include nw_i0_generic (je crois que c'est celui-la) et que tu met walkWaypoint dans ton script.

PS: eMRaistlin
Tu m'as dit de mettre les lignes dans tous les NPCs mais il n'y a pas un moyen pour que je le mette une fois en utilisant le systeme de faction (Je dis ca un peu au pif)


Euh... nan...helas, la puissance de l'editeur ne t'empechera pas d'avoir a te galerer a tout faire a la main... desole...

//if (GetDistanceBetween(GetLocation(oLastPerceived),GetLocalLocation(oLastPerceived,"lWhere"))<= 30.0f) //c'est optionnel


Attention, si tu decomment ca, ca va au contraire restreindre le champs d'action des guardes qui n'agiront plus qu'a 30m.

Je trouve la solution de procto plus elegante... tu devrait l'essayer...

Par LeProctophantasmiste le 30/10/2002 à 14:49:29 (#2440802)

Zariel si c'est de ma proposition dont tu parlais, je ne voie pas d'OnSpawn ailleurs donc je suppose que c'est cela, les lignes que j'ai présentées peuvent j'ajouter au script par défaut de Bio (pour le OnConversation elles le doivent même, je n'ai pas défini oShouter, qui l'est dans le script par défaut).

Ceci ne veut pas dire que tu doive écraser la version par défaut, tu sauvegardes juste la version modifiée sous un autre nom. Pour les deux premiers tu peux même utiliser le système de UserDefinedEvent implémenté par Bio. Pas pour le troisième, ça ne compilera pas, remarque il suffirait d'ajouter en tête:


int nMatch = GetListenPatternNumber();
object oShouter = GetLastSpeaker();

Par Zariel le 30/10/2002 à 15:18:27 (#2441057)

Oui, effectivement ;) Decidement, je serais toujours obligé de compter sur les scripteurs de Maskado pour faire vivre mon module :mdr:

Sinon, la manière de EMraistling est pas mal non plus, il suffit juste de réinclure le script précédent pour ne pas le perdre ;)

Par Stritis le 30/10/2002 à 16:58:56 (#2442010)

Bon je vais encore vous poser mon probleme j'aimerai que deux enfants ce coure apres et que en meme temps il parle , il s'arrete il discute un peu et recommence mais j'ai vraiment AUCUNE idee de ce qu'il faut faire deja j'ai du mal pour les trucs simple mais ça , je capte rien! donc si vous pouviez un peu m'aider:D encore une fois

Par eMRaistlin le 30/10/2002 à 17:05:26 (#2442069)

Tu te prend par la main, et tu fais un thread independant ??
:monstre:

Par Stritis le 30/10/2002 à 17:08:59 (#2442094)

Je comprend pas pourquoi vois voulez que je fasse plein de "sujet" bon d'accord c'est un peu trop regroupe mais si je fais une question par sujet il n'y aura que des sujets de moi mais bon si vous insistez! on va pas vous contrarier

Par Zariel le 30/10/2002 à 17:12:29 (#2442124)

Ben non, on gagne en clarté et tu auras beaucoup plus de chances d'avoir des réponses avec un post indépendant ;)

JOL Archives 1.0.1
@ JOL / JeuxOnLine