OK論壇

 找回密碼
 註冊
查看: 1577|回復: 6

腳本編碼問題

 關閉 [複製鏈接]
  • TA的每日心情
    慵懶
    2020-1-3 10:45 PM
  • 簽到天數: 963 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-4-29 10:00:55 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: sear
    問題內容: 腳本問題
    本帖最後由 美美美美美 於 2014-5-2 08:40 AM 編輯

    問題3:
    關於扣除精練值問題
    失敗時精練值扣除1
    如何設置成套用到+10呢?
    eg: +15的裝置每次精練失敗扣1, 最低扣至+10, 不會掉落+9


    答案: failedrefitem2


    神鋁鐳鈣精煉師腳本來源:
    http://okayro.com/thread-178816-1-1.html


    問題1:

    if(@Probability<100 && @refa==1 && countitem(@ritem)>=1)
            {
                    mes "[濃縮精練匠]";
                    mes "您身上有^006400"+getitemname(@ritem)+"^000000,";
                    mes "可幫助您防護裝備避免因為失敗而消失,";
                    if(@refb==1)
                    {
                            mes "^ff0000(但成功或失敗均會扣除物品)^000000";
                    }
                    mes "請問您要使用嗎?";
                    next;
                    switch(select("使用^006400"+getitemname(@ritem)+"^000000","不使用^006400"+getitemname(@ritem)+"^000000"))
                    {
                    case 1:
                    set @ref,1;
                    break;
                    case 2:
                    set @ref,0;
                    break;
                    }
            }
            set zeny,zeny-@ref_zeny;
            delitem @ref_item,@ref_cnum;
            if(@Probability<=rand(100))
            {
                    mes "[濃縮精練匠]";
                    if(@ref==1)
                    {
                            specialeffect2 EF_REPAIRWEAPON;
                            mes "精練失敗了,但因為有^006400"+getitemname(@ritem)+"^000000,";
                            mes "所以物品沒有損壞。";
                            delitem @ritem,1;
                            close;
                    }
                    if(@ref_nofail>=1){
                    if(@Probability*@failper > rand(100)) {
                            failedrefitem2 @part,@ref_fail;
                            mes "可惡啊!";
                            mes "我說過精煉成功的幾率很低的!";
                            mes "不過好在裝備還在。";
    close;
    end;


    出現問題:
    如果身上有數量1的ritem(防爆石), 第1次使用防爆石時, 物品會被扣除delitem @ritem,1  >> 正常
    當第2次精練, 身上沒有ritem(防爆石), mapserver會顯示 [錯誤] 無法刪除1件道具 >> 錯誤
    但在遊戲視窗中仍然會出現
    mes "精練失敗了,但因為有^006400"+getitemname(@ritem)+"^000000,";
    mes "所以物品沒有損壞。";


    而且這個防爆石將可以無限使用直至人物重登

    如何修正?

    已解答: ||是或的意思

    回復

    使用道具 舉報

  • TA的每日心情
    慵懶
    2020-1-3 10:45 PM
  • 簽到天數: 963 天

    連續簽到: 1 天

    [LV.10]以壇為家III

     樓主| 發表於 2014-4-29 10:07:50 | 顯示全部樓層
    本帖最後由 美美美美美 於 2014-5-2 08:40 AM 編輯

    該腳本是付分腳本, 不知可否整段code copy
    問題2:
    if(countitem(@bpitemid[@Type])>=1 || countitem(@bitemid[@Type])>=1 )
    do{


    這句的意思是什麼?

    如果身上有bpitem (高密度鈽鐳) 同時又有 bitem (鈽鐳) 就會使用bitem (鈽鐳) ?

    問題2已解答:
    如果身上有 @bpitemid[@Type] 或 @bitemid[@Type]時執行 xxx


    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2018-1-18 03:10 PM
  • 簽到天數: 189 天

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2014-4-29 10:43:11 | 顯示全部樓層
    美美美美美 發表於 2014-4-29 10:07 AM
    該腳本是付分腳本, 不知可否整段code copy
    問題2:
    if(countitem(@bpitemid[@Type])>=1 || countitem(@bit ...

    ||是或的意思
    另外這個腳本應該使用.@ (npc暫存變數) 而不是 @ (角色暫存變數)
    不知道你無限使用的意思是怎樣.

    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2014-5-18 12:27 PM
  • 簽到天數: 87 天

    連續簽到: 2 天

    [LV.6]常住居民II

    發表於 2014-4-29 10:46:13 | 顯示全部樓層
    美美美美美 發表於 2014-4-29 10:07 AM
    該腳本是付分腳本, 不知可否整段code copy
    問題2:
    if(countitem(@bpitemid[@Type])>=1 || countitem(@bit ...

    沒使用此腳本,只針對問題二幫你解答

    if(countitem(@bpitemid[@Type])>=1 || countitem(@bitemid[@Type])>=1 )
    如果身上有 @bpitemid[@Type] 或 @bitemid[@Type]時執行 xxx
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2020-1-3 10:45 PM
  • 簽到天數: 963 天

    連續簽到: 1 天

    [LV.10]以壇為家III

     樓主| 發表於 2014-4-29 10:58:32 | 顯示全部樓層
    盧卡斯 發表於 2014-4-29 10:43 AM
    ||是或的意思
    另外這個腳本應該使用.@ (npc暫存變數) 而不是 @ (角色暫存變數)
    不知道你無限使用的意思 ...

    無限是指系統無法扣除物品 (因為身上沒有物品)
    卻有使用的效果

    身上沒防爆石  仍然可以防爆
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2020-1-3 10:45 PM
  • 簽到天數: 963 天

    連續簽到: 1 天

    [LV.10]以壇為家III

     樓主| 發表於 2014-4-29 10:59:40 | 顯示全部樓層
    coco0829 發表於 2014-4-29 10:46 AM
    沒使用此腳本,只針對問題二幫你解答

    if(countitem(@bpitemid[@Type])>=1 || countitem(@bitemid[@Typ ...

    明白了~
    已解決問題2
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2016-12-15 11:58 PM
  • 簽到天數: 379 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2014-4-30 07:03:17 | 顯示全部樓層
    問題三:
    if(getequiprefinerycnt(@part)>10) + 失敗 = failedrefitem2
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-8 05:24 PM , Processed in 0.050354 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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