Server Examples
下面的所有代码都需要在 server_scripts
目录下才能工作。
事件具体的类型可以参考 types/TaCZServerEvents.d.ts
。
下面的代码使用 CC0 1.0 授权,你可以随意使用它们。
修改枪械/配件定义
js
// 与 `TaCZStartupEvents.gunIndexLoad` 功能一致, 但优先级更高
TaCZServerEvents.gunIndexLoad((event) => {
const id = event.getId().toString();
// 修改 p90 的枪械类型为 `rifle`(步枪)
if (id === "tacz:p90") {
const json = JSON.parse(event.getStdJson());
json.type = "rifle";
return event.setJson(JSON.stringify(json));
}
// 删除 黄金沙漠之鹰
if (id === "tacz:deagle_golden") {
return event.removeGun();
}
});
// 与 `TaCZStartupEvents.ammoIndexLoad` 功能一致, 但优先级更高
TaCZServerEvents.ammoIndexLoad((event) => {
const id = event.getId().toString();
// 修改 火箭弹 的堆叠数量为 33
if (id === "tacz:rpg_rocket") {
const json = JSON.parse(event.getStdJson());
json.stack_size = 33;
return event.setJson(JSON.stringify(json));
}
});
// 与 `TaCZStartupEvents.attachmentIndexLoad` 功能一致, 但优先级更高
TaCZServerEvents.attachmentIndexLoad((event) => {
const id = event.getId().toString();
// 删除 狙击弹药扩容弹匣3
if (id === "tacz:sniper_extended_mag_3") {
return event.removeAttachment();
}
});
修改枪械/配件数据
js
// 与 `TaCZStartupEvents.gunDataLoad` 功能一致, 但优先级更高
TaCZServerEvents.gunDataLoad((event) => {
const id = event.getId().toString();
// 修改 p90 的弹药数量为 123
if (id === "tacz:p90_data") {
const json = JSON.parse(event.getStdJson());
json.ammo_amount = 123;
return event.setJson(JSON.stringify(json));
}
// 修改 黄金沙漠之鹰 的伤害为 999
if (id === "tacz:deagle_golden_data") {
const json = JSON.parse(event.getStdJson());
json.bullet.extra_damage.damage_adjust = [
{ distance: 18, damage: 999 },
{ distance: 36, damage: 999 },
{ distance: 55, damage: 999 },
{ distance: "infinite", damage: 999 },
];
return event.setJson(JSON.stringify(json));
}
});
// 与 `TaCZStartupEvents.attachmentDataLoad` 功能一致, 但优先级更高
TaCZServerEvents.attachmentDataLoad((event) => {
const id = event.getId().toString();
// 修改 克苏鲁K7制退器, 装备后会拥有 10 倍的垂直后坐力👍
if (id === "tacz:muzzle_brake_cthulhu_data") {
const json = JSON.parse(event.getStdJson());
json.recoil.pitch = { multiplier: 10 };
return event.setJson(JSON.stringify(json));
}
});
玩家事件
NOTE
建议配合客户端对应的事件一起使用,要不会出现客户端玩家能正常操作但无法产生效果的情况。
js
// 实体使用武器进行瞄准的事件
TaCZServerEvents.entityAim((event) => {
const shooter = event.getShooter();
const gunId = event.getGunId().toString();
// 如果实体使用 RPG-7火箭筒 进行瞄准, 杀死实体
if (gunId === "tacz:rpg7") {
shooter.kill();
}
});
赞助 ❤️
喜欢 TaCZ JS
吗?你可以在 爱发电 对我进行赞助,助力模组持续更新!