Skip to main content

Python for VC:MP Server Plugin

GitHub Issues or Pull Requests GitHub Issues or Pull Requests GitHub License GitHub Release GitHub Tag GitHub Repo stars

赞助

许可证

MIT

贡献

如果你有能力,你可以向我们的仓库提交 Pull Request 或 Issue。

开发进度

目前 master 是主分支, rwir 分支上正在将进行 rust 重写的工作, 欢迎贡献

lets RWIR!

注:目前 master 分支暂不维护,目前 Release 版本为 1.2.10.6 处于稳定状态

鸣谢

ysc3839

使用

如果你是 Linux 用户 (Docker)

docker run -d --name vcmp-python -v /path/to/your/server:/app -p 8192:8192 tianxiu2b2t/vcmp-python server

如果你是 Windows 用户

  1. pip 包安装
pip install vcmp-python-plugin
  1. 下载对应的 python 版本 dll 文件,或在 pip 包中寻找对应的 dll 文件
  2. 将 dll 文件放入你的 VCMP 服务器 plugins 文件夹中
  3. 修改 server.cfg 文件,添加以下内容
plugins vcmp-python-plugin-cpy<py_version>-rel64.dll
pythonscript main.py
  1. 启动你的服务器
server.exe

示例脚本

main.py:

import sys
from vcmp import callbacks, run
from vcmp.events.server import ServerInitialiseEvent
from vcmp.events.player import PlayerCommandEvent, PlayerEnterVehicleEvent, PlayerRequestEnterVehicleEvent
from vcmp.callbacks import Matcher
from vcmp.functions import plugin, server, vehicle

from vcmp.instance import get_vehicle_from_id

@callbacks.on()
def server_initialise(event: ServerInitialiseEvent):
    print("Server Loaded")

@callbacks.on()
def _(matcher: Matcher, event: PlayerRequestEnterVehicleEvent):
    matcher.send("You request enter a vehicle.")
    matcher.finish()

@callbacks.on()
def _(matcher: Matcher, event: PlayerEnterVehicleEvent):
    matcher.send("You enter a vehicle.")
    matcher.finish()

@callbacks.on()
def command(matcher: Matcher, event: PlayerCommandEvent):
    cmd = event.cmd.lower()
    text = event.text
    if cmd == "car":
        if not text.isdigit():
            matcher.send("Unable to spawn car. Please enter a valid car id.")
            matcher.finish()

        car_id = int(text)
        player = event.player
        veh = vehicle.create_vehicle(car_id, player.world, player.position, player.angle)
        player.vehicle = veh
        matcher.send(f"Spawned car with id {car_id}.")
        matcher.finish()

    if cmd == "pos":
        player = event.player
        matcher.send(f"Your position is {player.position}.")
        matcher.finish()

    if cmd == "eject":
        player = event.player
        player.vehicle = None

    if cmd == "veh":
        player = event.player
        if not text.isdigit():
            matcher.send("Please enter a valid car index id.")
            matcher.finish()
        
        index = int(text)
        veh = get_vehicle_from_id(index)
        if veh is None:
            matcher.send("Unable to find vehicle.")
            matcher.finish()

        player.vehicle = veh
        matcher.send(f"Teleported to vehicle with index {index}.")
        matcher.finish()

def main():
    #server.set_servername(f"Python Test Server of Python {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}")
    #print(server.get_server_version(), server.get_servername())
    #print(plugin.get_plugins())
    print(f"Server runs on {server.get_server_version()} version")

if __name__ == '__main__':
    #run(main) # 避免阻塞主线程,也可以在主线程调用 (强烈推荐 run(main) )
    print(
        "Python is running by __main__"
    )

Release files for vcmp-python-plugin 2.0.0.post11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vcmp-python-plugin 2.0.0.post11
File Size Uploaded
vcmp_python_plugin-2.0.0.post11.tar.gz 19.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vcmp-python-plugin 2.0.0.post11
File Interpreter ABI Platform
vcmp_python_plugin-2.0.0.post11-py3-none-any.whl Python 3 none any Details

Total release size: 60.0 kB

Release files / vcmp_python_plugin-2.0.0.post11.tar.gz

Download URL vcmp_python_plugin-2.0.0.post11.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
828af8853cf77c5bee9e209134db8884e4e36684cbac23e1b2d1314c3d973bcc
BLAKE2b-256 checksum
How to use checksums
6df0583f7be883a4bd7e48962a588ebed1231bed2397fe3aee3bb3bb8c7d138a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release files / vcmp_python_plugin-2.0.0.post11-py3-none-any.whl

Download URL vcmp_python_plugin-2.0.0.post11-py3-none-any.whl
Size 40.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6267e6b8bfc4aeab1535be4fa8008a575f3577018220d30cdcac850c386450c9
BLAKE2b-256 checksum
How to use checksums
c317f2cb7b4ecfffb48592c094f31c68ac91c23da2e6a01de8c821352eda7aed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release history Release notifications | RSS feed

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.14

2 release files

2.0.13

2 release files

2.0.12

2 release files

2.0.11

2 release files

2.0.10

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

This release

2.0.0.post11 This release

2 release files

2.0.0

2 release files

1.2.10

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page