ZPokeTaskPapi 插件使用说明

Pixelmon 服务器玩家计数/任务自定义进度系统
支持任意条件表达式、多事件类型,适配高性能跨服任务统计。

一、命令总览

/zpoketaskpapi list
/zpoketaskpapi value <计数器名>
/zpoketaskpapi all # 管理员
/zpoketaskpapi reload # 管理员
/zpoketaskpapi addCounter <玩家> <计数器名> [初始值] # 给玩家添加计数器
/zpoketaskpapi removeCounter <玩家> <计数器名> # 移除玩家指定计数器
/zpoketaskpapi addValue <玩家> <计数器名> <值> # 增加玩家指定计数器的值
/zpoketaskpapi reduceValue <玩家> <计数器名> <值> # 减少玩家指定计数器的值
/zpoketaskpapi setValue <玩家> <计数器名> <值> # 设置玩家指定计数器的值
/zpoketaskpapi removeAllPlayerCounter <计数器名> # 移除所有玩家的指定计数器
/zpoketaskpapi setAllPlayerCounter <计数器名> <值> # 设置所有玩家的指定计数器(不存在则新增)
/zpoketaskpapi debug # 玩家进入Debug模式,触发条件不通过时输出变量解析

命令简写说明

二、计数器配置说明

配置文件位于 plugins/ZPokeTaskPapi/counters/,支持多文件与子目录管理。

#计数器名称
捕捉阿勃梭鲁计数器:
  #事件类型
  type: "capture"
  #条件表达式(不需要条件就改成conditions: [])
  conditions:
    - "%pokemon_name% === 'Absol'"
  #该计数器最高计数数量(填-1则无上限)
  max-count: 10
  #每次触发事件,增加多少数值,支持使用变量进行公式计算
  value: "1"
    

字段说明

字段作用示例
type事件类型capture、beat、trade 等(详见下方事件表)
conditions计数触发条件(JS表达式)'%pokemon_name%' === 'Pikachu'
max-count最大计数上限(-1为不限制)10、-1
value每次计数增加值(可用表达式和变量)"1"、"%pokemon_level% * 0.5 + 2"

表达式与变量用法

三、事件类型与专属变量

1. 捕捉野生精灵 (capture)
2. 捕捉巢穴精灵 (capture-raid)
可用变量:所有宝可梦变量 + %pokemon_caught_ball%
3. 赢了野生精灵 (beat-wild) / 输给野生精灵 (lost-wild)
可用变量:所有宝可梦变量 + 所有实体变量
4. 赢了训练师 (beat-trainer) / 输给训练师 (lost-trainer)
可用变量:%trainer_name% + 所有实体变量
5. 进化前 (evolve-pre) / 进化后 (evolve-post)
可用变量:所有宝可梦变量 + 所有实体变量
6. 极巨化后 (dynamax-evolve-post) / Mega进化后 (mega-evolve-post)
可用变量:所有宝可梦变量 + 所有实体变量
7. 孵蛋 (hatch) / 繁殖 (breed)
可用变量:所有宝可梦变量
8. 经验获取 (exp-gain)
可用变量:所有宝可梦变量 + %gain_type%
9. 交易 (trade)
可用变量:所有宝可梦变量
10. 铁砧合成精灵球 (anvil-poke-ball)
可用变量:无
11. 神殿激活 (activate-shrine)
可用变量:%shrine_type%
12. 喂宝可梦糖果 (rare-candy)
可用变量:所有宝可梦变量 + 所有实体变量 + %candy_type%
13. 技能释放 (self-use-skill / target-use-skill)
可用变量:所有宝可梦变量 + %attack_name% %attack_accuracy% %attack_cant_miss%
14. 树果种植 (berry-plant) / 树果浇水 (berry-water)
可用变量: %berry_type% %berry_pos_x% %berry_pos_y% %berry_pos_z%
15. 树果收获 (berry-pick)
可用变量:同上 + %berry_stack_size%
16. 垂钓 (fishing-catch)
可用变量:无
17. 学习技能 (learn-move) / 遗忘技能 (forget-move)
可用变量:所有宝可梦变量
18. 升级事件 (level-up)
触发条件:宝可梦升级
可用变量:所有宝可梦变量 + %new_level% (新等级)
19. 骑乘宝可梦 (riding-pokemon)
触发条件:玩家骑乘宝可梦
可用变量:所有宝可梦变量 + 所有实体变量
20. 雪拉比祠堂 (ilex-shrine)
触发条件:玩家激活雪拉比祠堂
可用变量:所有宝可梦变量 + 所有实体变量 + %shrine_pos_x%%shrine_pos_y%%shrine_pos_z%(祠堂坐标)
21. 召唤阿尔宙斯 (play-flute-arceus)
触发条件:玩家吹奏召唤阿尔宙斯的笛子
可用变量:无特定变量
22. 放置项链 (time-space-place-chain)
触发条件:玩家放置时空项链
可用变量:无特定变量
23. 使用王冠 (bottle-cap)
触发条件:玩家使用王冠(银冠、金冠等)
可用变量:所有宝可梦变量 + 所有实体变量 + %bottle_cap_type% (王冠类型,如 SILVER、GOLD)
24. 采摘球果 (apricorn-pick)
触发条件:玩家采摘球果
可用变量: %tree_pos_x%%tree_pos_y%%tree_pos_z%(采摘位置坐标) %apricorn_type%(球果类型,见下表)
25. 给球果浇水 (apricorn-water)
触发条件:玩家给球果浇水
可用变量: %tree_pos_x%%tree_pos_y%%tree_pos_z%(浇水位置坐标) %apricorn_type%(球果类型,见下表)

球果类型变量说明

变量值代表球果
Black黑球果
White白球果
Pink粉球果
Green绿球果
Blue蓝球果
Yellow黄球果
Red红球果

%apricorn_type% 的值即为上表英文枚举之一(区分大小写)。

26. 掉落奖励箱物品 (loot-drop)
触发条件:玩家从奖励箱中掉落物品
可用变量:
%loot_pos_x%%loot_pos_y%%loot_pos_z%(奖励箱坐标)
%loot_type% (奖励箱类型,如 POKEBALL、ULTRABALL、MASTERBALL、BEASTBALL、SPECIAL)
%loot_item_name% (掉落物品类型名)

所有宝可梦变量

变量说明
%pokemon_name%精灵英文名
%pokemon_display_name%精灵中文显示名
%pokemon_gender%性别
%pokemon_growth%体型
%pokemon_form%形态ID
%pokemon_breedable%是否可繁殖
%pokemon_nature%性格
%pokemon_textures%自定义贴图名
%pokemon_level%等级
%pokemon_isLegendary%是否神兽
%pokemon_isShiny%是否闪光
%pokemon_type_1%主属性
%pokemon_type_2%副属性
%pokemon_ability%特性名称
%pokemon_ivs_percent%IV百分比
%pokemon_ivs_attack%攻击IV
%pokemon_ivs_speed%速度IV
%pokemon_ivs_specialAttack%特攻IV
%pokemon_ivs_specialDefence%特防IV
%pokemon_ivs_defence%防御IV
%pokemon_ivs_hp%体力IV
%pokemon_evs_attack%攻击EV
%pokemon_evs_speed%速度EV
%pokemon_evs_specialAttack%特攻EV
%pokemon_evs_specialDefence%特防EV
%pokemon_evs_defence%防御EV
%pokemon_evs_hp%体力EV
%pokemon_stats%六项能力总和
%pokemon_stats_hp%HP能力值
%pokemon_stats_attack%攻击能力值
%pokemon_stats_speed%速度能力值
%pokemon_stats_specialAttack%特攻能力值
%pokemon_stats_specialDefence%特防能力值
%pokemon_stats_defence%防御能力值
%pokemon_ivs_total%IV总和
%pokemon_evs_total%EV总和
%pokemon_hasFlag_xxx%宝可梦是否有xxx这个flag

所有实体变量

变量说明
%entity_name%实体名称
%entity_type%实体类型
%entity_custom_name%自定义名
%entity_world_time%世界时间
%entity_time_of_day%时间段(morning/day/evening/night/midnight)
%entity_location_x%X坐标
%entity_location_y%Y坐标
%entity_location_z%Z坐标
%entity_location_yaw%Yaw朝向
%entity_location_pitch%Pitch朝向
%entity_location_world%世界名
%entity_world_weather%天气名(Thunder/Rain/Sun/Unknown)
%apricorn_type% 球果类型(Black, White, Pink, Green, Blue, Yellow, Red) apricorn-pick, apricorn-water
%tree_pos_x%球果/采摘/浇水X坐标apricorn-pick, apricorn-water
%tree_pos_y%球果/采摘/浇水Y坐标apricorn-pick, apricorn-water
%tree_pos_z%球果/采摘/浇水Z坐标apricorn-pick, apricorn-water

特殊变量

变量说明事件
%pokemon_caught_ball%捕获精灵球类型capture, capture-raid
%trainer_name%训练师名字beat-trainer, lost-trainer
%gain_type%经验类型exp-gain
%shrine_type%神殿类型activate-shrine
%candy_type%糖果类型rare-candy
%attack_name%技能名称self-use-skill, target-use-skill
%attack_accuracy%技能命中率self-use-skill, target-use-skill
%attack_cant_miss%是否必中self-use-skill, target-use-skill
%berry_type%树果类型berry-plant, berry-water, berry-pick
%berry_pos_x%树果X坐标berry-plant, berry-water, berry-pick
%berry_pos_y%树果Y坐标berry-plant, berry-water, berry-pick
%berry_pos_z%树果Z坐标berry-plant, berry-water, berry-pick
%berry_stack_size%树果采集数量berry-pick
%bottle_cap_type%王冠类型(如 SILVER、GOLD)bottle-cap
%tree_pos_x%球果/采摘/浇水X坐标apricorn-pick, apricorn-water
%tree_pos_y%球果/采摘/浇水Y坐标apricorn-pick, apricorn-water
%tree_pos_z%球果/采摘/浇水Z坐标apricorn-pick, apricorn-water
%loot_pos_x%奖励箱X坐标loot-drop
%loot_pos_y%奖励箱Y坐标loot-drop
%loot_pos_z%奖励箱Z坐标loot-drop
%loot_type%奖励箱类型(如 POKEBALL、ULTRABALL 等)loot-drop
%loot_item_name%掉落物品类型名loot-drop

四、PlaceholderAPI 变量

支持通过 PAPI 显示玩家任务进度:

变量功能示例
%zpoketaskpapi_value_计数器名% 获取当前玩家某计数器进度 %zpoketaskpapi_value_闪光捕捉%
%zpoketaskpapi_total% 玩家所有计数器的进度总和
%zpoketaskpapi_list% 返回所有计数器和当前值列表(格式:name:value, ...)
%zpoketaskpapi_has_计数器名% 是否拥有该计数器(true/false) %zpoketaskpapi_has_闪光捕捉%
%zpoketaskpapi_max_计数器名% 计数器最大值(-1为无限制) %zpoketaskpapi_max_闪光捕捉%

详细变量请见源码 ConditionParser#setPlaceholderPokemonsetPlaceholderEntity

五、Debug 模式

六、常用示例

捕捉闪光宝可梦:
  type: "capture"
  conditions:
    - "%pokemon_isShiny% === 'true'"
  max-count: -1
  value: "1"

击杀50级以上神兽点数:
  type: "beat-wild"
  conditions:
    - "%pokemon_isLegendary% === 'true'"
    - "%pokemon_level% >= 50"
  max-count: -1
  value: "%pokemon_level% * 0.3 + 5"

交易获得超高IV宝可梦:
  type: "trade"
  conditions:
    - "%pokemon_ivs_percent% >= 90"
  max-count: 30
  value: "1"
    

七、问题反馈