개인 자료란 (JE)

  서버 커뮤니티

Profile 과출 대표칭호 없음

eb911 6bc91614043642afafb744e12d09c140

Profile

커뮤니티 소통 잡담하기

커스텀npc 모드 는 구데기 기술이 아니다.

2024.06.02 조회 수 243 추천 수 0


반갑습니다냥!


제가 최근에 누군가의 부탁으로 경제 서버를 만들고 있다냥. 그런데 지나가는 사람이 커스텀NPC는 쓸모없고 도태되었으며, 플러그인에 비해 스크립트보다 안 좋다고 하더라냥. 그런데 말이다냥, 커스텀NPC가 모드라는 점만 빼면 스크립트보다 안 좋다고 말할 수 없다냥. 기본적으로 스크립트에서 구현 가능한 것 대부분이 구현이 가능하다냥.


몇 가지 예시를 들겠다냥.


1. GUI

대부분 GUI 하면 체스트 GUI를 생각한다냥. 그건 위치 클릭밖에 인식 못 하고, 밑에 인벤토리가 뜨는 문제가 있다냥.


이게 커스텀NPC에서 내가 직접 만든 송금 시스템이다냥. 옆에서 원하는 닉네임을 검색하고 선택한 후 보유 중인 돈을 체크하고 밑에 원하는 금액을 적는 시스템이다냥. GUI 부분에서 모드 제작과 동일할 정도이다냥.


난이도냥? 귀찮으니까 코드 일부 공개하겠다냥.


function gui2(e){

    var gui = e.API.createCustomGui(1, 248, 166, false, e.player);

    gui.setBackgroundTexture("minecraft:textures/gui/demo_background.png");

    var players = e.player.getWorld().getAllPlayers();

    var playersName = [];

    for (var i in players) {

        playersName.push(players[i].getName());

    }

    gui.addScroll(11, 30, 20, 60, 120, playersName);

    gui.addLabel(12, "§0§l돈   :  §0" + e.player.getStoreddata().get("돈"), 110, 25, 1000, 20);

    gui.addLabel(13, "§0§l대금 : ", 110, 55, 1000, 20);

    gui.addTextField(14, 140, 50, 100, 20).setHoverText("원하시는 금액을 입력해주세요");

    gui.addButton(15, "송금", 120, 90, 100, 20);

    e.player.showCustomGui(gui);

}


참고로 우리는 상자 밖에 버튼을 만들 수도 있다냥.


2. 스킬

요즘 스킬에 리소스팩을 쓴다고 들었다냥. 근데 말이다냥, 나는 악어라는 스트리머의 해신 콘텐츠 때 그 기술을 공개했다냥. 1.7.10 버전에서 말이다냥. 워크샵이랑 NPC랑 섞어서 썼다냥. 리소스팩 연동해서 플레이어 스킬로 만들기? 충분히 가능하다냥.


3. 보스

커스텀NPC는 보스에 최적화돼 있지만, 나는 보스 전문이 아니다냥. 그러므로 해외 자료를 가져오겠다냥.

[유튜브 영상](https://www.youtube.com/watch?v=CBvaTzwJ4Gg)을 보고 판단해주기 바란다냥.


4. 다른 기술과 연동

사실 논할 가치도 없다냥. 우리 포켓몬 모드에 직접 연동할 수 있는 코드가 존재할뿐만 아니라, 플러그인과 직접 연동이 가능하고 자바 자체 코드를 가져와서 작업할 수도 있다냥. 실제로 스크립트 플러그인과 연동한 적도 있고, 치지직, 트위치, 디스코드랑도 당연히 연동한 적 있다냥.


5. 그 외

사실 위에 4개는 한국에서 자주 논의된 내용이다냥. 그 외에도 AOS(롤 같은 게임)에서 미니언 시스템 같은 것 구현 가능하고, 커스텀 상점의 단점인 구매 시 바로 인벤에 들어오게 하는 것도 가능하다냥. 그리고 조금 더 배우면 돈 스크립트랑 연동해서 카드 결제 같은 시스템도 구현 가능하다냥.


물론 모드라서 사용자들이 다 다운받아야 들어올 수 있는 불편함은 사실이다냥. 그런데 이거 빼고 커스텀NPC가 구데기라고 생각하면 그냥 말로 "아 구데기잖아요"가 아니라 왜 구데기인지 설명해라냥. 물론 내가 커스텀NPC를 아직 제대로 못 써서 구현 못 하는 게 많다는 건 사실이다냥. 하지만 보통 스크립트에서 구현하는 것 대부분 구현이 가능하다냥. 내가 구현 못할 것 같은 것 다 가져와라냥.


그리고 나는 스크립트가 안 좋다고 커스텀NPC가 좋다는 게 아니라, 커스텀NPC도 생각보다 기능 많고 성능도 좋지만, 모드라서 그리고 한국에 사용자랑 자료가 없어서 안 알려졌다는 사실을 알리고 싶은 것이다냥.

2개의 댓글

구원좌
2024.08.17

nashorn을 혹시 서버열때 서버내 모드에만 넣으면 되나요?

구원좌
2024.08.17
@구원좌

[20:25:40][FINE/customnpcs][noppes.npcs.shared.common.util.LogWriter:73] Sat Aug 17 20:25:40 KST 2024

[20:25:40][FINE/customnpcs][noppes.npcs.controllers.ScriptController:53] Script Engines Available:

[20:25:40][FINE/customnpcs][noppes.npcs.controllers.ScriptController:112] ECMAScript: .js

[20:25:40][SEVERE/customnpcs][noppes.npcs.ScriptPlayerEventHandler:380] java.lang.NoSuchFieldException: classes

at java.base/java.lang.Class.getDeclaredField(Class.java:2642)

at noppes.npcs.ScriptPlayerEventHandler.registerForgeEvents(ScriptPlayerEventHandler.java:319)

at noppes.npcs.CustomNpcs.setup(CustomNpcs.java:250)

at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:248)

at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:240)

at net.minecraftforge.eventbus.EventBus.post(EventBus.java:304)

at net.minecraftforge.eventbus.EventBus.post(EventBus.java:284)

at net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:106)

at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:107)

at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)

at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)

at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)

at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)

at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)

at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)

at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

뉴스 및 창작물
/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

1

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1

/files/thumbnails/348/896/003/262x150.crop.jpg?20241006103035

디도스/봇테러등등을 낚는 방법 4

물귀신

2024-10-06

3

/files/thumbnails/839/895/003/262x150.crop.jpg?20241006021227

SRV레코드는 보안도메인이 아닙니다. [서버오픈시 필독]

물귀신

2024-10-05

4