Vérouillage porte, serveuse et repos

Répondre
Partager Rechercher
Bon, c'est vrai, les trois sujets n'ont aucun rapport, mais comme ca je fais d'une pierre trois coups ;

Ma première question est la suivante :

- J'ai créé une taverne ; lorsque que le pc va voir le tavernier, il peut prendre une chambre pour 100po ; dans ce cas, le tavernier lui donne une clef (tag = CLEF1).
A ce moment, le joueur peut se diriger vers les chambres. Chaque chambre est vérouillée, et seul CLEF1 peut ouvrir la porte. Jusque là aucun problème ; par contre, j'aimerai qu'au bout de 5 minutes (soit 300 secondes) la porte se reverouille automatiquement.
Comment faire ?

- Ensuite, sur mon module, il est impossible de dormir en dehors d'une auberge ; comment faire pour que lorsque le gars entre dans la chambre, il clique sur un objet et puisse dormir, malgré le fait que j'ai coché la case : pas de repos.

- Enfin, comment faire une serveuse qui se balade partout et, si on l'applle par son nom, se ramène ? Je sais que c'est déjà le cas dans le hack pack Taverne de RAT mais en fait, j'ai juste besoin de cette histoire de serveuse.


D'avance merci

@++
Amy Haen
1)

Code PHP:

// A mettre dans le OnClose de la porte
DelayCommand(300.0SetLocked(oDoorTRUE));


// A mettre dans le OnOpen de la porte:
DelayCommand (xxx.xActionCloseDoor(oDoor)); 
2) Impossible si tu as interdit le sommeil dans la zone

3) ben euh... un script et des WayPoints ?


PS et EDIT: tu ne voudrais pas commencer à étudier un peu les fonctions de base de NWN Script au lieu de demander à chaque fois quelle fonction fait ci ou ça ?
Re: Vérouillage porte, serveuse et repos
Citation :
Provient du message de Amy Haen

- J'ai créé une taverne ; lorsque que le pc va voir le tavernier, il peut prendre une chambre pour 100po ; dans ce cas, le tavernier lui donne une clef (tag = CLEF1).
A ce moment, le joueur peut se diriger vers les chambres. Chaque chambre est vérouillée, et seul CLEF1 peut ouvrir la porte. Jusque là aucun problème ; par contre, j'aimerai qu'au bout de 5 minutes (soit 300 secondes) la porte se reverouille automatiquement.
Comment faire ?
sur le OnOpen de ta porte:
Code PHP:

Void Main ()
{
ClearAllActions();
DelayCommand(5.0ActionCloseDoor(OBJECT_SELF));
DelayCommand(300.0ActionLockObject(OBJECT_SELF));

je pense que ça doit faire l'affaire.

Citation :
Provient du message de Amy Haen

- Ensuite, sur mon module, il est impossible de dormir en dehors d'une auberge ; comment faire pour que lorsque le gars entre dans la chambre, il clique sur un objet et puisse dormir, malgré le fait que j'ai coché la case : pas de repos.
Je ne sais pas trop, peut être la commande ActionRest fonctionne-t-elle dans ton cas ?

Citation :
Provient du message de Amy Haen

- Enfin, comment faire une serveuse qui se balade partout et, si on l'applle par son nom, se ramène ? Je sais que c'est déjà le cas dans le hack pack Taverne de RAT mais en fait, j'ai juste besoin de cette histoire de serveuse.
Tu mets ta serveuse en RandomWalk dans le Onspawn de ta créature et ensuite tu utilises les patterns. y a un tutoriel sur ce forum qui devrait t'aider.
Citation :
Provient du message de Azmathiel


PS et EDIT: tu ne voudrais pas commencer à étudier un peu les fonctions de base de NWN Script au lieu de demander à chaque fois quelle fonction fait ci ou ça ?
Bah c'est ce que je fais ; je ne peux pas apprendre toutes les fonction de l'éditeur ; donc j'essaie d'abord de mon coté et quand ca ne fonctionne pas ou que je ne m'en sort pas, je demande ici ; et comme ca j'épluche ce qu'on me donne et j'apprend.

Tu remarqueras que je ne pose jamais deux fois la même question ; je serais bien débile de ne pas poser mes questions alors qu'il y a un forum pour parler de ca ... . Ce n'est pas là l'une des utilités de la communauté Internet et plus précisément celle de Nwn ?

Par ce que là j'en viens à me dire que j'enmerde peut etre mon monde à poster des questions sur les scripts, dans un forum réserver aux scripts ... et je trouve ca grave ... .
Tu as sans doute raison. Ce forum est fait pour aider au scripting. Je pensais sûrement à tort qu'un script se composait de plus d'une ligne de script avec une commande de base qu'on peut construire en se référant aux divers outils qui sont partout. Je plaçais sans doute la barre trop haut dans mon esprit.
Bref, demander "comment on ferme une porte ." et répondre, "ben en la fermant", ça me paraissait si trivial que je me suis dit "il se fout de nous là, il pourrait quand même un peu chercher."
Cela dit, personne ne m'obligeait à répondre non plus. Bien fait pour moi.

Avec toutes mes excuses pour cette remarque mal placée.
Mmmmhhh là où je rejoins Azmathiel, c'est que ta première question est une question je pense de nombreuses fois répondus dans le forum. De plus il existe la fonction recherche. Cepandant, je ne trouve pas la fonction recherche très performante dans ce forum, puisqu'elle ne prend en compte que le titre du topic, et comme personne ne fait un titre explicite et que personne ne pose une question par topic, et bien cette fonction n'est pas très performante.
Si chacun créé son petit topic personnel avec toutes ces questions en vrac, le forum va devenir l'anarchie. Ceci dis je suis pas un modo, donc je n'ai rien à dire.

Bon je ferme la parenthese, avant que tu me penne pour un gros rabat-joie lol^^

pour la premiere question moi je fais differement en utilisant deux scripts.

le premier sur le On Close va verrouillé automatiquement la porte si elle se referme (pas besoin de mettre un temps)
Code PHP:

void main()
{
  
SetLocked(OBJECT_SELF,TRUE);

Vraiment très simple là.
Puis dans le On open, là tu assigne de fermer la porte après un certain temps.
Code PHP:

void main()
{
  
float fDelay 300.0//Durée en secondes après laquelle la porte se referme
  
DelayCommand(fDelay,ActionCloseDoor(OBJECT_SELF));

Les 2 combiné, ca va faire donc fermer la porte au bout de 5 mn et donc aussi automatiquement la verrouillé.

Pour ta seconde question, si tu veux utiliser la commande dormir c'est impossible je pense, à moins de créer une zone juste pour la chambre. Tu peux par contre tricher. Et juste donner l'impression au joueur qu'il va dormir.
tu place un objet invisible sur le lit, et lorsqu'il utilise le lit tu applique des effets du genre VFX_DUR_DARKNESS ou effectblindness avec aussi un VFX_IMP_SLEEP. tu peux aussi faire vider l'inventaire du joueur en le déshabillant et en transferant son inventaire dans un coffre à proximité. Sinon la fonction pour le vrais dodo c'est ça je crois : GetLastRestEventType() == REST_EVENTTYPE_REST_STARTED ou un truc comme ça. Désolé j'ai jamais utilisé cette fonction. et pour faire areter le dodo réel c ça je crois : GetLastRestEventType() == REST_EVENTTYPE_REST_CANCELLED || GetLastRestEventType() == REST_EVENTTYPE_REST_FINISHED, mais je peux pas t'en dire plus.

Pour la derniere, moi j'aurais mis le randomwalk dans le fichier actuel du dialogue, mais je me trompe surement. Sinon si c'est le nom crier haut et fort qui fait amener la serveuse, là c'est comme à dis Mastokk. Donc rien à rajouter. Y'a plein de bons trucs dans la taverne de RAT
Bin pour la serveuse, regarde dans le sommaire des scripts persistants de Daynos, il y a plusieurs préfabs qui devraient t'aider.

Sinon j'avais posté un système basé sur onPerception et onConversation, mais vu le peu d'intérêt qu'il a suscité je n'ai pas rapporté les mises à jour sur le forum. C'est là, si tu veux :

https://forums.jeuxonline.info/showthread.php?t=202797
Re: Vérouillage porte, serveuse et repos
Citation :
Provient du message de Amy Haen
Bon, c'est vrai, les trois sujets n'ont aucun rapport, mais comme ca je fais d'une pierre trois coups ;

Ma première question est la suivante :

- J'ai créé une taverne ; lorsque que le pc va voir le tavernier, il peut prendre une chambre pour 100po ; dans ce cas, le tavernier lui donne une clef (tag = CLEF1).
A ce moment, le joueur peut se diriger vers les chambres. Chaque chambre est vérouillée, et seul CLEF1 peut ouvrir la porte. Jusque là aucun problème ; par contre, j'aimerai qu'au bout de 5 minutes (soit 300 secondes) la porte se reverouille automatiquement.
Comment faire ?

- Ensuite, sur mon module, il est impossible de dormir en dehors d'une auberge ; comment faire pour que lorsque le gars entre dans la chambre, il clique sur un objet et puisse dormir, malgré le fait que j'ai coché la case : pas de repos.

- Enfin, comment faire une serveuse qui se balade partout et, si on l'applle par son nom, se ramène ? Je sais que c'est déjà le cas dans le hack pack Taverne de RAT mais en fait, j'ai juste besoin de cette histoire de serveuse.


D'avance merci

@++
Amy Haen
Tout se passe dans le Onused de la serveuse. Je suis en train de refaire la taverne, en version db bioware aussi, mais surtout de réunir tous les scripts au lieu de le laisser dans le mod comme j'ai fais auparavant pour Elmo.
Si tu veux de l'aide par rapport au taverne et à la serveuse, ba tu peux prendre contact avec moi via icq, ou msn.
Voilou

@ bientot
Citation :
Sinon j'avais posté un système basé sur onPerception et onConversation, mais vu le peu d'intérêt qu'il a suscité je n'ai pas rapporté les mises à jour sur le forum. C'est là, si tu veux :

https://forums.jeuxonline.info/showthread.php?t=202797 [/i]
Moi je l'aime bien ta serveuse, puisque c'est exactement ce que je cherchais !!! Juste le temps de modifier les noms des boisson et le nom de la serveuse, et ca sera parfait ^^

Pour ce qui est de la fonction rechercher, c'est vrai qu'elle est peut performante.

Maintenant, pour en revenir à ma question sur le repos : ce que je vais faire, c'est intedire le repos en ville et dans les batiments publiques, sauf dans les chambre de l'auberge (en faisant les chambre dans une aéra à part);
Mais je ne veut pas que les joueurs puissent dormir n'importe en plaine ou eillaeur (pourvu que ca ne soit pas enville) ; donc si je comprend bien, il faut que je ne coche pas l'icone "repos interdit"mais que je fasse un script empêchant le repos sauf si le joueur possède dans son inventaire un objet particulier (genre sac de couchage) ; le tout est que j'aimerai trouver le script seule, mais que j'ai cherché, et je ne vois pas quelle fonctions sont en rapport avec le repos. Si vous pouviez m'en sortir une ou deux en vrac, histoire de me débrouiller un peu ?

Merci
le bouton a cocher Repos Interdit, c'est differents zone par zone... oO


DOnc, tu cree une minizone 2*2 qui va etre la chambre, tu la met en repos Ok, et tou le reste en repos interdit, et je voit mal comment les autres joueur pourraient arriver a dormir ailleur que dans l'oauberge... (ah, si, chez les gob, quand un chaman va lancer sleep, mais a part ca...)


Non, c'est vraiment pas possible de creer une chambre a part 2*2 ??


Bein, sion, tu recouvre la chambre par un Trigger, avec sur le OnEnter :
Code PHP:

void main(){
if (
GetIsPC(GetEnteringObject()))
SetLocalInt(GetEnteringObject(),"restok",TRUE);

Sur le OnExit :
Code PHP:

void main()
{
if (
GetIsPC(GetExitingObject()))
DeleteLocalInt(GetExitingObject(),"restok");


Sur le OnRest du module
Code PHP:

void main()
{
if (!
GetLocalInt(GetLastPCRested(),"restok"))
AssignCommand(GetLastPCRested(),ClearAllActions());

mais bon, ca fait flamby... et en plus, c'est dommage de pas profiter du clignotement de bouton quand la zone devient "restable"...




@RAT : OnUsed ? tu utilisait pas les patternes ??
Pour la chambre c'est bien ce que j'ai fait ; j'ai dit dans mon précédent post que je les avaient mises dans une aera a part ou le repos est autorisé ; au fait, c'est quoi un tigger ? Je vois ce mot partout mais j'arrive pas à associer ce que c'est ... .
Declencheur. Le genre d'objet que tu pose sur le sol en le dessinant point par point, qui fait une ligne violete par terre. Les transition d'aire de jeu en sont une sous-categorie.


(et oui, j'ai vu ton post precedent, et si tu relis, y'a une questiona la fin... donc je reponds )
Citation :
Provient du message de eMRaistlin

@RAT : OnUsed ? tu utilisait pas les patternes ?? [/i]

Mais je me suis gouré c pas le Onused, que je voulais dire lol, je pensais à autre chose quand j'ai écris cela. C'est le dernier , UserDefined , je sais plus comment il s'appelle lol


Si j'utilise les patterns pour les PC,et NPC

En gros, j'interdis dans la zone les gens qui peuvent dormir.

Et je mettais deux objets invisibles qui regardaient dans un rayon de 5 mètre, en bas des escaliers, et en haut. En montant, les escaliers, cela te permettait de dormir. En descendant les escaliers, cela te retirait le droit de dormir.

Après , le pc, allait dans sa chambre et dormait normalement. Pour les npc, ils se dirigent vers soit un objet invisible, ou le lit, et vont dormir dessus.


Donc je n'utilise pas en tout cas de trigger .


J'ai toujours voulu macher le boulot des builders le plus possible.

Et pour la gestion des NPC, qu'ils aillent boire, manger, partir, allait se coucher etc... C'est dans le onused de la serveuse et du barman.

et tout se fait comme ca .

La gestion des chambres est toute simple, si un NPC loue une chambre, alors automatiquement le PC ne pourra pas louer la mm chambre tant que le NPC n'aura pas rendu la clé.
Et donc on arrive au problème marrant RP, si tous les chambres sont prises par des NPC, le barman dit au PC qu'il n'a plus de chambre à louer
Répondre

Connectés sur ce fil

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