Esempio n. 1
0
    public override bool StartScript(SkillScriptStartArgument argument)
    {
        creationId  = (uint)argument.argument_0;
        createrAttr = argument.buffCreaterAttr;

        return(true);
    }
Esempio n. 2
0
    public override bool StartScript(SkillScriptStartArgument argument)
    {
        if (argument.argument_1 <= 0)
        {
            return(ErrorHandler.Parse(ErrorCode.ConfigError, "SS_AphoticShield: invalid 2nd argument"));
        }

        switch ((AphoticShieldType)argument.argument_0)
        {
        case AphoticShieldType.PercentageOfCurrentHp:
            capacity = remaining = (int)(argument.argument_1 * mOwner.GetHP() / 100f);
            break;

        case AphoticShieldType.Constant:
            capacity = remaining = argument.argument_1;
            break;

        default:
            return(ErrorHandler.Parse(ErrorCode.ConfigError, "SS_AphoticShield: invalid 1st argument"));
        }

        mOwner.ShowShieldUI(true);
        mOwner.SetShieldUIProgress(1f);
        return(true);
    }
    /// <summary>
    /// 加载该随机事件的触发脚本.
    /// </summary>
    /// <param name="owner"></param>
    public void LoadScript(BattleUnit owner, /*const*/ ref AttackerAttr createrAttr)
    {
        if (randEventResource.triggerScript != SkillScriptDef.Invalid)
        {
            mScript = SkillScriptFactory.Instance.Allocate(randEventResource.triggerScript, owner);

            do
            {
                if (!checkScript(owner, mScript))
                {
                    break;
                }

                SkillScriptStartArgument argument = new SkillScriptStartArgument()
                {
                    buffCreaterAttr = createrAttr,
                    buffRes         = fromBuffRes,
                    argument_0      = randEventResource.triggerArgument_0,
                    argument_1      = randEventResource.triggerArgument_1,
                    argument_2      = randEventResource.triggerArgument_2
                };

                if (!mScript.StartScript(argument))
                {
                    break;
                }

                return;
            } while (false);

            ErrorHandler.Parse(ErrorCode.ConfigError, "加载randevent[" + randEventResource.resID + "]附带的脚本失败");
            mScript = null;
        }
    }
Esempio n. 4
0
    public override bool StartScript(SkillScriptStartArgument argument)
    {
        skillEffectID = (uint)argument.argument_0;
        if (skillEffectID == uint.MaxValue)
        {
            return(ErrorHandler.Parse(ErrorCode.ConfigError, "SS_SkillEffectPlacer: invalid 1st argument"));
        }

        return(true);
    }
Esempio n. 5
0
    public override bool StartScript(SkillScriptStartArgument argument)
    {
        targetSelection = (uint)argument.argument_0;
        if (targetSelection == uint.MaxValue)
        {
            return(ErrorHandler.Parse(ErrorCode.ConfigError, "SS_CorpseExplosion: invalid 1st argument"));
        }

        skillEffect = (uint)argument.argument_1;
        if (skillEffect == uint.MaxValue)
        {
            return(ErrorHandler.Parse(ErrorCode.ConfigError, "SS_CorpseExplosion: invalid 2nd argument"));
        }

        return(true);
    }
Esempio n. 6
0
    public override bool StartScript(SkillScriptStartArgument argument)
    {
        // 显示武器强化的界面.
        if (IsMainPlayerSkillScript)
        {
            buffResID = (uint)argument.buffRes.resID;
            duration  = argument.buffRes.lifeMilliseconds;
            EventSystem.Instance.addEventListener(ResetRandEventDurationEvent.RESET_RAND_EVENT_DURATION, onDurationReset);

            ReloadEvent evt = new ReloadEvent(ReloadEvent.WEAPON_UP_EVENT);
            evt.reload_time = (int)argument.buffRes.lifeMilliseconds;
            EventSystem.Instance.PushEvent(evt);
        }

        return(mOwner is Role);
    }
Esempio n. 7
0
 public override bool StartScript(SkillScriptStartArgument startArg)
 {
     leftCount = (uint)startArg.argument_0;
     return(true);
 }
Esempio n. 8
0
 /// <summary>
 /// 初始化脚本.
 /// </summary>
 /// <returns>是否成功, 如果失败, 脚本永不会触发.</returns>
 public abstract bool StartScript(SkillScriptStartArgument startArg);
Esempio n. 9
0
 public override bool StartScript(SkillScriptStartArgument argument)
 {
     skillEffectID = (uint)argument.argument_0;
     return(true);
 }
Esempio n. 10
0
 public override bool StartScript(SkillScriptStartArgument argument)
 {
     return(true);
 }
Esempio n. 11
0
 public override bool StartScript(SkillScriptStartArgument argument)
 {
     percent = argument.argument_0 / 100f;
     return(true);
 }