[ QUESTION ] script xp

Répondre
Partager Rechercher
voila je cherche un script qui empecherais le power lvl .. genre si deux pj son ensemble et qu'ils ce battent ensemble s'il y a plus de 4 lvl de difference le + bas llv ne gagnera rien

et le plus haut lvl le prendra pas plus d'px grace au bas lvl

que cela permettent de vaforiser l'xp en groupe que tout seul ...

voila .... si quelqu'un pouvais me renseigner ou a un script deja pour ca je vous en seraient eternellement reconnaissant
Même chose... Grillé par la fraicheur...

En fait le plus dur est de prévoir le coup du lvl 10 qui va grouper avec un lvl 1 juste pour etre considéré FP inférieur et pouvoir aller tailler du rat tranquillement pour gagner son lvl.

J'ai bien trouvé des trucs sur le vault mais il faut la 1.61 dans tous les cas. Ce qui est bien mais... Pas top.

Si un mathématicien a une formule magique avec des sqrt et des pow dans tous les coins, je veux bien te faire le script kadz_one...
Wooh bien j'espere que quelqu'un va t'aider car un truc comme ca c'est enorme .. lol ca evite de faire la police .. enfin j'suis sur que les gars a bout de nerf vont trouver des parades mais bon ca diminue bien deja ^^

En tout cas c'est gentil de ta part si tu veux bien me faire ca ^^

je sais po scripter ... enfin quand j'aurais bien mapper et reelement fini mon hack j'prendrais le temps pour apprendre ..
mais en attendant ca prend méchamment du temps la creation d'un persistant

Enfin si le mathematitien existes lol qu'il tape trois fois c'est ca ?
Tu crées ton persistant seul, c'est clair que tu vas dans le mur... surtout si tu sais pas scripter.

On vient de finir le notre et on est 5 dessus...

Enfin je te ferais ça si on trouve un matheux...
bon, il faut vérifier si le tueur est en groupe et si oui, parcourir le groupe pour trouver le plus petit niveau et le plus haut et ensuite vérifier qu'il respecte bien la condition des levels ..

enfin, il y a aussi le problème des joueurs qui ne sont pas dans la même zone mais groupés ..
Pas un souci pour le deuxième test, suffit de parcourir le groupe du joueur et de donner des xp qu'à ceux qui sont à moins de 50m et dans la même zone par ex.

Mais je saisis pas bien ton explication pour le lvl 10 et son ami le lvl 1

C'est ptet moi mais j'ai pas tout compris
mais non c mal me connaitre ^^ j'vais pas dans le mur c juste ke j'ai envie de mapper d'une certaine facon et que c'est fort apprecier aupres de ceux a qui je l'ai montrer.

pi j'ai motivé des gens. enfin pour trouver des idées de quetes pour avoir des truc originale .. et d'ailleurs j'en ai mais là c clair faut un scripteur qui ai envie de prendre ses couilles en bandouilleres

Pi tant que ca m'amuse pas decourager ^^

mais en tout cas c'est tres gentils ^^ Mci
lol .. c'est quoi ces femmes fideles .; ca existe ca ??

Bo j'dis ca moi comme ca .; je promet migraine et autre .; c pas beau ca ?

mais en tout ca c'est tres sympa me faire le script pour l'xp si un mathematiciens sorti des abimes des fonctions peut te mettre sur la voie de la reussite.

et puis j'suis sur que ca pourra en interesser des tas
Code PHP:

#include "X0_I0_PARTYWIDE"
#include "NW_I0_GENERIC"
void main{

// à mettre sur le OnDeath des créatures ..

// variable contenant l'ecart de niveau à partir duquel on PL ..
int iGap 4;

//The actual killer
object oKiller=GetLastKiller();

//Loop through until we find one that doesn't have a master

while (GetIsObjectValid(GetMaster(oKiller)))
   {
   
oKiller=GetMaster(oKiller);
   }

//we're now at the top of the hierarchy. Let's check if it
//is a PC
if (!GetIsPC(oKiller)) return;

int iNum GetNumberPartyMembers(oKiller);
if (
iNum 3) return;

int iMax GetCharacterLevel(GetFactionStrongestMember(oKiller));
int iMin GetCharacterLevel(GetFactionWeakestMember(oKiller));

if (
iMax iMin  iGap){
// code en cas de PowerLeveling
}
else{
//code normal
}



Wooo !!! merci milles fois que vos pas soient couverts de rozes tout au long de vos vies

et ui difficile est le chemin vers la sagesses ^^ patient j'ai etais.

grand merci puchiko pour nous mener vers la sagesses ... enfin surtout l'ispece dé counasses fidele ^^

**prend une position de meditation**

encore grand merci

ah lol ^^

*et bien que le plus bas lvl gagne un truc dérisoire genre 10 ou 5% de ce que gagne le haut lvl sur le monstre

( disons que si un lvl 16 et 4 ce groupe pour raison rp et doivent aller a l'autre bout du monde pour x raison c'est plus sympa que le bas lvl gagne une clopinettes mais que cela ne lui soit pas profitable comme au haut lvl )
niv rp ca permet a tout le monde de grouper avec tout le monde quelque soit le lvl

*que l'xp du haut lvl ne soit pas augmenter s'il groupe avec un bas lvl et qu'ils ce battent ensemble dans la meme zone.

et a ceux qui groupe de cette facon pour faire le l'xp plus vite.de strictement rien gagner du moins que cela ne leur soit vraiment pas profitable .. donc aucun interet ^^

voila ma vision des choses est la suivantes

*prenons la situation suivante un haut lvl met ago un monstre classé impossible pour pj ayant ecart >4lvl et que celui là le tue .. il ne recevra rien car il est grouper ( ou alors il gagnera les 5% de ce que recevrais le haut lvl) ; et ce bas au meme endroit avec un trop haut lvl.

*dans le cas d'un gros groupe ( ben on sais jamais ) composé des lvl suivant 4 - 7 -13 -16

s'ils sont tous dans la meme zone pour pl a chaque fois ya moins de 4 lvl entre les pj .. donc dans un cas comme ca prendrais en compte le + haut lvl du groupe .. et tout ceux qui auraient + de 4 lvl d'ecart ..
hop il gagne rien ou alors 5% de ce que gagne le haut lvl
sachant bien sur qu'un bas lvl ne jouerais pas sur l'xp gagner par le haut lvl ..

walla j'espere avoir eté clair ... sinon vous le dites et j'essaye de mieu m'expliquer ^^

---rajout ---

est ce possible de faire .. si un goupe ou tout les pj ont moins de 4 lvl de diff leur accorder une petite hausse d'xp .. pour favoriser un peu le jeu de groupe que solo

walla ma tite vision .. ca permet ainsi a bien des md de plus faire la police sur ca )
est ce qu'il est possible d'empecher les pj de grouper si ils ont plus de X level d'ecart ?

et une petite question, le script que tu propose est à mettre sur le Ondeath si j'ai bien compris, mais est ce que ca ne fait pas lagguer un peu ?
Sur le script Ondeath de chaque créature, rajoutez :
Code PHP:

#include "give_custom_xp"

give_custom_xp(GetLastKiller(), OBJECT_SELF); 
Puis créer un script qui s'appellera give_custom_xp et qui contiendra ça :
Code PHP:

#include "NW_I0_GENERIC"

void give_custom_expobject oKillerobject oDead) {
    if( 
GetLocalIntoDead"AlreadyDyingEXP" ) == )
    return;

    
// Bioware defauts.
    
int nClass GetLevelByClass(CLASS_TYPE_COMMONER);
    
int nAlign GetAlignmentGoodEvil(oDead);
    if(
nClass && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
        
AdjustAlignment(oKillerALIGNMENT_EVIL5);
    
SpeakString("NW_I_AM_DEAD"TALKVOLUME_SILENT_TALK);
    
SpeakString("NW_ATTACK_MY_TARGET"TALKVOLUME_SILENT_TALK);
    if( 
GetSpawnInCondition(NW_FLAG_DEATH_EVENT) )
        
SignalEventoDeadEventUserDefined(1007) );

    
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(oKillerFALSE );
    while( 
GetIsObjectValid(oPJ)){
        if(
GetArea(oKiller) == GetArea(oPJ) &&
           
GetCurrentHitPointsoPJ ) > &&
           
GetDistanceBetweenoKilleroPJ ) < 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(oPJnXP);
            }
        }
        
oPJ GetNextFactionMember(oKillerFALSE);
    }

    
// Pour eviter la redondance du don d'XP.
    
SetLocalIntoDead"AlreadyDyingEXP");

Il n'y a pas de repercution sur le nombre de joueurs dans le groupe mais uniquement sur l'écart de niveau entre le plus haut lvl du groupe et le niveau du joueur courant. Cela favorise ainsi les groupes de niveaux homogènes.

Les familiers et invocations augmentent artificiellement le lvl du joueur de 0.5 chacun

Cette solution est celle qui convient à notre module Ravenloft. Je ne dis pas qu'elle conviendra à tout le monde mais c'est je l'espère une bonne base de départ.
hum, tu tues la créature lorsqu'elle meurt ..
et une créature ne meurt qu'une seule fois, et n'a qu'un seul meurtrier ..

en plus soit il te manque un ExecuteScript soit un include au début dans le bout de code pour le OnDeath ..
euh petite question, cela remplace totalement la dotation standard d'XP de NWN?
Je veux dire par la, la façon standard de donner des XP de NWN lors d'un combat est completement supprime par ce code, ou il faut faire autre chose?

J'ai vu bcq de serveur qui ont modifie la repartition des XP lors d'un combat et sur lesquels du coup a chaque mort d'une creature on voyais 2 lignes de distribution d'XP apparaitre dans la fenetre de gauche :
La premiere ligne qui donnait 0 (ligne standard gere par NWN ou ils ont du s'arranger pour faire en sorte que la valeur d'XP soit tj 0)
La 2nd ligne qui donnait les XP tels que programmé en script

(d'ailleurs je crois avoir vu une question dans le forum du style comment supprimer la 1er des 2 lignes y a environ 1 mois ou 2 )

- En passant il y a un bug dans bcq de ces serveurs c que si toi entant que PJ tu es mort tu touches quand meme des XP mais tu vois qu'une seule ligne
(en tout cas ici dans le code si je comprends bien tu en donnes qu'au PJ du meme groupe dans la meme aire a moins de 50 m du killer et qui sont encore vivant )
Effectivement il faut bien un include sur le script ondeath qui lance le give_custom_xp. Ca me semblait couler de source... Désolé si c'était pas le cas.

Pour les lignes d'xp effectivement j'en ai une à 0 et je sais pas l'enlever
**va ce faire jeter dehors** ... c quoi l'include qui faut rajouter **largé**

et il dois ce placer ou le script ?
et quelqu'un peux traduire les effet .. ^^

ui j'abuse mais fort compliqué pour mon maigre savoir dans ce domaine ^^

En tout cas grand grand grand merci ^^
Citation :
Provient du message de kadz_OnE
**va ce faire jeter dehors** ... c quoi l'include qui faut rajouter **largé**

et il dois ce placer ou le script ?
et quelqu'un peux traduire les effet .. ^^

ui j'abuse mais fort compliqué pour mon maigre savoir dans ce domaine ^^

En tout cas grand grand grand merci ^^
J'ai edité mon message pour l'include.

Le deuxième script ne se place nulle part. Tu le crées, c'est tout.

Pour les commentaires je te laisse regarder mes commentaires, j'ai essayé d'être le plus clair possible.
Répondre

Connectés sur ce fil

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