许可证
贡献
如果你有能力,你可以向我们的仓库提交 Pull Request 或 Issue。
开发进度
目前 master 是主分支, rwir 分支上正在将进行 rust 重写的工作, 欢迎贡献
lets RWIR!
注:目前
master分支暂不维护,目前Release版本为1.2.10.6处于稳定状态
鸣谢
使用
如果你是 Linux 用户 (Docker)
docker run -d --name vcmp-python -v /path/to/your/server:/app -p 8192:8192 tianxiu2b2t/vcmp-python server
如果你是 Windows 用户
- pip 包安装
pip install vcmp-python-plugin
- 下载对应的 python 版本 dll 文件,或在 pip 包中寻找对应的 dll 文件
- 将 dll 文件放入你的 VCMP 服务器 plugins 文件夹中
- 修改 server.cfg 文件,添加以下内容
plugins vcmp-python-plugin-cpy<py_version>-rel64.dll
pythonscript main.py
- 启动你的服务器
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.post10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vcmp_python_plugin-2.0.0.post10.tar.gz | 19.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vcmp_python_plugin-2.0.0.post10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.0 kB
Release files / vcmp_python_plugin-2.0.0.post10.tar.gz
| Download URL | vcmp_python_plugin-2.0.0.post10.tar.gz |
|---|---|
| Size | 19.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ff974fd99b12fd046c8fd94cd52901910a3dab96a784fda4e2d06996016fffe3
|
|
BLAKE2b-256 checksum How to use checksums |
51f4a698e61bbb6f764003ddd3bc3fa6d5ae029eb337e3dfb548413da4459845
|
| 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.post10-py3-none-any.whl
| Download URL | vcmp_python_plugin-2.0.0.post10-py3-none-any.whl |
|---|---|
| Size | 40.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f05ebda9213083124c7f1bdcc23bfbdb01511d40cd4a7941bbc98ee4380b1e98
|
|
BLAKE2b-256 checksum How to use checksums |
89bda4fae815500602fa3ed76a92c8454785d9c2b4bd0e21013edd3c012d35a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|