JeuxOnLineForumsPlusConnectés : 565 (sites) | 1054 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Taverne v1 d'ici quelques jours RSS
   
Répondre
Partager Outils Rechercher
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
J'ai modifié le OnExit comme ça, ça marche, faut juste retirer le plot de la serveuse pour éviter d'en voir spawner une neuve a chaque entrée dans la zone. Une solution consiste à mettre le plot sur la serveuse dans le OnEnter et de le virer quand on quit la zone histoire qu'elle despawn aussi.
Code PHP:
//**********************************
// SCRIPT DE LA TAVERNE ANIMEE
// FAIT PAR MIRANDIEL
// MODIFIE PAR RAT
//**********************************
#include "zinclude"
#include "fonct_tav"


void main()
{
//DECLARATION DES VARIABLES
object oPCexiting=GetExitingObject();
object oAreaLeaved OBJECT_SELF;
object oObjetaDetruire GetFirstObjectInArea(oAreaLeaved);
object oFirstPC GetNearestCreature(CREATURE_TYPE_PLAYER_CHARPLAYER_CHAR_IS_PC);
int nNBdePC GetLocalInt(oAreaLeaved,"feu"); // remplacer la variable par celle utilise dans le OnEnter de la zone

//Mise a jour du Compteur
if (GetIsPC(oPCexiting))
    {
    
nNBdePC nNBdePC-1;
    
SetLocalInt(oAreaLeaved,"feu",nNBdePC);// remplacer la variable par celle utilise dans le OnEnter de la zone
    
}

//TEST POUR VERIFIER SI IL RESTE DES PC DANS L'Area

    
if (nNBdePC == 0)
    {


//BOUCLE DE DESTRUCTION DES CREATURES/ITEM
   
while (GetIsObjectValid(oObjetaDetruire))
       {
       if (
       (
GetObjectType(oObjetaDetruire)== OBJECT_TYPE_CREATURE)||
       (
GetObjectType(oObjetaDetruire)== OBJECT_TYPE_ITEM)
          )
             {
             
AssignCommand(oObjetaDetruireClearAllActions()); // pour initialisation des actions PNJ
             
if (!GetPlotFlag(oObjetaDetruire))
                 {
                    if (
GetName(GetMaster(oObjetaDetruire))=="")
                    
DestroyObject (oObjetaDetruire);
                    
object oarea=OBJECT_SELF;
                    
DeleteLocalObject(oarea,"taverneaub_barman");
                    
DeleteLocalObject(oarea,"taverneaub_bar");
                    
DeleteLocalObject(oarea,"taverneaub_pisser");
                    
DeleteLocalObject(oarea,"taverneaub_s1");
                    
DeleteLocalObject(oarea,"taverneaub_s2");
                    
DeleteLocalObject(oarea,"taverneaub_s3");
                    
DeleteLocalObject(oarea,"taverneaub_serveuse");
                    
DeleteLocalObject(oarea,"taverneaub_partir");

                    
DeleteLocalObject(oarea,"EXIT_NPC_Thief_01");
                    
DeleteLocalObject(oarea,"EXIT_NPC_Thief_02");
                    
DeleteLocalObject(oarea,"POST_NPC_Thief");
                    
DeleteLocalObject(oarea,"ENTRY_NPC_Thief_01");
                    
DeleteLocalObject(oarea,"ENTRY_NPC_Thief_02");
                    
DeleteLocalObject(oarea,"taverneaub_mystere");
                    
DeleteLocalObject(oarea,"AVENTURIER_PLACING");
                    
DeleteLocalObject(oarea,"memoire_tag_heur");


                    
detruitcle(oPCexiting);


            
object osearch=GetFirstObjectInArea(oarea);
            while (
GetIsObjectValid(osearch))
                {

                if (
GetStringLeft(GetTag(osearch),10)=="taverneaub"){DeleteLocalObject(oarea,GetTag(osearch));}

                
osearch=GetNextObjectInArea(oarea);

                }

                if (
GetStringLeft(GetTag(OBJECT_SELF),4)=="aub_")
                    { 
int i=0;
                    for (;
i<=GetLocalInt(oarea,"COMPT_NBRE_CHAMBRE_AUB");i++)
                        {
DeleteLocalObject(oarea,"taverneaubchambre_"IntToString(i));
                         
DeleteLocalObject(oarea,"taverneaublit_"IntToString(i));
                        }
                    }
                 }
             }
       
oObjetaDetruire=GetNextObjectInArea();
        }
    }

//LOG~DEBUG

Là ça marche mieux, par contre j'ai un crash étrange quand je rentre et ressort plusieurs fois d'affiler, NWN plante. C'est peut être du au camera hak, je l'ai désinstallé mais j'avais pas sauvegardé mon .exe alors ça merde depuis (si quelqu'un à ça d'ailleurs )

[edit] Il faut penser aussi à mettre les deux alcoolos et le cireur de chaussure en plot ou les intégrer dans le système de spawn, sinon ils sautent aussi
Le pickpocket m'a fait délirer, je l'ai capté a 15000 quand il est rentré et je me suis amusé à le faire courir dans toute la taverne
Le pillier de comptoir est un peu balaise, quand il se retrouve en baston il massacre toute la taverne

Jaha Effect
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Hmmm... Oui cela arrive quand tu utilises trop de ressource d'un coup au serveur. faire des entrees, sorties à la suite... cela fait monter la ressource et l'exe plante.

Par contre cela ne le fait pas si tu le lances sur un serveur.

Je crois que c'est du quand tu spawns les créatures à l'entrée...



sinon je ne vois pas trop...


[EDIT: pour les alcoolos, ils sont intégrés dans le système de spawns du onenter, il n'y a que le cireur de chaussure qui n'est qu'une option, d'ou le fait de ne pas l'avoir fait en code dans le onenter. Le voleur me fait mourir de rire, il part se cacher et disparait, il est super bien fait , il faut bien l'avouer . Pour le pilier de bar, je ne l'ai pas retouché excepté son dialogue, donc c'est au choix de chacun
]

[EDIT2: Au fait tu as vu quand il rixe? moi, là ou je me suis le plus marré, c'est quand ils hurlent "OUAIII UNE RIXE", et que tout le monde se jette dessus ]
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
Ouais j'aime beaucoup
Par contre va falloir penser à faire une faction pour les pickpocket pour éviter d'avoir la serveuse et un tas d'autres trucs sur le dos si tu en bute un
Par contre, quand tu démarre une rixe, il arrive qu'une autre conversation se greffe sur les protagonistes de la baston du genre:
pnj1 - Je vais te faire la peau
pnj2 - J'ai pas peur de toi
pnj1 - Tu est au courant qu'un voleur est rentré dans les appartements de l'empereur?

Jaha Effect
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
oui comme j'ai prévenu dans le premier post que j'ai fait , je n'ai pas réussi à bloquer la gestion des discussions quand ils se battent, j'ai eu beau faire des conditions précises etc... mais rien... donc pour l'instant , comme j'ai dis, il se peut qu'il puisse avoir des conflits entre différentes fonctions de gestion des actions (
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
Je t'ai envoyé en MP le lien des modifs de la taverne, j'ai fini de traduire le pilier de comptoir, modifié le OnExit sauvé sous onexit_hub2 et enlevé le plot de la serveuse
Tout ça pour la version sans PUMA, je continu à regarder

Jaha Effect
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
Encore un truc gênant c'est quand le patron passe aggro dans une baston et se fait laminer la tronche par les clients. Faudrais éviter de le faire prendre pars aux baston au même titre que la serveuse ou la prostituée.

Jaha Effect
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Ba à la base, si j'avais eu un peu plus de temps

Je voulais faire que le barman, la serveuse et la prostituée partent se réfugier dans la cuisine , tant que la rixe n'était pas terminé, mais vu que tout le monde attendait, et que comme je t'ai donné les raisons en mp, je n'ai pas le temps.....

... pour dire, je n'ai pas eu le temps de trouver tous les bugs....

Mais c'était l'idée

Dis dis, si ca continue je vais devoir te filer un salaire
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
Bha le débuggage est une partie importante d'un script et c'est jamais évident de voir ces propres bugs.
Et moi j'adore tester

Jaha Effect
Lien direct vers le message - Vieux
Avatar de Skanzo Sylan
Skanzo Sylan
Empereur
 
Avatar de Skanzo Sylan
 
Franchement, c'est du grandiose!

J'ai rencontré les mêmes bugs que Jaha... p'tet même en pire.

Sur la version ssPuma, j'ai eu un horrible spawn, on aurait dit une invasion et pi ensuite pouf, Nwn en rade.

Au début j'ai testé un peu tout, après je suis allé dehors et je suis revenu à l'intérieur. À ce moment j'avais tout en double, deux serveuses (ce qui n'est pô pour déplaire ), deux barmans (deux fois plus de liche ) et les clients en double (moins drôle).

Alors je me suis dit que gt déjà raide défoncé et que j'avais trop abusé de la bière naine.. hips!

J'ai fait deux duels avec l'ork alcolo, perdu bien-sûr. Il m'a pris la tête et j'ai donc voulu lui faire gouter les lattes du plancher. C'est à ce moment que j'ai eu un spawn de client affolant, la taverne n'était pô pleine (contrairement à moi) mais y'avait de quoi être affolé.
C'est à ce moment que le jeu m'a claqué un stand-by ctrl/alt/supp.

C'est p'tet normal aux heures de pointes.

M'enfin tout le reste, c'est du splendide.
D'ailleurs j'ai un faible pour la serveuse
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
moi aussi j'ai eu des deubeul spawn
en fait j'ai plus ou moins massacrer tout le monde histoire de prouver ma supériorité à tous ces poivrot
et là pouf, d'abord la serveuse refuse de mourir et persiste à bien m'aimer, ensuite je me retrouve avec 2 barman qui cours partout et quand je me retournes, 2serveuse, dont une tuable alors bon, c'était peut être pas une serveuse, mais pour le reste je suis sure

et plus qu'un rush de gars, j'ai eu un attoupement, ils sont tous spawnés tt nu, autour d'une chaise, et tout d'un coup ils ont retrouvé leur vêtement, alors je me suis dit que c'était le spawn des fringue qu'était à la bourre, mais bon, ca fait bizarre 10 poivrot nus entassés dans le même coin de la taverne
alors bon, c'est pas gênant, mais ils sont qd même mis un certain temps à ce disperser c peut être un random que j'ai pas eu de chance

mais c'est vrai que vous êtes des fous quand même
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Lol, normalement le script que Jaha a corrigé, devrait régler le problème des doublons de respawns...

Par contre, pour les habits ... humm je pense que tu es tombé sur un moment de lag, comme il y en avait beaucoup, car là, vu le nombre de fois que j'ai fais les tests d'entrée de zone, je ne suis jamais tombé sur le fait que les spawns ne s'habillent pas.

Par contre, oui au début , ils se spawnent nu et après , ils s'habillent...

Je mettrai toutes les corrections pour demain , car là je viens tout juste de rentrer d'une grosse soirée de jeu de rôle, et je suis crevé, en plus soirée enquête (C.O.P.S pour les connaisseurs) .

Donc voilà, sinon merci

Le problème avec ce genre de script c'est quand on prévoit aussi immense niveau gestion d'anim, il y a souvent un risque de conflits.

Bonne nuit et encore
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Donc voilà, Pour Elmo et tous les autres qui ont du mal à installer le système de taverne, le readme qui manquait depuis le début et que je n'avais jamais eu le courage de le faire.
Veuillez m'excuser pour le Readme.
Je vous le mets ici, j'espère qu'il va tenir en entier .


Citation:
README
POUR LA Taverne v1.0

// La Taverne
La taverne fait office d'auberge aussi selon si vous autorisez la gestion des chambres ou pas.
Cette taverne va permettre de faire vivre les personnages s'y trouvant dans un endroit très réaliste.
J'ai voulu faire une taverne ou on avait l'impression que les gens vivaient réellement et n'avait pas besoin
de mot de clé ou de commande pour interagir avec le décor et le monde. Ce faire jeter par l'aubergiste car tout
Simplement, tous les NPC ont pris toutes les chambres libres, cela a tendance à énerver les joueurs. Mais quel Plaisir!
d'avoir cette impression là, car cela donne du réalisme à ce jeu.
Pour ma part, pour trouver la base d'une taverne aussi dynamique, je me suis basé du système de Mirandiel que je félicite
d'ailleurs pour son travail. Mais


// VERSION V1.0

// COMMENT INSTALLER LA TAVERNE/AUBERGE

Tout d'abord, vous créez une zone qui ressemble à une auberge.
Ensuite, vous mettez dans les propriétés de la zone,
le "onentr_hubert" dans le OnEnter et le "onexit_hubert" dans le OnExit.
1°)Il faut créer une toute petite salle que les joueurs ne doivent pas avoir
2°)la possibilité d'y accéder, pour les NPC quand ils vont pisser.
Une deuxième salle un peu plus grande, non accessible par les joueurs, pour les NPC qui sont partis.
**********************************
Pour que cela soit une taverne, rien à faire en particulier. Par contre, si vous voulez utilisez le système d'auberge. Alors
il faudra mettre "aub_" au début dans le tag de votre zone.
**********************************
Ensuite, il faut placer des waypoints particuliers permettant de
donner des repères au NPC pour les spawns et les déplacements.
Il y a deux waypoints d'entrées pour les voleurs :
- ENTRY_NPC_THIEF_01
- ENTRY_NPC_THIEF_02
A placer dans des endroits sombres et près d'une porte si possible.
Il y a deux waypoints de sortis pour les voleurs :
- EXIT_NPC_THIEF_01
- EXIT_NPC_THIEF_02
A placer dans des endroits sombres et près d'une porte si possible. Cela permet que le voleur
puisse fuir s'il se fait repérer.
Et un waypoint de post pour le voleur qui va lui permettre
de guetter ses proies à mettre aussi dans un endroit assez sombre.
- POST_NPC_Thief
Les waypoints par rapport à la taverne :
- taverneaub_bar ( pour que la serveuse sache ou se trouve le bar de l'auberge)
- taverneaub_barmant (pour le spawn du barman)
- taverneaub_mystere (va servir à placer un vendeur de l'ombre)
- taverneaub_partir ( endroit ou les NPC apparaîtront quand ils sont en phase de disparition 2°)
- taverneaub_s1 à _s3 (endroit de spawn pour les divers clients [à placer près des tables])
- taverneaub_pisser (l'endroit ou les NPC iront quand ils partent de l’auberge) Il faut le placer dans un petit carré de la zone 1°
mais les joueurs ne doivent pas y accéder en aucun cas.
- taverneaub_serveuse (endroit de spawn pour la serveuse).
- WP_NPC_THIEF_01 à _03 (endroit de spawn pour le voleur)

Après avoir préparer l'installation de tous les waypoints, il faut placer
encore certaines choses pour faire vivre la taverne.

*********
L'objet invisible pour gérer les heures d'ouverture et fermeture de l'auberge.
Il se nomme "Memoire_Tag_Heure_Tav" (je rappelle que ce script n'est peut être pas
totalement au point ). ex pour parametrer l'objet invisible (à mettre dans le tag) : DehorsTAV_5h00_22h00
Mettre des chaises en utilisable et mettre dans le OnUsed le script "onuse_chaise".
*********
Il faut placer aussi le "TG_FENCE_STORE" qui est le waypoint marchand pour le marchand de l'ombre
Placer le tabouret pliant, à coté du cireur de chaussure (à placer aussi manuellement dans la zone) et pas très loin d'une chaise pour que le
client s'installe. -->"voir le module de démo"<--.
*********
Mettez divers sons d'auberge pour donner plus de réalisme.
*********
Vous devez placer la porte d'entrée qui porte le Tag suivant : "taverneaub_door"
************ Objet à rajouter si c'est une auberge et pas une taverne**********
vous devez rajouter une porte au rez de chaussé qui amènera à l'étage. La porte possède le tag suivant : "taverneaub_rezdechau"
Puis une autre porte avec le tag suivant "taverneaub_etage", c'est la porte de l'étage.
Enfin, créez plusieurs chambres, et placez ces portes avec des tags qui se suivent.
Si vous en faîtes 3 par exemple : "taverneaubchambre_1" "taverneaubchambre_2" "taverneaubchambre_3"
Et si vous en faîtes une quatrième : "taverneaubchambre_4".
Dans chaque chambre, soit vous mettez un objet invisible qui porte un tag dans ce genre là : "taverneaublit_1" , a mettre un tag différent
selon le numéro de la chambre bien entendu. Soit vous prenez un lit comme un futon, là ou le NPC ou PC puisse dormir. Mettre le même tag.
**************
Pour le Spawn des clients, de la serveuse et du barman??
Rien de plus simple, excepté pour le cireur de chaussure qui doit être placer normalement, tous les autres ne vont spawner au moment ou le premier
PC rentre dans la zone, et disparaîtront quand le dernier PC partira.
Tout le système de spawn et de destruction de spawn se fait dans le onenter et onexit.
Ils ne porteront pas les mêmes habits car c'est suivant une liste d'habit aléatoire.
Le client ne seront pas les même obligatoirement car c'est suivant une liste aussi qui choisira au hasard un nombre aléatoire de client.
Tous les NPC optionnels, c'est à dire tous sauf les clients, barman et la serveuse, n'apparaîtront pas obligatoirement, pour montrer
une réelle vie. Car c'est dommage, de voir qu'un voleur est toujours là, ou que le marchand de l'ombre reste toujours dans son ombre.

// CE QUI A ETE FAIT SUR LE SYSTEME DE TAVERNE AUBERGE
Ce qui a été fait:
- Amélioration des fonctions déjà existantes.
- Gestion des NPC qui partent et d'autres qui viennent en retour
- Gestion des NPC qui viennent au hasard.
- Gestion des multi-tavernes (cela veut dire qu'avec les mêmes tag pour les npc, waypoints, les portes etc... vous pouvez tous les utiliser sur différentes zones, il n'y a aucun risque de conflit)

- Gestion des discussions entre NPC-NPC quand ils sont à moins de 5 mètres.
- Gestion des discussions entre NPC-Ivrogne quand ils sont à moins de 5 mètres.
- Gestion des discussions entre NPC-Barman quand ils sont à moins de 5 mètres.
- Gestion des discussions entre NPC-Serveuse quand ils sont à moins de 5 mètres.
- le Cireur de chaussure
- Gestion des NPC qui arrivent au hasard.
- Gestion des NPC qui partent dormir dans leurs chambres.
- Gestion des NPC qui se lèvent de leurs sommeils pour soit redescendre et boire, soit pour partir de l'auberge.
[NOUVEAUTE]
- Concours de bière (récupéré sur vault et traduit en français)
- Gestion des pickpokets dans les tavernes (récupéré sur vault et traduit en français)
- Prostituée qui donne juste des infos et qui vannent bien le PJ aussi (récupéré sur vault et traduit en français)
- Terminer de commenter le code.
- gestion des rixes (donc des bastons dans les tavernes entre pnj-pnj et pnj-pj avec probabilité que la milice arrive et la probabilité que la rixe devienne une rixe générale)
- Commande "BASTON" sur le barman qui enclenchera une rixe générale dans la taverne. Cela peut être utile. Merci à Adau pour l'idée.
- Gestion des Heures de fermeture

// SCRIPTEUR : RAT (de Maskado http://nwn.jeuxonline.info)
Lien direct vers le message - Vieux
Avatar de Ambrosis
Ambrosis
Roi
 
Avatar de Ambrosis
 
Si j'ai bien compris le PUMA est un systeme de persistance, ne peut tu pas le remplacer par le systeme de persistance mis en place dans la 1.30 (si il a été bien mis en place, je n'ai pas encore pu voir cela) ?

Sinon, cette taverne m'a l'air vraiment extraordinaire au vu des commentaires, j'ai hate de tester cela.

Je voulais savoir, lorsque qu'il y a une rixe dans la taverne, les pnj et pj peuvent t'ils mourir définitivement ou sont'ils mis simplement KO ?

Autre question lié à la précédente : lorsque que l'on se bat à mains nu, les dégats sont'ils pris en compte comme dégats temporaires ou bien définitifs ?

Sinon est ce possible de faire en sorte que ce soit des dégats temporaire ?
Lien direct vers le message - Vieux
Avatar de Le grognon
Le grognon
Alpha & Oméga
 
Avatar de Le grognon
 
Citation:
Provient du message de ambrosis
... ne peut tu pas le remplacer par le systeme de persistance mis en place dans la 1.30 (si il a été bien mis en place, je n'ai pas encore pu voir cela) ?

+1
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Je vois pas pourquoi vous parlez du système du PUMA???

j'ai fais une version du PUMA car j'avais rajouté le fais de pouvoir paramétrer des Rumeurs avec des aventuriers (principe identique environ sur mon systeme de crieur de ville) .

Mais vous pouvez télécharger la version sans le puma, elle fonctionne tout aussi bien avec la 1.30.

Il n'y pas les aventuriers c'est tout.

Donc c'est pour cela que je ne vois pas l'intêret de faire une version 1.3 comme il n'y a pas besoin de persistance avec cette taverne.

En gros, vous téléchargez le script sans le puma, et cela fonctionnera très bien avec la 1.3

Lors des rixes, les PNJ et PJ meurent tout simplement, je n'ai pas fais de gestion de KO.

je n'ai pas fais de modif par rapport aux combats à mains nues.
Oui cela serait possible de le faire, mais je ne ferai pas de nouvelle version, j'avais déjà prévenu que c'était la dernière. Je suis juste revenu poster un readme que j'avais promis voilà

Maintenant, la Taverne est loin d'être parfaite, elle est juste pour ma part complete .

Pour les rixes, j'ai fais cette fonction juste parce qu'un ami scripteur m'avait dis que cela serait un peu dur à les gérer si on faisait une rixe RP. J'ai voulu voir si c'était faisable .

@ bientôt,

RAT
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Taverne v1 d'ici quelques jours
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 01h04.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite