dark7
本帖最后由 dark7 于 2019-8-10 13:31 编辑
宝可梦锦标赛




2021.12 数据,可能有更多内容宝可梦锦标赛



简介:这是继宝可梦广播后我搬运汉化的第二个宝可梦附属插件,此插件的功能无比强大。可以设置自动匹配开始的比赛。同时能实现规则制定,奖励发放,比赛进况的全自动化进行。而你只需要写好配置就可以举行有序的宝可梦竞赛了。


基础使用方法:
[1]第一步是使用/tournament create,这将创建一个新的锦标赛,比赛可以添加规则和奖励的命令。
[2]并使用基本命令/tournament命令查看现有锦标赛的设置。
[3]然后使用/tournament open将它打开让玩家加入,并发送一个服务器范围的公告。
[4]玩家可以使用/tournament join加入。
[5]管理员就可以使用/tournament start开始第一轮比赛。比赛开始后,它将继续自动运行,直到比赛结束。


功能介绍:1.创建宝可梦比赛。√2.设置比赛场地。√3.设置比赛人数。√4.设置比赛类型。(单人、多人)。√5.设置比赛的等级。(最高,最低,或者统一调至固定等级)。√6.设置参赛宝可梦的世代、类型(神兽、非神兽)、进化层级。√7.设置参赛宝可梦的特性、技能、以及是否能携带物品。√8.可以创建随机的比赛宝可梦池给玩家(没有强力宝可梦,我也能天下无敌?)√9.可以设置宝可梦、经济、物品、以及指令奖励。√10.比赛胜随机匹配。√11.比赛胜利全服通告。√12.比赛可选是否计入积分(指定积分层级可参加比赛(高于多少分或低于多少分才能参加)避免高手下低端局虐菜,避免新手进高端局捣乱?或者不同段位不同奖励。脑洞有多大,玩法就有多少。)√13.配合开服自动指令,做自动化比赛。(开启比赛,人数到达多少自动开赛)√
插件的命令:
  • tournament:提供有关当前锦标赛的一般信息,包括规则,当前比赛和参赛队伍。
    • create [preset] :创建一个新的锦标赛。如果给出了参数,则会尝试加载该名称的预设。
    • open:打开已创建的锦标赛,供玩家加入。
    • start:开始比赛。启动后,将计算并启动第一轮。
    • close:关闭现有锦标赛。
    • rules:提供当前锦标赛的规则列表。
      • add <ruleType[:argument]>:根据规则类型和可选参数,向锦标赛添加规则。例如:/tournament rules add LevelMax:50。
      • remove <rule-type>:删除给定类型的所有当前规则。
      • test [player]:测试一名玩家的队伍和精灵是否通过了锦标赛的规则。这主要用于测试自定义规则。
    • rewards:给出当前锦标赛的奖励列表。
      • add <rewardType[:argument]>:根据规则类型和可选参数,为锦标赛添加奖励。例如:/tournament rewards add pokemon:starly,lvl:5,s,gr:Enormous
      • remove <rewardType>:删除给定类型的所有当前奖励。
      • test [player]:为自己或玩家提供锦标赛的奖励。这主要用于测试自定义奖励。
    • zones:列出比赛的当前区域。通过提供的界面,可以创建或删除新区域。
      • leavezone:传送到当前设置的离开区域。这是玩家在比赛结束后被传送到的地方。
        • set:设置锦标赛的离开区域。

    • presets:检查已加载的预设规则和奖励。
      • save <name>:将当前锦标赛的规则和奖励保存到具有给定名称的预设。如果给定名称已作为预设存在,则会被覆盖。
      • load <name>:将具有给定名称(如果存在)的预设加载到当前锦标赛中。
      • delete <name>:删除具有给定名称的预设。这不能被撤消。
      • rename <old name> <new name>:重命名预设。
    • join [teammate]:加入锦标赛。如果给出了玩家姓名并且锦标赛允许双人队,则该玩家被邀请作为双人队加入。
    • leave:如果可能的话,离开锦标赛。这在锦标赛开始后不能使用,必须放弃比赛。
    • forfeit [player]:放弃比赛。如果提供了玩家参数且用户有权限,则该玩家将被迫放弃。
    • flag:标记一场战斗。如果双方都将战斗标记为有问题,那么将重新开始比赛。(比赛中的玩家使用,如果给了权限)
    • ignore [true|false]:显示/隐藏锦标赛消息。
    • reroll:获取一组新的随机神奇宝贝,前提是锦标赛有RandomPokemon规则,允许一定数量的重新选择机会,并且玩家剩余选择次数。
    • reload:重新加载所有锦标赛数据和配置。
  • /elo [user] [elo-type]:查看指定玩家和Elo类型的Elo评级,分别默认为该命令的用户和平均Elo。要检查其他玩家的Elo评级,用户必须拥有tournaments.command.admin.elo.other权限节点。
    • list [number] [elo-type]:根据特定Elo类型中的Elo评级列出最高级别玩家。如果未指定number,则默认为config default,默认为5.如果未指定elo-type,则默认为平均Elo评级。
    • clear [user] [elo-type]:使用指定的Elo类型清除指定用户的Elo评级。如果省略玩家,则默认为该命令的玩家,而elo-type将默认为所有Elo类型。要清除其他玩家的Elo类型,该命令的用户必须具有tournaments.command.admin.elo.clear.other权限节点。
    • clearall [elo-type]:清除所有玩家的指定Elo等级。如果elo-type留空,则将全部清除所有Elo数据。



插件的权限:
管理权限注意:可以通过设置一次性给出所有管理权限 tournaments.command.admin。
  • tournaments.command.admin.create:创建锦标赛。
  • tournaments.command.admin.tournaments:开启/关闭/开始锦标赛。
  • tournaments.command.admin.rules:修改规则的权限。
  • tournaments.command.admin.rewards:允许修改奖励。
  • tournaments.command.admin.presets:修改、加载、储存规则和奖励预设的权限。
  • tournaments.command.admin.forfeit:使其他玩家放弃比赛。
  • tournaments.command.admin.zones:设置和检查区域的权限。
  • tournaments.command.admin.reload:重新加载所有数据和配置的权限
  • tournaments.command.admin.elo.clear.base:为命令用户清除现有Elo数据的权限。
  • tournaments.command.admin.elo.clear.other:为命令玩家以外的其他人清除现有Elo数据的权限。
  • tournaments.command.admin.clearall:允许清除所有玩家的现有Elo数据。
  • tournaments.admin.elo-bypass:允许玩家加入锦标赛,即使他们不符合Elo评级条件。
  • tournaments.admin.elo-bypass-team:允许玩家的团队加入锦标赛,即使他们不符合Elo评级条件。请注意:只要团队一个成员有此权限节点,就能进入锦标赛。
玩家权限注意:可以通过设置一次性给出所有玩家权限 tournaments.command.common。
  • tournaments.command.common.tournaments:查看基本锦标赛信息。
  • tournaments.command.common.join:加入锦标赛。
  • tournaments.command.common.leave:离开锦标赛。
  • tournaments.command.common.forfeit:放弃比赛。
  • tournaments.command.common.ignore:忽略锦标赛消息。
  • tournaments.command.common.rules:使用rules子命令查看锦标赛规则。
  • tournaments.command.common.rewards:使用奖励子命令查看锦标赛奖励。
  • tournaments.command.common.flag:将战斗标记为有问题。
  • tournaments.command.common.reroll:获得一组新的随机神奇宝贝。
  • tournaments.command.common.elo.base:查看自己的Elo评级的权限。
  • tournaments.command.common.elo.other:查看命令玩家以外的其他人的Elo。
  • tournaments.command.common.elo.list:根据Elo评级查看排行榜。



比赛规则:
通用规则
  • BattleType:<option>:根据选项设置将发生的比赛类型。
    • single:标准单场战,团队只允许有1名玩家??。
    • double:双人战斗,球队可以有1或2名玩家。注意:这最好配合PartyMax规则。
    • double1:双人战斗,团队只允许有1名玩家。
    • double2:双人战斗,团队只允许有2名玩家。
  • TeamCap:<cap>[,autostart]:确定可参加锦标赛的玩家或者团队数量上限。如果autostart设置,锦标赛将在人满时开始。
  • SetParty[:specificLevel]:选择锦标赛中所有神奇宝贝的等级,以便在战斗中暂时移动到该等级。如果未给出特定级别,则规则将尝试使用现有LevelMin和LevelMax规则来选择不可接受的级别,以及应为每个神奇宝贝设置的级别。如果既没有LevelMax规则也没有LevelMin规则,所有神奇宝贝都设置为100级。
  • EloType:<classification>:设置此锦标赛将为指定Elo评级类型的增加积分。例子:专门针对单一战斗的Elo评级,规则:EloType:Single。
判定输赢的规则
  • HealthTotal[:weight]:如果战斗崩溃,胜利者将是拥有最多HP的一方。如果提供权重,则其越高,该规则的优先级越高。默认为1。
  • PartyCount[:weight]:如果战斗崩溃,胜利者将是拥有剩余的神奇宝贝最多的一方。如果提供权重,则其越高,该规则的优先级越高。默认为3。
团队规则
  • PartyMax:<1-6>:团队的一方(团队中每个玩家的所有神奇宝贝)都被计算在内(不包括),如果总数大于给定的最大值,团队将被取消资格。
  • PartyMin:<1-6>:团队的一方(团队中每个玩家的所有神奇宝贝)都被计算在内(不包括),如果总数小于给定的最小值,团队将被取消资格。
  • MinTeamElo:<value>:团队的Elo评分是平均值,如果低于此最低值,那么团队将无法加入锦标赛。
  • MaxTeamElo:<value>:团队的Elo评分是平均值,如果超过此最大值,那么团队将无法加入锦标赛。
玩家规则
  • LevelMax:<1-100>:玩家队伍中的每个神奇宝贝必须小于或等于给定最大值的等级。
  • LevelMin:<1-100>:玩家队伍中的每个神奇宝贝必须大于或等于给定最小值的等级。
  • Healing:<true|false>:如果true,则允许战斗之间的治疗。如果false,如果他们的队伍的神奇宝贝以任何方式痊愈,玩家将被取消资格。
  • DisallowedAbility:<ability[,ability,...]>:队伍中不能使用的特性(区分大小写)。多次添加此规则会添加到不允许的特性列表中。
  • HeldItems:<true|false>:如果为true,则允许携带物品。如果false,没有人可以使用神奇宝贝持有的持有物品。
  • PokemonTiers:<Pokémon Tiers...>:定义在锦标赛期间可以使用什么类型的神奇宝贝。
  • RandomPokemon:pokemon:<number of Pokémon>[,Comma-separated options]:定义一个锦标赛,随机神奇宝贝将被加入到参赛的队伍中。可用选项包括:
    • rentalOnly:如果设置,锦标赛中使用的神奇宝贝必须是他们加入时给予他们的。
    • localDuplicates:如果设置,给定的神奇宝贝将有机会为重复。
    • !globalDuplicates:如果设置,随机生成器将不会设置在整个锦标赛中给予相同神奇宝贝的最小次数。
    • rerolls:<amount> 设置玩家使用/tournament reroll获取一组随机神奇宝贝的次数(默认为1)。如果设置为-1,则不允许重新选择。
    • Pokémon spec:神奇宝贝的任何特征适用于随机神奇宝贝。
    • Pokémon tiers:以逗号分隔的神奇宝贝类型列表,所有给定的神奇宝贝必须是其中的一部分。如果在添加此选项的RandomPokemon规则时,神奇宝贝类型规则未设置,则将创建一个以匹配给定层的规则。如果存在,则将在两种规则类型之间同步这些类型。
  • DisallowedPokemon:<Comma-separated Pokémon or tier names>:锦标赛中不允许的神奇宝贝或神奇宝贝类型列表。
  • DisallowedMoves:<Comma-separated move names>:在锦标赛中任何神奇宝贝都使用的技能列表。名称中包含空格的技能必须具有下划线。示例:必须使用“Fire_Blast”而不是“Fire Blast”。
  • MinElo:<value>:玩家可以拥有的最低Elo评分。如果他们的Elo评级低于此值,他们将无法加入锦标赛。
  • MaxElo:<value>:玩家可以拥有的最高Elo评分。如果他们的Elo评级高于此值,他们将无法加入锦标赛。
奖励规则
  • Pokemon:<Pokémon spec>:神奇宝贝奖励。其格式与/pokegive和/pokespawn命令相同。例如:Gyarados,level:1,s,ab:Moxie
  • Items:<player>:各种物品的奖励。<玩家>的库存将被用作奖励的玩家。
  • Money:<amount>:奖励给定数量的宝可梦币。
  • Command:[text:<text>;]<cmd:<command>>:执行命令,用{{player}}替换奖励玩家的名字变量。例如:Command:text:&2Example reward;cmd:kill {{player}}。
神奇宝贝类型
Tier Key:
描述
NoLegendaries:
包含所有非传说神奇宝贝
Legendaries:
包含所有传说神奇宝贝
Gen1:
包含所有第1代神奇宝贝(该层图鉴1 - 151)。
Gen2:
包含所有第2代神奇宝贝(该层图鉴152 - 251)。
Gen3:
包含所有第3代神奇宝贝(该层图鉴252 - 386)。
Gen4:
包含所有4代宝贝(该层图鉴387 -493)。
Gen5:
包含所有5代宝贝(该层图鉴号494-649)。
Gen6:
包含所有6代宝贝(该层图鉴650 -721)。
FE:
包含所有完全进化或没有进化的神奇宝贝。
NFE:
包含所有未完全进化的神奇宝贝,仍然可以进化。
LC:
包含所有没进化的神奇宝贝,仍然可以进化
Monotype:
包含只有1 形态所有神奇宝贝的等级。
Dualtype:
包含所有2 形态神奇宝贝的等级。
例如:Gen1,NFE,Monotype所有第1代神奇宝贝都不能进化,只有1 形态的宝可梦。如果组合了不兼容的类型,例如Gen1和Gen2,则层将为空。
配置文件

代码:

  1. {
  2. "baseCommandAliases": [
  3.     "tournaments",
  4.     "tournament",
  5.     "tourneys",
  6.     "tourney"
  7. ],
  8. "baseEloCommandAliases": [
  9.     "elo"
  10. ],
  11. "overrideForceEndBattleOption": true,
  12. "timeBeforeMatch": 30,
  13. "nextZoneID": 4,
  14. "eloFactor": 1000,
  15. "defaultEloTopNumber": 5,
  16. "prefix": "\u0026l\u0026d锦标赛 \u00266? \u0026r",
  17. "joinMessage": "{{team}} \u00262加入了锦标赛!",
  18. "leaveMessage": "{{team}} \u0026c退出了锦标赛.",
  19. "forfeitMessage": "{{team}} \u0026c放弃!",
  20. "openMessage": "\u00266一场新的锦标赛开始了!使用 \u00263/tournament rules \u00266来确定规则, 用菜单来加入!",
  21. "startMessage": "\u00266竞标赛已经开始了!",
  22. "closeMessage": "\u00267锦标赛已经结束了.",
  23. "noWinnerMessage": "\u00266比赛没有赢家!真是糟糕.",
  24. "winnerMessage": "\u00266锦标赛结束了! 恭喜 {{winners}}\u00266!",
  25. "matchWinMessage": "{{winners}} \u00262打败了 {{losers}}\u00262!",
  26. "matchDrawMessage": "{{match}}\u0026e 以平局告终! 重赛在\u00263 {{time}}\u0026e 秒后.",
  27. "matchErrorMessage": "{{match}}\u0026c 发生错误错误! 重赛在\u00263 {{time}}\u0026e 秒后.",
  28. "upcomingRoundMessage": "\u00266即将到来的一轮:\n{{round}}",
  29. "byeMessage": "\u00262你\u0027ve 在这轮中说再见了!",
  30. "insufficientPokemonMessage": "{{side}}\u0026c 没有足够的宝可梦!取消资格!",
  31. "offlinePlayerMessage": "{{side}}\u0026c 离线了! 取消资格!",
  32. "offlinePlayersMessage": "{{side}}\u0026c 超过一个玩家离线了! 取消资格!",
  33. "ruleBreakMessage": "{{ruleerror}}\u0026c 取消资格!",
  34. "ignorePromptMessage": "\u00267单击此处忽略所有竞赛消息",
  35. "ignoreToggleOnMessage": "\u00267锦标赛信息: \u00262开启",
  36. "ignoreToggleOffMessage": "\u00267锦标赛信息: \u0026c关闭"
  37. }



配置文件的一些设置
选项
描述
占位符
baseCommandAliases:
/ tournament命令的所有名称列表。
overrideForceEndBattleOption:
是否应覆盖Pixelmon.hocon配置选项“forceEndBattleResult”以防止锦标赛标记和伪造的问题。强烈建议不要更改此值。
timeBeforeMatch:
比赛公告或重赛公告之后应该开始比赛的秒数。这必须大于5秒才能为区域传送提供时间。
nextZoneID:
用于为区域提供唯一ID号的值。应尽可能避免修改此项。
joinMessage:
团队加入锦标赛时发送的消息。
{{team}}
leaveMessage:
团队离开锦标赛时发送的消息。
{{team}}
forfeitMessage:
当团队放弃比赛时发送的消息。
{{team}}
openMessage:
比赛开放时发送的消息。
startMessage:
锦标赛开始时发送的消息。
closeMessage:
锦标赛关闭时发送的消息。这仅在锦标赛处于进行或开放状态时发送。
noWinnerMessage:
锦标赛结束时发送的消息,没有获胜者。
winnerMessage:
锦标赛结束时至少有一位获胜者发送的消息。
{{winners}}
matchWinMessage:
当比赛以胜利方和失败方结束时发送的消息。
{{winners}},{{losers}}
noWinnerMessage:
比赛以平局结束时发送的消息。
{{match}},{{time}}
matchErrorMessage:
当匹配以某种错误结束时发送的消息。
{{match}},{{time}}
upcomingRoundMessage:
宣布回合时要发送的消息。
{{round}}
byeMessage:
收到轮空回合时发送给团队的消息。
insufficientPokemonMessage:
当一方没有足够的神奇宝贝进行战斗时发送的消息,导致取消资格。
{{side}}
offlinePlayerMessage:
当单人游戏玩家离线进行战斗时发送的消息,导致取消资格。
{{side}}
offlinePlayersMessage:
当多人游戏团队至少有一个玩家离线进行战斗时发送的消息,导致取消资格。
{{side}}
ruleBreakMessage:
当一方违反规则时发送的消息,导致取消资格。
{{ruleerror}}
ignorePromptMessage:
比赛开始时发送的消息,提示玩家点击它以防止看到任何进一步的锦标赛消息。
ignoreToggleOnMessage:
关闭锦标赛消息时发送给玩家的消息。
ignoreToggleOffMessage:
开启锦标赛消息时发送给玩家的消息。

占位符及其代表的内容如下:
占位符
描述
{{team}}:
玩家或者团队。这是玩家的名字或两个玩家的名字,用&符号分隔。
{{side}}:
比赛的一方。这通常与{{team}}相同,但代表了正在战斗的一方,可能会被表述为{{team}}&{{team}}。
{{match}}:
比赛。这被表述为{{side}} vs {{side}}。
{{time}}:
秒数。通常用主配置中的timeBeforeMatch值替换。
{{winners}}:
获胜的队伍。这是一个以逗号分隔的{{team}}列表,如果只有一个玩家,则与{{team}}相同。
{{losers}}:
失败的队伍。这是以逗号分隔的{{team}}列表。如果只有一个玩家,则与{{team}}相同。
{{round}}:
一轮比赛。这被制定为{{match}}的新行分隔列表。如果只有一个匹配,则与{{match}}相同。
{{ruleerror}}:
违反规则的详情。这包括违反规则的{{side}}以及特定规则引发的错误。



插件的截图:




比赛设置的视频:
待填坑


如果我的搬运对大家有帮助,请多多支持,下载地址:



更新日志:搬运更新日志
2019-04-03   搬运2.5.8,汉化


原贴更新日志


2017-07-06    2.0.1
增加
  • 在./logs下面添加单独的日志文件以帮助调试。
  • 为大多数比赛消息添加了配置选项。
  • 为每次战斗之间的时间(秒)添加配置选项(必须大于5秒)。
修改
  • 修改了各种比赛信息。
  • 将主锦标赛配置移至./config/tracnaments/。
修复
  • 固定/tournament造成战斗的标记相距30秒。
  • 随机神奇宝贝锦标赛中可能正确的神奇宝贝被随机到。
  • 修正了当比赛开始时,一个玩家在不同的世界中的问题。
  • 如果没有设置比赛区域,比赛不开始。
  • 修正了如果删除比赛区域,没有进行区域编辑,将不保存。


2018-06-08    2.3.2
支持宝可梦6.3版本


2019-02-19    2.5.3
支持宝可梦7.0版本
2019-02-19    2.5.4
对比赛区域、ELO等级、/tournament start进行了更改和修正
2019-02-19    2.5.5


修复了/tournament start不起作用


2019-03-01    2.5.7
修复了/ELO top 报空指针异常
修复了宝可梦获得经验,宝可梦就不会回收
修复了不允许的神奇宝贝规则显示异常
修复了命令奖励不显示。


2019-03-10    2.5.8
修复了宝可梦获得经验,宝可梦就不会回收(这次是真的)


鸣谢:
@酷车手BB弹




dark7
@酷车手BB弹 大佬快来捧场啊。

nggcgg2
那真的牛批 好吧 我选择paperspigot

_DIM_
支持。(有没有录个视频之类的XD)

dark7
酷车手BB弹 发表于 2019-4-3 09:20
支持。(有没有录个视频之类的XD)

昨天晚上肝出来的,后面可能会补一些更详细的操作。


如果要有实际效果的视频,难免会涉及到一些服务器信息。。会不会违规来着
bb弹牛逼

dark7
nggcgg2 发表于 2019-4-3 08:07
那真的牛批 好吧 我选择paperspigot

catserver石锤emmm

nggcgg2
dark7 发表于 2019-4-3 10:05
catserver石锤emmm

对不起 信不过 不敢用 再说 我是个开插件服的 也从来没打算搞大 开放就算了 那几个开放的下场都..

世予予
内容有点少诶 可以写排版和功能介绍

dark7
世予 发表于 2019-4-3 10:42
内容有点少诶 可以写排版和功能介绍

emmm我又写了个功能介绍

_DIM_
dark7 发表于 2019-4-3 09:49
昨天晚上肝出来的,后面可能会补一些更详细的操作。

视频后处理打一下码就好了

dark7
酷车手BB弹 发表于 2019-4-3 12:12
视频后处理打一下码就好了

挖了个坑在那里,等放假填上23333

laofangkuai
有点像精灵排位

_DIM_


这个应该是标记为有问题的比赛

应该是给正在比赛的玩家用的指令,如果双方都标记了这场比赛有问题,会强制结束然后重新比赛

神楽咕咕
辛苦了。
锦标赛需要介绍的内容是真的多
支持!



dark7
弑雪酱 发表于 2019-4-3 18:59
辛苦了。
锦标赛需要介绍的内容是真的多
支持!

鸽了好久才有勇气去填2333

qq2415786013
设置教学视频 出 下 弄不来。。

40SiShi
更新了!楼主快让我白嫖汉化(滑稽)!!!!!

hunaoa
请问大佬有汉化好的吗

<光速>
mcbbs有你更精彩~

a2387666514
感谢楼主  

Yoodi
版本有更新啦 希望能够追上进度
还有请教一下如何进行内核汉化

筱柒不会哭
下载的MOD安装的mods和Plugins下都无用 ???

陈饶2003
跟pokepvp差不多

2244952148
这个插件我拿走了 谢谢

hunaoa
视频教程快点出吧!!!!!!!!!

一杯面包
官方出新版了诶,请问,有更新嘛

chowhuond
非常棒的插件!非常感谢转载!

jiangben2002
请问这个插件支持8.5.1的吗

3552686791
mcbbs有你更精彩

Hoshino0114

mcbbs有你更精彩~