GithubHelp home page GithubHelp logo

ljzd-pro / deppartprototypehentaiplaymod Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 2.15 MB

Buttplug.io game mod for DeppartPrototype | 适配郊狼 3.0 DG-Lab-V3

License: BSD 3-Clause "New" or "Revised" License

C# 100.00%
buttplug game game-mod unity dg-lab dg-lab-v3 melonloader melonloader-mod modding

deppartprototypehentaiplaymod's Introduction

DeppartPrototype HentaiPlay

About the game DeppartPrototype

Deppart is an indie first-person horror game with shooter elements.
Be very careful, enemies kill you with one hit.
https://n4ba.itch.io/deppart

Feature

  • Buttplug devices will be activated on these situations:
    • Gun shot
    • Jump-scares
    • During battle
    • Player died
    • Game end
  • Mainly use Vibrate command, but you can add other scalar commands
  • Provide an alternative event reporter instead of buttplug (HttpReporter)

Usage

  1. Install MelonLoader:
  2. Download latest release and extract:
  3. Place the Mods directory under the game path.
  4. Install Intiface® Central
  5. Launch Intiface® Central, start the engine server.
  6. Launch the game, connect you Buttplug device to Intiface® Central.
  7. (Optional) Configure the mod preference in UserData\MelonPreferences.cfg under the game path.
  8. Enjoy the game.

For DG-Lab Users

该 Mod 已适配 郊狼 2.0 3.0 即 DG-Lab-V2, V3,但是需要修改 Mod 配置,同时需要使用专门适配的 buttplug 分支。

  • 郊狼 3.0 具体请查看文档:docs/dg-lab-v3.md
  • 郊狼 2.0 由于没有设备可测试,无法给出具体配置参考,但可以参考 3.0 进行配置。

Preference

Some important options:

  • ButtPlugServerUrl
  • ButtPlugActiveVibrateScalar
  • ButtPlugShotVibrateScalar
  • ButtPlugVibrateDuration
  • ButtPlugVibrateCmdIndexList
  • ButtPlugAdditionalScalarList
[HentaiPlay]
# Type of reporter that report events in game (Available: BaseReporter, HttpReporter, ButtPlugReporter)
EventReporterType = "ButtPlugReporter"
# Report URL for HttpReporter
HttpReporterUrl = "http://127.0.0.1:7788/report"
# Time interval for HttpReporter to reporting InGame events
HttpReportInGameInterval = 3000
# Not to report events to Console
DisableEventLog = false
# Websocket URL of ButtPlug server (Intiface Central)
ButtPlugServerUrl = "ws://localhost:12345"
# Set the ButtPlug vibrate scalar when game events active
ButtPlugActiveVibrateScalar = 0.5
# Set the ButtPlug vibrate scalar when gun shot
ButtPlugShotVibrateScalar = 1.0
# Set the ButtPlug vibrate duration when gun shot (Millisecond)
ButtPlugVibrateDuration = 300
# Set the index of ButtPlug vibrate scalar commands, you can set multiple index or empty as default. (e.g. [0,1])
ButtPlugVibrateCmdIndexList = [ ]
# Set the additional ButtPlug scalar commands, which called during vibrate (It will set to 0 after vibrate stop)

[[HentaiPlay.ButtPlugAdditionalScalarList]]
Enable = false
ActuatorType = "Oscillate"
Index = 0
Scalar = 0.5

[[HentaiPlay.ButtPlugAdditionalScalarList]]
Enable = false
ActuatorType = "Inflate"
Index = 0
Scalar = 0.5

About HttpReporter

This is OPTIONAL, you can setup an HTTP server to handle events in the mod instead of using buttplug.

Set the option EventReporterType in UserData\MelonPreferences.cfg to "HttpReporter" if you want to use this.

HttpReporter API

Define in openapi.yaml.

Example implementation for the server of HttpReporter

import datetime
from enum import StrEnum
from typing import Literal

from fastapi import FastAPI
from loguru import logger

app = FastAPI()


class EventNameEnum(StrEnum):
    GameEnter = "GameEnter"
    GameExit = "GameExit"
    InGame = "InGame"
    BulbBroken = "BulbBroken"
    ZombieRun = "ZombieRun"
    EnterLevel1 = "EnterLevel1"
    Level1Zombie = "Level1Zombie"
    EndZombie = "EndZombie"
    PlayerDied = "PlayerDied"
    Shot = "Shot"

@app.get("/report")
async def report(
        event_name: Literal[
            EventNameEnum.GameEnter,
            EventNameEnum.GameExit,
            EventNameEnum.InGame,
            EventNameEnum.BulbBroken,
            EventNameEnum.ZombieRun,
            EventNameEnum.EnterLevel1,
            EventNameEnum.Level1Zombie,
            EventNameEnum.EndZombie,
            EventNameEnum.PlayerDied,
            EventNameEnum.Shot
        ],
        status: Literal["activate", "deactivate"] = None,
        t: datetime.datetime = None
):
    logger.info(f"event_name: {event_name}, "
                f"status: {status}, "
                f"t: {t.astimezone(tz=None)}, "
                f"latency: {datetime.datetime.now(datetime.timezone.utc) - t}")

deppartprototypehentaiplaymod's People

Contributors

ljzd-pro avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.