哆啦ˇ 發表於 2009-8-19 10:03:59

【 原 創 】最基本函數細解

mes " 內容 ";

mes "abc";
mes "cba";
mes "^ff0000這是顏色^000000";
在與NPC對話窗口顯示文字

next;

next;
在與NPC對話窗口出現下一步

close; & close2;

close;
在與NPC對話窗口出現關閉 , 並結束腳本運行

mes "第一次出現";
close;       ← 因此出現關閉後
mes "第二次出現"; ← 就不會再出現此對話
close2;
在與NPC對話窗口出現關閉 , 並不會結束腳本運行
mes "第一次出現";
close2;       ← 因此出現關閉後
mes "第二次出現";  ← 就會再出現此對話
若不懂 , 可以複製到腳本裡面運行看看
end;

end;
這個指令與close差不多..
不過如果沒有出現對話框..就使用end結束腳本運行
set 變數名,數值;

set相當的實用!!是個必學的函數..
『連結』 ←有詳細的教學
goto 標籤;

goto pong;
事實上..goto是配合標籤使用比如說..
lv1:
mes "第一頁";
close;
lv2:
mes "第二頁";
close;
abc:
set .@p,1;
end;
以上紅色部分是我自行製作的標籤
而標籤後面就像是,,書本~每一頁有每一頁的內容
而標簽名子可以隨便取 (不能含有中文) ,
但要注意!!標籤不能重複
而怎麼跳轉到該標籤呢!?
就要使用goto!!
例如..我要跳到lv1就打
goto lv1;
我要到abc就打
goto abc;
menu "選項一",標籤一,"選項二",標籤二,"選項三",標籤三;

menu "選項一",a,"選項二",b,"選項三",c;
a:
mes "你選擇了選項一";
close;
b:
mes "你選擇了選項二";
close;
c:
mes "你選擇了選項三";
close;
他是創造一個選項 , 讓玩家選擇

當然也可創造出這樣的選單

要怎麼辦到呢!?
其實很簡單
menu "^00FF00依斯魯得 ^FF0000【 " + getmapusers("pvp_y_2-2") + " /  40 】",a,   ←或許您有疑問為什麼我分成好幾段呢!?
         "^E8CCFF生死羅盤 ^FF0000【 " + getmapusers("pvp_n_2-5") + " /  40 】",b,  ←不會影響腳本運行嘛!?
         "^FFEE99死鬥場地 ^FF0000【 " + getmapusers("job_sage") + " /   40 】",c,  ←當然是不會囉︿︿
         "^9F88FF禁白劍村 ^FF0000【 " + getmapusers("pvp_y_1-2") + " /  40 】",d;  ←這樣可以方便閱讀腳本 , 修改~只要中間不中斷就可以了
引用上面 :
"^9F88FF禁白劍村 ^FF0000
那個亂碼是什麼!?~沒學過的人會認為是亂碼
不過他是顏色代碼!!難道顏色代碼要背起來!?
不用~我提供一個網址 , 可以自行調配顏色
『連結』  ←它支援215個顏色
【 " + getmapusers("pvp_y_1-2") + " /  40 】   ←      至於這個是什麼!?往後會教學
select

此功能是一個方便的替代menu的一個函數 ,
如果你不想要一個複雜的標籤結構 ,例如 :a:b:c:d:e:f:g:h:一堆標籤的話..可以使用 select 來化減選項
例如 :    if (select("Yes:No")==1) mes "你選擇了yes";也可以出現像這個怎麼辦到!?其實方法差不多switch(select("^00FF00依斯魯得 ^FF0000【 " + getmapusers("pvp_y_2-2") + " /  40 】",
                   "^E8CCFF生死羅盤 ^FF0000【 " + getmapusers("pvp_n_2-5") + " /   40 】",
                   "^FFEE99死鬥場地 ^FF0000【 " + getmapusers("job_sage") + " /    40   】",
                   "^9F88FF禁白劍村 ^FF0000【 " + getmapusers("pvp_y_1-2") + " /  40 】") ) {
case 1:
       warp "pvp_y_2-2",0,0;            close;
case 2:
       warp "pvp_n_2-5.gat",0,0;       close;
case 3:
       warp "job_sage",49,165;          close;
case 4:
       warp "pvp_y_1-2",0,0;            close;
}
input 變數;

他是創造一個框框給玩家輸入


一樣是Input
為什麼創造出來的輸入框不一樣!?
在於..變數
input 變數; 他是將你輸入的內容存入變數中
input .@p$← 因為這個是文字變數
input .@p; ← 這個是數字變數
rand(數值1,數值2)

rand(數值1,數值2)←隨機產生 數值1∼數值2之間 的數值
rand(數值)   ←隨機產生 0 ∼ 數值 之間 的數值
warp "地圖",X座標,Y座標;

座標怎麼抓呢!? 先找到你想要目的地
然後打 /where

就會出現
不知名區域(prt_fild08) : 174, 349
不知名區域← 不重要 (別管他)
prt_fild08← 地圖名稱
174    ← X座標
349    ← Y座標
所以要填 warp "prt_fild08",174,349;
傳送與NPC交談的那個人到此座標
areawarp "地圖1",X1,Y1,X2,Y2,"地圖2",X3,Y3;

上面是與NPC對話的人傳送
這個是範圍傳送
座標怎麼抓呢!? 先找到範圍 與 目的地 抓座標
然後打 /where
x1,y1座標

x2,y2座標

所以 範圍的座標為
areawarp "prt_fild08",187,333,192,327,"地圖2",X3,Y3;

(紅色框框部份)
然後我覺得這個地方不錯看~
於是取得 最後的
X3 , Y3

所以最後的結果為
areawarp "prt_fild08",187,333,192,327,"gef_fild07",187,245;
不管紅色框框範圍內有幾個人~全部傳送到 gef_fild07,187,245
warpparty "地圖",X,Y,組隊名稱;

這個跟上面差不多~所以不再多說了
他這個函數是傳送隊伍到某某座標
一般來說~都是這樣用 warpparty "地圖",X,Y,getcharid(1);
為什麼這樣用!?因為 getcharid(1) 是取得與NPC交談的玩家隊伍名稱
warpchar "地圖",X,Y,玩家的CID;

這個是傳送 某個玩家到某個座標
取得玩家的CID是用 getcharid(0) 可是不會有人這樣子用
warpchar "地圖",X,Y,getcharid(0); ←為什麼不會這樣用!?
因為 getcharid(0) 是取得與NPC交談的那名玩家CID
所以是傳送該玩家~既然這樣直接弄warp就好了呀~
根本不需要那麼麻煩~
頁: [1]
查看完整版本: 【 原 創 】最基本函數細解