a456456 發表於 2015-12-6 12:10:39

二進位腳本寫法

小弟最近在試著寫官方副本
已經完成90%但有個地方小弟一直不知該如何寫
大約是影片30秒開始,希望有人可以給我一點方向、指點...
謝謝
E4tWgL_nCCg
https://www.youtube.com/watch?v=E4tWgL_nCCg

freero2013 發表於 2015-12-6 15:53:28

o03126 發表於 2015-12-6 16:41:13

本帖最後由 o03126 於 2015-12-6 05:02 PM 編輯

prontera,154,168,5      script      binary      50,{
      .@num = rand(0,255);
      mes "decimal: "+.@num;
      .@ans = 0;
      for(.@i=7;.@i>=0;.@i--){
                .@j = pow(2,.@i);
                if(.@num>=.@j){
                        .@ans += pow(10,.@i);
                        .@num -= pow(2,.@i);
                }
      }
      mes "binary: "+.@ans;
      close;
}想了想還有更方便的        .@num = rand(0,255);
        for(.@i=0;.@i<=7;.@i++)
                .@total+=getd("'ans_"+.@i)<<.@i;
        if(.@total==.@num)

a456456 發表於 2015-12-6 19:47:37

回 2F、3F
謝謝你們的幫忙哦~
我在研究看看。

sinya 發表於 2015-12-7 06:47:42

本帖最後由 sinya 於 2015-12-7 07:34 AM 編輯

這個
return callfunc("itob",(getarg(0)>>1),getarg(1)-1)+(getarg(0)&1);
不是應該這樣嗎
return callfunc("itob",(getarg(0)>>1),getarg(1)-1)+(getarg(0)>>(getarg(1)-1)&1 );


2樓比較好 因為抹去某位元的方法用&比較正確 用減的會有錯
頁: [1]
查看完整版本: 二進位腳本寫法