Question restriction sort

Répondre
Partager Rechercher
Bonsoir,

Voilà je voudrais savoir comment mettre uniquement les sort arrêt du temps dans la zone ou le joueur ou le monstre le fait et non dans tout le module. Et pas la même occasion comment un MD peut faire pour reboute le serveur ?
Voici le script d'un TimeStop modifié qui n'agit que dans la zone. A toi de le configurer comme tu l'entends.
Code PHP:

//::///////////////////////////////////////////////
//:: Time Stop
//:: altern_TimeStop
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////

#include "x2_inc_spellhook"

void TimeStopAltern(object oCasterfloat fDuration)
{
    
object oArea GetArea(oCaster);
    
object oVictims=GetFirstObjectInArea(oArea);

    
effect ePetrify EffectPetrify();
    
effect eBlind EffectBlindness();
    
effect eDeaf EffectDeaf();
    
effect eDur EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
    
effect eLink EffectLinkEffects(eDur,eDeaf);
    
eLink EffectLinkEffects(eLink,eBlind);
    
eLink EffectLinkEffects(eLink,ePetrify);

    while (
GetIsObjectValid(oVictims))
        {
        if (
GetObjectType(oVictims)==OBJECT_TYPE_CREATURE)
            if(
oVictims!=oCaster)
                
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLink,oVictims,fDuration);
        
oVictims GetNextObjectInArea(oArea);
        }
}

void main()
{
    
//Declare major variables
    
location lTarget GetSpellTargetLocation();
    
effect eVis EffectVisualEffect(VFX_FNF_TIME_STOP);
    
int nDuration d2();
    
//Fire cast spell at event for the specified target
    
SignalEvent(OBJECT_SELFEventSpellCastAt(OBJECT_SELFSPELL_TIME_STOPFALSE));

    
//Apply the VFX impact and effects
    
DelayCommand(0.05TimeStopAltern(OBJECT_SELFRoundsToSeconds(nDuration)));
    
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,eVis,lTarget,RoundsToSeconds(nDuration));

Pour le lancer j'utilise le spell hook. Je te le mets ici (juste la ligne du time stop) :
Code PHP:

/////////////////////////////////
// l7c_spells_hook
// Spell hook de L7C
/////////////////////////////////
#include "x2_inc_switches"

void main()
{
int nSpell GetSpellId();
switch (
nSpell)
    {
    case 
SPELL_TIME_STOP:
    
ExecuteScript("altern_timestop"OBJECT_SELF);
    
SetModuleOverrideSpellScriptFinished();
    break;
    default:
    }
// end switch statement

Sinon tu enregistre le premier script sous le nom du script de time stop de NWN.

Pour rebooter tu utilises cette fonction : void StartNewModule(string sModuleName)
Par contre je conseille de mettre un délai et de prevenir les PJ pour qu'il se deco et ne reco pas dans la seconde afin d'eviter une surcharge pendant le reload.
Non il faut marquer la commande normalement.

À supposer que le fichier correspondant à ton module est "module.mod", la ligne sera :
Code PHP:

StartNewModule("module"); 

Alors encore une question car ça ne marche pas quand je suis MD ou je tape cette phrase ? en parlent tout simplement ?

Je tape StartNewModule("lenomdumodule") mais rien se passe ^^
StartNewModule("lenomdumodule")

Fait toi un objet avec un pouvoir unique sur soi. Dans le script d'effet tu met ces lignes :

Code PHP:

void main()
{
object oPC GetItemActivator();

if(
GetIsDM(oPC))
    {
    
StartNewModule("lenomdumodule");
    }

Répondre

Connectés sur ce fil

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