JeuxOnLineForumsPlusConnectés : 686 (sites) | 1363 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > (Script) Système de Gong amélioré RSS
   
Répondre
Partager Outils Rechercher
Avatar de Damonya
Damonya
Dauphin
 
Avatar de Damonya
 

(Script) Système de Gong amélioré

A placer dans le On Used d'un levier par exemple (gong, objets placables ...)

Code PHP:
//Script Initilal de Mr Coktail , un peu modifie par Damonya
//A Mettre dans le On Used d'un Objet placable (Levier, Gong etc...)
//4 creatures differentes apparaitrons en fonction de votre niveau.
void Summon(string sTaglocation coffin_loc);
int Random(int nMaxInteger);

#include "NW_I0_GENERIC"


void main()
{
        
//Déclaration des Variables
        
int nPosLevel 1;
        
int nLastUsedLevel 0;
        
int x 0;
        
int i 0;

        
Random(5)  ;
        
object oPC;
        
oPC GetLastUsedBy();

        
object oSummonedDefender;
        
location lSpawnPoint GetLocation(OBJECT_SELF);
        
effect eSummon EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
        
effect eDarkGlow EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);


        
//Evaluation du niveau de l'attaquant
        
while(GetLevelByPosition(nPosLevelGetLastUsedBy()) != 0)
        {
                
nLastUsedLevel nLastUsedLevel GetLevelByPosition(nPosLevelGetLastUsedBy());
                
nPosLevel++;
        }

        
//Determine la créature à appeller suivant le niveau du PC
        
if(nLastUsedLevel <=5)
        {
             
ActionDoCommand(Summon("NW_SKELETON"lSpawnPoint));
        }
        else if(
nLastUsedLevel <=10)
        {
             
ActionDoCommand(Summon("NW_SKELWARR01"lSpawnPoint));
        }
        else if(
nLastUsedLevel <=15)
        {
             
ActionDoCommand(Summon("NW_SKELCHIEF"lSpawnPoint));
        }
        else if(
nLastUsedLevel <=20)
        {
             
ActionDoCommand(Summon("NW_GolBone"lSpawnPoint));
        }

        
oSummonedDefender;

        
//Applique l'effet "black light" glow
        
ApplyEffectToObject(DURATION_TYPE_PERMANENTeDarkGlowoSummonedDefender);
        
ApplyEffectToObject(DURATION_TYPE_INSTANTeSummonOBJECT_SELF);
}

void Summon(string sTaglocation lLoc)
{
        
CreateObject(OBJECT_TYPE_CREATUREsTaglLoc);

C'est le système qu'on appele de gong mais, vous aurez 4 créatures différentes en fonction de votre niveau^^

Voila, j'ai testé et normalement ça marche
Lien direct vers le message - Vieux
Drach [asgar]
Roi
 
Pour simplifier tu peux utiliser le GetHitDice pour récupérer le niveau d'un joueur Plus simple pour le code
Lien direct vers le message - Vieux
Avatar de Artémis
Artémis
Reine
 
Avatar de Artémis
 
Petit détail : une déclaration n'est pas une définition
ex :

Code PHP:
// retourne les degats dejà infligés.
int GetCurrentDegats(object oCreature);

int GetCurrentDegats(object oCreature)
{

// Declarations
int nMaxnCurrentnDeg;

// Definitions
nMax GetHitPoints(oCreature);
nCurrent GetCurrentHitPoints(oCreature);
nDeg nMax nCurrent;

return 
nDeg;

(mise à part que les fonctions n'ont pas les noms corrects)
Lien direct vers le message - Vieux
Avatar de Artémis
Artémis
Reine
 
Avatar de Artémis
 
Autre chose : il est plus facile de faire :
Code PHP:
int nL GetLevelByPosition(oPC,1)+GetLevelByPosition(oPC,2)+GetLevelByPosition(oPC,3); 
ou bien, comme l'a dit Drach, GetHitDice(oPC), sauf que je ne suis pas convaincue que ça marche.
Lien direct vers le message - Vieux
Avatar de Damonya
Damonya
Dauphin
 
Avatar de Damonya
 
Arf moi qui était tout fier de présenter un script en partie de moi et qui marche pour une fois^^

Bon bah je vais revoir un peu tout ça alors

Merci pour votre soutient

Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Ton Avatar me fait totalement penser à CTHULU soit disant en passant
Lien direct vers le message - Vieux
Avatar de Damonya
Damonya
Dauphin
 
Avatar de Damonya
 
Pour RAT : Oui Dans sa demeure de R'lyeh la morte, Cthulhu attend en rêvant.
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn


Bon passons cet égarement convulsif et cabalistique

J'ai donc changé un peu le premier script, pour qu'il s'exécute mieux

Code PHP:
//Script Initilal de Mr Coktail , un peu modifie par Damonya
//A Mettre dans le On Used d'un Objet placable (Levier, Gong etc...)
//4 creatures differentes apparaitrons en fonction de votre niveau.
void Summon(string sTaglocation coffin_loc);
int Random(int nMaxInteger);

#include "NW_I0_GENERIC"


void main()
{
         
// Declarations
         
int nPosLevelnLastUsedLevel,  x;
         
object oPC ;
         
object oSummonedDefender ;
         
location lSpawnPoint ;
         
effect eSummon ;
         
effect eDarkGlow ;

         
// Definitions
         
0;
         
Random(5) ;
         
0;
         
nPosLevel 1;
         
nLastUsedLevel 0;
         
oPC GetLastUsedBy();
         
lSpawnPoint GetLocation(OBJECT_SELF);
         
eSummon EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
         
eDarkGlow EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);


        
//Evaluation du niveau de l'attaquant
        
while(GetLevelByPosition(nPosLeveloPC) != 0)
        {
                
nLastUsedLevel nLastUsedLevel GetLevelByPosition(nPosLevelGetLastUsedBy());
                
nPosLevel++;
        }

        
//Determine la créature à appeller suivant le niveau du PC
        
if(nLastUsedLevel <=5)
        {
             
ActionDoCommand(Summon("NW_SKELETON"lSpawnPoint));
        }
        else if(
nLastUsedLevel <=10)
        {
             
ActionDoCommand(Summon("NW_SKELWARR01"lSpawnPoint));
        }
        else if(
nLastUsedLevel <=15)
        {
             
ActionDoCommand(Summon("NW_SKELCHIEF"lSpawnPoint));
        }
        else if(
nLastUsedLevel <=20)
        {
             
ActionDoCommand(Summon("NW_GolBone"lSpawnPoint));
        }

        
oSummonedDefender;

        
//Applique l'effet "black light" glow
        
ApplyEffectToObject(DURATION_TYPE_PERMANENTeDarkGlowoSummonedDefender);
        
ApplyEffectToObject(DURATION_TYPE_INSTANTeSummonOBJECT_SELF);
}

void Summon(string sTaglocation lLoc)
{
        
CreateObject(OBJECT_TYPE_CREATUREsTaglLoc);

Mais j'ai essayé votre méthode pour tester le niveau du joueur, mais j'avoue je calle , notamment sur le while
Faut dire que je ne me considere pas du tout comme scripteur, et je ne suis même pas capable de comprendre entièrement tout mon propre script
Voila ca que ça donne et qui ne compile bien sûr pas, car il manque quelquechose et j'ai pas tout compris

Code PHP:
void Summon(string sTaglocation coffin_loc);
int Random(int nMaxInteger);

#include "NW_I0_GENERIC"


void main()
{
         
// Declarations
         
int nL,  x;
         
object oPC ;
         
object oSummonedDefender ;
         
location lSpawnPoint ;
         
effect eSummon ;
         
effect eDarkGlow ;

         
// Definitions
         
0;
         
Random(5) ;
         
0;
         
nL 0;
         
oPC GetLastUsedBy();
         
lSpawnPoint GetLocation(OBJECT_SELF);
         
eSummon EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD);
         
eDarkGlow EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);


        
//Evaluation du niveau de l'attaquant
        
while(GetLevelByPosition(nLoPC) != 0)
        {
              
nL GetLevelByPosition(oPC,1)+GetLevelByPosition(oPC,2)+GetLevelByPosition(oPC,3);

        }

        
//Determine la créature à appeller suivant le niveau du PC
        
if(nL <=5)
        {
             
ActionDoCommand(Summon("NW_SKELETON"lSpawnPoint));
        }
        else if(
nL <=10)
        {
             
ActionDoCommand(Summon("NW_SKELWARR01"lSpawnPoint));
        }
        else if(
nL <=15)
        {
             
ActionDoCommand(Summon("NW_SKELCHIEF"lSpawnPoint));
        }
        else if(
nL <=20)
        {
             
ActionDoCommand(Summon("NW_GolBone"lSpawnPoint));
        }

        
oSummonedDefender;

        
//Applique l'effet "black light" glow
        
ApplyEffectToObject(DURATION_TYPE_PERMANENTeDarkGlowoSummonedDefender);
        
ApplyEffectToObject(DURATION_TYPE_INSTANTeSummonOBJECT_SELF);
}

void Summon(string sTaglocation lLoc)
{
        
CreateObject(OBJECT_TYPE_CREATUREsTaglLoc);

Me demandez pas pourquoi j'ai mis ça ou ça, j'en sais rien

Une petite correction serait pas de refus. hésitez surtout pas à me dire mes nombreuses erreurs, j'aime bien apprendre

PS : désolé si je repond pas tout de suite car je m'en vais pour la semaine
salut
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
Hola malheureu ! ( )
pas besoin de while ici
le while faisait en fait :

Nb = 0

nPos = 1
if Nb de level dans la classe npos != 0
Nb = Nb + Nb de level dans la classe npos (ici, 1)

nPos = 2
if Nb de level dans la classe npos != 0
Nb = Nb + Nb de level dans la classe npos (ici, 2)

nPos = 3
if Nb de level dans la classe npos != 0
Nb = Nb + Nb de level dans la classe npos (ici, 3)

nPos = 4
Nb de level dans la classe npos == 0 (y a pas de classe4)
on arrête

avec à chaque fois un test pour vérifier que l'on n'entrait pas dans un cas impossible : une classe superieur à 3 ou avec 0 level

ici on te propose de faire direct :

Nb = Nb de level dans la classe 1 + Nb de level dans la classe 2 + Nb de level dans la classe 3


ce qui est quand même plus simple ^_^
donc plus de while

Et y en a des qui disent (enfin, qui disaient avant que je fasse un lonnngggg break) que c plus mieux de directement assigner une valeur aux variables
donc à mon humble avis ca change strictement rien si ce n'est la clarté du truc ^_^ et la recherche du "script of god"

bref, il était très bien ce script, mais comme tu dis vouloir apprendre, des gens de bonne volonté interviennent ^_^ c'est ca qu'est vraiment genial ici ^_^ (enfin, moi je trouve )

rq : c'est quoi le hitdice ?
Lien direct vers le message - Vieux
Avatar de Damonya
Damonya
Dauphin
 
Avatar de Damonya
 
Ah bah voila une explication qu'ellle est bien. C'est dommage je vais pas pouvoir voir ça cette semaine, mais j'ai bien l'attention alors de refaire le script of god comme tu dis. bon je veux personne qui écrivent le code à ma place en attendant mon retour ce WE, maintenant que j'ai compris

*un défis est lancé à moi-même*
Lien direct vers le message - Vieux
Avatar de Damonya
Damonya
Dauphin
 
Avatar de Damonya
 
Arf bon je me suis emballé un peu trop vite. Si le script marche je vais pas m'embarquer dans du onanisme intellectuel. Pis j'ai d'autres chats à fouetter mouer. Bon bah merci quand même pour les explications Reyan, car j'ai compris un peu mieux mon propre script, dont le while d'ailleurs qui était pas de moi.
et Artemis aussi merci pour m'apprendre à faire un script qui est de la gueule.
Voili voila en esperant qu'on va pas me prendre pour un gros faignant. Quoique ....
*va chercher un transat*

ah bah là c'est quand même mieux
Lien direct vers le message - Vieux
Drach [asgar]
Roi
 
la fonction GetHitDice fonctionne tres tres bien pour recup le level d'un PJ ou autre
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > (Script) Système de Gong amélioré
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 21h21.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite