OK論壇

 找回密碼
 註冊
查看: 4900|回復: 9

[函數] 【 原 創 】時 間 標 籤 應 用 教 學

[複製鏈接]
  • TA的每日心情
    慵懶
    2011-10-25 10:15 PM
  • 簽到天數: 121 天

    連續簽到: 0 天

    [LV.7]常住居民III

    發表於 2008-9-21 00:44:54 | 顯示全部樓層 |閱讀模式
    本帖最後由 哆啦ˇ 於 2009-11-18 07:26 PM 編輯

    一直在搜尋 ok論壇的時間控制腳本 似乎沒有得到好的答案
    經過 超版主 "天殺" 指導過一篇回覆 得到一些啟發

    現在 我將我到處學到的 公佈在這
    大家一起分享 一起研究

    initnpctimer 命令

    初始化NPC計時,執行此命令後,NPC開始從0進行計時。
    initnpctimer [];
    npc名字可以省略,也可以指定。若省略的話指的就是使用此命令的NPC。
    例:initnpctimer "npctimertest";

    進行計時的NPC可以使用OnTimerXXXX:標籤來觸發其他指令。
    XXXX以毫秒為單位。
    例:
    OnTimer30000:
    announce "30秒過去了",0;


    stopnpctimer 命令

    停止NPC計時,指定NPC的計時暫停,但計時數值保持暫停前的時刻。
    stopnpctimer [];
    同樣可用name指定特定的NPC,不指定就是使用該命令的NPC停止計時。


    startnpctimer 命令

    和stopnpctimer相反的作用,指定的NPC從當前的NPC時刻開始計時。
    (注意!不一定是從0開始!和initnpctimer的作用是不一樣的。)
    startnpctimer [];
    同樣可用name指定特定的NPC


    setnpctimer 命令

    設定NPC的計時數值。
    setnpctimer [,]
    例:setnpctimer 20000,"npctimertest";
    設定NPC的當前計時數值為指定的tick值。name省略就是執行該命令的NPC的計時數值被設置。


    getnpctimer 函數

    getnpctimer([,])
    例:mes "當前計時數值為:"+getnpctimer (0,"npctimertest");

    num=0 返回當前的計時數值
    num=1 返回當前的計時狀態(0:停止,1:運行)
    num=2 返回OnTimerXXXX標籤的個數

    希望對大家有助益 如果牽涉到其他先進達人 已發表過
    這裡表示抱歉 並非要故意 重覆發表
    我僅是希望跟我一樣求腳本寫作的人 能有個方向

    評分

    參與人數 1積分 +40 現金 +40 積極性 +40 收起 理由
    goddameit + 40 + 40 + 40 我很贊同

    查看全部評分

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

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2008-9-21 00:47:15 | 顯示全部樓層
    放 上 範 例 會 更 好
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2008-9-21 07:53:56 | 顯示全部樓層

    回覆 1樓的 bn5656 的帖子

    確實
    放上範例可能會比較能夠讓其他會員明白
    另外
    這算共用類的教學嗎?
    還是有分JA或EA類的?
    因為我要歸類到文章整理內
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2011-10-25 10:15 PM
  • 簽到天數: 121 天

    連續簽到: 0 天

    [LV.7]常住居民III

     樓主| 發表於 2008-9-21 09:25:37 | 顯示全部樓層
    原帖由 海神夜 於 2008-9-21 07:53 AM 發表
    確實
    放上範例可能會比較能夠讓其他會員明白
    另外
    這算共用類的教學嗎?
    還是有分JA或EA類的?
    因為我要歸類到文章整理內


    這是 共用類的語法
    我舉一個私服腳本 部份來說明:

    jawaii.gat,245,195,5    script    夏威夷海場ソ人魚管理員    721,{
        mes "[夏威夷海場ソ人魚管理員]";
        mes "你打到魚了嗎?";
        mes "打到魚要賣給我哦";
        mes "我會給你好東西的";
        mes "補充:下線魚會消失的";
        next;
        switch(select("我要打魚","我來賣魚","漁場說明")){
        case 1:
            callfunc "clearfishcount",3;
            if ( @feedfish == 1 ) {
                mes "[夏威夷海場ソ人魚管理員]";
                mes "您不能再餵魚啦";
                close;
            }
            mes "[夏威夷海場ソ人魚管理員]";
            if ( [email=$@countfishingman]$@countfishingman[/email] == 0 ) {
                mes "現在還沒有人在漁場裡養下小魚苗呢";
                mes "你要免費養嗎?";
            }
            else {
                mes "參加人數"[email=+$@countfishingman]+$@countfishingman[/email]+"";
                mes "您要參加打魚嗎";
            }
            switch(select("當然了","我來看看的")){
            case 1:
                if ( [email=$@countfishingman]$@countfishingman[/email] == 0 ) {
                    announce "[夏威夷海場ソ人魚管理員] "+strcharinfo(0)+" 在漁場放進了新的小魚苗,2分鐘後就能打魚了",16;
                    set [email=$@countfishingman,$@countfishingman+1]$@countfishingman,$@countfishingman+1[/email];
                    set @feedfish,1;
                    initnpctimer "fishtimer";
                }

    .................................

    jawaii.gat,0,0,0    script    fishtimer    -1,{
    OnTimer120000:
            if ( [email=$@countfishingman]$@countfishingman[/email] == 1 ) {
                set [email=$@fishsource,1]$@fishsource,1[/email];
            }
            if ( [email=$@countfishingman]$@countfishingman[/email] == 2 ) {
                set [email=$@fishsource,2]$@fishsource,2[/email];
            }
            if ( [email=$@countfishingman]$@countfishingman[/email] == 3 ) {
                set [email=$@fishsource,4]$@fishsource,4[/email];
            }
            if ( [email=$@countfishingman]$@countfishingman[/email] == 4 ) {
                set [email=$@fishsource,4]$@fishsource,4[/email];
            }
            if ( [email=$@countfishingman]$@countfishingman[/email] > 4 ) {
                set [email=$@fishsource,5]$@fishsource,5[/email];
            }
            set [email=$@windblow_fisharea,(rand(3)+1)*10]$@windblow_fisharea,(rand(3)+1)*10[/email];
            if ( [email=$@windblow_fisharea]$@windblow_fisharea[/email] < 10 ) {
                mapannounce "jawaii.gat","[jawaii海場ソ人魚管理員] 今日微風,祝大家玩的高興",1;
            }
            else if ( [email=$@windblow_fisharea]$@windblow_fisharea[/email] < 20 ) {
                mapannounce "jawaii.gat","[jawaii海場ソ人魚管理員] 今日小風,請大家稍微小心",1;
            }
            else
            {
                mapannounce "jawaii.gat","[jawaii海場ソ人魚管理員] 今日大風,請大家格外小心",1;
            }
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer125000:
            callfunc "clearfishcount",2;
            end;
    OnTimer130000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer135000:
            callfunc "clearfishcount",2;
            end;
    OnTimer140000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer145000:
            callfunc "clearfishcount",2;
            end;
    OnTimer150000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer155000:
            callfunc "clearfishcount",2;
            end;
    OnTimer160000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer165000:
            callfunc "clearfishcount",2;
            end;
    OnTimer170000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer175000:
            callfunc "clearfishcount",2;
            end;
    OnTimer180000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer185000:
            callfunc "clearfishcount",2;
            end;
    OnTimer190000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer195000:
            callfunc "clearfishcount",2;
            end;
    OnTimer200000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer205000:
            callfunc "clearfishcount",2;
            end;
    OnTimer210000:
            callfunc "windblow_fisharea";
            callfunc "makefish",1;
            callfunc "makefish",2;
            end;
    OnTimer215000:
            callfunc "windblow_fisharea";
            callfunc "clearfishcount",2;
            set [email=$@countfishingman,0]$@countfishingman,0[/email];
            mapannounce "jawaii.gat","[jawaii海場ソ人魚管理員] 打魚活動結束,現在能從新養殖小魚苗了",1;
            areawarp "jawaii.gat",255,198,280,218,"jawaii.gat",245,195;
            end;
            
    }


    initnpctimer "fishtimer";
    這是開始時間 啟動 "fishtimer";

    fishtimer 是時間npc

    OnTimer120000:
    .
    .
    .

    OnTimer215000:
    是啟動 每段時間去執行 你設定的動作
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2008-9-21 10:46:18 | 顯示全部樓層

    回覆 4樓的 bn5656 的帖子

    原來如此
    那一 一這算共用類的吧!?
    JA、EA皆可?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-4-4 01:32 AM
  • 簽到天數: 17 天

    連續簽到: 1 天

    [LV.4]偶爾看看III

    發表於 2008-10-9 08:15:42 | 顯示全部樓層
    如果時間這個語法 專研學會後,
    製作出來的腳本因該很有趣 也很精采..
    只是我連 廣播小喇叭那個 X分鐘內不可重複發言 還摸不清 ..
    哈哈 這語法真是我致命傷

    謝謝大大分享與解釋
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    難過
    2015-1-11 04:15 PM
  • 簽到天數: 63 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2008-12-6 14:10:00 | 顯示全部樓層
    觀念很重要= =  不動還是要想辦法搞懂Orz
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-4-9 18:41:47 | 顯示全部樓層
    確實
    放上範例可能會比較能夠讓其他會員明白
    另外
    這算共用類的教學嗎?
    還是有分JA或EA類的?
    因為我要歸類到文章整理內
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2016-7-31 03:16 AM
  • 簽到天數: 68 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2009-5-3 09:37:48 | 顯示全部樓層
    寫的粉詳細
    會再來研究的
    謝謝~~~thx

    評分

    參與人數 1積分 -40 現金 -40 積極性 -40 收起 理由
    小剪★ -40 -40 -40 複製文

    查看全部評分

    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-8-17 16:25:28 | 顯示全部樓層
    無論如何,也要謝謝你,相信你打這編字也相當不容易
    謝謝你
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-4-20 09:19 AM , Processed in 0.054808 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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