t9540513

傳說中的尿尿系統重新再現!!滅絕腳本仔!!

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

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

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

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


002.png

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

在同一個JAVA新增

public int getPee() {           
  return pee;
    }
    public void addPee(int time) {
  if(getMapId() == WorldConstants.尿尿系統回傳地圖){
  setPee(0);
 }else{
  int peez = time;
  pee += peez;
  peeEffects();
 }            
    }
    public void setPee(int pee) {
  this.pee = pee;
  peeEffects();
    }
複製代碼
這一段 if(getMapId() == WorldConstants.尿尿系統回傳地圖) 是設定在哪一張圖的時候要把尿意歸0


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


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

003.png

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

004.png

在遊戲中會長這樣

005.png


當然,如果會寫JAVA的還可以做很多變化,這邊就給各位自由發揮囉~~
瀏覽 3471 回復 2

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

返回頂部