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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Pourquoi qu'y s'sauvent ?

Par daemogorgon le 9/12/2002 à 23:47:16 (#2748286)

J'essaie depuis un moment de faire asseoir des PNJ sur des chaises. J'ai suivi le tut qui traite de ça, mais les PNJ, ... et ben, au lieu de s'asseoir (comme on leurs demande), ils se sauvent dans tous les coins de l'auberge....:confus:

Comprends pas !

Par Cassin le 10/12/2002 à 10:02:51 (#2749802)

Ben je l'ai fais la semaine dernière, ça marche très bien... :doute:

Est-ce que tu as rendu toutes tes chaises utilisables ? Parce que si non, les clients en cherchent et donc se barrent dans toutes la pièce.

Par RAT le 10/12/2002 à 11:53:37 (#2750506)

Même à vouloir changer de zones :)

Par Baltord Vlad Mortem le 10/12/2002 à 13:02:06 (#2751106)

Vi les chaises doivent pas être cochées useable, je vois que ca. Mais ca peut être une idée, mettez 70 PJs dans une rue fermée, demandez leur de s'asseoir sur une chaise qui n'existe pas, et voilà une émeute en 3 lignes de script :bouffon:

Par Mastokk le 10/12/2002 à 14:03:07 (#2751706)

Nan je ne crois pas que ce soit juste un problème de chaises en useable (même si faut les mettre en useables ;)), j'ai eu le problème que tu décris en important les éléments du module de jeu de BlackJack de Bioware (que j'ai traduit si quelqu'un veut le mettre en Download je peux le lui envoyer) et le croupier qui normalement dans le module doit s'asseoir, fuit. Quand j'ai importé carrément la zone du module de Bioware, au lieu des éléments indépendamment les uns des autres, tout est rentré dans l'ordre. Je n'ai toujours pas compris pourquoi ça agissait ainsi....

Par coolstar le 10/12/2002 à 14:09:43 (#2751769)

Hi!


[ModeSérieux]C'est peut-être la même chose... moi je serais d'avis qu'on puisse proposer dans ce cas particulier de DL pour que d'autres puissent vérifier le prob sur pièce (une sorte d'aide en ligne quoi!)... :D[/ModeSérieux]

;)

Par Cassin le 10/12/2002 à 16:47:29 (#2753265)

Provient du message de Mastokk
j'ai eu le problème que tu décris en important les éléments du module de jeu de BlackJack de Bioware (que j'ai traduit si quelqu'un veut le mettre en Download je peux le lui envoyer)


Yep, vas-y envoie-le moi (cassinus@wanadoo.fr), je le mettrais en ligne sur ma page de modules.

Par RAT le 10/12/2002 à 17:14:11 (#2753496)

Tiens un Balty :)

Bon pour ce problème là, moi je pense qu'il y a peut-être un conflit dans les tags (je ne pense pas au resref comme il est unique) . Je conseille quand vous voulez faire assoire un PNJ, de leur donner une distance max, cela évitera beaucoup de conflit. Car Moi cela m'était arrivé une fois, mais tout simplement parce que le pnj avait découvert en premier le tag de la chaise à l'autre bout de la zone alors qu'il en avait une à une dizaine de mêtres.

Donc si vous voulez , je peux vous filer le code pour donner une distance max, si cela peut aider quelqu'un.


Allez zouuuuuu,

RAT tu vas bosser maintenant :p



A+

Par Mastokk le 10/12/2002 à 17:46:04 (#2753813)

Donne le code, ça peut toujours servir ;)

Cassin je t'ai envoyé le module traduit.

Par Cassin le 10/12/2002 à 17:56:31 (#2753903)

OK, je le met en ligne dès que je rentre ce soir...


EDIT : voilà c'est fait ;)
Pour ceux que ça intéresse, le lien est dans ma sign'

Par daemogorgon le 10/12/2002 à 23:47:37 (#2756802)

Oki, les voilà assis,... mais ils se relevent et recommencent a se casser au fond...:sanglote:

Une idee ? :confus:

Ca viendrait pas des fois d'un param des PNJ ? Ils auraient pas peur de qqchose ?

Par Elmo le 10/12/2002 à 23:52:43 (#2756830)

t'aurais pas mis le script "mauvaise hygiène corporelle" sur le onenter de l'area pour que les PNJ schlinguent? nan je déconne j'ai pas d'idée mis à part regarder aux factions

Par daemogorgon le 10/12/2002 à 23:57:16 (#2756849)

dans la foulee, j'ai oublie de demander dans le post precedant, c'est quoi la fonction a mettre dans un script d'un objet quelconque qui permet de recuperer le tag de l'objet le plus proche ?

J'ai 1 trou :lit:

Par coolstar le 11/12/2002 à 0:05:45 (#2756900)

Provient du message de coolstar
Hi!


[ModeSérieux]C'est peut-être la même chose... moi je serais d'avis qu'on puisse proposer dans ce cas particulier de DL pour que d'autres puissent vérifier le prob sur pièce (une sorte d'aide en ligne quoi!)... :D[/ModeSérieux]

;)

Par Jedaï le 11/12/2002 à 0:08:42 (#2756924)

C'est :


GetTag(GetNearestObject(OBJECT_TYPE_ALL));


Mais je pense que tu voulais plutôt dire la fonction qui récupère l'objet le plus proche portant un tag donné, non ?:confus:

Dans ce cas c'est :



GetNearestObjectByTag("LeTagQuiVaBien");

Par daemogorgon le 11/12/2002 à 6:58:19 (#2757744)

Nan, nan, c'est bien ce que je voulais, pour faire un script generique qui marcherait avec plusieurs objets differents et non refaire le meme script a chaque fois en changeant son nom.

merci.

désolé je n'ai pas eu le net de toute la soirée

Par RAT le 11/12/2002 à 11:22:28 (#2758806)

donc voici le code comme si je me souviens bien c'est Mastokk qui me l'a demandé.



if (GetDistanceToObject(GetNearestObjectByTag ("BANC", OBJECT_SELF))<=10.0)
ActionSit (GetNearestObjectByTag ("BANC", OBJECT_SELF));



et vous le mettez dans le OnSpawn du NPC, vous pouvez rajouter plusieurs conditions sur le même principe. Pour montrer au NPC que s'il ne trouve pas le banc, qu'il essaye de trouver toujours dans un rayon de 10 mètres une chaise par exemple.


voilou :)

Par daemogorgon le 11/12/2002 à 15:25:50 (#2761166)

Ca y est ca marche.
En fait, j'ai enleve le script default sur OnPerception.
Plus j'ai rajoute un script generique sur le OnSpawn du PNJ

void main()
{
string sChaise = GetTag(GetNearestObject OBJECT_TYPE_PLACEABLE));
ActionSit (GetObjectByTag(sChaise));
}

qui me permet de pouvoir asseoir le nombre de PNJ qqconque dans l'auberge avec 1 seul script. :)

Youpi.

Par RAT le 11/12/2002 à 19:08:54 (#2763238)

Donc si on suit la logique des choses :)

on peut donc alors le faire comme cela :)



object oChaise = GetNearestObject(OBJECT_TYPE_PLACEABLE,OBJECT_SELF);

if (GetDistanceToObject(oChaise)<=10.0)
ActionSit (GetObjectByTag(GetTag(oChaise )));


[Edit]

Désolé, correction de mon code:)

Par eMRaistlin le 11/12/2002 à 19:39:49 (#2763488)

euh, non, vu que la, dans la partie action sit, tu ecrit :


ActionSit(oChaise)


en fait... tu utilise juste plus de mots que necessaire.

En effet, tu lui dit de te rammener l'objet de type placeable le plus proche, et tu le designe comme etant oChaise.


Puis, tu lui demande de s'assoir sur l'objet qui porte le nom que porte l'objet oChaise.

De plus, si le placeable le plus proche n'est pas une chaise, ton NPC ne s'assiera pas.

Vois tu la nuance ?

Par RAT le 11/12/2002 à 21:19:37 (#2764462)

Vivi , je vois la nuance et tu as tout à fait raison :).
Sauf que le seul point ou je ne suis pas d'accord, c'est qu'il pourra s'assoir sur tous les objets plaçables ou il peut le faire, comme un tabouret , une chaise etc... non??

*ou sinon on pense à la même chose, mais que j'ai mal compris , ton exemple à la fin*

Sinon pour le code, vi tu as 100% raison :)

Merci eM :)

Par eMRaistlin le 12/12/2002 à 0:39:59 (#2766201)

pardon, j'ai oublié de preciser : si le placeable n'est pas utilisable... ^^

Mais l'idée est effectivement de s'assurer que ce sont bien des chaises qui sont visée ;)

Par RAT le 12/12/2002 à 0:57:17 (#2766287)

d'accord donc on disait bien la même chose lol ;);) .
Merci encore eM , pour toute tes précisions :)

JOL Archives 1.0.1
@ JOL / JeuxOnLine