| | Scripts et avancement du module.... | |
| | Auteur | Message |
---|
Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Scripts et avancement du module.... Lun 8 Aoû à 17:47 | |
| BG: 80%
Mappage racine: -Exterieurs: 80% - Interieurs: 10%
Mappage temporaire: 0%
Creatures: 80%
Items: 50%
Scripts: 10%
Communication (du bg, des regles..): 40%
Equipe: Toute personne desirant participer au projet est bien evidament la bienvenue. Contact par pm. Recherchons deux ou trois administrateurs pour regler les conflits entre joueurs.
Dernière édition par le Mar 30 Aoû à 16:22, édité 1 fois | |
| | | Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Lun 8 Aoû à 22:09 | |
| Scripts recherchés:
Jour -- Infliger des degats aux Vampires de 5h à 7h ?....
Voleurs-- Empecher les voleurs de piquer des trucs plus grands qu'eux dans l'inventaire du voisin....
Victimes -- Un script henchmen "rester ici" "me suivre".
Persistance -- Un script persistant de localisation, pv, inventaire.... sur la base de donnée de Bioware.
Script HCR inventaire -- Trois/cinq potions, sac de dimensions reelles..
Script limitation classes: roublard, guerrier.
Script limitation race: elfe.
Script mort. | |
| | | Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Mar 9 Aoû à 14:06 | |
| script antikevin: impossibilité d'utiliser le dmgod (invincible) ou dmkill (mort par dm). | |
| | | Kem Invité
| Sujet: Re: Scripts et avancement du module.... Jeu 18 Aoû à 16:28 | |
| Pour le script sur le jour, j'en ai un en réserve qui permet le contrôle des loups garous justement vis à vis de jour/nuit via un objet dans l'inventaire (dont on ne peut pas se débarasser)
Ca doit pouvoir se bidouiller. Je le poste ? Il provoque la métamorphose à la tombée de la nuit et à l'aube. |
| | | Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Jeu 18 Aoû à 16:35 | |
| C'est assez genial. Vous avez envie de voir des lycanthropes sur le mod ? Why not... Chez qui, pour quelle raison ? Ca pourrait etre chouette chez certaines furies... ou ca pourrait etre une maladie. ou une malediction. Ou une benediction. Ca change que la forme, ou les caracteristiques aussi ? Sinon, grace à Tom, le module du Paradis Perdu nous prete un script antivol-bourrin. Je mettrais ca dans un post de remerciements lorsque le mod sortira. | |
| | | Kem Invité
| Sujet: Re: Scripts et avancement du module.... Jeu 18 Aoû à 19:43 | |
| Vampires vs. lycanthropes, grand classique. Vi tous les changements sont prévus. Grosse guerre, deux clans opposés déjà alors voilà le bazard : by Kalkaana - Citation :
- sur un HeartBeat Module (ca serait peut-être gourmand ceci dit) ou tout autre gestion de battement de coeur (1mn, 10mn etc)
Un peu d'algèbre de Boole et utilisation d'un évênement décalé dans le temps d'un battement.
timing : # pour un "beat" valeur des variables : 0 ou 1, x pour indéterminé ^ : ou exclusif bit à bit "XOR" _| 0 | 1 | 0| 0 | 1 | 1| 1 | 0 |
mémorisons dans nDuskDawn, l'état de nNight = GetIsNight() lorsque que celui-ci change. en vert le premier "beat" capté par le script (je ne mets qu'un cas mais vous pourriez vérifier pour chaque période la levée d'indétermination
Période Jour ####### | Aurore ####### | Nuit ######## | Aube ##### (---> échelle du temps qui passe) nNight 0 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 | 1 1 1 1 1 1 1 1 1 | 0 0 0 0 0 0 0 0 nDuskDawn x x x x x x x | x x x x x 0 0 0 0 0 | 0 1 1 1 1 1 1 1 1 | 1 0 0 0 0 0 0 0 ( nDuskDawn ^ nNight ) | x x x x x 0 0 0 0 0 | 1 0 0 0 0 0 0 0 0 | 1 0 0 0 0 0 0 0
=> Deux déclenchements indiqués en rouge si mémorisation de GetIsNight() dans nDuskDawn
tester après (nDuskDawn ^ nNight ) && nNight pour filtrer l'instant du début de nuit
----------------------------------------------------------------------------
implémentation :
CODE // no initialisation needed object oMod=GetModule(); // Note : sur les évênements modules OBJECT_SELF est pareil que GetModule(); int nDuskDawn = GetLocalInt(oMod,"DAYNIGHT_STATE"); int nNight = GetIsNight() ? 1 : 0; if( nDuskDawn ^ nNight ){ // bitwise XOR => testing change between two beat SetLocalInt(OBJECT_SELF,"DAYNIGHT_STATE",nNight); if( nNight ){ // fin de l'aurore ExecuteScript("Script de début de Nuit",oMod); } else { // début de l'aube ExecuteScript("Script de fin de Nuit",oMod); }
Pour faire plus joli, mettre dans OnModuleLoad pour lever l'indétermination :
CODE SetLocalInt(GetModule(),"DAYNIGHT_STATE",GetIsNight());
Tester la transformation des personnages maudits :
Les "Script de début de Nuit" & "Script de fin de nuit" peuvent être combinés en un seul pour ce cas précis :
CODE #include "nw_i0_tool"
void main(){ object oPC = GetFirstPC(); int nNight = GetIsNight(); string sTagItemForme = "MALADIE_GAROU"; // le Tag de l'item maudit requis // dans l'inventaire du perso effect eVfx1 = EffectVisualEffect(VFX_FNF_NATURES_BALANCE); effect ePolyGarou = EffectPolymorph(POLYMORPH_TYPE_WEREWOLF, TRUE); // TRUE pour forme verrouillée => ne peut pas redevenir normal tout seul ePolyGarou = SupernaturalEffect(ePolyGarou); // le repos n'enlève pas la transformation // vérifier pour tout le monde while( GetIsObjectValid(oPC) ){ if( HasItem(oPC,sTagItemForme) ){ if( GetLocalInt(oPC, "FORME_LOUPGAROU") ){ // je suis déjà Loup-Garou if( !nNight ){ // si le jour se lève => forme normale effect eEff = GetFirstEffect(oPC); while( GetIsEffectValid(eEff) ){ if (GetEffectType(eEff)==EFFECT_TYPE_POLYMORPH ){ RemoveEffect(oPC, eEff); } eEff=GetNextEffect(oPC); } // enlève l'effet de polymorph garou DeleteLocalInt(oPC, "FORME_LOUPGAROU"); } } else { // je ne suis pas loup-garou if( nNight ){ // si la nuit tombe, devient loup-garou ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVfx1, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePolyGarou, oPC); SetLocalInt(oPC, "FORME_LOUPGAROU", TRUE); } } // test forme actuelle } // test présence item maudit oPC = GetNextPC(); } // pour chaque PJ présent }// main
-------------------------------------------------------------------------------
Pour la transformation par item : voici un script compatible avec l'automatisation jour/nuit ci-dessus. Pour laisser la possibilité que le métamorphe ne se contrôle pas à 100%, c'est dissocié en deux items (avec Tags différents) : un pour la malédiction, un pour le contrôle. Comme celà si il a les deux dans son inventaire, il reste démasquable le loup-garou redeviendra normal dés les premières lumières du jour, dévoilant son identité, de même il se transformera automatiquement en début de nuit, tout en pouvant changer de forme quand même avec l'objet. Le vrai métamorphe se verra nettoyé de l'objet maudit. (lui enlever)
CODE void main(){ object oPC = GetItemActivator(); object oItem = GetItemActivated(); string sTagItemForme = "VRAI_GAROU"; // le Tag de l'item maudit activé effect eVfx1 = EffectVisualEffect(VFX_FNF_NATURES_BALANCE); effect ePolyGarou = EffectPolymorph(POLYMORPH_TYPE_WEREWOLF, TRUE); // TRUE pour forme verrouillée => ne peut redevenir normal tout seul ePolyGarou = SupernaturalEffect(ePolyGarou); // le repos n'enlève pas la transformation
if( GetTag(oItem) == sTagItemForme) ){ if( GetLocalInt(oPC, "FORME_LOUPGAROU") ){ // je suis déjà Loup-Garou retour à la normale effect eEff = GetFirstEffect(oPC); while( GetIsEffectValid(eEff) ){ if (GetEffectType(eEff)==EFFECT_TYPE_POLYMORPH ){ RemoveEffect(oPC, eEff); } eEff=GetNextEffect(oPC); } // enlève l'effet de polymorph garou DeleteLocalInt(oPC, "FORME_LOUPGAROU"); } else { // je ne suis pas loup-garou, transformation ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVfx1, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePolyGarou, oPC); SetLocalInt(oPC, "FORME_LOUPGAROU", TRUE); } // test forme actuelle } // test activation item de métamorphose }// main
attention comme le métamorphe contrôle sa forme, il faut que l'objet soit utilisable dans la forme loup-garou.
----------------------------------------------------------------------------------
Questions : Objets obligatoires ?
a) équipé : - pour la malédiction (MALADIE_GAROU) il n'y a pas besoin qu'il soit dans les slots actifs, juste présent dans l'inventaire - pour le vrai pouvoir (VRAI_GAROU), l'objet devra être utilisable sans être équipé et surtout un des rares objets utilisables en métamorphose (je n'ai que les potions qui me viennent à l'esprit : à vérifier, sinon créer sur le PJ une potion à usage unique avec le Tag "VRAI_GAROU" et "Lancer un Sort : pouvoir unique sur soi" au moment de la transformation vers la forme loup) voir cette fonction pour le faire :
CODE CreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1)
Suivant les légendes la Belladone sert aussi à soigner de la malédiction du loup-garou ; celà pourrait être de "l'extrait de Belladone"
b) nécessaire sur le PJ : à défaut de gestion de la persistence via la database et les fonctions disponibles dans nwn, il faut obligatoirement un item "non-dropable" (qu'on ne peut lâcher au sol ou appelé aussi item maudit) sur le personnage pour la malédiction. |
| | | Tom Vampire
Nombre de messages : 98 Pj : Yaster Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Jeu 18 Aoû à 20:07 | |
| Heu faire du vampire vs lycan, bof, ça rappelera trop Underworld (si c'est ça le titre en fait), ce qui est mauvais..... on va pas faire gueguerre vampires - lycan quand même! Mais, oui, pourquoi pas instaurer une maladie, tel le virus du SIDA qui se trouvent dans certains sangs trafiqués, et qu ise répend. Mais transformer en "homme loup" = moyen, il faudrait quelquechose qui soit un état maladif.... Car se recouvrir de poil et avoir els dents qui poussent et les muscles qu ise bandent, ça fait pas trop état maladif . Fau trouver un autre skin pour la "transformation". Sinon, pour le script anti vol, un des mappeurs du PP t'a demandé de lui demander toi même.... (en gros, sur le PP personne ne m'aime quoi sauf 3-4 personnes, donc voilà poruquoi ) | |
| | | Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Jeu 18 Aoû à 20:15 | |
| Pour le lycan, je pensais à quelque chose comme une ooze.. mais peut etre pas.. Ou un truc gelatineux. Ou malade. je sais pas.
Pour la guerre lycan / vampires, euh.... Disons que nos vampires, je vasi peut etre songer à les appeller autrement. c'est vrai que ca porte à confusion.... Une idée ?
Pour le script de pp, c'est Malicene qui m'a contactée sur les mofules fr, en disant qu'elle venait de ta part. | |
| | | Tom Vampire
Nombre de messages : 98 Pj : Yaster Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Jeu 18 Aoû à 21:04 | |
| - Citation :
- Pour la guerre lycan / vampires, euh.... Disons que nos vampires, je vasi peut etre songer à les appeller autrement. c'est vrai que ca porte à confusion.... Une idée ?
Non, pas les renommer. Plutôt les présenter distinctement dans un post consacré, en "démolissant" les bases du vampires traditionnel! | |
| | | Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Jeu 18 Aoû à 21:20 | |
| A toi l'honneur. | |
| | | Kem Invité
| Sujet: Re: Scripts et avancement du module.... Jeu 18 Aoû à 21:21 | |
| Ouaip. Faut éclaircir.
Les vampires d'ici ont-il peur des crucifix? De l'ail? De l'eau bénite?
Ou bien rien à foutre comme dans Anne Rice ?
Très important. D'où le problème du multivers. En fonction de où vient le personnage décédé, il aura une vision différente dans ses mythes personnels. Il faut absolument cerner le monde d'origine. Enfin je l'ai déjà dit ailleurs ... |
| | | Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Mar 30 Aoû à 16:20 | |
| On a fait ca dans l'antichambre, un post sur les vampires. mais rien n'empeche un joueur de decider que son mec s'imagniera sensible à l'ail... Des fois, l'autosuggestion, c'est puissant.
-----------------------------------------------------
Pour les scripts, petite mise à jour:
Scripts recherchés:
Jour -- Infliger des degats aux Vampires de 5h à 7h ?.... (pas urgent)
Victimes -- Un script henchmen "rester ici" "me suivre".
Persistance -- Un script persistant de localisation, pv, inventaire.... sur la base de donnée de Bioware.
Script limitation classes: roublard, guerrier. Script limitation race: elfe.
Script "traite du sang": script permettant de "traire" les Victimes et les Larves sans rebellion de leur part, et les Raclures, Crochemards, Crochemorts, Furies avec une attaque de leur part. Basé sur les Ethnies. Donne une potion d'une categorie correspondant à la race citée, illimité.
Script mort: Medic Arwen: on death Medic Arwen: dans le script "on death" des PJ tu peux choper la personne qui a tué le pj Medic Arwen: apres tu lui balance un dialogue "voulez-vous achever untel" Medic Arwen: et s'il répond oui, bé tu fais ton truc pour vider l inventaire et bloquer le pj mort dans une zone spéciale qui représente le fait qu'il est mort definitivement.
Palette perso de Creatures (normalement Felix s'en occupe).
Scripts trouvés:
Voleurs-- Empecher les voleurs de piquer des trucs plus grands qu'eux dans l'inventaire du voisin.... (Par Zaran)
Script HCR inventaire -- Trois/cinq potions, sac de dimensions reelles.. (Par Finipe)
Palette perso d'objets -- (Par Felix)
Inventaire personalisé à la premiere connexion -- (Par Alandilas) | |
| | | kermo Crochemard
Nombre de messages : 47 Pj : Jemima Date d'inscription : 30/08/2005
| Sujet: Re: Scripts et avancement du module.... Mar 30 Aoû à 17:14 | |
| Les scripts recherchés j'en ai quelques-uns maison (limitation de race/classe, henchman)
J'ai un de persistance sur objet d'inventaire indroppable, mais le passer sur bdd Bioware devrait pas poser de problème
Celui sur la traite ou la mort ne sont pas bien compliqués à faire
Je les mets où ? | |
| | | Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Mar 30 Aoû à 17:30 | |
| Ouh.. Ca c'est une nouvelle qu'elle est bonne. Bah si ca t'ennuie pas tu les poste ici, sinon tu me les envoie en pm ? Pour l'histoire des henchmens, c'est un script persistant ?... C'est à dire si on dit à sa victime "reste ici", elle reste jusqu'a ce que le pj vienne la chercher, même s'il y a un reboot du serveur ? Ce qui a l'air de poser probleme aussi, c'est qu'il faudrait que chaque victime n'obeisse qu'a un pj en particulier... Si c'est trop dur, on va devoir se creser l'esprit pour tricher. ^^ | |
| | | kermo Crochemard
Nombre de messages : 47 Pj : Jemima Date d'inscription : 30/08/2005
| Sujet: Re: Scripts et avancement du module.... Mar 30 Aoû à 18:03 | |
| Actuellement il est pas persistant pour les henchs mais on peut le rendre persistant. C'est aussi possible de lier un PJ à une victime, à ce moment tout bêtement ça sera le premier PJ qui la prendra, qui la gardera. Est-ce qu'un PJ peut avoir un hench, lui dire de rester à un endroit et en prendre un autre pendant ce temps ? (parce que ça serait plus compliqué pour le coup) (mon msn est affiché pour éviter de flood le forum sinon) Obliger à être Elfe et Guerrier, Roublard ou Maitre d'ArmesCa dépend un peu de la façon dont le PJ entre sur le module, ce que je trouve le plus simple c'est un déclencheur sous le point de départ du mod, qui s'occupe des trucs à initialiser à l'entrée d'un PJ dans le mod, après un reboot (si il n'y a pas eu de reboot ça ne fait rien du tout). C'est différent d'un script du genre OnClientEnter, car celui-ci est déclenché dès qu'un PJ se connecte, pas seulement quand il s'agit d'un reboot, enfin ça s'adapte vite. A la connexion (dans le déclencheur sus-cité ou dans le OnClientEnter) : - Code:
-
void main() { object oPC = GetEnteringObject();
if(GetXP(oPC) == 1) // premiere connexion d'un PJ { int iPass = TRUE;
// elfe ou pas elfe ? if(GetRacialType(oPC) != RACIAL_TYPE_ELF) { FloatingTextStringOnCreature("Vous devez creer un personnage Elfe", oPC); iPass = FALSE; }
// guerrier ou roub ? int iClass = GetClassByPosition(1, oPC); if(iClass != CLASS_TYPE_ROGUE && iClass != CLASS_TYPE_FIGHTER) { FloatingTextStringOnCreature("Vous devez creer un roublard ou un guerrier", oPC); iPass = FALSE; }
// si tout est bon on donne 40 niveaux if(iPass) { GiveXPToCreature(oPC, 820000); } else { // ce qu'on est cense faire d'un perso non valide : kick, ban, transfo en pingouin, que sais-je }
} } Dans le OnPlayerLevelUp - Code:
-
void main() { object oPC = GetPCLevellingUp();
// niveau du PJ int iLvl = GetHitDice(oPC);
// niveaux des classes acceptees int iLvlOk = GetLevelByClass(CLASS_TYPE_FIGHTER, oPC) + GetLevelByClass(CLASS_TYPE_ROGUE, oPC) + GetLevelByClass(CLASS_TYPE_WEAPON_MASTER, oPC);
if(iLvl != iLvlOk) // il y a d'autres classes { int iXP = GetXP(oPC); // XP actuels int iStopXP = ((iLvl * (iLvl-1))/2 - 1)*1000; // XP pour annuler le niveau SetXP(oPC, iStopXP); // on annule le niveau FloatingTextStringOnCreature("Vous ne pouvez prendre que des niveaux de Guerrier, Roublard ou Maitre d'Armes", oPC, FALSE);
DelayCommand(1., SetXP(oPC, iXP)); // on redonne les XP d'avant } } | |
| | | Qu'un Oe Invité
| Sujet: Re: Scripts et avancement du module.... Mer 31 Aoû à 21:41 | |
| Bonjour, Suite à un post d'Ebene sur jol, je me propose de vous fournir un coup de main pour les scripts dont vous pouvez avoir besoin. J'ai pas mal de temps libre au mois de septembre, et différents mods solos (malheureusement avortés) m'ont donné une certaine expérience en matière de scripts. Je ne m'y connais pas trop en terme de persistance (j'imagine qu'il va falloir que j'aille fouiller les articles sur le Vault et autre pour m'instruire), mais sinon je me débrouille bien pour le reste. Donc voilà, si vous avez besoin de quelque chose en particulier, je suis à votre disposition |
| | | Ebene Rang: Administrateur
Nombre de messages : 322 Pj : Emelle Date d'inscription : 08/08/2005
| Sujet: Re: Scripts et avancement du module.... Mer 31 Aoû à 21:52 | |
| Tu trouvera des sujets de scriptage là où kermo aura posté. ^^ Il est arrivé à peu pres en même temps que toi, en fait juste apres mon post sur jol. Encore une fois, bienvenue
Dernière édition par le Mar 6 Sep à 23:05, édité 1 fois | |
| | | Contenu sponsorisé
| Sujet: Re: Scripts et avancement du module.... | |
| |
| | | | Scripts et avancement du module.... | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |