Compare commits

...

5 Commits

Author SHA1 Message Date
彼梦Archi 4ebfcec051 feat: Add Chinese handbook translation (by ArchiDreamZ) (#865)
has been used by many people and is guaranteed to be correct.
2025-03-28 22:05:55 +01:00
ArchiDreamZ 0c2da4fb81 Fixed a crash when switching spells (#839)
Switching spells causes ArrayIndexOutOfBoundsException: -1 when the next spell is empty.I made a simple fix
2024-03-27 22:17:46 +01:00
glowredman 2655d5c2ae [1.7.10] Fix incompatibility with unofficial NEI (#823)
* Update buildscript

Gradle update done via `gradlew wrapper --gradle-version=4.4.1`

* Move NEI around GUI
2024-03-27 22:17:01 +01:00
ArchiDreamZ 4cbfafaf6d Add Simplified Chinese translation by ArchiDreamZ (#840)
Add Simplified Chinese translation
I fixed a very common crash in another pull request, hope you can update again
2024-03-27 22:15:33 +01:00
WinDanesz 98997d90ac Fake players don't drop spell books (#818)
Magic shouldn't be automated

Co-authored-by: DrParadox7 <47131096+DrParadox7@users.noreply.github.com>
2022-07-09 23:29:24 +02:00
11 changed files with 1175 additions and 122 deletions
+18 -22
View File
@@ -3,7 +3,7 @@ buildscript {
mavenCentral()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
url = "https://maven.minecraftforge.net/"
}
maven {
name = "sonatype"
@@ -15,14 +15,16 @@ buildscript {
}
}
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'forge'
version = " 1.1.4 - MC 1.7.10"
group= "electroblob.wizardry"// http://maven.apache.org/guides/mini/guide-naming-conventions.html
version = " 1.1.5 - MC 1.7.10"
group = "electroblob.wizardry"// http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "Electroblob's Wizardry "
minecraft {
version = "1.7.10-10.13.4.1558-1.7.10"
version = "1.7.10-10.13.4.1614-1.7.10"
runDir = "eclipse"
}
@@ -41,24 +43,18 @@ artifacts {
archives jar
}
dependencies {
// you may put jars on which you depend on in ./libs
// or you may define them like so..
//compile "some.group:artifact:version:classifier"
//compile "some.group:artifact:version"
// real examples
//compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
//compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
// for more info...
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
repositories {
maven {
name 'ChickenBones maven'
url 'https://chickenbones.net/maven/'
}
}
processResources
{
dependencies {
compileOnly 'codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev'
}
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
@@ -66,11 +62,11 @@ processResources
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
Binary file not shown.
+1 -2
View File
@@ -1,6 +1,5 @@
#Wed Jul 02 15:54:47 CDT 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip
Vendored
+59 -51
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
##############################################################################
##
@@ -6,47 +6,6 @@
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
@@ -61,9 +20,49 @@ while [ -h "$PRG" ] ; do
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -90,7 +89,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -114,6 +113,7 @@ fi
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
@@ -154,11 +154,19 @@ if $cygwin ; then
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
APP_ARGS=$(save "$@")
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"
Vendored
+4 -10
View File
@@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -46,10 +46,9 @@ echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
@@ -60,11 +59,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
@@ -93,7 +93,7 @@ public class WandHelper {
int selectedSpell = wand.stackTagCompound.getInteger(SELECTED_SPELL_KEY);
if(selectedSpell < spells.length){
if(selectedSpell < spells.length && selectedSpell >= 0){
return spells[selectedSpell];
}
}
@@ -801,7 +801,7 @@ public class WizardryEventHandler {
@SubscribeEvent
public void onLivingDropsEvent(LivingDropsEvent event){
// Evil wizards drop spell books themselves
if(event.entityLiving instanceof EntityMob && !(event.entityLiving instanceof EntityEvilWizard) && event.source.getEntity() instanceof EntityPlayer && Wizardry.spellBookDropChance > 0){
if(event.entityLiving instanceof EntityMob && !(event.entityLiving instanceof EntityEvilWizard) && event.source.getEntity() instanceof EntityPlayer && !(event.source.getEntity() instanceof FakePlayer) && Wizardry.spellBookDropChance > 0){
// This does exactly what the entity drop method does, but with a different random number so that the
// spell book doesn't always drop with other rare drops.
@@ -1,21 +1,15 @@
package electroblob.wizardry.client;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import codechicken.nei.VisiblityData;
import codechicken.nei.api.INEIGuiHandler;
import codechicken.nei.api.TaggedInventoryArea;
import cpw.mods.fml.common.Optional.Interface;
import cpw.mods.fml.common.Optional.Method;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import electroblob.wizardry.ExtendedPlayer;
import electroblob.wizardry.SpellGlyphData;
import electroblob.wizardry.WandHelper;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.WizardryGuiHandler;
import electroblob.wizardry.item.ItemWand;
import electroblob.wizardry.packet.PacketControlInput;
import electroblob.wizardry.packet.WizardryPacketHandler;
@@ -23,32 +17,39 @@ import electroblob.wizardry.spell.Spell;
import electroblob.wizardry.tileentity.ContainerArcaneWorkbench;
import electroblob.wizardry.tileentity.SlotWizardry;
import electroblob.wizardry.tileentity.TileEntityArcaneWorkbench;
import java.awt.Rectangle;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
public class GuiArcaneWorkbench extends GuiContainer {
@Interface(iface = "codechicken.nei.api.INEIGuiHandler", modid = "NotEnoughItems")
public class GuiArcaneWorkbench extends GuiContainer implements INEIGuiHandler {
private GuiButton applyBtn;
private static final ResourceLocation texture = new ResourceLocation(Wizardry.MODID, "textures/gui/arcane_workbench.png");
private IInventory playerInventory;
private IInventory arcaneWorkbenchInventory;
private final int tooltipWidth = 164;
private static final int tooltipWidth = 164;
private static final int tooltipHeight = 155;
public GuiArcaneWorkbench(InventoryPlayer invPlayer, TileEntityArcaneWorkbench entity) {
super(new ContainerArcaneWorkbench(invPlayer, entity));
@@ -61,16 +62,7 @@ public class GuiArcaneWorkbench extends GuiContainer {
@Override
public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_){
// Tests if there is a wand in the workbench and edits the positioning accordingly
if(this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getHasStack() && this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getStack().getItem() instanceof ItemWand){
guiLeft = (this.width - this.xSize - tooltipWidth)/2;
this.applyBtn.xPosition = (this.width - tooltipWidth)/2 + 48;
}else{
guiLeft = (this.width - this.xSize)/2;
this.applyBtn.xPosition = this.width/2 + 48;
}
if(this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getHasStack()){
if(this.hasWand()){
this.applyBtn.enabled = true;
}else{
this.applyBtn.enabled = false;
@@ -87,7 +79,7 @@ public class GuiArcaneWorkbench extends GuiContainer {
this.fontRendererObj.drawString(this.arcaneWorkbenchInventory.hasCustomInventoryName() ? this.arcaneWorkbenchInventory.getInventoryName() : I18n.format(this.arcaneWorkbenchInventory.getInventoryName()), 8, 6, 4210752);
this.fontRendererObj.drawString(this.playerInventory.hasCustomInventoryName() ? this.playerInventory.getInventoryName() : I18n.format(this.playerInventory.getInventoryName()), 8, this.ySize - 96 + 2, 4210752);
if(this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getHasStack() && this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getStack().getItem() instanceof ItemWand){
if(this.hasWand()){
ItemStack wand = this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getStack();
@@ -156,7 +148,7 @@ public class GuiArcaneWorkbench extends GuiContainer {
}
// Tooltip only drawn if there is a wand
if(this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getHasStack() && this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getStack().getItem() instanceof ItemWand){
if(this.hasWand()){
// Tooltip box
drawTexturedModalRect(guiLeft + xSize, guiTop, xSize, 0, 256 - xSize - 4, ySize);
@@ -191,8 +183,8 @@ public class GuiArcaneWorkbench extends GuiContainer {
if(level > 0){
ItemStack stack = new ItemStack(item, level);
this.itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), stack, guiLeft + xSize + 6 + x, y);
this.itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), stack, guiLeft + xSize + 6 + x, y);
itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), stack, guiLeft + xSize + 6 + x, y);
itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), stack, guiLeft + xSize + 6 + x, y);
x += 18;
}
}
@@ -222,7 +214,8 @@ public class GuiArcaneWorkbench extends GuiContainer {
}
}
public void initGui()
@SuppressWarnings("unchecked")
public void initGui()
{
this.mc.thePlayer.openContainer = this.inventorySlots;
this.guiLeft = (this.width - this.xSize) / 2;
@@ -263,7 +256,8 @@ public class GuiArcaneWorkbench extends GuiContainer {
return par5 >= par1 - 1 && par5 < par1 + par3 + 1 && par6 >= par2 - 1 && par6 < par2 + par4 + 1;
}
protected void drawItemStackTooltip(ItemStack par1ItemStack, int par2, int par3)
@SuppressWarnings({ "rawtypes", "unchecked" })
protected void drawItemStackTooltip(ItemStack par1ItemStack, int par2, int par3)
{
List list = par1ItemStack.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips);
@@ -283,7 +277,8 @@ public class GuiArcaneWorkbench extends GuiContainer {
drawHoveringText(list, par2, par3, (font == null ? fontRendererObj : font));
}
protected void drawHoveringText(List par1List, int par2, int par3, FontRenderer font)
@SuppressWarnings("rawtypes")
protected void drawHoveringText(List par1List, int par2, int par3, FontRenderer font)
{
if (!par1List.isEmpty())
{
@@ -360,5 +355,71 @@ public class GuiArcaneWorkbench extends GuiContainer {
}
}
/**
* @return A list of TaggedInventoryAreas that will be used with the savestates.
*/
@Method(modid = "NotEnoughItems")
@Override
public List<TaggedInventoryArea> getInventoryAreas(GuiContainer gui) {
return Collections.emptyList();
}
/**
* NEI will give the specified item to the InventoryRange returned if the player's inventory is full.
* Should not return null, just an empty list
*/
@Method(modid = "NotEnoughItems")
@Override
public Iterable<Integer> getItemSpawnSlots(GuiContainer gui, ItemStack item) {
return Collections.emptyList();
}
/**
* Handles clicks while an itemstack has been dragged from the item panel. Use this to set configurable slots and the like.
* Changes made to the stackSize of the dragged stack will be kept
* @param gui The current gui instance
* @param mousex The x position of the mouse
* @param mousey The y position of the mouse
* @param draggedStack The stack being dragged from the item panel
* @param button The button presed
* @return True if the drag n drop was handled. False to resume processing through other routes. The held stack will be deleted if draggedStack.stackSize == 0
*/
@Method(modid = "NotEnoughItems")
@Override
public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button) {
return false;
}
/**
* Used to prevent the item panel from drawing on top of other gui elements.
* This function will also be called with a 1x1 size rectangle on the mouse position for determining if the given coordinate should override item panel functions such as scrolling
* @param x The x coordinate of the rectangle bounding the slot
* @param y The y coordinate of the rectangle bounding the slot
* @param w The w coordinate of the rectangle bounding the slot
* @param h The h coordinate of the rectangle bounding the slot
* @return true if the item panel slot within the specified rectangle should not be rendered.
*/
@Method(modid = "NotEnoughItems")
@Override
public boolean hideItemPanelSlot(GuiContainer gui, int x, int y, int w, int h) {
if(this.hasWand()) {
Rectangle itemPanel = new Rectangle(x, y, w, h);
Rectangle tooltip = new Rectangle(this.guiLeft + this.xSize, this.guiTop, tooltipWidth, tooltipHeight);
return itemPanel.intersects(tooltip);
}
return false;
}
@Method(modid = "NotEnoughItems")
@Override
public VisiblityData modifyVisiblity(GuiContainer gui, VisiblityData currentVisibility) {
return currentVisibility;
}
private boolean hasWand() {
return this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getHasStack()
&& this.inventorySlots.getSlot(ContainerArcaneWorkbench.WAND_SLOT).getStack().getItem() instanceof ItemWand;
}
}
@@ -0,0 +1,770 @@
tile.arcaneWorkbench.name=奥术工作台
tile.crystalOre.name=水晶矿
tile.petrifiedStone.name=石化石像
tile.iceStatue.name=冰雕
tile.crystalFlower.name=水晶花
tile.snare.name=陷阱
tile.transportationStone.name=传送石
tile.spectralBlock.name=幽冥块
tile.crystalBlock.name=水晶块
item.magicCrystal.name=魔法水晶
item.magicWand.name=法杖
item.apprenticeWand.name=学徒法杖
item.advancedWand.name=进阶法杖
item.masterWand.name=大师法杖
item.spellBook.name=魔法书
item.arcaneTome.name=奥法宝典
item.arcaneTome.desc1=升级需要 %1$s
item.arcaneTome.desc2=法杖升级至 %1$s 级
item.wizardHandbook.name=巫师手册
item.wizardHandbook.desc=编写于 %1$s
item.wand.buff=+%1$s %2$s 能力
item.wand.spell=当前法术: %1$s
item.wand.mana=魔力: %1$s/%2$s
item.wand.addally=%1$s 已添加到你的盟友名单中
item.wand.removeally=%1$s 已从你的盟友名单中移除
item.basicFireWand.name=烈焰法杖
item.basicIceWand.name=冰霜法杖
item.basicLightningWand.name=雷电法杖
item.basicNecromancyWand.name=死灵法杖
item.basicEarthWand.name=大地法杖
item.basicSorceryWand.name=秘术法杖
item.basicHealingWand.name=治愈法杖
item.apprenticeFireWand.name=学徒烈焰法杖
item.apprenticeIceWand.name=学徒冰霜法杖
item.apprenticeLightningWand.name=学徒雷电法杖
item.apprenticeNecromancyWand.name=学徒死灵法杖
item.apprenticeEarthWand.name=学徒大地法杖
item.apprenticeSorceryWand.name=学徒秘术法杖
item.apprenticeHealingWand.name=学徒治愈法杖
item.advancedFireWand.name=进阶烈焰法杖
item.advancedIceWand.name=进阶冰霜法杖
item.advancedLightningWand.name=进阶雷电法杖
item.advancedNecromancyWand.name=进阶死灵法杖
item.advancedEarthWand.name=进阶大地法杖
item.advancedSorceryWand.name=进阶秘术法杖
item.advancedHealingWand.name=进阶治愈法杖
item.masterFireWand.name=大师烈焰法杖
item.masterIceWand.name=大师冰霜法杖
item.masterLightningWand.name=大师雷电法杖
item.masterNecromancyWand.name=大师死灵法杖
item.masterEarthWand.name=大师大地法杖
item.masterSorceryWand.name=大师秘术法杖
item.masterHealingWand.name=大师治愈法杖
item.spectralSword.name=幽冥剑
item.spectralPickaxe.name=幽冥稿
item.spectralBow.name=幽冥弓
item.manaFlask.name=魔力瓶
item.storageUpgrade.name=法杖存储升级
item.siphonUpgrade.name=法杖汲取升级
item.condenserUpgrade.name=法杖聚光升级
item.rangeUpgrade.name=法杖范围升级
item.durationUpgrade.name=法杖时限升级
item.cooldownUpgrade.name=法杖冷却升级
item.blastUpgrade.name=法杖爆破升级
item.attunementUpgrade.name=法杖协调升级
item.flamingAxe.name=炽烈之斧
item.frostAxe.name=冰霜之斧
item.firebomb.name=燃烧弹
item.poisonBomb.name=毒液弹
item.smoke_bomb.name=烟雾弹
item.blankScroll.name=空白卷轴
item.scroll.name=卷轴 %1$s
item.scroll.undiscovered.name=卷轴 "%1$s"
item.identification_scroll.name=鉴定卷轴
item.identification_scroll.desc1=%1$s 鉴定未知的
item.identification_scroll.desc2=%1$s 法术书或卷轴
item.identification_scroll.nothing_to_identify=没有可以鉴定的东西!
item.armourUpgrade.name=奥术戳记:保护
item.armourUpgrade.desc1=%1$s 升级任何巫师护甲
item.armourUpgrade.desc2=%1$s 使其达到 %2$s 传奇
item.magicSilk.name=魔法丝绸
item.wizardArmour.legendary=传奇
item.wizardArmour.buff=-%1$s %2$s 消耗
item.wizardArmour.mana=魔力: %1$s/%2$s
item.wizard_hat.name=巫师帽
item.wizard_robe.name=巫师法袍
item.wizard_leggings.name=巫师护腿
item.wizard_boots.name=巫师靴子
item.wizard_hat_fire.name=烈焰法师帽子
item.wizard_robe_fire.name=烈焰法师法袍
item.wizard_leggings_fire.name=烈焰法师护腿
item.wizard_boots_fire.name=烈焰法师靴子
item.wizard_hat_ice.name=冰霜法师帽子
item.wizard_robe_ice.name=冰霜法师法袍
item.wizard_leggings_ice.name=冰霜法师护腿
item.wizard_boots_ice.name=冰霜法师靴子
item.wizard_hat_lightning.name=雷电法师帽子
item.wizard_robe_lightning.name=雷电法师法袍
item.wizard_leggings_lightning.name=雷电法师护腿
item.wizard_boots_lightning.name=雷电法师靴子
item.wizard_hat_necromancy.name=死灵法师帽子
item.wizard_robe_necromancy.name=死灵法师法袍
item.wizard_leggings_necromancy.name=死灵法师护腿
item.wizard_boots_necromancy.name=死灵法师靴子
item.wizard_hat_earth.name=大地法师帽子
item.wizard_robe_earth.name=大地法师法袍
item.wizard_leggings_earth.name=大地法师护腿
item.wizard_boots_earth.name=大地法师靴子
item.wizard_hat_sorcery.name=秘术法师帽子
item.wizard_robe_sorcery.name=秘术法师法袍
item.wizard_leggings_sorcery.name=秘术法师护腿
item.wizard_boots_sorcery.name=秘术法师靴子
item.wizard_hat_healing.name=治愈法师帽子
item.wizard_robe_healing.name=治愈法师法袍
item.wizard_leggings_healing.name=治愈法师护腿
item.wizard_boots_healing.name=治愈法师靴子
item.spawn_wizard.name=生成巫师
item.spawn_evil_wizard.name=生成邪恶巫师
item.spectral_helmet.name=幽冥头盔
item.spectral_chestplate.name=幽冥胸甲
item.spectral_leggings.name=幽冥护腿
item.spectral_boots.name=幽冥靴子
entity.wizardry.summonedcreature.nameplate=%1$s 的 %2$s
entity.wizardry.Zombie Minion.name=僵尸
entity.wizardry.Skeleton Minion.name=骷髅
entity.wizardry.Spider Minion.name=蜘蛛
entity.wizardry.Blaze Minion.name=烈焰人
entity.wizardry.Ice Wraith.name=冰封幽灵
entity.wizardry.Lightning Wraith.name=光明幽灵
entity.wizardry.Shadow Wraith.name=暗影幽灵
entity.wizardry.Spirit Wolf.name=精灵狼
entity.wizardry.Spirit Horse.name=精灵马
entity.wizardry.Ice Giant.name=冰封巨人
entity.wizardry.Phoenix.name=凤凰
entity.wizardry.Wizard.name=巫师
entity.wizardry.Magic Slime.name=魔法史莱姆
entity.wizardry.Silverfish Minion.name=蠹虫
entity.wizardry.Storm Elemental.name=雷电元素
entity.wizardry.Evil Wizard.name=巫师
entity.wizardry.Decoy.name=诱饵
entity.wizardry.Magic Missile.name=魔法
entity.wizardry.Arc.name=魔法
entity.wizardry.Spark Bomb.name=魔法
entity.wizardry.Ice Shard.name=魔法
entity.wizardry.Firebomb.name=魔法
entity.wizardry.Poison Bomb.name=魔法
entity.wizardry.Force Orb.name=魔法
entity.wizardry.Spark.name=魔法
entity.wizardry.Darkness Orb.name=魔法
entity.wizardry.Fire Sigil.name=魔法
entity.wizardry.Frost Sigil.name=魔法
entity.wizardry.Lightning Sigil.name=魔法
entity.wizardry.Lightning Arrow.name=魔法
entity.wizardry.Firebolt.name=魔法
entity.wizardry.Ice Charge.name=魔法
entity.wizardry.Force Arrow.name=魔法
entity.wizardry.Dart.name=魔法
entity.wizardry.Lightning Disc.name=魔法
entity.wizardry.Thunderbolt.name=魔法
entity.wizardry.Decay.name=魔法
entity.wizardry.Ice Lance.name=魔法
entity.wizardry.Smoke Bomb.name=魔法
entity.wizardry.Ice Spike.name=魔法
entity.wizardry.Black Hole.name=黑洞
entity.wizardry.Shield.name=盾
entity.wizardry.Meteor.name=陨石
entity.wizardry.Blizzard.name=暴雪
entity.wizardry.Bubble.name=气泡
entity.wizardry.Tornado.name=飓风
entity.wizardry.Lightning Hammer.name=雷神之锤
entity.wizardry.Arrow Rain.name=雨
entity.wizardry.Healing Aura.name=治疗灵气
entity.wizardry.Forcefield.name=力场护盾
entity.wizardry.Ring of Fire.name=火环
entity.wizardry.Earthquake.name=地震
entity.wizardry.Falling Grass.name=落草
entity.wizardry.Hailstorm.name=冰雹风暴
entity.wizardry.Lightning Pulse.name=闪电脉冲
itemGroup.wizardry=巫术学
itemGroup.wizardryspells=卷轴
achievement.Crystal=一个奇异的水晶...
achievement.Crystal.desc=挖掘一个魔法水晶
achievement.ArcaneInitiate=奥术启程
achievement.ArcaneInitiate.desc=利用金锭,木棍和魔法水晶制造一根法杖
achievement.Apprentice=见习巫师
achievement.Apprentice.desc=使用奥法宝典来升级你的法杖
achievement.Master=大师级巫师
achievement.Master.desc=获得大师级法杖
achievement.AllSpells=巫师的自我修养
achievement.AllSpells.desc=在游戏中施放所有法术
achievement.WizardTrade=魔法交易
achievement.WizardTrade.desc=向巫师购买物品
achievement.BuyMasterSpell=知识就是力量
achievement.BuyMasterSpell.desc=向巫师购买一个大师级卷轴
achievement.FreezeBlaze=现在不太热了
achievement.FreezeBlaze.desc=把烈焰人冻成傻子
achievement.ChargeCreeper=它要炸了
achievement.ChargeCreeper.desc='意外' 捕获爬行者
achievement.Frankenstein=弗兰肯斯坦
achievement.Frankenstein.desc=用闪电法术将猪变成僵尸猪人
achievement.SpecialUpgrade=奥术工匠
achievement.SpecialUpgrade.desc=对法杖进行特殊升级
achievement.CraftFlask=这是魔力,装瓶!
achievement.CraftFlask.desc=制作一个魔力瓶
achievement.Elemental=元素
achievement.Elemental.desc=获得元素法杖
achievement.ArmourSet=现在你是一个正确的巫师
achievement.ArmourSet.desc=制作并装备全套巫师护具
achievement.Legendary=传奇!
achievement.Legendary.desc=获得一件传奇级装备
achievement.SelfDestruct=真是倒霉
achievement.SelfDestruct.desc=被自己的魔法杀死
achievement.PigTornado=不会再...
achievement.PigTornado.desc=骑着猪卷进飓风
achievement.JamWizard=扰乱会议
achievement.JamWizard.desc=对一个巫师使用奥术干扰
achievement.SlimeSkeleton=棘手局面
achievement.SlimeSkeleton.desc=利用史莱姆吞噬骷髅
achievement.AngerWizard=你会后悔的
achievement.AngerWizard.desc=使一个巫师发怒
achievement.DefeatEvilWizard=正义降临
achievement.DefeatEvilWizard.desc=击败邪恶巫师
achievement.MaxOutWand=整装上阵
achievement.MaxOutWand.desc=将大师级法杖升级到最强
achievement.ElementMaster=元素掌控
achievement.ElementMaster.desc=施放任何元素的法术
achievement.IdentifySpell=奥术鉴定
achievement.IdentifySpell.desc=使用鉴定卷轴来鉴定法术书或卷轴
tile.transportationStone.confirm=施展法术时你将会回到这里 %1$s
tile.transportationStone.invalid=你必须先将八个传送石围成圆圈!
container.arcaneWorkbench=奥术工作台
container.arcaneWorkbench.apply=应用
container.arcaneWorkbench.mana=魔力:
container.arcaneWorkbench.upgrades=应用升级:
tier.basic=新手
tier.apprentice=学徒
tier.advanced=进阶
tier.master=大师
element.simple=无
element.fire=火
element.ice=冰
element.lightning=雷电
element.necromancy=死灵
element.earth=大地
element.sorcery=秘术
element.healing=治愈
element.simple.wizard=巫师
element.fire.wizard=烈焰法师
element.ice.wizard=冰霜法师
element.lightning.wizard=雷电法师
element.necromancy.wizard=死灵法师
element.earth.wizard=大地法师
element.sorcery.wizard=秘术法师
element.healing.wizard=治愈法师
spelltype.attack=攻击
spelltype.defence=防御
spelltype.utility=实用
spelltype.minion=仆从
spell.disabled=%1$s 已在配置文件中禁用
spell.resist=%1$s 排斥 %2$s
spell.discover=发现了这个法术 %1$s
spell.agility=敏捷
spell.arc=电弧
spell.arcane_jammer=奥术干扰
spell.arrow_rain=箭雨
spell.banish=驱逐
spell.black_hole=黑洞
spell.blink=闪现
spell.blizzard=暴雪
spell.bubble=气泡
spell.chain_lightning=连锁闪电
spell.clairvoyance=识途
spell.cobwebs=结网
spell.conjure_armour=唤魔护甲
spell.conjure_bow=唤魔弓
spell.conjure_pickaxe=唤魔镐子
spell.conjure_sword=唤魔剑
spell.cure_effects=效果清空
spell.curse_of_soulbinding=魂链诅咒
spell.darkness_orb=凋逝影珠
spell.darkvision=黑暗视觉
spell.dart=飞镖
spell.decay=腐化
spell.decoy=诱饵
spell.detonate=魔爆术
spell.diamondflesh=金刚不坏
spell.earthquake=撼地之力
spell.entrapment=黑暗气泡
spell.fireball=火球术
spell.firebolt=焰矢术
spell.firebomb=燃烧弹
spell.fire_resistance=抗火
spell.fire_sigil=火之印记
spell.fireskin=狱炎肌肤
spell.firestorm=烈焰风暴
spell.flame_ray=火焰射线
spell.flaming_axe=炽烈之斧
spell.flaming_weapon=火焰灌注
spell.flight=自然之翼
spell.font_of_mana=魔法圣池
spell.font_of_vitality=生命圣池
spell.force_arrow=原力箭矢
spell.forcefield=力场护盾
spell.force_orb=原力球体
spell.forests_curse=森林诅咒
spell.freeze=冻结
spell.freezing_weapon=冰霜灌注
spell.frost_axe=冰霜之斧
spell.frost_ray=冰霜射线
spell.frost_sigil=寒霜印记
spell.glide=滑翔
spell.greater_fireball=大火球术
spell.greater_heal=强效治疗
spell.group_heal=团体治疗
spell.growth_aura=生长光环
spell.hailstorm=冰雹风暴
spell.heal=轻伤治愈
spell.heal_ally=治愈盟友
spell.healing_aura=治愈光环
spell.homing_spark=追踪闪电
spell.ice_age=冰霜纪元
spell.ice_charge=冰霜冲击
spell.ice_lance=冰霜长矛
spell.ice_shard=冰霜碎片
spell.ice_shroud=冰霜护体
spell.ice_spikes=冰霜尖刺
spell.ice_statue=冰雕
spell.ignite=点燃
spell.imbue_weapon=武器淬炼
spell.intimidate=恐吓
spell.invigorating_presence=鼓舞之心
spell.invisibility=隐形
spell.invoke_weather=祈雨
spell.ironflesh=钢筋铁骨
spell.leap=跳跃
spell.levitation=漂浮
spell.life_drain=生命汲取
spell.light=荧光闪烁
spell.lightning_arrow=闪电箭矢
spell.lightning_bolt=落雷
spell.lightning_disc=闪电轮盘
spell.lightning_hammer=雷神之锤
spell.lightning_pulse=闪电脉冲
spell.lightning_ray=闪电射线
spell.lightning_sigil=闪电印记
spell.lightning_web=电网
spell.magic_missile=魔法飞弹
spell.metamorphosis=拟态
spell.meteor=烈火陨星
spell.mind_control=精神控制
spell.mind_trick=心灵欺诈
spell.none=[空槽]
spell.oakflesh=苍劲如松
spell.petrify=石化
spell.phase_step=相位跳跃
spell.plague_of_darkness=黑暗瘟疫
spell.pocket_furnace=口袋熔炉
spell.pocket_workbench=口袋工作台
spell.poison=毒化
spell.poison_bomb=毒液弹
spell.replenish_hunger=饱食恢复
spell.ring_of_fire=火环
spell.shadow_ward=暗影护盾
spell.shield=护盾术
spell.shockwave=冲击波
spell.silverfish_swarm=蠹虫群
spell.sixth_sense=第六感
spell.slime=史莱姆
spell.smoke_bomb=烟雾弹
spell.snare=自然陷阱
spell.snowball=雪球
spell.spark_bomb=电击弹
spell.spectral_pathway=幽灵之径
spell.spider_swarm=蜘蛛群
spell.static_aura=静电力场
spell.summon_blaze=召唤烈焰人
spell.summon_ice_giant=召唤冰封巨人
spell.summon_ice_wraith=召唤冰封幽灵
spell.summon_iron_golem=召唤铁傀儡
spell.summon_lightning_wraith=召唤闪电幽灵
spell.summon_phoenix=召唤凤凰
spell.summon_shadow_wraith=召唤暗影幽灵
spell.summon_skeleton=召唤骷髅
spell.summon_skeleton_legion=召唤骷髅军团
spell.summon_snow_golem=召唤雪傀儡
spell.summon_spirit_horse=召唤幽灵马
spell.summon_spirit_wolf=召唤幽灵狼
spell.summon_storm_elemental=召唤风暴元素
spell.summon_wither_skeleton=召唤凋灵骷髅
spell.summon_zombie=召唤僵尸
spell.telekinesis=隔空取物
spell.thunderbolt=电流投掷
spell.thunderstorm=千雷怒啸
spell.tornado=龙卷风
spell.transience=超凡
spell.transportation=传送
spell.vanishing_box=幻灭之盒
spell.wall_of_frost=凛冬霜垒
spell.water_breathing=水下呼吸
spell.whirlwind=疾风
spell.wither=凋零
spell.wither_skull=凋灵之首
spell.agility.desc=为施术者提供更快的移速和更高的跳跃高度,持续时间30秒。
spell.arc.desc=向目标发射闪电,
spell.arcane_jammer.desc=使目标15秒内无法使用魔法。
spell.arrow_rain.desc=“弓箭手,射击!”
spell.banish.desc=强制目标传送至随机位置。
spell.black_hole.desc=撕裂现实。
spell.blink.desc=将施术者远距离传送至其指向的地方。
spell.blizzard.desc=创建一个旋转的冰封地带,减缓并持续伤害困在里面的任何东西。施术者免受伤害,但仍受到减速影响。
spell.bubble.desc=射出一股气泡,击中的目标会向上漂浮。在一段时间后坠落并且受到伤害。
spell.chain_lightning.desc=向目标发射闪电,能够向额外目标跳跃至多两次。
spell.clairvoyance.desc=创建一条通向被记录的的坐标的道路。选择此法术后,潜行右键来点击一个方块设置坐标,通常施展此法术来创建道路。该道路将在90秒后消失。
spell.cobwebs.desc=在你指向的地方生成蜘蛛网,极大减慢被困住的生物的移动速度,如果未被破坏,蛛网将在20秒后消失。
spell.conjure_armour.desc=在施术者身上制造幽冥护甲,与铁护甲等效。护甲持续60秒,施术者必须要有一个空装备槽。
spell.conjure_bow.desc=创建一个无限箭矢的幽冥弓,持续时间30秒。
spell.conjure_pickaxe.desc=创建一个与铁镐等效的幽冥镐,持续时间30秒。
spell.conjure_sword.desc=创建一把与铁剑等效的幽冥剑,持续时间30秒。
spell.cure_effects.desc=移除施术者目前的任何药水效果,不论好坏。
spell.curse_of_soulbinding.desc=使目标的灵魂与施术者的灵魂绑定,意味施术者受到的伤害会转移给受害者,直到受害者或者施术者死亡。
spell.darkness_orb.desc=向你指的方向发射一到移动缓慢的黑暗能量,无论击中什么,其都会凋零。
spell.darkvision.desc=给予施术者夜视45秒。
spell.dart.desc=向你指的方向发射飞镖,伤害并削弱目标。
spell.decay.desc=在地表制造腐化,任何生物接触都会受到感染,随着时间流逝而持续造成伤害,并且受害者行走过的地面会蔓延更多的腐化。
spell.decoy.desc=创建一个施术者幻影,用来吸引怪物仇恨,30秒后诱饵消失。
spell.detonate.desc=在你指向的地方发生爆炸,如果附近有生物或者施术者距离太近,也会受到伤害。
spell.diamondflesh.desc=“你的箭矢就是在挠痒痒!”
spell.earthquake.desc=一个真正的大地大法师可以令沧海化为桑田。
spell.entrapment.desc=将目标陷入黑暗,其将被向上牵引并不断地受到伤害。
spell.fireball.desc=朝你指的方向发射一个火球。
spell.firebolt.desc=向你面前一小段距离喷射火焰。
spell.firebomb.desc=在你指的方向投掷一个燃烧瓶,在撞击时爆炸并让目标着火。
spell.fire_resistance.desc=施术者防火30秒。
spell.fire_sigil.desc=在地上放置一个魔法火焰陷阱,它会伤害并点燃触发它的生物。
spell.fireskin.desc=将施术者笼罩在火焰中30秒,任何攻击都会使攻击者自燃。
spell.firestorm.desc=“吾乃巨龙。”
spell.flame_ray.desc=在你指的方向产生一股火焰,它会持续点燃并伤害目标。
spell.flaming_axe.desc=制造一把燃烧的斧头,击中敌人会使其着火,持续时间30秒。
spell.flaming_weapon.desc=暂时性地将火焰的力量附加在快捷栏的第一件武器上,武器能使受害者着火,法术在45秒后失效。
spell.flight.desc=像鹰一样翱翔。
spell.font_of_mana.desc=“我们充满了强大的魔法能量,它似乎是来自...”-摘自一位被遗忘的法师的日志中,该页面的其余部分已经被烧毁。
spell.font_of_vitality.desc=令人惊讶的感觉。
spell.force_arrow.desc=在你指向的地方射出一根强有力的箭矢。
spell.forcefield.desc=在你的周围生成一个能够排斥生物和偏移弹射物的力场。
spell.force_orb.desc=发射一个力场,在受到撞击时会伤害并排斥附近的生物。
spell.forests_curse.desc=“你胆敢踏入我的森林!”
spell.freeze.desc=冰冻目标10秒,也能把水冻结和在地表造雪。
spell.freezing_weapon.desc=暂时性地将冰霜的力量附加在快捷栏的第一件武器上,武器能使受害者冻伤,法术在45秒后失效。
spell.frost_axe.desc=制造一把冰霜之斧,击中敌人时将其冻伤,持续时间30秒。
spell.frost_ray.desc=在你指向的地方制造一股霜冻流,可将目标减慢并持续伤害。
spell.frost_sigil.desc=在地表放置一个魔法冰封陷阱,触发陷阱的生物会被冻结并受到伤害。
spell.glide.desc=允许施术者在空中按住使用按钮向下滑行。
spell.greater_fireball.desc=在你指向的方向发射一个大火球,在受到碰撞时发生爆炸。
spell.greater_heal.desc=治疗施术者四颗心。
spell.group_heal.desc=治疗施术者、附近的盟友和召唤生物三颗心。
spell.growth_aura.desc=加速施术者附近作物的生长,还能在草地上长杂草和花朵。
spell.hailstorm.desc=正是在第三纪元的凛冬,冰霜法师发现了他们真正的力量。
spell.heal.desc=治疗施术者两颗心。
spell.heal_ally.desc=治疗目标两颗半心。
spell.healing_aura.desc=创建一个治疗能量力场,可以治疗内部的任何盟友。治疗力场内任何不死属性的生物都会受到伤害。
spell.homing_spark.desc=制造一个向敌人移动的浮游火花。
spell.ice_age.desc=“你将永远被冰封于此!”
spell.ice_charge.desc=发射一个冰块,撞击时发生爆裂并冻伤附近的生物并向各个方向发射碎片。
spell.ice_lance.desc=向你指的方向发射一支巨大能够穿透目标的冰矛,在此过程中能够伤害并且冻伤目标。
spell.ice_shard.desc=在你指向的方向发射一个冰碎片,在命中目标时会使目标受到伤害并减缓速度。
spell.ice_shroud.desc=在施术者身上产生一股寒气并持续三十秒,任何攻击者都会遭到冻伤。
spell.ice_spikes.desc=锋利的冰刺从你指向的地面升起,刺穿上面的任何生物。
spell.ice_statue.desc=将目标冻住20秒直到其打破束缚,目标被冻结时不能移动或者做任何事情,也不会受到伤害。
spell.ignite.desc=将目标点燃十秒,也能像打火石一样工作。
spell.imbue_weapon.desc=将魔力浸染在施术者快捷栏的第一个武器上,使其更加实用,法术在45秒后失效。
spell.intimidate.desc=发出可怕的咆哮声,附近的生物会在恐惧中逃离。惊恐的生物会在30秒后恢复正常。
spell.invigorating_presence.desc=使施术者和附近的盟友增加攻击力,持续45秒。
spell.invisibility.desc=使施术者隐形30秒。
spell.invoke_weather.desc=改变天气。
spell.ironflesh.desc=极大地提升施术者的抗性,持续30秒。
spell.leap.desc=使施术者向上跳跃几个方块并稍微向前移动。
spell.levitation.desc=按住使用物品按键可以向上飘起。在落地前使用可以免除掉落伤害。
spell.life_drain.desc=在你指向的方向发射一股凋零的能量,它能吸收目标的生命来补充你的生命。
spell.light.desc=创造一簇魔法光芒照亮附近的区域,持续时间30秒。
spell.lightning_arrow.desc=在你指向的方向发射一道闪电。
spell.lightning_bolt.desc=使闪电击中你指向的地方。
spell.lightning_disc.desc=在你指向的方向发射一个闪电轮,并搜寻目标。
spell.lightning_hammer.desc=“以神之愤怒惩戒你!”
spell.lightning_pulse.desc=使施术者附近的地面充能,伤害和排斥附近的生物。
spell.lightning_ray.desc=在你指向的方向制造一股闪电,可以不断地伤害目标。
spell.lightning_sigil.desc=在地上放置一个魔法闪电陷阱,它会对触发它的生物造成伤害并产生闪电链打击附近的生物。
spell.lightning_web.desc=“专注,将你脑海中的雷电通过法杖引导出来,释放它的愤怒。”
spell.magic_missile.desc=在你指向的方向发射一道魔法飞弹。
spell.metamorphosis.desc=将目标变成另一种形态,只适用与某些生物。
spell.meteor.desc=Some 一些巫师只是想看到世界在燃烧...
spell.mind_control.desc=心灵控制目标持续30秒,被控制方会为施术者而战。对于意志强大的生物无效。
spell.mind_trick.desc=使目标迷惑15秒,其无法进行攻击。如果目标受到伤害,效果会被消除。
spell.none.desc=要使用/give命令获取法术书,请使用元数据 /give [player] ebwizardry:spell_book 1 [spell id](如果你发现这本书出现在箱子里,那么说明某些mod将其打乱了)
spell.oakflesh.desc=施术者抗性提升30秒。
spell.petrify.desc=将目标变成石头,直到其打破束缚,束缚在黑暗中有几率会被打破。目标被石化后不能移动或者做任何事情,但也不会受到伤害。
spell.phase_step.desc=传送施术者通过一个方块厚的墙面。范围升级会增加你的传送厚度。
spell.plague_of_darkness.desc=黑暗将把他们全部消灭...
spell.pocket_furnace.desc=在施术者的背包里熔炼多达五个物品。快捷栏的物品会被优先熔炼。
spell.pocket_workbench.desc=允许施术者制作物品,就像在工作台上制作一样。
spell.poison.desc=在你指向的方向发射毒液。
spell.poison_bomb.desc=在你指向的方向发射一枚毒液弹,撞击后爆炸并且毒害附近的生物。
spell.replenish_hunger.desc=补充施术者六格饥饿值。
spell.ring_of_fire.desc=在施术者周围制造一个火圈,对周围的敌人造成伤害并将其点燃。
spell.shadow_ward.desc=在施术者面前制造一堵暗黑墙,所受到伤害的一半都会返回到攻击者身上。
spell.shield.desc=制造一个能够阻挡弹射物和魔法的力场屏障。同时也会使施术者得到虚弱的效果。
spell.shockwave.desc=Boom
spell.silverfish_swarm.desc="啊哈! 他们正在增加!"
spell.sixth_sense.desc=使施术者能够感知到附近的生物的位置,甚至能够透过墙壁,持续20秒。
spell.slime.desc=用史莱姆吞噬目标,减缓目标速度并对其造成伤害。史莱姆在10秒后破裂。
spell.smoke_bomb.desc=在你指向的方向发射一个烟雾弹,能够在短时间内释放出烟雾并且使附近的生物致盲。
spell.snare.desc=在地面放置一个陷阱,触发陷阱的生物会被减缓速度并且受到伤害。
spell.snowball.desc=在你指向的方向发射一个雪球。
spell.spark_bomb.desc=在你指向的方向发射一个电击弹,附近的敌人会受到电击。
spell.spectral_pathway.desc=在你面前制造一个不可破坏的魔法桥梁,能够延伸15个方块,桥会在60秒后消失。
spell.spider_swarm.desc=召唤一群毒蜘蛛为你战斗,如果毒蜘蛛没有被杀死会在30秒后消失。
spell.static_aura.desc=用闪电将施术者包围,持续30秒,任何攻击都会使攻击者遭到电击。
spell.summon_blaze.desc=召唤一个烈焰人为你战斗,如果烈焰人没有被杀死会在30秒后消失。
spell.summon_ice_giant.desc=“粉碎他们!”
spell.summon_ice_wraith.desc=召唤一个冰封幽灵为你战斗,如果冰封幽灵没有被杀死会在30秒后消失。
spell.summon_iron_golem.desc=自动 自动 自动 自动。
spell.summon_lightning_wraith.desc=召唤一个闪电幽灵为你战斗,如果闪电幽灵没有被杀死会在30秒后消失。
spell.summon_phoenix.desc=在灰烬中重生...
spell.summon_shadow_wraith.desc=召唤一个阴影幽灵为你战斗。
spell.summon_skeleton.desc=召唤一个骷髅为你战斗,如果骷髅没有被杀死会在30秒后消失。
spell.summon_skeleton_legion.desc=“复活吧,不死军团!”
spell.summon_snow_golem.desc=召唤一个雪傀儡为你战斗。一直持续到雪傀儡死亡为止。
spell.summon_spirit_horse.desc=召唤一匹幽灵马让你乘骑。在下马后幽灵马会消失,你可以用法杖右键来遣散它。
spell.summon_spirit_wolf.desc=召唤一匹幽灵狼为你战斗。幽灵狼只有在被杀死的时候会消失,你可以用法杖右键来遣散它。
spell.summon_storm_elemental.desc=“风暴元素:古老的元素的显现,它难以抑制其中的原始力量。” -巫师手册奥术生物章,卷 II
spell.summon_wither_skeleton.desc=召唤一个凋灵骷髅为你战斗,凋灵骷髅会在消亡后消失。
spell.summon_zombie.desc=召唤一个僵尸为你战斗,如果僵尸没有被杀死会在30秒后消失。
spell.telekinesis.desc=移动一个掉落物或其他小物体到你面前,或者远程打开你指向的方块(相当于右击),也可以用来取下玩家的装备。
spell.thunderbolt.desc=发射一道雷击震退目标
spell.thunderstorm.desc=“姆哇哈哈哈哈哈哈!”
spell.tornado.desc=在你指向的方向释放一个飓风,在飓风路径上的任何东西都会被抛上天。
spell.transience.desc=使施术者金身20秒,施术者可以免疫所有伤害,但是不能破坏或者放置方块也不能造成任何伤害。
spell.transportation.desc=将施术者传送到已记录的石圈。想要使用此法术,需要制造一个传送石圈,然后用法杖右击。
spell.vanishing_box.desc=允许施术者使用末影箱。
spell.wall_of_frost.desc=寒冬萦绕于指尖。
spell.water_breathing.desc=允许施术者水下呼吸60秒。
spell.whirlwind.desc=使目标被吹离你。
spell.wither.desc=发射一股暗黑射线,任何与其接触的东西都将凋零。
spell.wither_skull.desc=在你指向的方向发射一个凋灵头颅。
spell.invoke_weather.sun=雨渐渐停止...
spell.invoke_weather.rain=天堂开启了...
spell.transportation.missing=你的记录石圈遗失或是被阻挡...
spell.transportation.undefined=你必须先记录一个石圈的位置!
spell.transportation.wrongdimension=你的记录石圈在另一个维度里....
spell.clairvoyance.searching=搜寻中...
spell.clairvoyance.confirm=投掷在路径 %1$s 现在返回到这一个点
spell.clairvoyance.outofrange=你记录坐标太远或者无法访问
spell.clairvoyance.undefined=你必须首先记录一个坐标!
spell.clairvoyance.wrongdimension=你的记录坐标在另一个维度里....
potion.frost=冻伤
potion.fireskin=火焰之肤
potion.ice_shroud=冰霜护体
potion.static_aura=静电力场
potion.transience=超凡
potion.decay=腐烂
potion.sixth_sense=第六感
potion.arcane_jammer=奥术干扰
potion.mind_trick=心灵欺诈
potion.mind_control=精神控制
potion.font_of_mana=魔法圣池
potion.fear=恐惧
enchantment.magic_sword=灌注
enchantment.magic_bow=灌注
enchantment.flaming_weapon=火焰灌注
enchantment.freezing_weapon=冰霜灌注
key.categories.wizardry=巫术学
key.next_spell=下一个法术
key.previous_spell=上一个法术
death.attack.wizardryMagic=%1$s 被 %2$s 使用魔法杀死
death.attack.indirectWizardryMagic=%1$s 被 %2$s 使用魔法杀死
commands.cast.usage=/%1$s <法术> [玩家] [伤害倍数] [范围倍数] [时限倍数] [爆炸倍数]
commands.cast.success=成功发动 %1$s
commands.cast.success_continuous=成功发动 %1$s ;重复该条指令停止
commands.cast.success_remote=成功发动 %1$s 至 %2$s
commands.cast.success_remote_continuous=成功发动 %1$s 至 %2$s ;重复该条指令停止
commands.cast.fail=无法 %1$s
commands.cast.not_found=没有 %1$s 这种法术ID
commands.ally.usage=/%1$s <玩家> [玩家]
commands.ally.addally=%1$s 已被添加到 %2$s 的盟友名单中
commands.ally.removeally=%1$s 已被 %2$s 从盟友名单中移除
commands.ally.self=玩家不能成为自己的盟友!
commands.ally.permission=你没有权限改变其它玩家的盟友
commands.allies.usage=/%1$s [玩家]
commands.allies.list=与你结盟的玩家 %1$s
commands.allies.list_other=玩家结盟 %1$s: %2$s
commands.allies.permission=你没有查看其它玩家盟友的权限
commands.allies.none=无
commands.discoverspell.usage=/%1$s <法术/所有/清除> [玩家]
commands.discoverspell.not_found=没有 %1$s 这种法术ID
commands.discoverspell.clear=从 %1$s 中清除所有法术探索数据
commands.discoverspell.all=添加所有的法术到 %1$s 的法术探索数据中
commands.discoverspell.addspell=将 %1$s 添加 %2$s 的法术探索数据中
commands.discoverspell.removespell=将 %1$s 从 %2$s 的法术探索数据中移除
config.title.general=Mod 配置
config.category.spells=配置法术
config.category.spells.tooltip=选择以启用法术
config.title.spells=法术配置
config.subtitle.spells=将一个法术设置为false以禁用。
config.category.resistances=配置抗性
config.category.resistances.tooltip=配置某些怪物对不同属性魔法的抗性
config.title.resistances=抗性配置
config.subtitle.resistances=详情请参考个别选项说明。
config.category.ids=配置 IDs
config.category.ids.tooltip=改变巫师的ID
config.title.ids=ID 配置
config.subtitle.ids=如果这些ID与另一个Mod发生冲突,请更改这些ID
config.tower_rarity=巫师塔稀有程度
config.ore_dimensions=水晶矿生成维度
config.flower_dimensions=水晶花生成维度
config.tower_dimensions=巫师塔生成维度
config.spell_book_drop_chance=法术书掉落几率
config.generate_loot=生成战利品
config.firebomb_is_craftable=火焰弹制作
config.poison_bomb_is_craftable=毒液弹制作
config.smoke_bomb_is_craftable=烟雾弹制作
config.use_alternate_scroll_recipe=使用替代卷轴合成
config.teleport_through_unbreakable_blocks=传送穿过不可破坏的方块
config.show_summoned_creature_names=显示召唤生物名称
config.friendly_fire=友军伤害
config.telekinetic_disarmament=隔空取物解除装备
config.discovery_mode=探索模式
config.enable_shift_scrolling=启用 Shift-_滚轮
config.minion_revenge_targeting=仆从反击目标
config.player_damage_scaling=玩家伤害比例因数
config.npc_damage_scaling=NPC伤害比例因数
config.cast_command_multiplier_limit=Cast指令倍数限制
config.summoned_creature_targets_whitelist=召唤生物的目标白名单
config.summoned_creature_targets_blacklist=召唤生物的目标黑名单
config.spell_hud_position=法术HUD位置
config.cast_command_name=施法指令名字
config.discoverspell_command_name=Discover Spell指令名字
config.ally_command_name=设置盟友的指令名字
config.allies_command_name=查看盟友们的指令名字
config.mobs_immune_to_fire=免疫火焰的怪物
config.mobs_immune_to_ice=免疫冰冻的怪物
config.mobs_immune_to_lightning=免疫闪电的怪物
config.mobs_immune_to_wither=免疫凋零的怪物
config.mobs_immune_to_poison=免疫毒液的怪物
config.frost_potion_id=冰霜药剂 ID
config.transience_potion_id=金身药剂 ID
config.fireskin_potion_id=火焰之肤药剂 ID
config.ice_shroud_potion_id=冰霜护体药剂 ID
config.static_aura_potion_id=静态灵气药剂 ID
config.decay_potion_id=腐化药剂 ID
config.sixth_sense_potion_id=第六感药剂 ID
config.arcane_jammer_potion_id=奥术干扰药剂 ID
config.mind_trick_potion_id=心灵欺诈药剂 ID
config.mind_control_potion_id=心灵控制药剂 ID
config.font_of_mana_potion_id=魔力字符药剂 ID
config.fear_potion_id=恐惧药剂 ID
config.magic_sword_enchantment_id=魔法剑附魔 ID
config.magic_bow_enchantment_id=魔法弓附魔 ID
config.flaming_weapon_enchantment_id=炽焰武器附魔 ID
config.freezing_weapon_enchantment_id=冰霜武器附魔 ID
config.tower_rarity.tooltip=巫师塔的稀有度,数字越高越罕见。设置为0完全禁用巫师塔。
config.ore_dimensions.tooltip=水晶矿石生成的维度ID。请注意,从这个列表中删除主世界(id 0)这将使得这个mod非常难玩。
config.flower_dimensions.tooltip=水晶花会自动生成的维度ID。
config.tower_dimensions.tooltip=巫师塔生成维度ID的列表。
config.spell_book_drop_chance.tooltip=怪物死亡时掉落法术书的几率,数字越大,掉的越多。设置为0可以关闭法术书的掉落,设置200保证掉落。
config.generate_loot.tooltip=是否在地牢箱子中生成战利品。
config.firebomb_is_craftable.tooltip=是否可以制造火焰弹。
config.poison_bomb_is_craftable.tooltip=是否可以制造毒液弹。
config.smoke_bomb_is_craftable.tooltip=是否可以制造烟雾弹。
config.use_alternate_scroll_recipe.tooltip=是否需要魔法水晶在空白卷轴中无序合成中,如果另一个mod添加配方冲突,则设置为true。
config.teleport_through_unbreakable_blocks.tooltip=是否允许玩家使用相位来穿过不可破坏的方块(如 基岩)。
config.show_summoned_creature_names.tooltip=是否将召唤的生物名字和所有者显示在头顶。
config.friendly_fire.tooltip=是否允许玩家使用魔法伤害他们的盟友。
config.telekinetic_disarmament.tooltip=是否允许玩家使用隔空取物来解除其他玩家的装备。ebwizardry:设置为false防止物品被盗。
config.discovery_mode.tooltip=对于那些喜欢神秘感的人!当设置为true时,你还没施放的法术不可读,知道施放后(基于这个世界)。在创造模式下无效,如果这是false,在生存模式下无法获得待鉴定卷轴。
config.enable_shift_scrolling.tooltip=是否可以在滑翔的时候使用鼠标滚轮切换法杖上的法术。请注意,这只会影响到你,同一个服务器的其他玩家只会按照他们自己的设置。
config.minion_revenge_targeting.tooltip=如果被召唤生物的主人攻击它们,它们是否可以反击它们的主人。
config.player_damage_scaling.tooltip=玩家施放法术造成伤害的比例因数, relative to 1。
config.npc_damage_scaling.tooltip=NPC施放法术造成伤害的比例因数,relative to 1。
config.cast_command_multiplier_limit.tooltip=输入/cast命令的最大倍数的上限,这是为了阻止玩家意外毁坏存档/服务器。大倍数爆炸会造成极大的延迟-你已经被警告过了!
config.summoned_creature_targets_whitelist.tooltip=除了默认外,允许召唤生物和巫师攻击实体名单。如果想让召唤的生物攻击它们。请把这个mod的生物添加到这个列表中。实体名称不区分大小写。对于mod实体,以mod ID作为前缀(例如 ebwizardry.wizard)。
config.summoned_creature_targets_blacklist.tooltip=不允许召唤生物和巫师进行攻击的默认设置和白名单。如果允许它们进行攻击会导致问题或是太具破坏性(将爬行者移除这个名单后果自负!)。把这个mod的生物添加到这个列表中。实体名称不区分大小写。对于mod实体,以mod ID作为前缀(例如 ebwizardry.wizard)。
config.spell_hud_position.tooltip=法术HUD的位置
config.cast_command_name.tooltip=/cast的命令名称。这是你直接输入/后的应该输入的内容。如果这个设置为“magic”,那么不需要输入/cast,而是输入/magic。
config.discoverspell_command_name.tooltip=/discoverspell的命令名称。这是你直接输入/后的应该输入的内容。如果这个设置为“magic”,那么不需要输入/discoverspell,而是输入/magic。
config.ally_command_name.tooltip=/ally的命令名称。这是你直接输入/后的应该输入的内容。如果这个设置为“magic”,那么不需要输入/ally,而是输入/magic。
config.allies_command_name.tooltip=/allies的命令名称。这是你直接输入/后的应该输入的内容。如果这个设置为“magic”,那么不需要输入/allies,而是输入/magic。
config.mobs_immune_to_fire.tooltip=除了默认外,不受火焰影响的实体名称列表。如果你想让他们不受火焰魔法影响,请把这个mod的生物添加到这个列表中。实体名称不区分大小写。对于mod实体,以mod ID作为前缀(例如 ebwizardry.wizard)。
config.mobs_immune_to_ice.tooltip=除了默认外,不受冰冻影响的实体名称列表。如果你想让他们不受冰冻魔法影响,请把这个mod的生物添加到这个列表中。实体名称不区分大小写。对于mod实体,以mod ID作为前缀(例如 ebwizardry.wizard)。
config.mobs_immune_to_lightning.tooltip=除了默认外,不受闪电影响的实体名称列表。如果你想让他们不受闪电魔法影响,请把这个mod的生物添加到这个列表中。实体名称不区分大小写。对于mod实体,以mod ID作为前缀(例如 ebwizardry.wizard)。
config.mobs_immune_to_wither.tooltip=除了默认外,不受凋零影响的实体名称列表。如果你想让他们不受凋零魔法影响,请把这个mod的生物添加到这个列表中。实体名称不区分大小写。对于mod实体,以mod ID作为前缀(例如 ebwizardry.wizard)。
config.mobs_immune_to_poison.tooltip=除了默认外,不受毒液影响的实体名称列表。如果你想让他们不受毒液魔法影响,请把这个mod的生物添加到这个列表中。实体名称不区分大小写。对于mod实体,以mod ID作为前缀(例如 ebwizardry.wizard)。
config.frost_potion_id.tooltip=冰霜药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.transience_potion_id.tooltip=金身药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.fireskin_potion_id.tooltip=火焰之肤药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.ice_shroud_potion_id.tooltip=冰霜护体药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.static_aura_potion_id.tooltip=静态灵气药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.decay_potion_id.tooltip=腐化药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.sixth_sense_potion_id.tooltip=第六感药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.arcane_jammer_potion_id.tooltip=奥术干扰药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.mind_trick_potion_id.tooltip=心灵欺诈药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.mind_control_potion_id.tooltip=心灵控制药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.font_of_mana_potion_id.tooltip=魔力字符药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.fear_potion_id.tooltip=恐惧药剂的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.magic_sword_enchantment_id.tooltip=魔法剑附魔的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.magic_bow_enchantment_id.tooltip=魔法弓附魔的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.flaming_weapon_enchantment_id.tooltip=炽焰武器附魔的ID,如果与另一个Mod发生冲突,请更改这个ID。
config.freezing_weapon_enchantment_id.tooltip=冰霜武器附魔的ID,如果与另一个Mod发生冲突,请更改这个ID。
wizard.debug=%1$s, %2$s, %3$s
@@ -0,0 +1,225 @@
PAGEBREAK
LINEBREAK
巫师手册
作者 Electroblob
PAGEBREAK
简介
--------------------
欢迎您,伟大的巫师!本书将会向您阐释奥术的工作原理以及使用它们的方法。
如果您不慎遗失了本书,您可以在工作台上用书和魔法水晶制作一本新的。
PAGEBREAK
内容
--------------------
PAGEBREAK
SECTION 准备工作
准备工作
--------------------
要打开通向巫术的大门,您将会需要以下几样东西:
- 一根法杖,由一粒金粒,一根木棍和一块魔法水晶合成。
- 一个奥术工作台,由三块石头,一块青金石块,两块魔法水晶,两粒金粒和一块紫色地毯合成。
- 一本法术书,它们可以在箱子中找到,由怪物掉落或向巫师们购买。当然您也可以用一本书和四块魔法水晶制作一个初学者的法术“魔法飞弹”。
此外,您将会需要更多的魔法水晶来为您的法杖提供魔力。
PAGEBREAK
SECTION 魔力
魔力
--------------------
魔力是给予巫师们力量的奥术能量。它在自然界中以水晶的形式存在,这些水晶嵌在石缝中,可以在地下被找到。法杖中可以储存魔力,而这些魔力将被塑造为您施展的法术。不同的法术会消耗不同数量的魔力,这取决于它们有多么强大以及它们会持续多久。
将鼠标悬停在法杖上就可以看到其中的魔力储量。
IMAGE CRYSTAL
LINEBREAK
魔法
水晶矿 水晶
PAGEBREAK
SECTION 法杖
法杖
--------------------
法杖是一个巫师的实用之选。有了法杖,您就可以施展任何法术,只要法杖能够承受它的力量(更深入的解释在“等级”一节中)。
法杖有许多不同的种类,但您将从最基本的法杖开始。
拿着法杖时,屏幕的角落会出现一个小小的提示,它会显示当前选择的法术及其图标。此外,如果一个法术被施展了,会有一个冷却条显示还有多久才能再次施展这个法术。
PAGEBREAK
SECTION 法术
法术
--------------------
一根没有法术可施展的法杖是毫无用处的。法术可以通过两种方式被记录下来:永久地记录在书上,或者暂时地记录在卷轴上。
法术书本身没有什么用处,它们是用来将其中记录的法术绑定到法杖上的。法术书可以在世界各处被发现,而且您肯定很快就会找到一本。当您发现了一本法术书时,您可以将鼠标悬停在上面来看一下法术的基本信息,您也可以拿着法术书按下右键来阅读法术的详细信息。
与之相反,卷轴的使用方式是不一样的:拿着卷轴右击将会施展其中绑定的法术,而在这个过程中卷轴将会被摧毁。像法术书一样,卷轴可以在世界各处被发现,但您也可以自己制作它们。首先拿一张纸和一些线合成空白卷轴,然后您可以在奥术工作台上将法术绑定到卷轴上,前提是您拥有关于这个法术的知识。这么做将会消耗与法术的魔力消耗相对应数量的魔法水晶(消耗的魔法水晶个数是向上取整的)。
对于未经训练的人来说,用于书写法术的魔法符文是无法辨识的。为了鉴定一个法术,您当然可以施展它然后看看发生了什么 - 但这么做可能会产生您不想看到的副作用,而且许多法术需要在特定的条件下才能起作用。一种更安全可靠的选择是使用鉴定卷轴,它可以在箱子里找到或向巫师购买。拿着它右击将会鉴定您热键栏中第一个未知的法术书或卷轴,并消耗鉴定卷轴。
如果您需要在一次探险中使用某个法术一两次但又不希望它占用您法杖的一个槽,那卷轴是十分有用的。但值得注意的是卷轴是一种相当没有效率的施法方式。
PAGEBREAK
SECTION 奥术工作台
奥术工作台
--------------------
奥术工作台的外观和附魔台很像,您可以在其中给法杖充能、升级或绑定法术。只要放下它并右击,您就会看到一个界面出现,就像右边展示的一样。
PAGEBREAK
IMAGE WORKBENCH
LINEBREAK
奥术工作台
PAGEBREAK
SECTION 绑定法术
绑定法术
--------------------
要把一个法术绑定到法杖上,只要把法杖放在奥术工作台中央的格子里,然后把法术书放在周围的任意一个格子里并按下“应用”。您至多可以在一根法杖上绑定五个法术,当然这一数量可以通过法杖协调升级来增加。拿着法杖时,您可以通过 NEXT_SPELL_KEY 键和 PREVIOUS_SPELL_KEY 键在不同的法术间切换(按键可以在选项 -> 控制里调整)。您也可以在潜行时上下滚动鼠标滚轮来切换法术。
SECTION 法杖充能
法杖充能
--------------------
要给法杖充能,只要把法杖放在奥术工作台中央的格子里,然后在左侧两个格子靠上的那个放一些魔法水晶并按下“应用”。每个水晶等同于 MANA_PER_CRYSTAL 魔力,而法杖只会吸收它所需要的数量,所以您可以在奥术工作台中储备一些魔力水晶以便随时使用。然而,谨记法杖只能整块地吸收魔法水晶。所以如果法杖仅仅还需要 30 魔力,那么 MANA_PER_CRYSTAL_MINUS_30 魔力就会在充能过程中流失。在内部没有魔力时,所有的法杖都会吸收确定数量的魔法水晶来充能,除非它们拥有法杖存储升级。
SECTION 升级法杖
升级法杖
--------------------
要升级法杖,您需要一本对应等级的(参见“等级”)奥法宝典或者某种法杖升级。这两种东西都可以作为战利品得到或者向巫师购买。要升级法杖,只要把法杖放在奥术工作台中央的格子里,然后在左侧两个格子靠下的那个放上法杖升级并按下“应用”。
法杖升级会提升法杖某一方面的性能。每种法杖升级可以叠加至多三次,而法杖能升级的总次数取决于其等级。升级是不可逆的,无法被重新移除。
PAGEBREAK
SECTION 鲜花与烧瓶
鲜花与烧瓶
--------------------
您很可能时不时在野外见到一些神秘的闪着光芒的花。这些是水晶花,是一种自然产生的魔力来源。它们可以被采集,其中的魔力可以像魔力水晶一样被提取出来。
需要在路上给您的法杖充能?没问题!魔力现在可以被装瓶了。用一个玻璃瓶和八个魔力水晶制作一个魔力瓶并带在身上,当您需要使用它时,将它和您的法杖放在一起合成,法杖就会回复一些魔力,而魔力瓶会被消耗掉。在装瓶过程中魔力会有耗损。
PAGEBREAK
SECTION 等级
等级
--------------------
法杖和法术有四个等级:BASIC_COLOUR新手RESET_COLOURAPPRENTICE_COLOUR学徒RESET_COLOURADVANCED_COLOUR进阶RESET_COLOUR和MASTER_COLOUR大师RESET_COLOUR。每一个等级都比上一个等级更加强大。
BASIC_COLOUR新手RESET_COLOUR法杖是可以被合成出来的法杖。它们至多储存 BASIC_MAX_CHARGE 魔力,并且只能施展新手级的法术。新手法术非常简单,可以被任何人施展并且一般不消耗很多魔力。然而这并不一定意味着等级很高时他们就毫无用处,它们的低消耗使得一些新手法术在您达到大师级之后仍十分有用。
APPRENTICE_COLOUR学徒RESET_COLOUR法杖是新手法杖的下一等级。它们至多储存 APPRENTICE_MAX_CHARGE 魔力,并且可以施展新手和学徒级的法术。学徒法术比起新手法术更令人印象深刻,但通常消耗更高。
ADVANCED_COLOUR进阶RESET_COLOUR法杖十分稀有且比前两级强大得多。它们可以施展除了大师级之外的所有法术,并储存 ADVANCED_MAX_CHARGE 魔力。进阶法术可以赋予巫师超人的力量,例如隐身,并在敌人头上倾泻毁灭。
MASTER_COLOUR大师RESET_COLOUR法杖是现存最强大的法杖。他们至多储存 MASTER_MAX_CHARGE 魔力,并且可以施展任何法术。大师级法术书非常稀有,而大师级法术可以给敌人带来完全的湮灭,甚至可以摧毁世界本身。慎重使用。
PAGEBREAK
SECTION 元素
元素
--------------------
法术分属不同的元素,元素表现了法术的本质,并且在被特定的法杖使用时会有额外的效果。
FIRE_COLOUR火
这也许是最具毁灭性的元素。火元素掌控燃烧、熔岩和爆炸。一位强大的烈焰法师能够在敌人头顶打开地狱之门,并能在这个过程中点燃世界。绝大多数火属性攻击法术会点燃其目标,造成持续伤害。但是,注意火属性法术也许对下界生物毫无效果。
ICE_COLOUR冰
冰元素是一切寒冷之物的集合。冰属性法术通常会减速敌人或完全冻住他们,并且对火属性生物极为有效。冰属性魔法在战斗外同样有用,例如冻结水面来顺利过河。
LIGHTNING_COLOUR闪电
这一元素掌控闪电、风暴和天气。一位强大的风暴法师是一股不可忽视的力量,而且他们中的某些人拥有随意降下闪电的能力。闪电法术通常会同时伤害多个敌人并且自动寻找目标,这使它们成为攻击任何生物的有效手段...但小心爬行者。
NECROMANCY_COLOUR死灵
死灵是属于黑暗、混沌和不死生物的元素。死灵法师十分神秘并且常常被认为是邪恶的,虽然一般不是这回事。死灵法术通常被用来召唤为您而战的生物,甚至可以扭曲敌人的意志。
EARTH_COLOUR大地
大地元素专注于自然界:动物,植物,风,凡此种种。大地魔法差异巨大且呈现形式多种多样,从让敌人中毒到释放大气的怒火。大地法术是攻击、防御和实用的综合。
SORCERY_COLOUR妖术
妖术是操纵力和变化的元素。妖术法师操纵光、重力甚至是现实本身来迎合他们的需要。妖术也可以用在别的领域,例如赋予施法者魔法力量或者用意念移动物体。
HEALING_COLOUR治愈
治愈元素掌控防御和再生。治愈法师尽可能地保护他们自己以及他们的盟友,因此可能是非常难缠的对手。尽管一般不用来攻击,某些治愈法术的净化光芒会对不死生物造成可观的伤害。治愈法术在战斗中是不可或缺的。
不同元素之间并不总是泾渭分明的,并且有些法术展现出除自身外的其他元素的特点。
如果您很幸运,您可能会邂逅一根元素法杖。这些法杖会让您在施展正确元素的法术时比平时拥有更强的能力。
PAGEBREAK
SECTION 巫师护甲
巫师护甲
--------------------
作为一名巫师,您需要一些东西来保护您免受与您作战的生物的伤害。普通的护甲无法做到这一点。为了最大化利用您的法术,您将会需要巫师护甲:帽子,法袍,护腿和靴子。不像普通的护甲,这些护甲不会损坏。作为替代,它们使用奥术能量来保护穿戴者。这当然意味着它们需要像法杖一样用魔法水晶充能。幸运的是,这些服装并不会消耗很多魔力。像法杖一样用奥术工作台或魔力瓶充能它们,但小心了 - 如果它们没有了魔力,您将发现自己毫无防御力。
您可以用魔法丝绸来制作巫师护甲,魔法丝绸可以用线和一块魔法水晶合成。
那些完全专注于一种元素的巫师有时会穿上特殊的服装来让这一元素获得额外的增强。整套的此类服装十分受某些巫师的追捧而且不容易找到。
传说中最强大的巫师用一种奥术戳记来极大地强化他们的护甲。
PAGEBREAK
SECTION 巫师和巫师塔
巫师和巫师塔
--------------------
别害怕 - 您不是这个世界里唯一的魔法使用者。在您的旅途中,您可能会遇到拥有标志性尖顶的高塔。这些是您巫师同僚的居所。孤独的生活有时可能会让巫师们变得有些性情乖戾,但他们通常是友好的人,并且乐意与您分享他们的知识 - 尽管要付出些代价。交给他们一些珍贵的金属和宝石,您将收获数不尽的奥术奇迹作为回报。但如果您要寻找的是大师级的法术,您需要与专家谈谈才行。
不幸的是,少数巫师并不欢迎访客。这些巫师通常是被放逐的人,并且对任何挡路者都怀有敌意。小心地接近他们,并准备好在强大的魔法洗礼下防卫自己。然而,如果您击败了他们,您就可以将他们的知识全部收入囊中。
PAGEBREAK
SECTION 合成配方
合成配方
--------------------
PAGEBREAK
PAGEBREAK
合成配方
--------------------
PAGEBREAK
PAGEBREAK
合成配方
--------------------
PAGEBREAK
PAGEBREAK
合成配方
--------------------
PAGEBREAK
PAGEBREAK
鸣谢
--------------------
Electroblob's Wizardry
Version VERSION
For Minecraft MCVERSION
Designed, coded and textured by Electroblob
Thanks to Minecraft Forge and MCP, without which this mod would not have been possible.
Thanks also to the Minecraft modding community, which always has an answer to my modding problems!
In addition, I'd like to thank the following individuals for their contributions to the mod:
Code:
- Corail31
- 12foo
- Shadows-of-Fire
- HellFirePvP
Translations:
- Russian: VilagVil
- Spanish and Mexican Spanish: MadWrist
- Chinese: ZHENGLOC and dragon-evol
Lightning ray sound effect from OhhWowProductions
+2 -2
View File
@@ -2,8 +2,8 @@
{
"modid" : "wizardry",
"name" : "Electroblob's Wizardry",
"version" : "1.1.5",
"url" : "https://minecraft.curseforge.com/projects/electroblobs-wizardry",
"version" : "${version}",
"url" : "https://www.curseforge.com/minecraft/mc-mods/electroblobs-wizardry/",
"credits" : "Made by Electroblob",
"authors" : [
"Electroblob"