Skip to content

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 吗?你可以在 爱发电 对我进行赞助,助力模组持续更新!

金主爸爸

Released under the CC BY-NC-SA 4.0.