OK論壇

 找回密碼
 註冊
查看: 1666|回復: 10

有關腳本內使用 bonus 的問題

 關閉 [複製鏈接]
  • TA的每日心情
    慵懶
    2012-9-4 12:51 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    發表於 2012-3-27 21:57:02 | 顯示全部樓層 |閱讀模式
    本帖最後由 s980216 於 2012-3-27 10:20 PM 編輯

    想寫一個腳本

    使用技能時給他一個 bonus   有持續時間  而且有 CD

    持續時間完結時我自己再寫一次 bonus 把之前的刪掉


    測試過知道腳本上的bonus 會輕易被洗掉 (換裝備...升級等等)

    想寫個 while loop 並設條件在持續時間內他換裝備  升級時可以補回 bonus 給他

    理論上那些事件標籤就跟  IF 一樣吧...

    但不幸地問題出現了...應該是loop 裡的 bonus 一直跑...

    以下紅色應該是問題所在

    希望前輩們可以幫個忙指點一下





    OnPCUseSkillEvent: //(有技能發動時自動偵測--全玩家)

    set @Ninjaskill,90000;
    //持續時間

    set @Ninjaskillcd,300000;
    //CD



    if ((@useskill_id == 532) && (@useskill_lv ==10)) {

    bonus bMatk,300;

    bonus bFixedCastRate,-100;

    bonus bCastrate,-50;

    skilleffect 270,0;

    set Nj_bunsinjyutsu,1;


    addtimer @Ninjaskill,"Nj_skillTimer1::OnTimeout";

    set Nj_skillcold,1;

    addtimer @Ninjaskillcd,"Nj_skillTimer2::OnTimeout";


    while (@Ninjaskill != 0)

    {

    OnPCBaseLvUpEvent:

    bonus bMatk,300;

    bonus bFixedCastRate,-100;

    bonus bCastrate,-50;



    OnPCJobLvUpEvent:

    bonus bMatk,300;

    bonus bFixedCastRate,-100;

    bonus bCastrate,-50;


    OnPCStatCalcEvent:

    bonus bMatk,300;

    bonus bFixedCastRate,-100;

    bonus bCastrate,-50;


    OnPCEquipEvent:

    bonus bMatk,300;

    bonus bFixedCastRate,-100;

    bonus bCastrate,-50;


    OnPCUnequipEvent:

    bonus bMatk,300;

    bonus bFixedCastRate,-100;

    bonus bCastrate,-50;

    }






    end;
    -        script        Nj_skillTimer1        -1,{

    OnTimeout:
            skilleffect 289,0;
            bonus bMatk,-300;
            bonus bFixedCastRate,100;
            bonus bCastrate,50;
            set Nj_bunsinjyutsu,0;
            end;        }


    -        script        Nj_skillTimer2        -1,{

    OnTimeout:
            set Nj_skillcold,0;
            end;        }
    回復

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2012-3-27 22:08:40 | 顯示全部樓層
    1.you can't put event labels into the loop.

    2.you can't just make a loop without giving 'break' or other something else
    , cause it will become 'infinity loop'
    and your server will get error.
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-9-4 12:51 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| 發表於 2012-3-27 22:15:58 | 顯示全部樓層
    本帖最後由 s980216 於 2012-3-27 10:17 PM 編輯

    回復 2# goddameit


       1.)明白了..


    2.)@Ninjaskill != 0

    loop的條件

    而上面有設timer

    那應該會有0的時候?
    當timer 變 0 = 持續時間完結 = break

    不是這樣嗎  0.0
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2012-3-27 22:18:32 | 顯示全部樓層
    回復 3# s980216


    I don't know what you done in 'Nj_skillTimer1::OnTimeout' and 'Nj_skillTimer1::OnTimeout'.
    that's all.
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-9-4 12:51 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| 發表於 2012-3-27 22:23:13 | 顯示全部樓層
    回復 4# goddameit


       im so sorry for my carelessness for not quoting the remaining part of my scripts....

    i have now quoted them back hope it helps..
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2012-3-27 22:36:16 | 顯示全部樓層
    回復 5# s980216


    while (@Ninjaskill != 0)

    that means if your @Ninjaskill over or lower than zero, your loop will not be broken.
    now back to see your script again, there is no setting about varying @Ninjaskill,so your @Ninjaskill will always over zero.

    what will happen when
    addtimer @Ninjaskill,"Nj_skillTimer1::OnTimeout";

    or
    addtimer @Ninjaskillcd,"Nj_skillTimer2::OnTimeout";

    go running and stopping? does there will break that loop
    while (@Ninjaskill != 0)

    I don't know. but I think it will still continue.
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-9-6 01:09 AM
  • 簽到天數: 1324 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2012-3-27 22:42:51 | 顯示全部樓層
    autobonus3 <bonus script>,<rate>,<duration>,<skill id>,{<other script>};
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-9-4 12:51 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| 發表於 2012-3-27 22:49:36 | 顯示全部樓層
    本帖最後由 s980216 於 2012-3-27 11:06 PM 編輯

    回復 6# goddameit


      thanks for your kind help
    have got some new idea of how to archive the effect i wanted without using while loop


    will report later if its successful
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-9-4 12:51 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| 發表於 2012-3-27 22:51:38 | 顯示全部樓層
    回復 7# sinya


       這個我一開始也想過..
    但他的條件好像都很獨特



    BF_SHORT
    BF_LONG
    BF_WEAPON

    等等...全都是使用XX 時機率發動 XXXX

    但這些條件可以設定成單一種技能嗎..?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-9-6 01:09 AM
  • 簽到天數: 1324 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2012-3-27 22:53:54 | 顯示全部樓層
    本帖最後由 sinya 於 2012-3-27 10:57 PM 編輯

    回復 9# s980216
    Skill criteria:        
          BF_NORMAL: Trigger on normal attacks        
          BF_SKILL:  Trigger on skills



        不是有個 skill id
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-9-4 12:51 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| 發表於 2012-3-27 22:54:25 | 顯示全部樓層
    本帖最後由 s980216 於 2012-3-27 11:01 PM 編輯

    回復 10# sinya

    BF_skill 也只是使用技能吧

    沒限制獨立一個技能

    不過autobonus3 那....

       .................................................我是智障
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2025-6-30 04:56 PM , Processed in 0.208933 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表