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

Répondre
Partager Rechercher
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
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)
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.
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

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
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 ?
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*
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
Répondre

Connectés sur ce fil

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