- UID
- 9904
- 閱讀權限
- 10
- 主題
- 5
- 帖子
- 30
- 精華
- 0
- A幣
- 998
- 在線時間
- 93 小時
- 最後登錄
- 2023-12-9
集團新軍
- 主題
- 5
- 帖子
- 30
- 精華
- 0
- 綜合社群主題發文量
- 10
- 電玩社群主題發文量
- 0
- 娛樂社群主題發文量
- 0
- 技術社群主題發文量
- 0
- 閱讀權限
- 10
- 註冊時間
- 2017-4-2
TA的每日心情 | 衰 2021-8-16 01:14 |
---|
簽到天數: 68 天 連續簽到: 1 天 [LV.6]常住居民II
|
回復 2# 恆恆恆
不太清楚您的問題所在 方便的話 請po出程式碼
那我在這裡還是解釋一下端內讀取js常見的方法
------------------------------------------------------------
相信在你編寫js 很常看見兩個函數和一個全域變數分別是
- function action(mode, type, selection) {
- }
複製代碼 ------------------------------------------------------------
三個扮演的角色:
注意: start 與 action 的函數名稱 並不是亂取的 而是根據端口讀取方式而命名的
status 可以想成目前執行動作到幾個的指標
start() 為端口執行NPC時所執行的第一個函數 (注意這函數只在開啟NPC時執行)
action() 為整體NPC的主體
------------------------------------------------------------
常見的start內的程式碼
status = -1; 做一個指標的初始化動作
action(1, 0 ,0); 呼叫 action函數 mode = 1
------------------------------------------------------------
action 常見的做法
這裡的作用就是讓status 可以記錄我們所執行到哪個步驟
所以 當 start 去呼叫了 action(1(mode),0(type),0(selection));
mode == 1 原本的 status 是-1 在經過這裡後 會變成 0
才會有接下來的- if(status == 0){
- cm.sendSimple("#L1#哈囉");
- }
複製代碼 接下來當我選擇 哈囉這個選項時 因為端口內的 NpcTalk封包執行完後 會在呼叫一次action()這個函數
題外話:這時的mode 數值 是根據 端內 從客戶端接收到的 Byte 而做決定的
所以我們假設 當我選擇了 哈囉 action的mode值理所當然會帶入1 而 selection 會帶入 1 (這裡關鍵是#L數字#) 數字所帶的值 selection 就帶入什麼值
當我mode = 1 時就像我們上面所說的了 status 就會變成1
程式碼就可以變成這樣- if(status ==0){
- cm.sendSimple("#L1#哈囉");
- }else if(status == 1){
- switch(selection){
- case 1:
- cm.sendOk("你好呀");
- break;
- }
- cm.dispose();
- }
複製代碼
|
評分
-
查看全部評分
|