OK論壇

 找回密碼
 註冊
查看: 1199|回復: 4

詢問這段程式碼在寫什麼?[需高手解答...]

 關閉 [複製鏈接]

該用戶從未簽到

發表於 2008-5-8 10:55:02 | 顯示全部樓層 |閱讀模式
各位好,我在遊戲測試中碰到一些小問題,在某腳本「密室逃脫」中,有提及到
拿取物品就會出現新增的對話選項,而他有提取到一些函數應用,但是我看不太懂
希望有高手可以替我解釋一下他整段的流程,函數式如下


function script MS_check {
if(getarg(0)==2){
if((countitem(getarg(1))>=1)&&(countitem(getarg(3))>=1)&&(countitem(getarg(4))>=1)){
return getarg(2);
}
}      
if(countitem(getarg(0))>=1){
return getarg(1);
}
return "";
}



而這段則應用在這裡,希望大大也可以幫我解釋一下紅色字體的意思



prt_in.gat,280,140,4 script 一幅畫#01 111,{
mes "[^FF0000"+strcharinfo(0)+"^000000]";
mes "圖畫中有一個威風凜凜的騎士";
mes "騎士身邊有一個美麗的女人";
mes "你需要妹妹的信件1個.紙燈籠1個和擴音器1個才能破解這張畫";
next;
switch(select("查看","離開",callfunc("MS_check",2,7040,"^FF0000打破畫中人^000000",7191,7183))) {
case 1:
mes "[^FF0000"+strcharinfo(0)+"^000000]";
mes "圖畫中有一個威風凜凜的騎士";
mes "騎士身邊有一個美麗的女人";
mes "你需要^FF00003^000000個物品才能破解這張畫";
break;
case 3:
mes "你打破了這張畫.從畫中出來了一個女人";
mes "它告訴了你走出這個密道的方法..";
next;
delitem 7040,1;
delitem 7191,1;
delitem 7183,1;
warp "prontera.gat",111,111;
break;
case 2:
break;
}
close;
}


大致上是這樣,不好意思,如果有傷到高手的眼睛,見諒了@@"
順便附上該腳本

[ 本帖最後由 nonopet2000 於 2008-5-8 10:56 AM 編輯 ]

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
  • TA的每日心情
    慵懶
    2012-6-13 04:41 PM
  • 簽到天數: 9 天

    連續簽到: 0 天

    [LV.3]偶爾看看II

    發表於 2008-5-8 13:47:07 | 顯示全部樓層
    callfunc=呼叫事件。
    MS_check=事件名稱。
    getarg(0)=取得事件名稱後面第一個的字串or數值
    getarg(1)=取得事件名稱後面第二個的字串or數值
    .....
    return=傳回值

    最後一天回覆疑問,往後如有問題請到本人論壇~
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2008-5-8 17:44:13 | 顯示全部樓層
    原帖由 £×SKY﹋° 於 2008-5-8 01:47 PM 發表
    callfunc=呼叫事件。
    MS_check=事件名稱。
    getarg(0)=取得事件名稱後面第一個的字串or數值
    getarg(1)=取得事件名稱後面第二個的字串or數值
    .....
    return=傳回值

    最後一天回覆疑問,往後如有問題請到本人論壇 ...


    不好意思,我還是不太了解,可能是我表達不好吧@@"
    我希望能解釋的意思是,好比說
    if((countitem(getarg(1))>=1)&&(countitem(getarg(3))>=1)&&(countitem(getarg(4))>=1)){
    這行如果可以隻字解說嗎@@?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2014-5-17 12:43 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    發表於 2008-5-11 01:29:48 | 顯示全部樓層
    getarg(數字)...
    這個是取得你
    callfunc "func名","第1個","第2個","第3個","第4個","第5個","第6個","第N個";
    傳遞的數值
    第一個為getarg(0)...以此類推...

    countitem是檢查物品數量...
    所以上面這一句就是...
    第2個,第4個和第5個傳遞過來的物品編號的數量..
    同時大於或等於1
    才執行 { }內的部份...
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2008-5-22 15:49:07 | 顯示全部樓層
    看久了之後,終於理解其中的含意了,謝謝~!!
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2025-1-30 03:53 PM , Processed in 0.058835 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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