OK論壇

 找回密碼
 註冊
查看: 1240|回復: 8

道管獎勵發放腳本有誤

 關閉 [複製鏈接]
  • TA的每日心情
    奮斗
    2014-3-23 10:06 AM
  • 簽到天數: 30 天

    連續簽到: 2 天

    [LV.5]常住居民I

    發表於 2013-5-25 09:07:06 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: CS_eA Leopard 3.0.8
    問題內容: 腳本問題
    本帖最後由 燭光 於 2013-5-25 11:09 PM 編輯

    在腳本區下載了vincent800307所發佈的道管腳本
    http://okayro.com/thread-222391-1-1.html

    設定完之後實測發現發放獎勵只會發放我所設定的第一項獎勵,而非從所有設定獎勵中隨機擇一發放
    我稍微解讀了一下,應該是要從這個部分做修改,另外我參考了az830326的隨機教學文章
    http://okayro.com/thread-138357-1-1.html

    也載了其他的道管腳本想進行對照,但是還是看不出個所以然.....
    有試過在第五行的Max_towertype;set .@x,.@x+1改成Max_towertype;set .@x,0;.@x+1
    不過也沒有效....麻煩瞭解這些語法的前輩指點一下,謝謝
    1. prt_are_in,173,81,4        script        物品獎勵人員        758,{

    2.         mes "物品獎勵人員";
    3.         mes "確定要領獎勵嗎?";
    4.         menu "是的",-;
    5.         //判定玩家的隊伍's挑戰難度等等
    6.         for(set .@x,0;.@x<$@Max_towertype;set .@x,.@x+1)
    7.                 if(getcharid(1)== $@toweruse[.@x]){
    8.                         set .@x,.@where;
    9.                         break;
    10.                 }
    11.         if(.@x==$@Max_towertype){
    12.                 mes "系統有誤,請拍下此圖片,連絡GM並留言。謝謝";
    13.                 close;
    14.         }
    15.         //獲取物品事先設定
    16.         set .@toweraward,rand(getarraysize(getd("$@towercash"+getd("$@towerlevel["+.@where+"]")))/2);
    複製代碼
    回復

    使用道具 舉報

  • TA的每日心情
    開心
    2015-3-16 06:27 AM
  • 簽到天數: 421 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2013-5-25 09:36:07 | 顯示全部樓層
    本帖最後由 f003002 於 2013-5-25 09:41 AM 編輯

    發放獎勵的code沒貼出來啊?

    寫了cash的random然後呢?
    --
    還有

    http://goo.gl/NXdqp
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    奮斗
    2014-3-23 10:06 AM
  • 簽到天數: 30 天

    連續簽到: 2 天

    [LV.5]常住居民I

     樓主| 發表於 2013-5-25 09:55:44 | 顯示全部樓層
    f003002 發表於 2013-5-25 09:36 AM
    發放獎勵的code沒貼出來啊?

    寫了rand然後呢?

    您說的CODE是指這個嗎?
    1. //設定獎勵-物品(格式:$@towerreward"n"(n就是你的難度),物品1,數量1,物品2,數量2,..一樣類推..)
    2.         setarray $@towerreward0[0],678,30,607,50,608,100,984,60,985,60,12264,5,12916,1,7135,150,7136,150,12922,1,5171,1;
    3.         setarray $@towerreward1[0],607,200,984,200,985,200,12920,3,12921,3,16770,1,6423,10,2573,1,18570,1,5520,1,5506,1;
    4.         setarray $@towerreward2[0],12246,3,21020,1,21021,1,21022,1,21023,1,21024,1,21025,1,21026,1,21027,1,21028,1,21029,1,21030,1,21031,1;
    複製代碼
    您說的random我也不大懂是什麼意思,在最後一句有出現一個rand的字樣不知道是否相同?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2015-3-16 06:27 AM
  • 簽到天數: 421 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2013-5-25 12:15:21 | 顯示全部樓層
    不是這個,是發放獎勵的code

    你說你看了隨機的用法,那你用在哪?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    奮斗
    2014-3-23 10:06 AM
  • 簽到天數: 30 天

    連續簽到: 2 天

    [LV.5]常住居民I

     樓主| 發表於 2013-5-25 13:07:00 | 顯示全部樓層
    f003002 發表於 2013-5-25 12:15 PM
    不是這個,是發放獎勵的code

    你說你看了隨機的用法,那你用在哪?

    我參考的隨機是這篇
    http://okayro.com/thread-138357-1-1.html

    道管的腳本則是從這載的
    http://okayro.com/thread-222391-1-1.html

    那個道管腳本並非我自寫,只是我在測試後發現它獎勵並沒有隨機發放
    於是爬了一下關於隨機寫法的教學,但是看了之後發現2篇的內容對不上
    實在看不懂於是就發帖求教
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2017-6-9 03:27 AM
  • 簽到天數: 321 天

    連續簽到: 2 天

    [LV.8]以壇為家I

    發表於 2013-5-25 18:08:01 | 顯示全部樓層
    幫你貼 未改過 也是獎勵只能領第一個設定的物品
    1. prt_are_in,173,81,4        script        物品獎勵人員        701,{

    2.         mes "物品獎勵人員";
    3.         mes "確定要領獎勵嗎?";
    4.         menu "是的",-;
    5.         //判定玩家的隊伍's挑戰難度等等
    6.         for(set .@x,0;.@x<$@Max_towertype;set .@x,.@x+1)
    7.                 if(getcharid(1)== $@toweruse[.@x]){
    8.                         set .@x,.@where;
    9.                         break;
    10.                 }
    11.         if(.@x==$@Max_towertype){
    12.                 mes "系統有誤,請拍下此圖片,連絡GM並留言。謝謝";
    13.                 close;
    14.         }
    15.         //獲取物品事先設定
    16.         set .@toweraward,rand(getarraysize(getd("$@towercash"+getd("$@towerlevel["+.@where+"]")))/2);
    17.        
    18.         //說是GM耍賤也好,不想破壞平衡也行,想要更改玩家獲得的物品,就是在這,
    19.         //比方說 7037=優惠券,作者設定,只要選到優惠券就有機率重選..也可以自行做更改
    20.         if(getd("$@towerreward"+getd("$@towerlevel["+.@where+"]")+"["+.@toweraward*2+"]")==7037)
    21.                 if(rand(1))//這裡就設定為1/2的機率了..
    22.                         set .@toweraward,rand(getarraysize(getd("$@towercash"+getd("$@towerlevel["+.@where+"]")))/2);
    23.         getitem getd("$@towerreward"+getd("$@towerlevel["+.@where+"]")+"["+.@toweraward*2+"]"),getd("$@towerreward"+getd("$@towerlevel["+.@where+"]")+"["+(.@toweraward*2+1)+"]");
    24.         setd "$@towerusers" + .@where,getd("$@towerusers" + .@where)-1;
    25.        
    26.         //最後離場的人再把道館初始化
    27.         if(getd("$@towerusers" + .@where)==0){
    28.                 setd "$@towerwarpin["+.@where+"]",0;
    29.                 setd "$@toweruse["+.@where+"]",0;
    30.                 setd "$@towerlevel["+.@where+"]",0;
    31.                 setd "$@towercount_now["+.@where+"]",0;
    32.         }
    33.         close2;
    34.        
    35.         warp "SavePoint",0,0;
    36.         end;
    37.         }

    38. prt_are_in,182,81,4        script        金錢獎勵人員        701,{

    39.         //解說同上..就不多說明了(懶人..)
    40.         mes "金錢獎勵人員";
    41.         mes "確定要領錢嗎?";       
    42.         menu "是的",-;
    43.         for(set .@x,0;.@x<$@Max_towertype;set .@x,.@x+1)
    44.                 if(getcharid(1)== $@toweruse[.@x]){
    45.                         set .@x,.@where;
    46.                         break;
    47.                 }
    48.         if(.@x==$@Max_towertype){
    49.                 mes "系統有誤,請拍下此圖片,連絡GM並留言。謝謝";
    50.                 close;
    51.         }
    52.         set .@toweraward,rand(getd("$@towercash["+getd("$@towerlevel["+(.@where*2+1)+"]")+"]"),getd("$@towercash["+getd("$@towerlevel["+(.@where*2)+"]")+"]"));
    53.         set Zeny,Zeny+.@toweraward;
    54.         dispbottom "獲得 : "+.@toweraward+" Zeny";
    55.         setd "$@towerusers" + .@where,getd("$@towerusers" + .@where)-1;
    56.        
    57.         if(getd("$@towerusers" + .@where)==0){
    58.                 setd "$@towerwarpin["+.@where+"]",0;
    59.                 setd "$@toweruse["+.@where+"]",0;
    60.                 setd "$@towerlevel["+.@where+"]",0;
    61.                 setd "$@towercount_now["+.@where+"]",0;
    62.         }
    63.         close2;       
    64.         warp "SavePoint",0,0;
    65.         end;
    66.         }
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    奮斗
    2014-3-23 10:06 AM
  • 簽到天數: 30 天

    連續簽到: 2 天

    [LV.5]常住居民I

     樓主| 發表於 2013-5-25 21:04:34 | 顯示全部樓層
    bizarre1213 發表於 2013-5-25 06:08 PM
    幫你貼 未改過 也是獎勵只能領第一個設定的物品

    沒錯,原文就是這樣的
    但是再之下的好像是說當選到某樣獎品時則會再重run一遍的指令(那個部分我沒去更動)

    也不知道跟它無法隨機是否有關聯性
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2015-3-16 06:27 AM
  • 簽到天數: 421 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2013-5-25 22:34:11 | 顯示全部樓層
    找到
    1. set .@toweraward,rand(getarraysize(getd("$@towercash"+getd("$@towerlevel["+.@where+"]")))/2);
    複製代碼
    1. set .@toweraward,rand(getarraysize(getd("$@towerreward"+getd("$@towerlevel["+.@where+"]")))/2);
    複製代碼
    共兩處要改

    兩位試試看吧,不行再跟我說,我用眼睛debug的,懶得開來試.....
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    奮斗
    2014-3-23 10:06 AM
  • 簽到天數: 30 天

    連續簽到: 2 天

    [LV.5]常住居民I

     樓主| 發表於 2013-5-25 23:08:55 | 顯示全部樓層
    f003002 發表於 2013-5-25 10:34 PM
    找到改共兩處要改

    兩位試試看吧,不行再跟我說,我用眼睛debug的,懶得開來試.....

    成功了!!
    原來是差在towercash跟towerrewad的差異...

    果然專業的一看就搞定,我自己在那搞了半天一點作用都沒有= =
    實在相當的感謝你!!
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-31 01:24 AM , Processed in 0.052354 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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