OK論壇

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

生活技能(避免重複的變數問題)

 關閉 [複製鏈接]
  • TA的每日心情

    2016-8-15 04:40 PM
  • 簽到天數: 22 天

    連續簽到: 1 天

    [LV.4]偶爾看看III

    發表於 2010-3-7 16:49:49 | 顯示全部樓層 |閱讀模式
    首先我先把部分腳本貼出來:

    //檢查避免重複釣魚
    for ( set @i,0; @i < 128; set @i,@i+1 ) {
      if ( $@Fishger[@i] == getcharid(3) ) {
       mes "已經在進行釣魚作業了!";
       close; } }

    紅色部份我有點看不太懂

    麻煩各位高手指點-ˇ-"感恩
    回復

    使用道具 舉報

  • TA的每日心情

    2011-12-3 09:49 PM
  • 簽到天數: 4 天

    連續簽到: 0 天

    [LV.2]偶爾看看I

    發表於 2010-3-7 17:35:35 | 顯示全部樓層
    本帖最後由 魂哥 於 2010-3-7 05:38 PM 編輯

    for ( set @i,0; @i < 128; set @i,@i+1 )

    上 面 是 指 @i 設 定 為 0 , 然 後 如 果 @i 小 於 128 則 開 始 跑 迴 圈 set @i,@i+1;

    $@Fishger[@i] =  $@Fishger0 ,  $@Fishger1 ,  $@Fishger2 ,  $@Fishger3 ..... 以 此 類 推  

    直 到 $@Fishger128 為 止

    所 以 可 能 你 在 開 始 釣 魚 的 時 候

    會 先 記 錄 getcharid(3) 在 $@Fishger[@i]

    例 如 你 getcharid(3) 第 一 次 開 始 釣 魚 時 是 XXX

    他 就 會 set $@Fishger0,xxx;

    如 果 在 同 時 第 二 人 開 始 釣 魚

    他 就 會 紀 錄 在 set $@Fishger1,xxxx;

    而 跳 過 已 經 記 錄 過 的 $@Fishger0

    -------------------------------------------

    然 後 回 歸 偵 測

    for ( set @i,0; @i < 128; set @i,@i+1 ){內容}

    他 會 跑 128 次 , 在 這 128 個 $@Fishger[@i] 裡 面

    找 是 否 有 相 同 於 第 一 個 getcharid(3) 的 值

    如 果 有 , 就 顯 示 { } 裡 面 的 內 容

    如 果 沒 有 , 就 跳 過 { } 繼 續 執 行





    本 人 最 近 也 才 開 始 研 究 for

    如 果 有 說 錯 幫 忙 糾 正 一 下
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2010-3-7 19:38:57 | 顯示全部樓層
    他會跑128次

    末值是128

    但是迴圈內最大數值為127
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2016-8-15 04:40 PM
  • 簽到天數: 22 天

    連續簽到: 1 天

    [LV.4]偶爾看看III

     樓主| 發表於 2010-3-7 20:26:31 | 顯示全部樓層
    摁-  -好模糊
    但是生活技能腳本使用這種的語法是要???
    避免重複???重複是什麼意思呢?
    為什麼要使用迴圈???((抱歉我問題比較多- -
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2010-3-7 20:34:22 | 顯示全部樓層
    你沒貼全部

    不太知道那是作何使用

    大致應該是把玩家的資料存進陣列

    然後再進行判斷
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2016-8-15 04:40 PM
  • 簽到天數: 22 天

    連續簽到: 1 天

    [LV.4]偶爾看看III

     樓主| 發表於 2010-3-7 20:52:14 | 顯示全部樓層
    amatsu,92,78,4        script        釣魚點#1::FishLoc        844,{

    //檢查配備
            if ( isequipped(2221) == 0 && isequippedcnt(4311) == 0 ) {
                    mes "這裡似乎有釣魚的痕跡....";
                    close;        }

    //檢查避免重複釣魚
            for ( set @i,0; @i < 128; set @i,@i+1 ) {
                    if ( $@Fishger[@i] == getcharid(3) ) {
                            mes "已經在進行釣魚作業了!";
                            close;        }        }

            mes "請問您要進行什麼動作呢?";
            menu "進行釣魚作業",-;
            close2;
            initnpctimer;

    //取得釣魚者座標
            set $@Fishger[$@IsFish],getcharid(3);
            set $@FishName$[$@IsFish],strcharinfo(0);
            getmapxy(@FishMAP$,$@FishLocX[$@IsFish],$@FishLocY[$@IsFish],0,$@FishName$[$@IsFish]);
            set $@IsFish,$@IsFish+1;
            if ( $@IsFish == 128 ) {        set $@IsFish,0;        }
            announce "尋找到礦點,開始釣魚作業!",bc_self;
            end;

    OnTimer3000:

            set .@Fishs,0;
            for( set .@Fish,0; .@Fish < 128; set .@Fish,.@Fish+1 ) {
            getmapxy(.@FishMAP$[.@Fish],.@Fishx[.@Fish],.@Fishy[.@Fish],0,$@FishName$[.@Fish]);
            if ( attachrid($@Fishger[.@Fish]) == 1 ) {

                    //移動位置
                    if ( .@Fishx[.@Fish]!= $@FishLocX[.@Fish] || .@Fishy[.@Fish] != $@FishLocY[.@Fish] ) {
                            announce "移動了位置,停止釣魚作業!",bc_self;
                            set $@Fishger[.@Fish],0;        }

                    //正常釣魚
                    else if ( HP >= 100 && Weight <= MaxWeight/10*9 ) {
                            set HP,HP-100;       
                            callfunc "Fishing";        }

                    //體力不足
                    else if ( HP < 100 ) {
                            announce "體力不足,停止釣魚作業!",bc_self;
                            set $@Fishger[.@Fish],0;        }

                    //負重率不足
                    else {        announce "負重率不足,停止釣魚作業!",bc_self;       
                            set $@Fishger[.@Fish],0;        }        }

                    else { set .@Fishs,.@Fishs+1; }        }

            if ( .@Fishs != 0 ) initnpctimer;
                    else { stopnpctimer; }
                    end;

    OnInit:
            end;        }

    //====================================================//

    amatsu,100,78,4        duplicate(FishLoc)        釣魚點#2        844
    amatsu,108,78,4        duplicate(FishLoc)        釣魚點#3        844
    amatsu,116,78,4        duplicate(FishLoc)        釣魚點#4        844
    amatsu,124,78,4        duplicate(FishLoc)        釣魚點#5        844
    amatsu,132,78,4        duplicate(FishLoc)        釣魚點#6        844
    amatsu,139,78,4        duplicate(FishLoc)        釣魚點#7        844

    //====================================================//

    function        script        Fishing        {

    //漁夫帽[1]增加機率
            if ( isequipped(2221) == 1 ) {
                    switch(rand(10)) {
                            case 0:        getitem 567,1;
                                    break;        }        }
    //果樹龜卡片增加機率
            if ( isequippedcnt(4311) == 1 ) {
                    switch(rand(10)) {
                            case 0:        getitem 567,1;
                                    break;        }        }
            set $@Fishing,rand(1500);
    //海螺
            if ( $@Fishing < 25 ) getitem 961,1;
    //螃蟹外殼
            else if ( $@Fishing >= 25 && $@Fishing <= 300 ) getitem 964,1;
    //蛤蜊外殼
            else if ( $@Fishing >= 301 && $@Fishing <= 502 ) getitem 965,1;
    //烏龜外殼
            else if ( $@Fishing >= 503 && $@Fishing <= 700 ) getitem 967,1;
    //人魚之心
            else if ( $@Fishing >= 701 && $@Fishing <= 800 ) getitem 950,1;
    //人魚之牙
            else if ( $@Fishing >= 801 && $@Fishing <= 900 ) getitem 1053,1;
    //人魚嘴巴
            else if ( $@Fishing >= 901 && $@Fishing <= 1050 ) getitem 1054,1;
    //蝦子
            else if ( $@Fishing >= 1051 && $@Fishing <= 1200 ) getitem 567,1;
    //Divx玩家抽獎券
            else if ( $@Fishing >= 1201 && $@Fishing <= 1210 ) getitem 7852,1;

    //被掉線割傷
            else if ( $@Fishing >= 1211 && $@Fishing <= 1300 ) {
                    set HP,HP-500;
                    announce "被釣線割傷了手指,受到傷害 500 !",bc_self;        }
    //被魚拖倒在地
            else if ( $@Fishing >= 1301 && $@Fishing <= 1400 ) {
                    set HP,HP-900;
                    announce "被快上鉤的魚拖倒在地,受到傷害 900 !",bc_self;        }
    //被魚拖到海裡
            else {        if ( $@Fishing >= 1401 && $@Fishing <= 1500 ) {
                    set HP,HP-2000;
                    announce "被快上鉤的魚拖到海裡,受到傷害 2000 !",bc_self;        }
                    }
            return;
    }

    //====================================================//

    生活技能腳本[釣魚點的地方]
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2010-3-7 21:36:42 | 顯示全部樓層
    $@IsFish?


    反正 大致功能就是判斷角色資料
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2025-7-5 03:40 PM , Processed in 0.097304 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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