我的世界插件Wizards Domination/KoTH Minigame 3.9.8.2
我的世界插件Wizards Domination/KoTH Minigame 3.9.8.2
我的世界插件购买地址:”https://www.mcbourse.cn/thread-2334-1-1.html”
Wizards Domination/KoTH Minigame 3.9.8.2
Wizards ❱ Domination/KoTH 迷你游戏 3.9.8.2
|
选择您的向导类别并捕获地图目标以得分。
- 多竞​​技场和 BungeeCord 支持。
- 成就。
- SQLite 和 MySQL 支持。
- 极其可配置。
- 标志、记分牌、消息、选项等。
- 保存和恢复玩家库存、等级等。
- 带有游戏事件的 API。
- 自定义项。
- 升级/排名系统。
- 游戏顶级杀戮。
- 全息排行榜。
- 顶级伤害、治疗、杀戮和胜利。
- 奖励系统。
- 类脚本系统。
- 工具包或类。
- 杀戮辅助系统。
- 避免不断抽签。
- 非常容易设置。
- 坐骑。
- 新:通电!
- 新:旁观者系统!
错误
如果您有任何问题,请通过讨论或私人消息报告。不要使用评级区域报告错误或请求功能。请去讨论。
默认游戏系统
如果你不想拥有技能并希望启用套件系统,这是 100% 可能的,该系统将很快提供更多游戏模式。
依赖项
Wizards 可以自己运行所有系统,但是,您可以安装Holographic Displays以使 Leaderboards 和 Vault 与全球经济一起工作。
您还可以安装ItemBridge以与 QualityArmory 挂钩。您应该可以在没有 ItemBridge 的情况下使用 CrackShot。
PlaceholderAPI 支持
以下占位符 是 可用 的 ,它们 是 不 言 自明
的
: %wizards_arena_max_players_{arena}% %wizards_arena_min_xplayers_{arena}% %wizards_arena_status_{arena}% %wizards_points-to-win_{arena}% 使用示例(DeluxeMenus):
一个额外的占位符是%wizards_team_color%,如果在游戏中,它返回玩家的团队颜色。这是在您需要使用第三方名称标签插件的情况下添加的。
竞技场设置
所需权限:wizards.setup
首先使用/wizards setgspawn设置全局生成
- 创建你的竞技场 – /wizards create <name>。
- 添加 spawn – /wizards setLocation <name> <location>
- 地点:BLUE_SPAWN , RED_SPAWN , LOBBY。
- 添加竞技场目标 – /wizards setObjective <name> <objective>
- 目标:A、B、C。
- 目标是一个 3×3 区域,目标中心有 e 信标(通过此命令设置中心)
- 设置最小玩家 – /wizards setMinPlayers <name> <amount>
- 设置最大玩家数 – /wizards setMaxPlayers <name> <amount>
- (可选)设置竞技场边界/wizards setBounds <arena>
- 使用工具/wizards 魔杖选择竞技场角落。
- 它将阻止玩家在游戏中离开竞技场。
- 完成设置并创建游戏 – /wizards finish <name>
目标是一个 3×3 区域,中心有电子信标。
签名格式:
- [巫师]
- 加入
- 竞技场名称
视频:
排行榜
您需要 HolographicDisplays 才能使用排行榜,只需使用占位符:
- {wizards_wins_number}
- 例如:{wizards_wins_1} 将返回获胜次数最多的玩家。
- {wizards_wins_2} 等
- {wizards_kills_number}
- 例如:{wizards_kills_1} 将返回拥有最多检查点的玩家
- {wizards_kills_2} 等
占位符:
- {wizards_kills_NUMBER}
- %kills% 来自玩家。
- {wizards_wins_NUMBER}
- %wins% 来自玩家。
- {wizards_damage_NUMBER}
- 来自玩家的 %damage%。
- {wizards_healing_NUMBER}
- 来自玩家的 %healing%。
命令:wizards
别名:wzds、wrz。
- /wizards join <arena> -没有权限。
- /wizards leave -没有许可。
- /wizards stats -没有权限。
经理命令
- /wizards setgspawn – wizards.admin
- /wizards start <arena> – wizads.moderator / sr.admin
- /wizards stop <竞技场> – wizads.moderator/sr.admin
- /wizards reload – wizards.admin
- 保存所有配置文件。
其他的:
- /wizards coins set/add/remve <玩家> <数量>
- 权限:wizards.admin
- 更新玩家平衡,命令将无法在启用 Vault 支持的情况下使用。
- /wizards update <玩家>
- 权限:wizards.admin
- 向数据库发送更新。
- /wizards 更新排行榜
- 权限:wizards.admin
- 更新排行榜。
- /向导门户
- 权限:wizards.admin
- 管理竞技场门户(见下文)
- /wizards reloadClasses
- 权限:wizards.admin
- 将重新加载所有类文件,您现在可以修改一个值,然后使用此命令应用更改。
- 此命令会重新加载所有事件,因此如果有游戏正在运行则无法使用。
- /向导工具包
- 权限:wizards.manager.kits
- /wizards kits create <name> (price) (needsPerm) (perm) (display-item)
- () 用于可选参数,它具有默认值:1000,false,kits.{name},带有套件名称的随机项目。
- 我建议您在 kits 文件中手动修改您的套件,然后使用 kits reload 命令。
- /wizards kits delete <名称>
- 从 kits.yml 中删除一个套件。
- /向导工具包重新加载
- 重新加载所有套件。
班级
所有班级的主要目标都是相同的 – 发射法术或射弹造成伤害,你将决定班级的其他一切。
v3.8.6 上有 11 个类,欢迎提供类的建议。
- 炎术师
- 发射火焰咒语,您可以在pyromancer.yml修改其他所有内容。
- 海王
- 发射一道水咒,您可以在aquamancer.yml中修改其他所有内容。
- 可以治疗盟友,可以设置治疗量和范围。
- 海洛因
- 发射一个粒子法术,该法术会打击并增加伤害,您可以在herobrine.yml中修改其他所有内容。
- 枯萎
- 发射凋灵头骨,您可以在wither.yml中修改其他所有内容。
- 末影人
- 发射一个末影咒语并具有召回能力。
- 法师
- 发射一个会跟随玩家的法术,直到发生碰撞或直到达到行程限制。
- 战斗机
- 装载单目标超级拳。
- 十字军
- 为你和附近的队友创造一个临时护盾。
- 萨满
- 创建龙卷风推动玩家并缓慢应用。
- 奥术师
- 发射瞬发法术,如果击中敌人会造成范围伤害。
- 苦力怕
- 制造爆炸,造成击退和伤害。
- 冷冻术士
- 发射一道冰咒,施加缓慢。您可以在 cryomancer.yml 中修改其他所有内容。
您可以修改所有类别的所有内容、损坏、爆炸区域等。
代码(文本):
显示名称:’Aquamancer’
描述:
– ‘&9Aquamancer’
– ‘ ‘
– ‘&7Shots a spell of Aqua’
– ‘&7 causing damage to enimies and’
– ‘&7healing teammates.’
价格:500
每次使用法力成本:25
每次击中法力:2
最大距离:80
伤害:2.5
伤害区域:4.0
爆炸半径:2.5
显示项目:’IRON_AXE: 1′
武器:’IRON_AXE : 1 : name:&bHealing’
头盔:’IRON_HELMET : 1′
胸甲:’IRON_CHESTPLATE : 1′
紧身裤:’IRON_LEGGINGS :
target-scripts: []
可选:课程权限
通过将Options.Use-Class-Permission-As-Owned设置为 true,拥有课程权限的玩家将能够选择课程而无需购买。
如果Options.Use-Class-Permission-As-Owned设置为 false,玩家将需要购买课程的权限。
为此,请确保在类文件中添加“权限”行,例如:
3.0 及更高
版本 在 3.0 或更高版本中,您可以向使用职业的玩家提供物品。
代码(文本):
显示名称:’Herobrine’
描述:
– ‘&9Herobrine’
– ‘ ‘
– ‘&7Shots a spell of Lightning’
– ‘&7causing with &c3.0❤ &7of damage.’
价格:1000
每次使用法力消耗:35
每次击中法力:1
最大距离:80
伤害:6.0
伤害区域:5.0
爆炸半径:4.5
武器:’GOLDEN_AXE : 1 : name:&bStrike’
头盔: ‘IRON_HELMET:1’
胸甲:’IRON_CHESTPLATE:1′
紧身裤:’IRON_LEGGINGS:1′
靴子:’IRON_BOOTS:1′
– ‘ARROW : 64’
所以只需添加
代码(文本):
items:
– ‘ITEM : AMOUNT’可以在类文件夹中的pyromancer.yml
中找到有关项目的完整教程。(API) 创建你自己的类 关于这一点的快速说明,在使用 API 注入新类时不能使用类重新加载命令,它不会注册通过 API 注入的类。创建您自己的重新加载命令并访问 API 以手动重新加载并再次注册您的类。 要创建您自己的类,只需创建一个扩展 WizardClass 的新类并使用代码(文本) 在您的 onEnable 上注册: WizardClasses.injectClass(Class<? extends WizardClass> clazz, String name, String fileName);
在哪里上课<? extends WizardClass> 将是您的类,将类的(原始)名称命名为 fileName 将生成的文件名。
之后,您需要手动将您的类添加到 shop.yml 中。
示例:
代码(文本):
import com.floodeer.wizards.Wizards;
导入 com.floodeer.wizards.game.GamePlayer;
导入 com.floodeer.wizards.game.classes.WizardClass;
导入 com.floodeer.wizards.particles.ParticleEffect;
导入 com.floodeer.wizards.script.ScriptManager;
导入 com.floodeer.wizards.util.ItemFactory;
导入 com.floodeer.wizards.util.LocationUtils;
导入 com.floodeer.wizards.util.Util;
导入 org.bukkit.Location;
导入 org.bukkit.entity.Player;
导入java.io.文件;
public class Reaper extends WizardClass {
public Reaper(String name, File configFile) {
超级(名称,配置文件);
}
@Override
public void give(Player player) {
player.getInventory().addItem(ItemFactory.unbreakable(getWeapon()));
player.getInventory().setHelmet(ItemFactory.unbreakable(getHelmet()));
player.getInventory().setChestplate(ItemFactory.unbreakable(getChesplate()));
player.getInventory().setLeggings(ItemFactory.unbreakable(getLeggings()));
player.getInventory().setBoots(ItemFactory.unbreakable(getBoots()));
}
@Override
public void onInteract(Player player) {
GamePlayer gp = GamePlayer.get(player.getUniqueId());
if (gp.getMana() < getManaCost()) { //法力管理器
if(!Wizards.get().getMessages().enoughMana.isEmpty())
gp.getP().sendMessage(Util.colorString(Wizards. get().getMessages().enoughMana.replaceAll(“%prefix%”, Wizards.get().getMessages().prefix)));
if(!Wizards.get().getOptions().enoughMana.isEmpty())
Util.playSound(gp.getP(), Wizards.get().getOptions().enoughMana);
} else {
ScriptManager.run(gp, getScript()); //脚本系统,如果启用
gp.setMana(gp.getMana() – getManaCost()); //移除玩家法力
//技能开始
Location location = player.getLocation();
//技能粒子效果
LocationUtils.getCircle(location.clone().add(0.0D, 1.0D, 0.0D), 5.0D, 40).forEach(l -> {
ParticleEffect.CRIT_MAGIC.display(0.0F, 0.0F , 0.0F, 0.1F, 3, l, 126);
ParticleEffect.CLOUD.display(0.0F, 0.0F, 0.0F, 0.01F, 1, l, 126);
});
//应用技能伤害和效果
Util.filterAreaDamage(player, getDamage(), location, getAreaDamage(), false, Wizards.get().getMessages().magic).forEach(target -> { ScriptManager.run(gp
, GamePlayer.get(target), getTargetScript());
GamePlayer targetgp = GamePlayer.get(target);
targetgp.setMana(0);
target.sendMessage(Util.colorString(“&c你的法力已经被&4吞噬了” + player.getName() + “&c!”));
});
//Skill end
}
}
}
要告诉 Wizards 你有一个类要添加,请将以下代码添加到 onEnable
代码(文本)中:
WizardClasses.injectClass(Reaper.class, “Reaper”, “reaper.yml”);
其中 Reaper 是扩展 WizardClass 的类,Reaper 是原始名称,reaper.yml 是将生成的类文件名,因此您可以随意更改它。
创建类后,需要手动添加到shop.yml中;
代码(文本):
reaper:
item: ‘DIAMOND_SWORD : 1’
name: ‘&6Reaper Class’
– ‘&7 附近的玩家。
插槽:23
WizardClass 代码(文本)中需要的所有内容在哪里
:
public String getOriginalName();
公共字符串 getDisplayName();
公共列表<String> getDescription();
public int getPrice();
公共 int getMaxDistance();
public int getManaCost();
公共 ItemStack getHelmet();
公共 ItemStack getChesplate();
公共 ItemStack getLeggings();
公共 ItemStack getBoots();
公共 ItemStack getWeapon();
公共双 getDamage();
公共双 getAreaDamage();
public double getExplosionRadius();
公共列表<String> getScript();
公共列表<String> getTargetScript();
public int getManaPerHit();
公共集合<PotionEffect> getEffects();
公共列表<ItemStack> getItems();
这里的所有内容都取自您的 class.yml,当然,您可以忽略所有这些并根据需要创建类,而无需与类文件进行交互。
就是这样!没有计划让您通过 API 添加类,但既然可以让它工作……为什么不呢。
类别:爆炸
您可以禁用或限制特殊能力的爆炸。
要关闭爆炸,请转到 settings.yml 并将Explosions设置为false。
您还可以限制爆炸,例如,您可以禁用 Y 坐标以下方块的爆炸:
Min-Y-Explosions的地图配置选项
- 此选项将限制 Y 坐标的方块爆炸,例如,如果将其设置为 32,则 Y=32 以下的所有方块都不会爆炸。
- 这可以通过在服务器启动之前编辑地图文件或使用/wizards setExplosionLevel <arena> <Y level>来完成
- 使用此命令保存并应用更改后,您必须完成竞技场。
套件
您可以使用套件而不是类。在options.yml
中 启用Use-Kits-Instead-Of-Classes将禁用由类引起的所有游戏效果
- 没有更多的速度和跳跃。
- 不再有自定义 PvP 伤害。
- 没有更多的课程商店,只有工具包。
- 没有更多的自定义治疗药水。
- 没有更多的双跳。
将创建一个 kit.yml 文件,您将能够添加您的套件。
剧透:kits.yml
Wizards Gamemodes
一些用户将 Wizards 用作TDM Gamemode 和/或玩 Guns,这完全有可能!您可以禁用所有游戏目标并设置每次击杀点数。
对于默认的统治游戏模式,您可以在下面查看这些选项。
例子
- 捕获率:默认 > 1
- 减少以增加捕获时间。
- Capture-Max:默认 > 24
- 增加以增加捕获时间。
- 坚不可摧的盔甲
- 启用或禁用爆炸。
- 修改每次击杀点数、每秒点数、改变游戏事件的游戏刻度、手部伤害、武器伤害等。
- 多很多!检查下面的 options.yml。
Scripts
Wizards 可以运行一个“脚本”系统,当玩家使用技能并且目标受到技能伤害时调用。
您需要在options.yml中将“JS-Engine”设置为 true才能运行脚本。
示例 1 -向使用该技能的玩家发送消息。
代码(文本):
脚本:
-“player.sendMessage(\“你使用了你的技能。\”);”
示例 2 –设置目标(如果有效)着火3 秒。
代码(文本):
目标脚本:
-“target.setFireTicks(60)”
支持的方法
- 布吉#
- 球员#
- 精灵#
- “wizard.explode(目标);” – 仅针对目标类型,会产生爆炸。
- “wizard.damage(目标,数量);” – 对于目标和玩家,会造成随机伤害。
- “wizard.heal(目标,数量);” – 对于目标和玩家,会治愈。
- 向导 API(见下文)。
支持的参数
- 播放器、游戏玩家、api、向导、服务器、盟友、allyplayer、目标、targetplayer
- GamePlayer (gameplayer、gametarget、gameally)指的是Wizard的玩家类,可以通过该类修改游戏内数据和数据库数据。
您不能使用脚本召唤新对象。
Updates & Timer
Code (Text):
Options:
Game:
Mana-Update-Type: ’75’
这意味着更新类型设置为 TICK_2 (1 mana every0,075s)
Update division
Code (Text):
SEC = 1000 (1s )
FAST = 500 (0,5s)
FASTER = 250 (0,25s)
FASTEST = 125 (0,125s)
TICKS_2 = 75 (0,075s)
TICK = 49 (0,049s)
升级系统 (BETA)
默认禁用。在 options.yml 中启用它。
启用后,将生成一个新文件 levels.yml,您可以使用此文件添加您的关卡、奖励等:
代码(文本):
关卡:
Level-1: #不要改变Level-1 section
exp: 0 #Required Exp
display-name: “&6Level 1” #Display name in level up message
prefix: “&6[1]” #Chat prefix, if enabled, hooked to PAPI
commands-to-execute: [] #Commands to execute when reaching the level
level-up-message: [] #Message to display
Level-2: #From now you can change
exp: 10
display-name: “&6Level 2”
前缀:”&6[2]”
要执行的命令:
– 巫师硬币添加 %player% 100
升级消息:
– ‘&7&m————&7[&6&lWIZARDS&7 ]&m————‘
– ”
– ‘&a&l升级 &e&l%level%’
– ”
– ‘&9下一级:&b%next_level% &7(%until_next_level%/%next_level_exp% EXP)’
– ”
– ‘&7&m————————————‘
Level-3:
exp: 20
显示名称:“&6Level 3”
前缀:“&6[3]”
要执行的命令:
– 巫师硬币添加 %player% 100
升级消息:
– ‘&7&m———- —-&7[&6&lWIZARDS&7]&m————‘ –
”
– ‘&a&l升级 &e&l%level%’
– ”
– ‘&9下一级:&b%next_level% &7( %until_next_level%/%next_level_exp% EXP)’
– ”
– ‘&7&m——————————– —‘
请不要更改 Level-1,因为它是默认的数据库值,你可以只使用显示名称在游戏中不显示“Level-1”,部分名称只是后端的东西。
请注意,重新加载命令不会应用对 levels.yml ATM 的更改。
如何获得Exp
玩家可以通过对战、击杀/助攻、获胜和夺取点数来获得Exp,查看options.yml,你会看到一个新的Exp部分可以修改。
给老玩家Exp在options.yml中将Options.Update-Levels
设置为true,当玩家在本次更新后加入服务器时,玩家将根据胜利、玩的游戏和击杀/助攻获得exp。 请注意,某些 exp 方法(如捕获的点)不会存储以进行计算。如果我不想使用 Leveling 系统怎么办? 只是不要启用该选项。没有它,一切都会很好。记分牌 您可以完全自定义记分牌。
不在游戏中/在同一游戏中(或没有玩)的玩家将看不到球队的彩色列表。
- 游戏内占位符列表:
- %kit% – 球员装备或职业。
- %formatted_time% – 以 mm:ss 为单位的游戏时间
- %kills% – 游戏击杀
- %deaths% – 游戏死亡
- %red_points% – 红点
- %blue_points% – 蓝点
- %red_points_per_second% – 每秒红点数
- %blue_points_per_second% – 每秒蓝点数
- %objectives% – 将用您拥有的目标数量替换所有下一行。
- 大堂占位符列表:
- %players% – 当前玩家数量
- %maxplayers% – 最大玩家数量
- %minplayers% – 最小玩家数量
- %mapname% – 地图名称
- %timer% – 启动计时器
- %state% 和 %capitalize_state% – 游戏状态
- %wins% – 玩家获胜统计
- %games_played% – 玩家游戏玩统计
- %balance% – 玩家余额
- %kit% – 球员装备或职业。
避免绘制系统
为了避免不断绘制,您可以启用避免绘制系统。
如果游戏达到最大时间将以平局结束,但是,如果避免平局,游戏将检查杀戮最多的球队,这支球队将获胜。
如果两支球队的击杀数相同,则比赛将平局 – 加时赛系统已测试但未实施。
团队
有两个团队,所以每个团队的玩家数是每场最大玩家数除以 2,请确保将最大玩家数设置为 2 的倍数。
如果团队规模小于游戏玩家数除以 2,则玩家将无法加入。
传送门
这是与鞘翅一起使用的游戏机制,它会给你速度提升。
有关门户的一些信息:
- 每个门户可以有不同的粒子、速度等等。
- 门户保存在 arena文件夹中。
- 由于动态访问,它们不会保存在 arena 文件中,不应经常访问 arena 文件。
- 每个门户在竞技场文件中都有不同的名称,因此您可以识别它们。
这是门户文件的示例。
剧透:屏幕
截图
坐骑 如果你的地图太大并且你没有启用跳跃或速度,你可以启用坐骑,坐骑将与套件或类一起使用。
关于挂载系统的一些信息:
- 游戏开始时你会收到一个物品(你可以编辑这个物品),右键点击它来生成你的马。
- 马不会受到伤害,但如果乘客受到任何伤害,马就会消失。
- 当您按下 shift 键时,马会消失。
- 您可以修改马变种、速度和跳跃。
- 有使用冷却时间,可以修改。
- 下马后会触发冷却。
默认情况下禁用此功能,因此您不会收到安装项目。您可以在options.yml文件中启用它。
Guns
Quality Armory
您需要 ItemBridge 才能使用Quality Armory。
- 在 options.yml 中将ItemBridge设置为 true。
- 将武器/弹药名称设置为与Quality Armory提供的名称相同。
- 将“武器”标签添加到 kits.yml 中的项目
示例:
代码(文本):
weaponTest:
needs-permission:true
permission:“wizards.kits.weapons”
slot:3
price:200
display-item:’CROSSBOW : 1 : name:ak47′
helmet:’IRON_HELMET : 1′
chestplate : ‘IRON_CHESTPLATE : 1’
紧身裤: ‘IRON_LEGGINGS : 1’
靴子: ‘IRON_BOOTS : 1’
项目:
– ‘CROSSBOW : 1 : weapon : name:ak47’
– ‘CROSSBOW : 1 : weapon : name:kar98k’
lore:
– ‘ &7Test weapon kit’
potion-effects: []
WeaponMechanics
要启用它,请转到 settings.yml -> Options。WeaponMechanics并将其设置为true
使用示例(kits.yml):
- 项目:数量:武器:名称:武器名称
- 你可以在这里放置任何物品,它将被替换为武器。
- 我不确定在顶部 (AK47) 的套件名称上使用特殊字符是否会导致任何问题,以防万一。
确保使用武器标签,否则它将不起作用。
Crackshot
应该可以立即使用,您不需要武器标签。
自定义项目标签和模型数据
- HideItemInfo(自定义标志)
- 将隐藏属性、牢不可破、附魔、染料和药水效果。
- 示例:
代码(文本):
项目:’GOLDEN_HOE : 1 : HideItemInfo’
- 物品标志- ItemFlag
- 示例:
代码(文本):
项目:’GOLDEN_AXE : 1 : ItemFlag:HIDE_ATTRIBUTES’
- 示例:
- (1.14+) CustomModelData – 模型数据:{Value}
- 示例:
代码(文本):
项目:’CARROT_ON_A_STICK : 1 : ModelData:1′
- 示例:
Game Arena
Spawn-Protection-Size & Objective-Protection-Size
在你的 arena.yml 中你会看到 Spawn-Protection-Size 和 Objective-Protection-Size,这将设置技能不能爆炸块的保护区。
旁观者模式(新!)
您可以使用 /wizards spectate <game> 来旁观一场比赛。旁观者的记分牌与普通比赛不同,您可以在语言文件中更改其记分牌。对于 BungeeCord,将Options.Spectate-When-In-Game
设置为true,如果比赛处于 IN GAME 状态,玩家将被添加到旁观者模式。 如果游戏正在开始或结束,它将不起作用,您将在Messages.Cannot-Spectate收到消息。
可以通过命令添加旁观者生成位置
- /wizards setLocation <竞技场> SPEC_SPAWN
道具(新!)
目前只有 1 种道具类型,但您可以通过 API 添加自己的道具,见下文。
将来会添加更多的 Powerups。
积分通电
- 它将为拾取它的玩家的团队添加点数,您可以修改点数和重生延迟。
- 默认延迟:180000 = 180s
- 默认点数:150
- 修改配置文件中的所有内容,Options.Game.Powerups.Points 和语言文件中的 Powerups 部分。
要创建您自己的 Powerup,请创建一个 扩展 Powerup 的新类,示例:
代码(文本) : } @Override protected Item respawnPowerup(Location location) { return null; } @Override protected void onPlayerPickup(Player player) { } } 现在,您可以创建 Powerup Item 和 Powerup Action。 标识符是地图配置中的名称,也是您将用于通过命令添加 Powerup 位置的名称。 代码(文本): public class MyPowerup extends Powerup {
public MyPowerup(Location location, long interval) {
super(“MYPOWERUP”, location, interval);
}
@Override
protected Item respawnPowerup(Location location) {
Item item = location.getWorld().dropItem(location, new ItemStack(Material.BLAZE_POWDER));
item.setVelocity(new Vector(0, 0, 0));
item.teleport(location.clone().add(.5, 0, .5));
归还物品;
}
@Override
protected void onPlayerPickup(Player player) {
GamePlayer.get(player).setMana(99);
player.sendMessage(ChatColor.RED + “填充你的法力!”);
就是
这样
!你现在有了自己的道具。
现在,您需要注册 Powerup Spawn 并将其添加到您的游戏中。您将需要使用为此创建的新事件:GameArenaLoadEvent。
您将需要访问 GameArena 和包含每种 Powerup 类型位置的地图,这使开发人员更容易使用这种方式。
代码(文本):
@EventHandler
public void onArenaLoad(GameArenaLoadEvent e) {
e.getGame().registerPowerupSpawn(“MYPOWERUP”);
e.getGame().getGameArena().getPowerups().get(“MYPOWERUP”).forEach(location ->
e.getGame().getPowerups().add(new MyPowerup(location, 15000L)));
生成
由游戏自动处理。
它完成了。
您现在可以使用命令将通电添加到竞技场。
对于开发人员,这里有一个简短的说明,确保你所有的 Powerup 名称都是大写的,这不是一个机制限制,它只是为了在设置竞技场和从配置文件中获取名称时更容易。
对于正在设置 arena 的管理员,它不符合要求,您可以使用大写或小写,无论如何它都会转换为大写。
额外权限
- wizards.joinfull – 允许您加入完整的游戏。
- wizards.kits.all – 访问所有课程/工具包。
常见问题
FPS 不稳定
这是 minecraft 方面的问题,我无能为力。
在配置中禁用烟花、爆炸和掉落的方块应该会有所帮助。
(这在 v3.0 中已修复)
代码(文本):
由:java.lang.IllegalArgumentException:没有枚举常量 org.bukkit.Sound…..
如何解决:
如果您使用的是 1.9 或更高版本,则您有将options.yml中的所有声音值更改为 1.9。
请不要将/reload与向导一起使用。
声音列表
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
药水效果类型
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
材料清单
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html