La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 21:25:35
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Salut à tous
alors alors, voilà les choses bizarres qui sortent du tréfond de mon esprit : une zone de pèche (comme dans ocarina of time) : une petite zone fermée avec un stand de pèche, où on vend plusieurs choses : une canne, du fil, et des appats. Il y a trois types d'appats : un normal, un pro, et un champion, donnant respectivement 25, 50 et 75 % de chance d'attrapper un gros poisson. Côté inventaire, il y aura des poissons allant de 5 à 15 livres. Donc, le joueur entre dans la zone, il achete son matériel, il se met au bord du lac, et donc commence la pèche (et là je ne sais pas trop comment faire d'ailleurs ^^), et le joueur attend qu'un poisson morde (donc par rapport au pourcentage de chance d'attraper tel type de poisson avec l'appat qui entre en jeu), et lorsque c'est le cas un petit floatingtextstringoncreature "ça mord !", et ensuite tour par tour le pj fait un jet de force, et le poisson aussi, ainsi qu'un d20. Si le d20 tombe sur 20, le poisson lâche prise (FTSOC : "il a laché prise...", sinon la lutte continue, jusqu'à ce que les points de vie (ou autre chose n'importe) du poissons soit arrivés à 0 (il commence par exemple avec 200, et à chaque jet de force du pj, on soustrait le resultat aux points de vie, et lors du jet de force du poisson, il récupère le résultat sur ses points de vie). Une fois qu'un poisson est péché, il faut l'amener au gérant (impossible de pecher si on a déjà un poisson dans l'inventaire), et celui ci le pèse alors, et note sur un tableau, le nom du pj et le poids de son poisson, afin de faire un "top 3 des poissons péchés". Le poissons est bien sûr pris de l'inventaire, et il peut ensuite aller repécher. Quand au fil, il peut casser (à chaque poisson nouveau, un d20, et si c'est 20, crac). Voilà, je ne sais même pas si c'est humainement et nwnement possible à faire, auquel cas merci de me préciser quoi pour que je ne cherche plus Sinon, c'est un peu un défi pour ceux qui veulent le relever Je vous remercie beaucoup ^^ (et ne vous préssez pas, ça urge pas hein ^^, je vais pas faire mon chieur) _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights Dernière édition par warpShadow le 24/01/2008 10:42:31; édité 3 fois
|
Revenir en haut | |
-Nog- Chevalier Messages: 81 |
c'est trop dur pour moi désolé par contre je crois que c'est faisable oui
(édite ton post si tu passes par la, mets quelques chose du genre script de peche ou quelque chose du genre, ça sera plus facile a retrouver pour les autres apres |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Viduc de Papironda a écrit : j'ai casiment finit ce que tu voulais, mais vu la chaleur mon pc arrête pas de buguer... je finit ça demain^^...
hein ?? DEJA ??!! incroyable... moi qui pensait que ce serait un truc complètement énorme qui prendrait deux semaines de reflexion Oo
Viduc sino, oui, CEP 1.53 et 1.67. Je te remercie très chaleureusement, et si tu veux bien je met ton pseudo comme nom pour le gérant du stand de pêche ! Merci !! ^^ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
ne t'inquiete pas et prends ton temps, ce n'est pas préssé ^^ Merci à toi en tout cas
en revanche, je ne sais pas bien moi même comment va marcher l'association canne + fil + appat si tu as prévu une idée dans ton script, je suis prenneur ^^ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
-MeteZ- Seigneur Messages: 205 Localisation: Région Parisienne (95) |
J'ai fait il y a peu casiment le même script (en moins développer) et j'ai rajouté de l'xp persistante dans la base NWN.
C'est assez simple mais le truc à penser c'est : lorsque le joueur pêche au lieu d'attendre qu'il pêche un poisson, le joueur fait pleins de "activer objet" ainsi les jets se font, etc, etc et lui n'a plus qu'a regarder son inventaire se remplir. Enfaite au lieu de faire un script par un script il en fait plusieurs à la fois et pour lui ca va plus vite. _________________ "Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit." |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
bien voici un premier essaie...
[http] dis moi si ça te va en soit... ET ceux qui veulent l'améliorer n'hésitez pas bien au contraire^^!!! Viduc _________________ |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Bon comme j'ai pas le CEP je peux pas tester. Ca a l'air pas mal mais tu peux grave optimiser tes scripts. Un problème possible : tu vérifies pas que l'item dans les billes est un appat (bug possible).
Vite fait j'ai rien changé au fonctionnement, simplement écrit différement pour gagner de la place, le script vp_peche : NWScript :
//---------------------------- ------------------------------ ------------------// //Fonctions determine casse du fil ou lacher prise///////////////////////// ///// //---------------------------- ------------------------------ ------------------// void cassefil() { object oPC=OBJECT_SELF; object oCanne=GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);//item "canne" ds l'inventaire du perso int nCasse=d20();//lance un d20 if(nCasse!=20)//si le resultat du d20 n'est pas egal a 20 { ActionSpeakString("Le poisson resiste et vient de lacher prise");//dit } if(nCasse==20)//si le resultat du d20 est egal a 20 { ActionSpeakString("Votre fil de peche vient de casser");//dit DestroyObject(oCanne); } } //---------------------------- ------------------------------ ------------------// //Fonctions lutte avec le poisson et determine le poids si prise//////////////// //---------------------------- ------------------------------ ------------------// void lutte(int nType) { object oPC=OBJECT_SELF; int nForce1=GetAbilityScore(oPC,ABILITY_STRENGTH); int nForce2;//=3+d12();//determine le poids du poisson qui sera utilise comme carac force switch (nType) { case 1 : nForce2=1+d4();break; case 2 : nForce2=2+d8();break; case 3 : nForce2=3+d12();break; } int nRoll1=d20();//jet de d qui modifiera la force du perso int nRoll2=d20();//jet de d qui modifiera la force du poisson int nTest1=nForce1+nRoll1;//Cacule de la valeur d'opposition du perso (Vo) int nTest2=nForce2+nRoll2;//Cacule de la valeur d'opposition du poisson if(nTest1<nTest2)//si la Vo du perso est infrieure strict a celle du poisson { AssignCommand(oPC,cassefil()); } if(nTest1>=nTest2)//si la Vo du perso est superieure ou egal a celle du poisson { object oPoisson=CreateItemOnObject("vp_poisson",oPC,1);//cree l'item "poisson" dans l'inventaire du perso SetLocalInt(oPoisson,"poids",nForce2);//attribut une variable sur le poisson equivalente au poids DelayCommand(2.0,ActionSpeakString("Vous sortez un poisson"));//dit } } //---------------------------- ------------------------------ ------------------// //Fonction qui gere la quantite d'appat ds l'inventaire////////////////// /////// //---------------------------- ------------------------------ ------------------// void gestionappatinventaire() { object oPC=OBJECT_SELF; object oAppat=GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC); int nAppat=GetNumStackedItems(oAppat); if (nAppat>1) SetItemStackSize(oAppat,nAppat-1); else DestroyObject(oAppat); } //---------------------------- ------------------------------ ------------------// //Fonctions qui gerent le type d'appat/////////////////////// /////////////////// //---------------------------- ------------------------------ ------------------// //---------------------------- ------------------------------ ------------------// void appat(int nType) { object oPC=OBJECT_SELF; int nRoll=d100();//jet de pourcentage de chance d'avoir une prise AssignCommand(oPC,gestionappatinventaire());//lancement de la fonction gestionappat if(nRoll<=25*nType)//si le jet est inferieur ou egal a 75 { ActionSpeakString("vous avez une prise");//dit DelayCommand(2.0,AssignCommand(oPC,lutte(nType)));//lancement de la fonction lutte3 } else//si le jet est superieur a 75 { ActionSpeakString("rien ne mord");//dit } } //---------------------------- ------------------------------ ------------------// //Script de lancement///////////////////// ////////////////////////////// //////// //---------------------------- ------------------------------ ------------------// void main() { object oPC=GetClickingObject();//determine le joueur object oCanne=GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);//item "canne" ds l'inventaire du perso object oAppat=GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC);//item "appat" ds l'inventaire du perso object oPoisson=GetItemPossessedBy(oPC,"vp_poisson");//item "poisson" ds l'inventaire du perso int nAnim1=ANIMATION_LOOPING_MEDITATE;//animation qui sera joue pour simuler la peche object lLoc=GetWaypointByTag("vp_canne1"); if(oPoisson==OBJECT_INVALID)//si le joueur ne possede pas de poisson ds son inventaire { if (GetTag(oCanne)=="vp_canne") { if(oAppat==OBJECT_INVALID)//si le joueurs est equipe de la canne mais n'a pas d'appat dans le slot { ActionSpeakString("il vous faut un appat");//dit } else { string sAppat = GetTag(oAppat); if (GetStringLeft(sAppat,9) !="vp_appat_") { ActionSpeakString("il vous faut un appat"); } int nAppat= StringToInt(GetStringRight(sAppat,1)); CreateItemOnObject("vp_canne",lLoc,1); //heu ??? DelayCommand(6.0,AssignCommand(oPC,appat(nAppat))); } } else //si le joueur n'a pas la canne equipe { ActionSpeakString("il vous faut une canne");//dit } } else//si le joueur possede un poisson ds son inventaire { ActionSpeakString("Vous devez aller faire peser votre poisson avant de pouvoir pecher"); } } Ca change rien au fonctionnement mais c'est plus lisible et plus léger (le script compilé pèse 2 fois moins que l'original). Bon j'ai fait ça vite et comme je peux pas essayé si ça se trouve je me suis planté et ça plante, prends ça comme des pitis conseils d'écriture surtout. |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
C'est super, merci à vous, je teste ça dès ce soir. En revanche, vous pouvez m'expliquer comment ça marche pour pêcher ? on utilise l'objet avec un clic sur soit-même ?
merci à vous deux ^^ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
Merci à toi Sith Vicious, je vois ce que tu veux dire, oui ça a l'air pas mal comme ça, je testerais tout a l'heure pour voir, et tu viens de me faire comprendre un nouveau truc c'est cool^^.... la ligne createobject de la canne sur lLoc ne sert à rien c'était un test que j'ai oublié de virer aussi..^^
Alors pour le fonctionnement, tu achètes ton équipement et tu équipe ton perso (la canne de pêche en main, et un type d'appat dans le slot des billes de frondes. ensuite tu vas devant une des cabanes près de l'eau, il y a un déclencheur devant chaque, tu n'a plus qu'à cliquer dessus et le reste se fait automatiquement.... celà t'informe si tu as une prise ou pas, si oui si tu sorts le poisson ou pas et si le fil casse... une fois que tu as un poisson tu retournes voir le gérant, il te donnera le poids de ta prise qui sera directement enregistré sur le tableau de résultat avec le nom du joueur. Si tu chope ensuite une deuxième prise, il te proposera de modifier le poids enregistré.... Voilà, autre précisions et suggestions.... je n'ai mit que dix joueurs, car j'ai eu la flemme de chercher comment faire pour créer plus d'espace de dialogue automatiquement (comme ds le script de la boule de cristalle..) donc ça peut être modifier. Autre chose, le script test en premier le pourcentage de chance d'avoir une prise en fonction de l'appat, si ça mord, il fait le jet de force, MAIS si le jet est ratté pour le joueur, le poisson lache la prise et le joueur doit recommencer à pêcher, ce qui diffère de ce que tu voulais puisque tu voulais simuler une lutte en somme, mais là j'avais essayé avec des boucles au départ et comme je ne maitrise pas encore super ça foirait donc j'ai limité au plus simple.... et sinon autre chose, faudrait penser à comment on réinitialise le concours (en gros effacer les données du tableau). On peut rajouter un dialogue sur le gérant, faire un placeable genre manette etc.... c'est comme tu veux, dis moi ce que tu voudrais... Viduc _________________ |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Pour le mien tu vas près de l'eau et tu utilises un appat.
Je le mets là si Viduc veut jeter un oeil (ou n'importe qui d'autre d'ailleurs...) Y a pas le classement mais il y a la lutte Man vs Fish (le classement ça dépend de la persistance donc comme je sais pas quelle BDD tu as...) peche EDIT : mise à jour du fichier ajout d'un truc pour faire apparaitre le fil de pêche, c'pas parfait mais c'est rigolo. |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Ben je vais essayer de les assembler justement, mais je sens qu'il va y avoir des merdes (dès que je touche un script moi -__-)
je vous tient au courant [edit] bon, ben comme prévu, j'ai tout raté, et je n'arrive pas à les coupler correctement Voilà ce que j'ai voulu faire : dialogue du personnage, resultats tableau de viduc, avec systeme d'objets, systeme de "combat" comme sith, et au lieu d'une chaise, le personnage assis par terre (ça j'ai reussi, orienté vers le WP au centre du lac (ça j'ai pas réussi -__-), et le même systeme avec la chaine. Sinon, vous avez quand même fait un travail superbe tous les deux ! (Dommage que je n'arrive pas à me débrouiller correctement avec ) Merci à tous les deux, votre aide sera encore bienvenue, moi je vais continuer pour encore une heure, après j'irais dormir. ^^ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Salut bon pour l'intant j'ai un peu laissé de côté, j'ai mis la zone de viduc (très jolie ^^) avec ses scripts en attendant de pouvoir insérer le systeme de sith vicious.
JE vous montrerait où j'en suis ^^ ++ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
J'ai rajouté un classement persistant sur mon module. Pas de limite de classés, mais un seul classement par perso. Sinon j'ai doublé les bonus de force dans la lutte, ça devrait durer moins longtemps comme ça.
Le problème de virer le tabouret, c'est que j'ai basé le système dessus en fait, histoire que le type puisse pas se ballader en train de pecher. On peut s'en passer, mais ça change pas mal de trucs. |
Revenir en haut | |
José Novice Messages: 18 |
Salut. J'aimerais savoir concretement comment marche ton script sith. Je le met sur quoi sur le tabouret où le playeur s'assoit? Je pense que ca doit pas etre sur la canne où l'appat.
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Heu, de quel script tu parles exactement ? De celui posté plus haut ou bien tu as téléchargé la démo ?
Le script d'au dessus est pas de moi, c'est de Viduc, qui a fait aussi une démo, t'as le lien dans un de ses posts. |
Revenir en haut | |
José Novice Messages: 18 |
C'est bon j'ai pris la demo ca marche bien par contre peut on concevoir d'avoir plus d'appat et differentes cannes pour influer un peu sur la prise de poisson?
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Yop c'est possible, là c'est juste une ébauche, il y a plein de trucs qui peuvent être améliorés ou changés.
Pour rajouter un appat, faut qu'il ait comme tag "SV_IT_APPAT" et comme resref un truc "sv_it_appatX" ou X est la qualité de l'appat (de 1 à 9, de 1 à 3 existent déjà). Après il faut que tu gère la qualité de l'appat dans les autres scripts, pareil si tu veux que la qualité du fil ou de la canne intervienne. Toute la gestion de la pêche proprement dite c'est dans le script "sv_oud_peche" sur le OnUserDefined du tabouret. Enfin je te laisse voir selon ce que tu veux. |
Revenir en haut | |
José Novice Messages: 18 |
Pour un module persistant je dois ajouter les appats dans le on activateitem du module?
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Si ton module lance les script TagBased dans le OnActivate, théoriquement non. Sinon oui. Tu peux une fois que le tag est vérifié lancer le script par un ExecuteScript (faudra du coup modifier le script un peu, pas des masses, juste ce qui concerne justement les scripts tagbased, cad la vérification de l'event puisqu'il aura pas été fixé, et le setexecutedscriptreturnvalue. En gros vire le #include "x2_inc_switches" puis les lignes qui compilent pas sans)
|
Revenir en haut | |
José Novice Messages: 18 |
OK merci parce que j'ai mis la zone avec les scripts et tout. J'ai crée mon script dans le on activateitem mais ca marche toujours pas du coup j'ai carremet exporté ta zone pour voir ca ne marche pas non plus. Faut juste modiufier le script alors.
|
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum