Commandes au clavier via des patterns

Répondre
Partager Rechercher
J'ai dans l'idée de créer un système de "commandes" que les joueurs pourraient taper directement sur le clavier avec une réponse scriptée par reconnaissance de patterns. Ce que j'arrive à faire avec un NPC près du PC, mais le top serait de s'arranger pour que ça marche partout dans le module, avec par exemple le NPC qui "écoute" dans une zone spéciale inaccessible, ou peut-être un autre moyen, mais comme je ne suis pas familier des patterns je suis un peu dans le brouillard et mes recherches n'ont rien donné. Quelqu'un aurait une piste à me proposer ?

Présenté comme ça, ça entraîne de suite une question:
Dans un multijoueurs, si deux joueurs enchaînent en même temps des commandes reconnaissables, laquelle sera traitée ?
Le système de patterns fonctionne en tête à tête et en général sur le OnPerception du PNJ. Je doute qu'il puisse fonctionner à l'échelle du module dans son ensemble. Mais ça reste à découvrir/inventer et à tester.
Sur NwNRo, chaque joueur possede un familier (desinvocable en cas de Lag) qui ne reconnais que on maitre pour les patterns

(en gros, je stocke en localObject l'invocateur du familier, puis sur le onconversation, je fais un test initial ou je verifie que le parleur est le maitre, ou un DM)

Ca marche pas mal ^^

Mais bon, c'est pas comme si tu tapait n'importe quoi n'importe quand, sauf si tu garde ton familier tout le temps a cote de toi.

A noter que la creature NULL de Skanzo peut etre interessante, pour ce genre de chose, puisque invisible et non selectionnable.
Citation :
Dans un multijoueurs, si deux joueurs enchaînent en même temps des commandes reconnaissables, laquelle sera traitée ?
C'est une bonne question en effet, à étudier de près ^^

Citation :
Mais bon, c'est pas comme si tu tapait n'importe quoi n'importe quand, sauf si tu garde ton familier tout le temps a cote de toi.
C'est la première solution qui m'est venue à l'esprit, mais dans l'esprit de ce que je veux faire ça serait je pense extrêmement lourd à gérer à l'échelle multijoueurs...

Je me souviens eM que sur RO les chansons de barde et les pouvoirs de niveau 15 semblent fonctionner d'une manière qui correspondrait un peu à ce que je cherche (tu tapes un truc au clavier --> effet, sans créature, en apparence du moins, à côté)), non ?

J'ai vu plusieurs fois des références au NULL de Skanzo pendant mes recherches mais impossible de mettre la main dessus. Si par hasard quelqu'un avait un lien sous la main, je le veux bien
Là je teste le principe de la créature qui te suit partout mais j'avoue que j'aime pas trop, ça cause beaucoup de problèmes de blocage, notamment si tu joues un halfelins hehe. Une autre solution c'est de mettre des plaçables invisibles mais il faut en mettre partout. Mais pirater le bouton de création des pièges ça à l'air le mieux hehe.
Citation :
C'est une bonne question en effet, à étudier de près ^^
En fait, les deux seront executée, la premiere entendue en premier (en general, c'est la premiere prononcée : je n'ai a ce jour jamais constaté de gestion de temps/distance dans les speak_string)

Citation :
Je me souviens eM que sur RO les chansons de barde et les pouvoirs de niveau 15 semblent fonctionner d'une manière qui correspondrait un peu à ce que je cherche (tu tapes un truc au clavier --> effet, sans créature, en apparence du moins, à côté)), non ?
C'est exactement ca. Sachant que sur l'execution de l'effet, je met en place un compteur, pour eviter les effets cumulatifs. Mais on peut imaginer creer un array ou un equivalent pour gerer l'unicité par PJ.

Citation :
C'est la première solution qui m'est venue à l'esprit, mais dans l'esprit de ce que je veux faire ça serait je pense extrêmement lourd à gérer à l'échelle multijoueurs...
C'est pourquoi l'autre solution, celle des creatures invisibles placée a des endroits strategiques sur la map est une bonne idée. Je te laisse le soin, toutefois, de determiner les positions idéeales pour eviter :
- les doublons
- les zones sans ecoutes.

A priori, je pense que le concept d'une creature que tu invoque avec un objet est le plus simple, quitte a la detruire des que le PJ bouge, ou lors des changement de zone, ou apres qu'il ait parcouru une certaine distance depuis son point de spawn, ou alors grace a une commande patterne (comme le familier Ro)

Pour la creature invisible de Skanzo, elle doit se trouver dans la liste des hakpak du persistant.
Citation :
Je te laisse le soin, toutefois, de determiner les positions idéeales pour eviter :
- les doublons
- les zones sans ecoutes.
Ce point là me paraît un brin épineux, déjà le fait qu'il faille les placer "au pif" d'après le rayon d'écoute des créatures ; également le fait qu'éviter les zones sans écoute entraînerait probablement des doublons : logiquement ce rayon d'écoute est un "cercle" autour du npc dans lequel doit se trouver le pc pour que le pattern soit reçu. Soit quatre cercles dont le centre de chacun forme l'un des quatre angle d'un carré, soit les bords des cercles se touchent et on a une zone de non-écoute au centre du "carré de cercles", soit on recouvre la zone centrale mais les cercles se chevauchent les uns les autres (j'espère être clair )
le célèbre néantissime se trouve là (homme invisible)
Mon approche serait de donner un objet avec un pouvoir unique aux joueurs, ou carrément une capacité spéciale. L'utilisation créerais le néantissime (avec script adéquate sur l'OnConversation), puis le détruirait au bout d'un temps fixe, où quand il aura accompli sa tache. Le néantissime ne répondrait qu'au joueur qui l'a invoqué. Mais je ne sais pas si c'est applicable pour ce que tu veux faire...
Citation :
Provient du message de Sire Pom-pom
le célèbre néantissime se trouve là (homme invisible)
Mon approche serait de donner un objet avec un pouvoir unique aux joueurs, ou carrément une capacité spéciale. L'utilisation créerais le néantissime (avec script adéquate sur l'OnConversation), puis le détruirait au bout d'un temps fixe, où quand il aura accompli sa tache. Le néantissime ne répondrait qu'au joueur qui l'a invoqué. Mais je ne sais pas si c'est applicable pour ce que tu veux faire...
copieur

(bon, j'avoue, c'est toi qui m'a appris les patterns... ^^; )
Citation :
Mais je ne sais pas si c'est applicable pour ce que tu veux faire...
Ben, à vrai dire, la première utilisation que je voudrais faire de ce système de commandes est d'intégrer un système de respawn qui se passerait de l'affreux popup habituel : quand le perso est mort, le joueur tape une commande genre /respawn et pouf. Combiner ça avec une obligation d'"activer" un npc pour écouter le pattern est assez problématique. Le perso étant mort, je pense déjà qu'il ne pourra plus activer d'objet ou de capacité spéciale pour appeler le npc. Après je peux déclencher sa création automatiquement à la mort du perso, mais j'avoue que je préférerais de loin avoir un système plus "durable" comme le quadrillage des zones avec des npc, mais bonjour la galère pour mettre ça en place

Je vais creuser... Merci pour toutes vos infos
Peuh, c'est bien toi ça... Tu nous fais mariner toute le journée et à la fin, quand on s'est bien défoncé, tu nous parles de l'application et la solution coule de source !

Quand le PJ est mort, au lieu de faire appel au pop-up (affreux, comme tu dis), tu crées un PNJ que tu peux appeler Ange Gardien ou comme tu veux, tu lui donnes l'aspect d'un whisp par exemple et hop, le tour est joué, ton PNJ est créé et à l'écoute de la voix de son maître.
Bin c'est un peu le concept qu'utilise Leandraste dans son système de canaux, en fait. Un néantissime (j'aime bien le terme ) créé à la connexion du joueur et qui follow à 5m en courant très vite pour pas se faire semer (le ForceFollow est pas mal pour ça car il téléporte la créature si elle se fait distancer ou si elle se coince.. mais perso je passe aussi sur un test de "vanish" sur le onPerception, histoire de blinder les changements de zone à l'intérieur d'une zone, comme par exemple les escaliers, que le ForceFollow ne gère pas du tout). Le follower espionne tout se qui se dit et exécute des scripts en cas de pattern reconnu.

Sinon tu peux tenter une créature par zone et leur mettre une portée de perception immense, en regardant jusqu'où ça porte. Le pire problème n'est pas la portée (il suffit de mettre des relais ) mais les murs.. Sauf que comme les voix des pnj passent souvent à travers les cloisons, ptêtre qu'ils entendent aussi à travers les murs. A noter que les PNJ écoutent indistinctement tout ce qui est dit, que ce soit whisper, talk, shout, party ou DM. Pour ce qui est de la gestion des doublons, facile : le PNJ stocke sur le module le nom du PJ dont il traite la requête durant quelques (très peu) secondes, et pendant ce temps les autres PNJ ignorent les requêtes de ce perso (pasque s'ils l'entendent aussi dans cet intervalle, c'est qu'il y a doublon).

En fait les deux systèmes ont leurs inconvénients et mettre une "antenne" par zone n'est pas forcément moins coûteux qu'un PNJ qui suit chaque PJ, si tu as plus de zones que de PJ.

Ca me fait penser que j'ai jamais posté mon script de portes de Faltazia sur Maskado.. Faut que je remédie à ça, donc.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés