[ QUESTION ] script xp

Répondre
Partager Rechercher
question resources ca .. j'sais pas .. mais niveau rp c'est bien mieu ^^ ca empeche les joueur non fair play de profiter de certaines faiblaisses de never tout en permettant n'importe qui de jouer avec n'importe qui et cela quelque soit le lvl ... !

imagine pour le rp un maitre veux entrainer son eleve .. et ils peuvent pas grouper .. ou ce balader a travers un module car un script empeche ca .. pour ma part je trouverais ca domage
je sais oui mais qui les empeche de se suivre sans grouper, meme si c'est une réponse bateau. Je ne sais pas trop j'hesite, enfin de toute facon je sais pas comment empecher le groupement donc ..
Citation :
je sais oui mais qui les empeche de se suivre sans grouper
ca sert a quoi un script qui les empechent de ce grouper alors ?

un groupage autoriser pour n'importe quel lvl .. avec une balance tel d'xp permettra d'une - pour les md d'arreter de faire la police aux pl ( vus que ce grouper a un bas lvl ne sera plus profitable )
et de deux niv Rp de laisser les joueurs faire ce qu'ils veulent
Citation :
Provient du message de flyingman
Pour les lignes d'xp effectivement j'en ai une à 0 et je sais pas l'enlever
Si quelqu'un a une solution (sans hakpak) pour ça, je suis preneur...
Pour ceux qui utilise mon script, je conseille de mettre nBase à 8 pour être plus raisonnable niveau gain d'XP. A 6, c'est un peu léger...
Terence, je t'invites à aller lire les regles de "bon usage dans les forums" dans le post persistant un peu plus haut:

Ce post ci n'est pas un thread pour que toi ou n'importe qui demande un script, mais un post où on parle d'un script pour les XP et UNIQUEMENT de cela. Tu aurais du te créer un thread à part
voila en farfouillant sur vault j'ai vus un script pour de l'xp custom et ils ont reussi a cacher la premiere ligne indiquant 0xp

j'ai pas tester et je sais pas ce que le script en lui meme change ..

voila tu pourra y apporter les modification du coup

c'est
A L'AIIIIDE PITIIIIE ! *va se flinguer*
Bonjour à tous,


Voila je suis en train de créer mon module et gros problème au niveau de l'attribution d'XP ! ! Ca me gonfle, même si je débute en scripting !

Citation :
Provient du message de flyingman
Pour ceux qui utilise mon script, je conseille de mettre nBase à 8 pour être plus raisonnable niveau gain d'XP. A 6, c'est un peu léger...

Flyingman. J'utilise ton script et quand je teste, rien à faire. J'ai toujours l'attribution par défaut de NWN. Pourrais-tu ou quelqu'un d'autre me filer un coup de main, s'il vous plait ? Je pète un plomb.

D'avance je vous remercie pour l'aide que vous apporterez.


Voici ce que j'ai fait :

Code:
#include "x2_inc_compon"
#include "x0_i0_spawncond"
#include "NW_I0_GENERIC"
#include "sc_xp"

void main()
{
    // script par défaut de bioware 
    if( GetLocalInt(OBJECT_SELF, "AlreadyDyingEXP") == 1 )
    return;

    int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
    int nAlign = GetAlignmentGoodEvil(OBJECT_SELF);
    object oKiller = GetLastKiller();

    // If we're a good/neutral commoner,
    // adjust the killer's alignment evil
    if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
    {
        AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
    }

    // Call to allies to let them know we're dead
    SpeakString("NW_I_AM_DEAD", TALKVOLUME_SILENT_TALK);

    //Shout Attack my target, only works with the On Spawn In setup
    SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);

    // NOTE: the OnDeath user-defined event does not
    // trigger reliably and should probably be removed
    if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(1007));
    }

    craft_drop_items(oKiller);

    // Fin du script bioware

    // Appel de la fonction de Flyingman
    sc_xp(GetLastKiller(), OBJECT_SELF);
}
SC_XP (script de Flyingman) :

Code:
void sc_xp(object oKiller, object oDead)
{
    float fHDDead = IntToFloat(GetHitDice(oDead));
    float fHDHigher = IntToFloat(GetHitDice (GetFactionStrongestMember(oKiller)));
    float fBase = 6.0f; //Augmenter pour augmenter les px donnes et inversement
    int nXP;

    object oPJ = GetFirstFactionMember(oKiller, FALSE);
    while(GetIsObjectValid(oPJ))
    {
        if(GetArea(oKiller) == GetArea(oPJ) && GetCurrentHitPoints(oPJ) > 0 && GetDistanceBetween(oKiller, oPJ) < 50.0f)
        {
            string sSubRace = GetStringLowerCase(GetSubRace(oPJ));
            float fHDPJ = IntToFloat(GetHitDice(oPJ));

            //Augmentation nHDPJ pour sous-races
            if (sSubRace == "drow" || sSubRace == "duergar")
            {
                fHDPJ=fHDPJ+1.0f; //ECL +1
            }
            else if (sSubRace == "svirfneblin")
            {
                fHDPJ=fHDPJ+2.0f; //ECL +2
            }

            //Augmentation nHDPJ pour Familiers et invoc
            if (GetFamiliarCreatureType(oPJ)!= FAMILIAR_CREATURE_TYPE_NONE)
            {
                fHDPJ=fHDPJ+0.5f; //ECL +0.5
            }
            if (GetAnimalCompanionCreatureType(oPJ)!= ANIMAL_COMPANION_CREATURE_TYPE_NONE)
            {
                fHDPJ=fHDPJ+0.5f; //ECL +0.5
            }

            //Calcul XP
            if (fHDDead >= fHDPJ)
            {
                //Niveau monstre superieur ou egal a celui du joueur
                nXP = FloatToInt(fBase + (3 * (fHDDead - fHDPJ)));
            }
            else
            {
                //Niveau monstre inferieur a celui du joueur
                nXP = FloatToInt(fBase + (2 * (fHDDead - fHDPJ)));
            }

            //Alignement pour grosse difference dans groupe
            float fAlignGroupe = fHDHigher - fHDPJ;
            nXP = nXP - FloatToInt(1.5 * fAlignGroupe);

            //Empecher XP negatif
            if (nXP < 0)
            {
                nXP = 0;
            }

            //Don d'xp
            if (GetIsPC(oPJ) == TRUE)
            {
                GiveXPToCreature(oPJ, nXP);
            }
        }
        oPJ = GetNextFactionMember(oKiller, FALSE);
    }

    // Pour eviter la redondance du don d'XP.
    SetLocalInt(oDead, "AlreadyDyingEXP", 1);
}
Voila, tout ce compile sans erreur, mais rien n'y fait. J'ai toujours ces foutus attributions par défaut.

A+ de vous lire
Talking
Content de lire Flyingman !!!
Citation :
Provient du message de flyingman
Tu peux être un peu plus précis stp?

As-tu déjà mis l'échelle d'xp de nwn à 0? Si oui, que recois-tu après un kill...

D'abord un grand merci pour ta réactivité. Vraiment sympa

Je n'ai rien fait d'autre que de modifié le OnDeath de ma créature. Je n'ai pas essayé de mettre à 0 l'échelle d'xp de nwn.

Quelle est la marche à suivre s'il te plait ? D'avance merci.



a++
Re: Content de lire Flyingman !!!
Citation :
Provient du message de Lung
Je n'ai rien fait d'autre que de modifié le OnDeath de ma créature. Je n'ai pas essayé de mettre à 0 l'échelle d'xp de nwn.
En lisant ça, j'ai peur pour toi...Tu veux utiliser le systême de flyingman juste pour une créature ou tu vas l'utiliser pour toutes?

Parce qu'en fait, il est prévu pour toutes les créatures sans exceptions...

Pour ce qui est de réduire l'echelle d'XP à 0, il faut aller voir dans les propriétés du module. Je peux pas être plus precis vu que je n'ai pas NWN ici
Merci Fanley... Tu as tout dit.

L'echelle de XP du module DOIT être à 0 et ce système est valable pour TOUS les monstres. Tu ne peux pas faire de compromis...

Dis moi quoi dès que tu es fixé sur ce que tu veux faire...

Et merci Fanley
oups correction
vi vi, c'est bien pour toutes mes créatures.

Je vais tester ce que vous m'avez conseillé. Merci pour votre aide à tout les deux.


+++++++++
Talking
Ca marche nikel !!!
Voila j'ai testé et ça marche nikel !!!

L'échelle XP de nwn n'était pas à 0 effectivement.

Merci pour le partage d'informations, vous êtes super !



a+++++

*retourne bosser*
Petite question!
Euh je créer mon module et j'aimerai quelque petit conseil en matiere de repartition d'xp.J'hesite encor entre la repartition équitable des point ou une repartition que j'apelerai plus rp ou celui qui tu le monstre gagne plus d'xp,bref je suis indecis, en plus je debute vraiment en matiere de script donc la galére.Que me conseillez vous ?
Je vais te donner deux exemples particuliers:

- Deux persos sont en face d'un monstre. Un attend sur le coté pendant que l'autre combat. Finalement, alors que le monstre est mourant, celui qui était en arrière s'avance et acheve le monstre. Merite-t-il vraiment plus l'XP que son partenaire?

- Deux persos sont face à un monstre. L'un est guerisseur et protege l'autre (qui est combattant). Seul, le combattant serait mort parce qu'il aurit pris plus de dommages et que les soins lui ont sauvé la vie. Le guerisseur ne merite-t-il pas sa part dans cette victoire?

En fait, mon conseil, vu que tu comences dans les scripts, c'est de prendre le systême par défaut de Bioware (quitte à en changer quand tu seras plus à l'aise avec ça).
Répondre

Connectés sur ce fil

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