微信扫一扫 分享朋友圈

已有 182 人浏览分享

[服務器教學] 傳說中的尿尿系統重新再現!!滅絕腳本仔!!

[複製鏈接]

區域版主

Rank: 10Rank: 10Rank: 10

184

威望

866

金錢

636

A幣
主題
113
帖子
205
精華
0
綜合社群主題發文量
9
電玩社群主題發文量
10
娛樂社群主題發文量
0
技術社群主題發文量
73
閱讀權限
100
註冊時間
2016-5-17
  • TA的每日心情

    2022-4-29 14:36
  • 簽到天數: 5 天

    連續簽到: 1 天

    [LV.2]偶爾看看I

    t9540513 發表於  2023-1-16 19:45:04 | 顯示全部樓層 | 閱讀模式
    001.png

    尿尿系統相信玩過小馬端的會很懷念,
    在玩家上線時,每分鐘加1點尿意,當累積到指定的數值後,
    玩家可能會直接死亡或被傳送,有點類似測謊機的功用~

    寫法也非常簡單!!讓我一步一步教大家怎麼製作~

    【教學開始】
    首先,請在 MapleCharacter.JAVA 新增方法
    1. public void peeEffects() {
    2.       if (getPee() == WorldConstants.尿尿系統總額時間) {
    3.                 client.getSession().write(MaplePacketCreator.serverNotice(6, "[公告]: " + getName() + " 因為長時間沒尿尿被系統強制送去廁所."));
    4.                 client.getPlayer().dropMessage("你的膀胱爆了,去尿尿會是個好方法.");
    5.                 client.getPlayer().dropMessage("醫生們醫好了你的膀胱,並期待著全面復甦.");
    6.                 client.getPlayer().dropMessage("[醫生]: 下一次, 去尿個尿吧.");
    7.                 client.getPlayer().changeMap(WorldConstants.尿尿系統回傳地圖, 0);
    8.                 setPee(0);
    9.            } else if (getPee() == WorldConstants.尿尿系統總額時間 * 0.9) {
    10.             client.getPlayer().dropMessage("[身體]: 大哥! 我已經很急了! 拜託去一下廁所!");
    11.         } else if (getPee() == WorldConstants.尿尿系統總額時間 * 0.8) {
    12.             client.getPlayer().dropMessage("[身體]: 阿~, 好重的傷害. 快去尿尿吧?");
    13.         } else if (getPee() == WorldConstants.尿尿系統總額時間 * 0.7) {
    14.             client.getPlayer().dropMessage("[身體]: 我開始感覺到尿意了,差不多可以去廁所囉~.");
    15.         } else if (getPee() == WorldConstants.尿尿系統總額時間 * 0.6) {
    16.             client.getPlayer().dropMessage("[身體]: 大約一半的感覺.");
    17.          } else if (getPee() == WorldConstants.尿尿系統總額時間 * 0.5) {
    18.             client.getPlayer().dropMessage("[身體]: 感覺真好! 那一定是你的媽媽.");
    19.          } else if (getPee() == WorldConstants.尿尿系統總額時間 * 0.4) {
    20.             client.getPlayer().dropMessage("[身體]: 你肯定知道如何保持膀胱是空的!");
    21.         }  else if (getPee() == WorldConstants.尿尿系統總額時間 * 0.3) {
    22.             client.getPlayer().dropMessage("[身體]: 感覺良好又乾燥. 目前為止還不錯.");
    23.         }
    24.     }
    複製代碼


    002.png

    紅字 :尿意每累積到什麼數量要做什麼事,此處可自己填數字,例如50。
    綠字 :我這版的尿尿系統設計讓他累積滿後被回傳地圖,這邊可以填寫地圖代碼。

    在同一個JAVA新增

    1. public int getPee() {           
    2.   return pee;
    3.     }
    4.     public void addPee(int time) {
    5.   if(getMapId() == WorldConstants.尿尿系統回傳地圖){
    6.   setPee(0);
    7.  }else{
    8.   int peez = time;
    9.   pee += peez;
    10.   peeEffects();
    11.  }            
    12.     }
    13.     public void setPee(int pee) {
    14.   this.pee = pee;
    15.   peeEffects();
    16.     }
    複製代碼
    這一段 if(getMapId() == WorldConstants.尿尿系統回傳地圖) 是設定在哪一張圖的時候要把尿意歸0


    當然,也可以做指令,指令的部分這邊就不教了,因為每個人端的指令寫法不同。
    但只要知道 setPee() 這個方法可以更新指定尿意。


    接著最重要的,就是要讓他每分鐘紀錄一次,目前我是加在 removeExpirationTask() 這個方法裡面,
    這個方法不曉得各位有沒有,他是端口每分鐘,會去偵測一次玩家身上道具有沒有過期。
    我們只要在這個方法裡面,順便讓他啟動一次 addPee() 這個方法,讓他每分鐘紀錄一次就可以,
    寫法如下:

    003.png

    接下來,可以將數據調用方法讓它顯示在萬能裡面,這邊貼給大家我怎麼寫的

    004.png

    在遊戲中會長這樣

    005.png


    當然,如果會寫JAVA的還可以做很多變化,這邊就給各位自由發揮囉~~
    共收到 0 A幣
    打賞榜
    暫無
    暫無
    暫無
    暫無
    ----
    暫無
    ----
    暫無
    ----
    暫無
    ----

    集團新軍

    Rank: 1

    56

    威望

    159

    金錢

    1

    A幣
    主題
    2
    帖子
    37
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    2
    閱讀權限
    10
    註冊時間
    2021-12-24
  • TA的每日心情
    慵懶
    2022-5-20 01:00
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    小日番 發表於 2023-1-21 11:07:51 | 顯示全部樓層
    謝謝分享,順便問一下,請問這個可以用在CMS079的源碼嗎??

    點評

    這是沒問題的,能通用,只是CMS有些調用的函數應該不同,但功能我想都有。  發表於 2023-1-25 23:36
    您需要登錄後才可以回帖 登錄 | 註冊會員

    本版積分規則

    205

    發文

    866

    金錢

    636

    A幣

    ----------榮譽勳章----------

    熱門推薦
    圖文推薦
    • 聯繫我們

    小黑屋|AICL社群娛樂集團

    GMT+8, 2023-2-2 19:54 , 網路刷新 0.113989 秒 .

    歡迎來到 AICL網路社群

    版權AICL社群所有 2011-2021.

    Total:123 Today:213 Online:322