-
Notifications
You must be signed in to change notification settings - Fork 25
Home
Mewnojs edited this page May 23, 2023
·
6 revisions
欢迎来到PlantVsZombies.NET Wiki!这里致力于收集一切与植物大战僵尸.NET版相关的信息。
PlantVsZombies.NET是一个移植项目,旨在将面向Windows Phone 7的《植物大战僵尸》放到现代Windows、Linux、Android设备上运行,并基于.NET和XNA/MonoGame生态创建一个易于修改的版本。
下面是一些帮助你使用本项目的教程,也适用于基于此项目发行的版本。
- 启动游戏,使用WebSocket客户端连接
ws://localhost:8080/Py, 也可使用IronPyInteractiveClient_WPF项目作为客户端 - 直接发送Python指令即可
在实现了IronPython支持的版本(目前是Windows-PCDX与Android版)下,启动时会在路径下生成一个./mods文件夹,玩家可以在这个文件夹中放入修改游戏功能的模组脚本。
让我们来看一个例子:
# coding=cp936
""" 豌豆射黄油脚本
作者: 2508
2022/3/12 """
import Lawn,Sexy # 导入游戏命名空间
from LawnMod import MonoModUtils as M # 导入MonoMod相关工具
from Lawn import Board, ProjectileType, Projectile # 导入用到的游戏类
@M.As(Lawn.Board.AddProjectile)
def PeaButterHOOK(orig, self, theX, theY, theRO, theRow, pType):
"""定义一个劫持Lawn.Board.AddProjectile方法的函数,
第一个参数是原函数orig,而第二个参数是实例方法中的实例self"""
if pType == ProjectileType.Pea: # 如果要在场内加入豌豆
pType = ProjectileType.Butter # 将投掷物类型替换成黄油并调用原函数
return orig(self, theX, theY, theRO, theRow, pType)
# 绑定我们定义的劫持方法到原函数
M.On.Lawn.Board.AddProjectile += PeaButterHOOK 关于LawnMod的API请见这里
PlantsVsZombies.NET中的存档文件存储在IsolatedStorageFile.GetUserStoreForApplication()+"/docs/userdata"路径下,包含用户列表、用户信息与Board对象转存。
- 在Android设备中:
/data/data/包名/files/IsolatedStorage/xxxxxxxx.yyy/zzzzzzzz.www/Url.kkkkkkkkkkkk...k/AppFiles/docs/userdata - 在Windows设备中:
C:\Users\用户名\AppData\Local\IsolatedStorage\xxxxxxxx.yyy\zzzzzzzz.www\Url.kkkkkkkkkkkk...k\AppFiles\docs\userdata- 在Windows设备中,不同路径启动的游戏会有不同存档路径,与PC版行为不同,请务必注意
请检查编译指南,这可能是由于你没有正确放置资源文件。
QQ群聊:884792079
Discord Link:discord.gg/uXz6g6Adnm