Merge branch '1.12.2' into 4.3-dev

This commit is contained in:
Electroblob77
2020-04-14 17:41:33 +01:00
32 changed files with 869 additions and 1313 deletions
+2 -1
View File
@@ -24,6 +24,7 @@ In addition, I'd like to thank the following individuals for their contributions
- UltraHex
- Azim-Palmer
- raoulvdberge
- rafasoares
#### Translations
@@ -32,7 +33,7 @@ In addition, I'd like to thank the following individuals for their contributions
- Russian: VilagVil, kellixon, bigenergy
- French: Hahdrim
- Brazilian Portuguese: lorrampi
- Chinese: ZHENGLOC, dragon-evol, Hokorizero, TUsama
- Chinese: ZHENGLOC, dragon-evol, Hokorizero, TUsama, Determancer
- Korean: shejery, rewi_wire
- Polish: Trozuu
- German: BirdyDragon
@@ -250,6 +250,13 @@ public class CommonProxy {
* @param intensity The amplitude of the shaking (around 10 looks about right)
*/
public void shakeScreen(EntityPlayer player, float intensity){}
/**
* Loads the given shader for the given player, if they have shaders enabled.
* @param player The player to load the shader for
* @param shader The location of the shader to load
*/
public void loadShader(EntityPlayer player, ResourceLocation shader){}
/**
* Gets the client side world using Minecraft.getMinecraft().world. <b>Only to be called client side!</b> Returns
@@ -321,6 +321,10 @@ public final class Settings {
public boolean booksPauseGame = true;
/** <b>[Client-only]</b> Whether to use custom shaders for certain spells. */
public boolean useShaders = true;
/** <b>[Client-only]</b> Whether to use the screen shake effect for certain spells. */
public boolean screenShake = true;
/** <b>[Client-only]</b> Whether to use the screen blink effect for teleportation spells. */
public boolean blinkEffect = true;
/** <b>[Client-only]</b> The position of the spell HUD. */
public GuiPosition spellHUDPosition = GuiPosition.BOTTOM_LEFT;
@@ -939,6 +943,18 @@ public final class Settings {
useShaders = property.getBoolean();
propOrder.add(property.getName());
property = config.get(CLIENT_CATEGORY, "screenShake", true, "Whether to use the screen shake effect for certain spells.");
property.setLanguageKey("config." + Wizardry.MODID + ".screen_shake");
Wizardry.proxy.setToNamedBooleanEntry(property);
screenShake = property.getBoolean();
propOrder.add(property.getName());
property = config.get(CLIENT_CATEGORY, "blinkEffect", true, "Whether to use the screen blink effect for teleportation spells.");
property.setLanguageKey("config." + Wizardry.MODID + ".blink_effect");
Wizardry.proxy.setToNamedBooleanEntry(property);
blinkEffect = property.getBoolean();
propOrder.add(property.getName());
config.setCategoryPropertyOrder(CLIENT_CATEGORY, propOrder);
}
@@ -107,7 +107,9 @@ public class BlockPedestal extends Block implements ITileEntityProvider {
natural = true;
metadata -= ELEMENT.getAllowedValues().size();
}
return this.getDefaultState().withProperty(ELEMENT, Element.values()[metadata]).withProperty(NATURAL, natural);
Element element = Element.values()[metadata];
if(!ELEMENT.getAllowedValues().contains(element)) return this.getDefaultState().withProperty(NATURAL, natural);
return this.getDefaultState().withProperty(ELEMENT, element).withProperty(NATURAL, natural);
}
@Override
@@ -69,7 +69,9 @@ public class BlockRunestone extends Block {
@Override
public IBlockState getStateFromMeta(int metadata){
return this.getDefaultState().withProperty(ELEMENT, Element.values()[metadata]);
Element element = Element.values()[metadata];
if(!ELEMENT.getAllowedValues().contains(element)) return this.getDefaultState();
return this.getDefaultState().withProperty(ELEMENT, element);
}
@Override
@@ -199,6 +199,13 @@ public class ClientProxy extends CommonProxy {
if(Minecraft.getMinecraft().player == player) WizardryClientEventHandler.shakeScreen(intensity);
}
@Override
public void loadShader(EntityPlayer player, ResourceLocation shader){
if(Minecraft.getMinecraft().player == player && Wizardry.settings.useShaders
&& !Minecraft.getMinecraft().entityRenderer.isShaderActive())
Minecraft.getMinecraft().entityRenderer.loadShader(shader);
}
@Override
public Set<String> getSpellHUDSkins(){
return GuiSpellDisplay.getSkinKeys();
@@ -568,6 +575,12 @@ public class ClientProxy extends CommonProxy {
data.randomDescriptions = new HashMap<>();
for(Spell spell : Spell.getAllSpells()){
if(spell.networkID() > message.names.size()){
Wizardry.logger.warn("Received no glyph data for spell {}, skipping", spell.getRegistryName());
continue;
}
// -1 because the none spell isn't included
// This is a case where we must use the network ID, not the metadata
data.randomNames.put(spell, message.names.get(spell.networkID() - 1));
@@ -91,13 +91,15 @@ public final class WizardryClientEventHandler {
/** Starts the first-person blink overlay effect. */
public static void playBlinkEffect(){
blinkEffectTimer = BLINK_EFFECT_DURATION;
if(Wizardry.settings.blinkEffect) blinkEffectTimer = BLINK_EFFECT_DURATION;
}
/** Starts the client-side screen shake effect. */
public static void shakeScreen(float intensity){
screenShakeCounter = (int)(intensity / SHAKINESS);
Minecraft.getMinecraft().player.rotationPitch -= intensity * 0.5f; // Start halfway down
if(Wizardry.settings.screenShake){
screenShakeCounter = (int)(intensity / SHAKINESS);
Minecraft.getMinecraft().player.rotationPitch -= intensity * 0.5f; // Start halfway down
}
}
@SubscribeEvent
@@ -105,12 +107,20 @@ public final class WizardryClientEventHandler {
if(event.player == Minecraft.getMinecraft().player && event.phase == TickEvent.Phase.END){
if(blinkEffectTimer > 0) blinkEffectTimer--;
if(Wizardry.settings.blinkEffect){
if(blinkEffectTimer > 0) blinkEffectTimer--;
}else{
blinkEffectTimer = 0;
}
if(screenShakeCounter > 0){
float magnitude = screenShakeCounter * SHAKINESS;
Minecraft.getMinecraft().player.rotationPitch += screenShakeCounter % 2 == 0 ? magnitude : -magnitude;
screenShakeCounter--;
if(Wizardry.settings.screenShake){
if(screenShakeCounter > 0){
float magnitude = screenShakeCounter * SHAKINESS;
Minecraft.getMinecraft().player.rotationPitch += screenShakeCounter % 2 == 0 ? magnitude : -magnitude;
screenShakeCounter--;
}
}else{
screenShakeCounter = 0;
}
// Only seems to work here...
@@ -20,9 +20,6 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import org.lwjgl.opengl.GL11;
import java.util.ArrayList;
import java.util.List;
@Mod.EventBusSubscriber(Side.CLIENT)
public class RenderArcaneLock {
@@ -39,36 +36,44 @@ public class RenderArcaneLock {
EntityPlayer player = Minecraft.getMinecraft().player;
World world = Minecraft.getMinecraft().world;
GlStateManager.pushMatrix();
GlStateManager.enableBlend();
boolean lighting = GL11.glIsEnabled(GL11.GL_LIGHTING);
GlStateManager.disableLighting();
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240, 240);
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
Vec3d origin = player.getPositionEyes(event.getPartialTicks());
GlStateManager.translate(-origin.x, -origin.y + player.getEyeHeight(), -origin.z);
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURES[(player.ticksExisted % (TEXTURES.length * 2))/2]);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder buffer = tessellator.getBuffer();
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
// Someone managed to get a CME here so let's just copy the list to be safe
boolean flag = false;
boolean lighting = false;
// Someone managed to get a CME here so let's iterate manually to be safe (don't copy the list, it's expensive!)
// It's only cosmetic so if a tileentity somehow gets removed while we're rendering them it's not a big deal
List<TileEntity> tileentities = new ArrayList<>(world.loadedTileEntityList);
for(int i=0; i<world.loadedTileEntityList.size(); i++){
TileEntity tileentity = world.loadedTileEntityList.get(i);
for(TileEntity tileentity : tileentities){
if(tileentity == null) continue; // What the heck VoxelMap
if(tileentity.getDistanceSq(origin.x, origin.y, origin.z) <= tileentity.getMaxRenderDistanceSquared()
&& tileentity.getTileData().hasUniqueId(ArcaneLock.NBT_KEY)){
if(!flag){
flag = true;
GlStateManager.pushMatrix();
GlStateManager.enableBlend();
lighting = GL11.glIsEnabled(GL11.GL_LIGHTING);
GlStateManager.disableLighting();
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240, 240);
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.translate(-origin.x, -origin.y + player.getEyeHeight(), -origin.z);
GlStateManager.color(1, 1, 1, 1);
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURES[(player.ticksExisted % (TEXTURES.length * 2))/2]);
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
}
Vec3d[] vertices = WizardryUtilities.getVertices(world.getBlockState(tileentity.getPos()).getBoundingBox(world, tileentity.getPos()).grow(0.05).offset(tileentity.getPos()));
drawFace(buffer, vertices[0], vertices[1], vertices[3], vertices[2], 0, 0, 1, 1); // Bottom
@@ -81,15 +86,19 @@ public class RenderArcaneLock {
}
}
tessellator.draw();
if(flag){
GlStateManager.disableBlend();
GlStateManager.enableTexture2D();
if (lighting) {
GlStateManager.enableLighting();
tessellator.draw();
GlStateManager.disableBlend();
GlStateManager.enableTexture2D();
if(lighting){
GlStateManager.enableLighting();
}
GlStateManager.disableRescaleNormal();
GlStateManager.popMatrix();
}
GlStateManager.disableRescaleNormal();
GlStateManager.popMatrix();
}
private static void drawFace(BufferBuilder buffer, Vec3d topLeft, Vec3d topRight, Vec3d bottomLeft, Vec3d bottomRight, float u1, float v1, float u2, float v2){
@@ -120,8 +120,10 @@ public class EntityMagicSlime extends EntitySlime implements ISummonedCreature {
&& ((EntityLivingBase)this.getRidingEntity()).getHealth() > 0){
if(this.ticksExisted % 16 == 1){
this.getRidingEntity().attackEntityFrom(DamageSource.MAGIC, 1);
((EntityLivingBase)this.getRidingEntity())
.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 20, 2));
if(this.getRidingEntity() != null){ // Some mobs force-dismount when attacked (normally when dying)
((EntityLivingBase)this.getRidingEntity())
.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 20, 2));
}
this.playSound(WizardrySounds.ENTITY_MAGIC_SLIME_ATTACK, 1.0f, 1.0f);
this.squishAmount = 0.5F;
}
@@ -13,6 +13,8 @@ import electroblob.wizardry.registry.WizardryRecipes;
import electroblob.wizardry.registry.WizardryTabs;
import electroblob.wizardry.util.SpellModifiers;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentMending;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -194,7 +196,13 @@ public class ItemWizardArmour extends ItemArmor implements IWorkbenchItem, IMana
public boolean getIsRepairable(ItemStack stack, ItemStack material){
return false;
}
// This is misleadingly-named, it also applies to enchanting with books at an anvil
@Override
public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment){
return !(enchantment instanceof EnchantmentMending) && super.canApplyAtEnchantingTable(stack, enchantment);
}
/**
* Properly handles the defence value of the armour. This method is responsible for the tooltip on top of
* the armour value. It is also what handles armour toughness.
@@ -172,9 +172,9 @@ public class PotionSlowTime extends PotionMagicEffect implements ISyncedPotion {
@SubscribeEvent
public static void onPotionAddedEvent(PotionEvent.PotionAddedEvent event){
if(event.getEntity().world.isRemote && event.getPotionEffect().getPotion() == WizardryPotions.slow_time
&& event.getEntity() == net.minecraft.client.Minecraft.getMinecraft().player){
if(Wizardry.settings.useShaders) net.minecraft.client.Minecraft.getMinecraft().entityRenderer.loadShader(SlowTime.SHADER);
electroblob.wizardry.client.WizardryClientEventHandler.playBlinkEffect();
&& event.getEntity() instanceof EntityPlayer){
Wizardry.proxy.loadShader((EntityPlayer)event.getEntity(), SlowTime.SHADER);
Wizardry.proxy.playBlinkEffect((EntityPlayer)event.getEntity());
}
}
@@ -67,6 +67,9 @@ public final class WizardryLoot {
LootTableList.register(new ResourceLocation(Wizardry.MODID, "subsets/wizard_armour"));
LootTableList.register(new ResourceLocation(Wizardry.MODID, "subsets/arcane_tomes"));
LootTableList.register(new ResourceLocation(Wizardry.MODID, "subsets/wand_upgrades"));
LootTableList.register(new ResourceLocation(Wizardry.MODID, "subsets/uncommon_artefacts"));
LootTableList.register(new ResourceLocation(Wizardry.MODID, "subsets/rare_artefacts"));
LootTableList.register(new ResourceLocation(Wizardry.MODID, "subsets/epic_artefacts"));
LootTableList.register(new ResourceLocation(Wizardry.MODID, "entities/evil_wizard"));
LootTableList.register(new ResourceLocation(Wizardry.MODID, "entities/mob_additions"));
@@ -91,9 +91,6 @@ public class Divination extends Spell {
(float)(target.getY() + 0.5 - (caster.getEntityBoundingBox().minY + caster.getEyeHeight())),
(float)(target.getZ() + 0.5 - caster.posZ));
if(world.isRemote) ParticleBuilder.create(ParticleBuilder.Type.SPARKLE).pos(target.getX() + 0.5,
target.getY() + 1.5, target.getZ() + 0.5).spawn(world);
strength = Strength.forWeight(calculateWeight(world, caster, target, range, modifiers));
}
@@ -210,6 +210,8 @@ public class Grapple extends Spell {
@Override
public boolean cast(World world, EntityLiving caster, EnumHand hand, int ticksInUse, EntityLivingBase target, SpellModifiers modifiers){
if(target == null) return false;
Vec3d origin = new Vec3d(caster.posX, caster.getEntityBoundingBox().minY + caster.getEyeHeight(), caster.posZ);
// If the target is an entity, we need to use the entity's centre rather than the original hit position
@@ -212,6 +212,7 @@ public class Possession extends SpellRay {
possessor.eyeHeight = target.getEyeHeight();
setSize(possessor, target.width, target.height);
target.dismountRidingEntity();
target.setDead();
target.setNoAI(true);
target.setAttackTarget(null);
@@ -251,10 +252,10 @@ public class Possession extends SpellRay {
}
}
if(possessor.world.isRemote && possessor == net.minecraft.client.Minecraft.getMinecraft().player){
if(possessor.world.isRemote){
// Shaders and effects
if(Wizardry.settings.useShaders) net.minecraft.client.Minecraft.getMinecraft().entityRenderer.loadShader(SHADER);
electroblob.wizardry.client.WizardryClientEventHandler.playBlinkEffect(); // Looks quite nice...
Wizardry.proxy.loadShader(possessor, SHADER);
Wizardry.proxy.playBlinkEffect(possessor);
}else{
@@ -348,7 +349,7 @@ public class Possession extends SpellRay {
if(player.world.isRemote && player == net.minecraft.client.Minecraft.getMinecraft().player){
net.minecraft.client.Minecraft.getMinecraft().entityRenderer.stopUseShader();
electroblob.wizardry.client.WizardryClientEventHandler.playBlinkEffect(); // Looks quite nice...
Wizardry.proxy.playBlinkEffect(player);
}
for(IAttribute attribute : INHERITED_ATTRIBUTES.keySet()){
@@ -399,9 +400,7 @@ public class Possession extends SpellRay {
if(player.world.isRemote){
ParticleBuilder.create(Type.DARK_MAGIC, player).clr(0.1f, 0, 0.3f).spawn(player.world);
// TODO: This (and a few other similar uses) needs ClientProxy-ing.
if(!net.minecraft.client.Minecraft.getMinecraft().entityRenderer.isShaderActive())
if(Wizardry.settings.useShaders) net.minecraft.client.Minecraft.getMinecraft().entityRenderer.loadShader(SHADER);
Wizardry.proxy.loadShader(player, SHADER);
}
}else{
@@ -39,9 +39,9 @@ public class SixthSense extends Spell {
(int)(getProperty(EFFECT_DURATION).floatValue() * modifiers.get(WizardryItems.duration_upgrade)),
(int)((modifiers.get(WizardryItems.range_upgrade) - 1f) / Constants.RANGE_INCREASE_PER_LEVEL)));
if(world.isRemote && caster == net.minecraft.client.Minecraft.getMinecraft().player){
if(Wizardry.settings.useShaders) net.minecraft.client.Minecraft.getMinecraft().entityRenderer.loadShader(SHADER);
electroblob.wizardry.client.WizardryClientEventHandler.playBlinkEffect();
if(world.isRemote){
Wizardry.proxy.loadShader(caster, SHADER);
Wizardry.proxy.playBlinkEffect(caster);
}
this.playSound(world, caster, ticksInUse, -1, modifiers);
@@ -51,9 +51,9 @@ public class SixthSense extends Spell {
@SubscribeEvent
public static void onPotionAddedEvent(PotionEvent.PotionAddedEvent event){
if(event.getEntity().world.isRemote && event.getPotionEffect().getPotion() == WizardryPotions.sixth_sense
&& event.getEntity() == net.minecraft.client.Minecraft.getMinecraft().player){
if(Wizardry.settings.useShaders) net.minecraft.client.Minecraft.getMinecraft().entityRenderer.loadShader(SHADER);
electroblob.wizardry.client.WizardryClientEventHandler.playBlinkEffect();
&& event.getEntity() instanceof EntityPlayer){
Wizardry.proxy.loadShader((EntityPlayer)event.getEntity(), SHADER);
Wizardry.proxy.playBlinkEffect((EntityPlayer)event.getEntity());
}
}
@@ -24,8 +24,8 @@ public class SlowTime extends SpellBuff {
@Override
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
if(caster.world.isRemote && caster == net.minecraft.client.Minecraft.getMinecraft().player){
if(Wizardry.settings.useShaders) net.minecraft.client.Minecraft.getMinecraft().entityRenderer.loadShader(SHADER);
if(caster.world.isRemote){
Wizardry.proxy.loadShader(caster, SHADER);
}
return super.cast(world, caster, hand, ticksInUse, modifiers);
@@ -38,9 +38,9 @@ public class Transience extends Spell {
@Override
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
if(world.isRemote && caster == net.minecraft.client.Minecraft.getMinecraft().player){
if(Wizardry.settings.useShaders) net.minecraft.client.Minecraft.getMinecraft().entityRenderer.loadShader(SHADER);
electroblob.wizardry.client.WizardryClientEventHandler.playBlinkEffect();
if(world.isRemote){
Wizardry.proxy.loadShader(caster, SHADER);
Wizardry.proxy.playBlinkEffect(caster);
}
if(!caster.isPotionActive(WizardryPotions.transience)){
@@ -87,9 +87,9 @@ public class Transience extends Spell {
@SubscribeEvent
public static void onPotionAddedEvent(PotionEvent.PotionAddedEvent event){
if(event.getEntity().world.isRemote && event.getPotionEffect().getPotion() == WizardryPotions.transience
&& event.getEntity() == net.minecraft.client.Minecraft.getMinecraft().player){
if(Wizardry.settings.useShaders) net.minecraft.client.Minecraft.getMinecraft().entityRenderer.loadShader(SHADER);
electroblob.wizardry.client.WizardryClientEventHandler.playBlinkEffect();
&& event.getEntity() instanceof EntityPlayer){
Wizardry.proxy.loadShader((EntityPlayer)event.getEntity(), SHADER);
Wizardry.proxy.playBlinkEffect((EntityPlayer)event.getEntity());
}
}
@@ -636,7 +636,7 @@ public final class WizardryUtilities {
// This is a perfect example of where you need to use .equals() and not ==. For most applications,
// this was unnoticeable until world reload because the UUID instance or entity instance is stored.
// Fixed now though.
if(entity.getUniqueID().equals(id)){
if(entity != null && entity.getUniqueID() != null && entity.getUniqueID().equals(id)){
return entity;
}
}
@@ -1279,6 +1279,10 @@ config.ebwizardry.use_shaders=Use Custom Shaders
config.ebwizardry.use_shaders.tooltip=Whether to use custom shaders for certain spells. These use the vanilla shader system (like mob spectating shaders) and shouldn't have much of an effect on performance in most cases, but they may conflict with other shaders.
config.ebwizardry.use_shaders.true=Yes - gimme those sweet shaders!
config.ebwizardry.use_shaders.false=No - I'm running this on a potato
config.ebwizardry.screen_shake=Screen Shake
config.ebwizardry.screen_shake.tooltip=Whether to use the screen shake effect for certain spells.
config.ebwizardry.blink_effect=Blink Effect
config.ebwizardry.blink_effect.tooltip=Whether to use the screen blink effect for teleportation spells.
config.ebwizardry.category.commands=Command Settings
config.ebwizardry.category.commands.tooltip=Configure wizardry's commands
@@ -1279,6 +1279,10 @@ config.ebwizardry.use_shaders=Use Custom Shaders
config.ebwizardry.use_shaders.tooltip=Whether to use custom shaders for certain spells. These use the vanilla shader system (like mob spectating shaders) and shouldn't have much of an effect on performance in most cases, but they may conflict with other shaders.
config.ebwizardry.use_shaders.true=Yes - gimme those sweet shaders!
config.ebwizardry.use_shaders.false=No - I'm running this on a potato
config.ebwizardry.screen_shake=Screen Shake
config.ebwizardry.screen_shake.tooltip=Whether to use the screen shake effect for certain spells.
config.ebwizardry.blink_effect=Blink Effect
config.ebwizardry.blink_effect.tooltip=Whether to use the screen blink effect for teleportation spells.
config.ebwizardry.category.commands=Command Settings
config.ebwizardry.category.commands.tooltip=Configure wizardry's commands
@@ -837,7 +837,7 @@ spell.ebwizardry\:poison_bomb.desc=Wystrzeliwuje trującą bombę w pożądanym
spell.ebwizardry\:possession.desc="Zostań swoim wrogiem."
spell.ebwizardry\:ray_of_purification.desc=Emituje promień oślepiającego światła, który uszkadza i oślepia cele. Nieumarłe stworzenia otrzymują podwójne obrażenia i zostają podpalone.
spell.ebwizardry\:remove_curse.desc=Usuwa wszelkie klątwy, które dzierży rzucający.
spell.ebwizardry\:replenish_hunger.desc=Uzupełnia poziom głodu rzucającego o 4 punkty.
spell.ebwizardry\:replenish_hunger.desc=Uzupełnia poziom głodu rzucającego o 3 punkty.
spell.ebwizardry\:resurrection.desc=U boku głównego uzdrowiciela jest martwe... opcjonalne.
spell.ebwizardry\:reversal.desc=Usuwa losowy zły efekt mikstury i przekazuje go celowi, który odczuje ten efekt przez pozostały czas. Potencja zwiększa liczbę odwróconych efektów.
spell.ebwizardry\:ring_of_fire.desc=Tworzy pierścień ognia wokół rzucającego, uszkadzając wszystkich pobliskich wrogów i podpalając ich.
File diff suppressed because it is too large Load Diff
@@ -837,7 +837,7 @@ spell.ebwizardry\:poison_bomb.desc=朝你所指的方向發射一顆毒液炸彈
spell.ebwizardry\:possession.desc=『變成敵人!』
spell.ebwizardry\:ray_of_purification.desc=射出一道刺眼的陽光,傷害目標並使其暫時失明。不死生物會受到兩倍的傷害且著火。
spell.ebwizardry\:remove_curse.desc=驅除施法者身上所有的詛咒。
spell.ebwizardry\:replenish_hunger.desc=為施法者補充4點(2支雞腿)的飽食度。
spell.ebwizardry\:replenish_hunger.desc=為施法者補充6點(3支雞腿)的飽食度。
spell.ebwizardry\:resurrection.desc=身邊有個治療大師,就算死了...也沒關係。
spell.ebwizardry\:reversal.desc=隨機移除一種負面的藥水效果,將其加諸在目標身上,持續原本剩餘的效果時間。潛能可增加逆轉的效果數量。
spell.ebwizardry\:ring_of_fire.desc=在施法者四周製造一個火焰圈,傷害所有靠近的敵人並使它們著火。
@@ -7,7 +7,8 @@
],
"key": {
"x": {
"item": "minecraft:string"
"type": "forge:ore_dict",
"ore": "string"
},
"y": [
{
@@ -48,4 +49,4 @@
"item": "ebwizardry:magic_silk",
"count": 2
}
}
}
@@ -732,11 +732,11 @@
"Code:",
"- Corail31 \n- 12foo \n- Shadows-of-Fire \n- HellFirePvP \n- Tora-B \n- Avatair \n- Aeronica",
"- Corail31 \n- 12foo \n- Shadows-of-Fire \n- HellFirePvP \n- Tora-B \n- Avatair \n- Aeronica \n- UltraHex \n- Azim-Palmer \n- raoulvdberge \n- rafasoares",
"Translations:",
"- Spanish: MadWrist, Alsentar \n- Mexican Spanish: MadWrist \n- Russian: VilagVil, kellixon, bigenergy \n- French: Hahdrim \n- Brazilian Portuguese: lorrampi \n- Chinese: ZHENGLOC, dragon-evol, Hokorizero, TUsama \n- Korean: shejery, rewi_wire \n- Polish: Trozuu \n-German: BirdyDragon",
"- Spanish: MadWrist, Alsentar \n- Mexican Spanish: MadWrist \n- Russian: VilagVil, kellixon, bigenergy \n- French: Hahdrim \n- Brazilian Portuguese: lorrampi \n- Chinese: ZHENGLOC, dragon-evol, Hokorizero, TUsama, Determancer \n- Korean: shejery, rewi_wire \n- Polish: Trozuu \n-German: BirdyDragon \n-Taiwanese: chesterccj305",
"Lightning ray sound effect from OhhWowProductions",
@@ -732,11 +732,11 @@
"Code:",
"- Corail31 \n- 12foo \n- Shadows-of-Fire \n- HellFirePvP \n- Tora-B \n- Avatair \n- Aeronica",
"- Corail31 \n- 12foo \n- Shadows-of-Fire \n- HellFirePvP \n- Tora-B \n- Avatair \n- Aeronica \n- UltraHex \n- Azim-Palmer \n- raoulvdberge \n- rafasoares",
"Translations:",
"- Spanish: MadWrist, Alsentar \n- Mexican Spanish: MadWrist \n- Russian: VilagVil, kellixon, bigenergy \n- French: Hahdrim \n- Brazilian Portuguese: lorrampi \n- Chinese: ZHENGLOC, dragon-evol, Hokorizero, TUsama \n- Korean: shejery, rewi_wire \n- Polish: Trozuu \n-German: BirdyDragon",
"- Spanish: MadWrist, Alsentar \n- Mexican Spanish: MadWrist \n- Russian: VilagVil, kellixon, bigenergy \n- French: Hahdrim \n- Brazilian Portuguese: lorrampi \n- Chinese: ZHENGLOC, dragon-evol, Hokorizero, TUsama, Determancer \n- Korean: shejery, rewi_wire \n- Polish: Trozuu \n-German: BirdyDragon \n-Taiwanese: chesterccj305",
"Lightning ray sound effect from OhhWowProductions",
@@ -732,11 +732,11 @@
"Codigo:",
"- Corail31 \n- 12foo \n- Shadows-of-Fire \n- HellFirePvP \n- Tora-B \n- Avatair \n- Aeronica",
"- Corail31 \n- 12foo \n- Shadows-of-Fire \n- HellFirePvP \n- Tora-B \n- Avatair \n- Aeronica \n- UltraHex \n- Azim-Palmer \n- raoulvdberge \n- rafasoares",
"Traducciones:",
"- Español: MadWrist, Alsentar \n- Español de Mexico: MadWrist \n- Ruso: VilagVil, kellixon, bigenergy \n- Frances: Hahdrim \n- Portuges Brasileño: lorrampi \n- Chino: ZHENGLOC, dragon-evol, Hokorizero, TUsama \n- Koreano: shejery, rewi_wire \n- Polaco: Trozuu, \nAlemán: BirdyDragon",
"- Español: MadWrist, Alsentar \n- Español de Mexico: MadWrist \n- Ruso: VilagVil, kellixon, bigenergy \n- Frances: Hahdrim \n- Portuges Brasileño: lorrampi \n- Chino: ZHENGLOC, dragon-evol, Hokorizero, TUsama, Determancer \n- Koreano: shejery, rewi_wire \n- Polaco: Trozuu, \nAlemán: BirdyDragon",
"Efecto de sonido para los relámpagos por OhhWowProductions",
@@ -1,319 +0,0 @@
PAGEBREAK
LINEBREAK
El Manual del Mago
Por Electroblob
PAGEBREAK
Introduccion
--------------------
Saludos, mago! Este libro explica las diferentes formas de lo arcano y como
usarlas.
Si alguna vez pierde este libro, lo puede volver a fabricar con un libro y un cristal magico.
PAGEBREAK
Contents
--------------------
PAGEBREAK
SECTION Comenzando
Comenzando
--------------------
Para iniciar con Wizardry, necesitaras algunas cosas:
- Una varita magica, crafteada con una pepita de oro, un palo y un cristal magico.
- Una Mesa de Trabajo Arcana, crafteada con 3 piedras, 1 bloque de lapis lazuli,
2 cristales magicos, 2 pepitas de oro y 1 alfombra morada.
- Un libro de hechizos. Estos pueden ser encontrados en cofres, arrojados como botin,
comprados a magos, o puedes hacer el hechizo del aprendiz, Misil Magico, con un
libro y 4 cristales magicos.
Tambien necesitaras un monton de cristales magicos para suplir tu varita con mana.
PAGEBREAK
SECTION Mana
Mana
--------------------
Mana es la energia arcana que le da a los magos sus poderes. Se manifiesta en cristales que aparecen naturalmente, los cuales aparecen incrustados bajo roca. Las varitas almacenan mana dentro de ellas, y este mana es canalizado en los hechizos que tu lanzas. Cada hechizo cuesta una cantidad diferente de mana, dependiendo de que tan
poderosos sean y que tanto duran.
Coloca tu raton sobre una varita para ver la cantidad de mana que tiene.
IMAGE CRYSTAL
LINEBREAK
Mena
de Cristal Magico Cristal
PAGEBREAK
SECTION Varitas
Varitas
--------------------
La varita es la herramienta de eleccion de un mago. Con ella, puedes lanzar cualquier
hechizo, solo si la varita contiene dicho poder (ver Nivel de varitas para entender mejor).
Las varitas vienen en variedades diferentes, es muy probable que empieces con la varita magica
basica.
Cuando tienes una varita en tu mano, aparecera una pequena ventana en el esquina de la
pantalla. Esto indica el hechizo que esta seleccionado actualmente con una representacion
de este, y, si el hechizo ha sido lanzado, una barra con el tiempo de reactivacion para que
el hechizo pueda volcver a ser lanzado de nuevo.
PAGEBREAK
SECTION Hechizos
Hechizos
--------------------
Una varita es inservible sin hechizos que lanzar. Los hechizos estan guardados en dos
formas: en libros, los cuales son permanentes, y en pergaminos, que son temporales.
Los libros de hechizos son poco utiles ellos solos, por eso se suele ligar el hechizo
que contienen a las varitas. Los libros de hechizos pueden ser encontrados por todo el
mundo. Cuando encuentres uno, puedes colocar el raton sobre el libro para ver su informacion.
Tambien puede hacer clic derecho mientras lo tiene en su mano para ver mas informacion.
Pergaminos, por otro lado, sirven un proposito diferente: hacer clic derecho con
el en la mano, lanzara el hechizo que tenga ligado a el, destruyendo el papel en el
proceso. Como los libros, los hechizos pueden ser encontrados por todo el mundo, pero
tambien puedes hacerlos tu mismo al craftear un pergamino vacio con papel y un poco de
hilo. Puedes ligarle un hechizo usando una Mesa de Trabajo Arcana, pero solo si ya conoces
dicho hechizo. Hacer esto consumira un cantidad de cristales magicos equivalente al mana
que cuesta lanzar el hechizo (redondeado al MANA_PER_CRYSTAL mas cercano).
Para el ojo sin experiencia, las runas magicas con las cuales los hechizos son escritos
son ilegibles. Por eso, para identificar un hechizo, podrias lanzarlo y ver sus efectos
pero quizas ocasione efectos no deseados, y algunos hechizos necesitan condicione necesarias
para funcionar. Una forma mas segura, es usar un Pergamino de la Identificacion, el cual
puede ser comprado a magos. Hacer clic derecho con uno en la mano identificara el
primer hechizo desconocido en tu barra.
Los pergaminos son utiles cuando necesitas lanzar un hechizo una o dos veces en una
ocasion en particular pero no quieres que te ocupe un espacio en tu varita. Hay que
resaltar, como sea, que los pergaminos son un metodo ineficiente de lanzar hechizos.
PAGEBREAK
SECTION Mesa de Trabajo Arcana
La Mesa de Trabajo Arcana
--------------------
La Mesa de Trabajo Arcana es un bloque similar en apariencia a la mesa de encantamiento
donde puedes cargar, mejorar y ligar hechizos a una varita. Simplemente coloca donde sea
y haz clic derecho, y veras una interfaz aparecer parecida a la de la derecha.
PAGEBREAK
IMAGE WORKBENCH
LINEBREAK
La Mesa de Trabajo Arcana
PAGEBREAK
SECTION Ligando Hechizos
Ligando Hechizos
--------------------
Para ligar un hechizo a tu varita, simplemente coloca tu varita en el espacio central
de la Mesa de Trabajo Arcana, luego coloca el libro de hechizo en uno de los espacios
que estan alrededor y pulsa Aplicar. Puedes ligar 5 hechizos a la vez, esto puede ser
aumentado con mejoras. Cuando tienes una varita en la mano, puedes cambiar los hechizos
con las NEXT_SPELL_KEY y PREVIOUS_SPELL_KEY teclas. Tambien puedes cambiarlo al agacharte
y moviendo la rueda del raton.
SECTION Cargando varitas
Cargando varitas
--------------------
Para cargar tu varita, coloca la varita en el espacio central de la Mesa de Trabajo Arcana
y coloca algunos cristales magicos en el espacio mas arriba en la izquierda, y despues
pulsa Aplicar. Cada cristal vale MANA_PER_CRYSTAL mana, y la varita solo toma lo que
necesita, asi que puedes mantener cristales en la Mesa de Trabajo Arcana para cuando
los necesites. Todas las varitas tomaran un numero exacto de cristales para cargarla si esta
vacia, a menos que tengan una mejora de almacenamiento aplicada.
SECTION Mejorando varitas
Mejorando tu varita
--------------------
Para mejorar tu varita, necesitaras un Tomo de lo Arcano de tu nivel apropiado (ver
Niveles) o una mejora de varita especial. Ambos pueden ser encontrados como botin o
comprado a un mago. Para mejorar tu varita, colocala en el espacio central de la
Mesa de Trabajo Arcana y la mejora en el espacio inferior a la izquierda, y pulsar Aplicar.
Mejoras de varita especiales mejorar un aspecto particular de la varita. Cada tipo de mejora
se puede apilar 3 veces, y el total de mejoras que puede tener una varita depende del nivel.
Las mejoras no pueden ser removidas.
PAGEBREAK
SECTION Flores y Frascos
Flores y Frascos
--------------------
Es probable que te encuentres con flores brillantes creciendo en el suelo de tiempo
en tiempo. Esas son flores de cristal magico, una fuente de mana natural. Pueden ser
cosechadas y crafteadas para extraer mana en cristales.
Necesitas recargar tu varita de camino? No hay problema! El mana puede ser enfrascado.
Simplemente craftea un frasco de mana con una botella de cristal y ocho cristales magicos
y llevatelo contigo. Cuando necesites mana, solo craftea la varita con el frasco para
recargar un poco. Este proceso consumira la botella. Un poco de mana se perdera en el
proceso de enfrascamiento.
PAGEBREAK
SECTION Niveles
Niveles
--------------------
Las varitas y los hechizos vienen en cuatro niveles: BASIC_COLOURBasicoRESET_COLOUR, APPRENTICE_COLOURAprendizRESET_COLOUR, ADVANCED_COLOURAvanzadoRESET_COLOUR y MASTER_COLOURMaestroRESET_COLOUR. Cada nivel es mejor que el anterior.
Las varitas BASIC_COLOURBasico RESET_COLOURson las que pueden ser crafteadas. Almacenan
BASIC_MAX_CHARGE mana, y solo pueden lanzar hechizos basicos. Hechizos basicos son suficientemente simples para ser lanzados por cualquiera y no usan mucho mana. Esto
no significa que son inservibles en niveles mas altos, sin embargo; su costo pequeno
hace que algunos hechizos basicos sean utiles cuando tienes acceso a hechizos maestros.
Las varitas APPRENTICE_COLOURAprendiz RESET_COLOURson el siguiente nivel despues de las
varitas basicas. Almacenan APPRENTICE_MAX_CHARGE mana y pueden lanzar hechizos basicos y de
aprendiz. Los hechizos de aprendiz son mas llamativos que los basicos, pero cuestan mas.
Las varitas ADVANCED_COLOURAvanzado RESET_COLOURson muy raras y mucho mas poderosas.
Pueden lanzar todos los hechizos excepto los maestros, y almacenar ADVANCED_MAX_CHARGE mana.
Los hechizos avanzados pueden otorgar poderes de superhumano como invisibilidad y causar
mucho dano a los enemigos.
Las varitas MASTER_COLOURMaestro RESET_COLOURson las mas poderosas varitas que existen. Almacenan MASTER_MAX_CHARGE mana, y pueden lanzar cualquier hechizo. Los libros de hechizos
maestros son muy raros y los hechizos pueden causar una gran devastacion, no solo a los enemigos
si no al mundo en si. Usar con precaucion.
PAGEBREAK
SECTION Elementos
Elementos
--------------------
Los hechizos pertenecen a diferentes elementos, los cuales describen la naturaleza
del hechizo y tambien tienen ventajas cuando son lanzados con ciertas varitas.
FIRE_COLOURFuego
Quizas el elemento mas destructivo, fuego conlleva quemaduras, lava, y explosiones. Un piromano poderoso desatara el infierno sobre sus enemigos y probablemente encienda
el mundo en el proceso. La mayoria de los ataques de fuego queman a sus objetivos,
causando dano extra sobre el tiempo. Sin embargo, te en cuenta que no tendran efecto
en monstruos del Nether.
ICE_COLOURHielo
El elemento de hielo esta formado por todo lo que es frio. Los hechizos de hielo
frencuentemente ralentizan a los enemigos o los congelan completamente, y son
efectivos contra criaturas de fuego. La magia de hielo puede ser util fuera de
combate, como para congelar un rio para poder cruzarlo a pie.
LIGHTNING_COLOURRayo
Este elemento conlleva relampagos, tormentas y el clima. Un mago de tormenta poderoso
es una fuerza dura de vencer, y algunos son capaces de llamar rayos a voluntad. Los
hechizos de rayo con frecuencia hacen dano a varios enemigos a la vez y usualmente
persiguen a su objetivo, haciendolos efectivos para atacar a cualquier monstruo...
pero cuidado con los creepers.
NECROMANCY_COLOURNigromancia
Nigromancia es el elemento de oscuridad, caos y lo no-muerto. Nigromantes son
misteriosos y a veces considerados malos, aunque no siempre es el casp. Los
hechizos de nigromancia son usados para invocar criaturas que pelearan por ti o
hasta controlar la voluntad de tus enemigos.
EARTH_COLOURTierra
El elemento de tierra esta enfocado en el mundo natural: animales, plantas, el viento, y cosas asi. La magia de tierra es diversa y toma una gran variedad de formas, desde envenerar enemigos hasta desatar la furia del clima. Los hechizos de tierra son una liga de ataque, defensa y utilidad.
SORCERY_COLOURHechiceria
La hechiceria es el elemento de la fuerza y el cambio. Los hechiceros manipulan la luz,
la gravedad y hasta la realidad para su beneficio. Los hechizos de hechiceria pueden
ser usados, entre otras cosas, para conceder poderes magicos y mover objetos.
HEALING_COLOURCuracion
El elemento de curacion conlleva defensa y regeneracion. Los sanadores buscan
protegerse y a sus aliados lo mas posble, lo cual puede ser dificil para los
oponentes. A pesar de no considerarse como un ataque, la luz purificadora de sus
hechizos de curacion puede ser letales para los no-muertos. Los hechizos de
curacion son indispensables cuando se esta dentro de combate.
Los limites entre los diferentes elementos no siempre son distintos, y algunos hechizos
tienen atributos de otros elementos mas que del suyo.
Si eres suertudo, puedes que te encuentres una varita elemental. Estas varitas te
permiten lanzar hechizos del elemento correcto con mas potencia de lo usual.
PAGEBREAK
SECTION Armadura de Mago
Armadura de Mago
--------------------
Como mago, necesitaras algo para protegerte de las criaturas que combates.
Ninguna armadura ordinal valdra. Para sacarle provecho a tus hechizos, necesitas
armadura de mago: sombrero, tunica, pantalones y botas. A diferencia de las otras,
estas no se romperan. Sin embargo, usaran energia arcana para proteger al usuario.
Esto significa que deben ser cargados con cristales magicos. Ventajosamente no
consumen mucho mana. Recargalos en la mesa o con frascos.
Puedes obtener armadura de mago crafteandola con Seda Magica, obtenida al craftear
hilo con un cristal magico.
Esos magos que se dedican a practicar un solo elemento algunas veces visten
piezas especiales las cuales ofrecen bonus a dicho elemento. Los sets completos
de esta armadura son muy codiciados entre magos y no son faciles de conseguir.
Hay una legenda que habla sobre un sello arcano usado por los magos mas poderosos
para mejorar en sobre manera su armadura.
PAGEBREAK
SECTION Magos y Torres
Magos y Torres
--------------------
No temas - no eres el unico que practica magia en este mundo. En tus viajes, te encontraras con torres altas con unos distintivos techos puntiagudos.
Estas son las residencias de varios magos. Una vida de soledad puede hacer que los magos se vuelvan grunones, pero usualmente son seres amigables que estan
dispuestos a compartir su conocimiento contigo - con un precio. Preparate para pagar con gemas y metales preciosos, y a cambio recibiras grandezas arcanas.
Si, en dado caso, un hechizo maestro es lo que buscas, deberar hablar con un especialista en dicho elemento.
Desafortunadamente, hay algunos magos que no le dan la bienvenida a los visitantes. Estos magos son marginados y son hostiles hacia cualquiera que cruce su camino. Aproximate a ellos con cautela, y preparate para defenderte contra magia sumamente poderosa. Derrotalos, y su conocimiento sera tuyo.
PAGEBREAK
SECTION Recetas de Crafteo
Recetas de Crafteo
--------------------
PAGEBREAK
PAGEBREAK
Recetas de Crafteo
--------------------
PAGEBREAK
PAGEBREAK
Recetas de Crafteo
--------------------
PAGEBREAK
PAGEBREAK
Recetas de Crafteo
--------------------
PAGEBREAK
PAGEBREAK
Creditos
--------------------
Electroblob's Wizardry
Version VERSION
Para Minecraft MCVERSION
Disenado, codificado y texturizado por Electroblob
Gracias a Minecraft Forge y MCP, porque sin estos esto no hubiese sido posible.
Gracias tambien a la comunidad de Minecraft que crea mods, la cual siempre tiene una respuesta para mis problemas!
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
@@ -11,16 +11,16 @@
"images": {
"workbench": {
"location": "ebwizardry:textures/gui/handbook/pictures/arcane_workbench_picture.png",
"caption": "The Arcane Workbench",
"location": "ebwizardry:textures/gui/arcane_workbench_picture.png",
"caption": "奥术工作台",
"u": 0,
"v": 0,
"width": 110,
"height": 110
},
"crystal_ore": {
"location": "ebwizardry:textures/gui/handbook/pictures/ore_picture.png",
"caption": "Crystal Ore",
"location": "ebwizardry:textures/gui/ore_picture.png",
"caption": "水晶矿石",
"u": 0,
"v": 0,
"width": 64,
@@ -28,7 +28,7 @@
},
"magic_crystal": {
"location": "ebwizardry:textures/items/crystal_magic.png",
"caption": "A Magic Crystal",
"caption": "魔法水晶",
"u": 6,
"v": 6,
"width": 36,
@@ -39,7 +39,7 @@
},
"magic_wand": {
"location": "ebwizardry:textures/items/wand_novice.png",
"caption": "A Magic Wand",
"caption": "魔杖",
"u": 0,
"v": 0,
"width": 64,
@@ -47,48 +47,48 @@
"border": false
},
"crystal_flower": {
"location": "ebwizardry:textures/gui/handbook/pictures/flower_picture.png",
"caption": "A Crystal Flower",
"location": "ebwizardry:textures/gui/flower_picture.png",
"caption": "水晶花",
"u": 0,
"v": 0,
"width": 48,
"height": 48
},
"wizard_tower": {
"location": "ebwizardry:textures/gui/handbook/pictures/tower_picture.png",
"caption": "A Wizard's Tower",
"location": "ebwizardry:textures/gui/tower_picture.png",
"caption": "巫师塔",
"u": 0,
"v": 0,
"width": 110,
"height": 110
},
"wizard_armour": {
"location": "ebwizardry:textures/gui/handbook/pictures/armour_picture.png",
"caption": "A Set Of Wizard Armour",
"location": "ebwizardry:textures/gui/armour_picture.png",
"caption": "一整套巫师护具",
"u": 0,
"v": 0,
"width": 90,
"height": 90
},
"obelisk": {
"location": "ebwizardry:textures/gui/handbook/pictures/obelisk_picture.png",
"caption": "An Obelisk",
"location": "ebwizardry:textures/gui/obelisk_picture.png",
"caption": "方尖碑",
"u": 0,
"v": 0,
"width": 110,
"height": 67
},
"shrine": {
"location": "ebwizardry:textures/gui/handbook/pictures/shrine_picture.png",
"caption": "An Earth Shrine",
"location": "ebwizardry:textures/gui/shrine_picture.png",
"caption": "大地圣祠",
"u": 0,
"v": 0,
"width": 110,
"height": 67
},
"tiers": {
"location": "ebwizardry:textures/gui/handbook/pictures/tiers_picture.png",
"caption": "The 4 Tiers Of Wand",
"location": "ebwizardry:textures/gui/tiers_picture.png",
"caption": "宗师级魔杖",
"u": 0,
"v": 0,
"width": 96,
@@ -96,8 +96,8 @@
"border": false
},
"elements": {
"location": "ebwizardry:textures/gui/handbook/pictures/elements_picture.png",
"caption": "The 7 Arcane Elements",
"location": "ebwizardry:textures/gui/elements_picture.png",
"caption": "七种魔法元素",
"u": 0,
"v": 0,
"width": 106,
@@ -236,26 +236,26 @@
},
"text": [
"巫师手札",
"巫师手札",
"By Electroblob"
]
},
"introduction": {
"title": "介绍",
"title": "介绍",
"text": [
"向你致以敬意, 巫师! 这本书介绍了数种魔法类别以及如何操纵这些元素。 我必须提醒你,这本书并不只是像现在这样,看起来十分普通 —— 当你在不断地探索这个世界时,书中新的内容会不断地具现出来。",
"向你致以敬意, 巫师! 这本书介绍了数种魔法类别以及操纵这些元素的方法。 我必须提醒你,这本书并不只是像现在这样,看起来十分普通 —— 当你在探索这个世界时,书中新的内容会不断地具现出来。",
"点击单箭头按钮可以切换页数, 点击双箭头按钮可以在章节之间切换. 点击中心按钮可以返回目录。",
"点击单箭头按钮可以切换页数, 点击双箭头按钮可以在章节之间切换. 点击中心按钮可以返回目录。",
"点击紫色的链接将会直接跳转到相关页面, 右键书签将会把书签移动到当前页面, 左键书签将会返回标记页面。"
"点击紫色的链接将会直接跳转到相关页面, 右键书签将会把书签移动到当前页面, 左键书签将会返回标记页面。"
]
},
"main_contents": {
"title": "内容",
"title": "内容",
"contents": {
"id": "main_contents",
"hyperlinks": true,
@@ -265,90 +265,90 @@
},
"setting_up": {
"title": "在最开始",
"title": "在最开始",
"include_in_contents": "main_contents",
"text": [
"想要开始你的巫术之旅,你需要:",
"想要开始你的巫术之旅,你需要:",
"- 一把魔杖, 合成如下所示:",
"- 一把魔杖, 合成如下所示:",
"#recipe magic_wand",
"- 一个 @arcane_workbench 奥术工作台@ , 合成如下所示:",
"- 一个 @arcane_workbench 奥术工作台@ , 合成如下所示:",
"#recipe arcane_workbench",
"- 一本 @spells 法术@ 书. 你可以在战利品箱发现咒语书, 它也会以掉落物形式出现,你也可以与其他巫师交易。当然你也可以制作一本初始的法书, 魔法飞弹, 如下所示:",
"- 一本 @spells 法术@ 书. 你可以在战利品箱发现法术书, 它也会以掉落物形式出现,你也可以与其他巫师交易。当然你也可以制作一本初始的法书, 魔法飞弹, 如下所示:",
"#recipe magic_missile_spell_book",
"你还要准备大量的魔法水晶,为你的魔杖注入 @mana 魔力@ ."
"你还要准备大量的魔法水晶,为你的魔杖注入 @mana 魔力@ ."
]
},
"mana": {
"title": "魔力",
"title": "魔力",
"include_in_contents": "main_contents",
"triggers": [
"ebwizardry:crystal"
],
"text": [
"魔力作为一种奥术能量,是巫师力量的来源。 它自身并不是某种物质; 它是无处不在的场域,充塞于世界上的一切之中. 特殊的情况下,它会以水晶的形式在自然中出现, 通常会镶嵌于地底的石头中. @wands 魔杖@ 可以储存魔力, 这些魔力会被你引导到你所释放的 @spells 法术@ 中。不同的法术需要的力各不一样, 魔力损耗取决于法术威力以及时长。",
"魔力作为一种魔法能量,是巫师力量的来源。 它自身并不是某种物质; 它是无处不在的场域,充塞于世界上的一切之中. 特殊的情况下,它会以水晶的形式在自然中出现, 而这种水晶通常会镶嵌于地底的石头中. @wands 魔杖@ 可以储存魔力, 这些魔力会被你引导到你所释放的 @spells 法术@ 中。不同的法术需要的力各不一样, 魔力损耗取决于法术威力以及时长。",
"#image crystal_ore",
"#image magic_crystal",
"人们普遍认为魔力无法被创生或毁灭, 当释放法术时, 法术所引导的魔力会消散到周围环境中. 这确实是魔力最广泛地存在形式 - 散布于世界的各个角落。然而, 一旦需要利用这些魔力, 你必须将其凝合起来, 就像历经几千年而形成的地底水晶一样。又或者通过人工的方式将其聚合 - 这一精深的课题已经超出了本书的范围了. 当然,也存在着一些方法,能够你的魔力使用效率提高,或者在施法过程中恢复一些魔力消耗。"
"人们普遍认为魔力无法被创生或毁灭, 当释放法术时, 法术所引导的魔力会消散到周围环境这确实是魔力最广泛地存在形式 - 散布于世界的各个角落。然而, 一旦需要利用这些魔力, 你必须, 就像历经几千年而形成的地底水晶一样,将其凝合起来。又或者通过人工的方式将其聚合为固体形态 - 这一精深的课题已经超出了本书的范围了. 当然,也存在着一些方法,能够提高你的魔力使用效率,或者在施法过程中恢复一些魔力消耗。"
]
},
"wands": {
"title": "魔杖",
"title": "魔杖",
"include_in_contents": "main_contents",
"triggers": [
"ebwizardry:arcane_initiate"
],
"text": [
"魔杖是巫师的工具。你能够释放任何你的魔杖能够释放的@spells 法术@ (参见 @tiers 等阶@ ). 魔杖有许多种类型 ,但可以肯定的是,你需要从一把基础魔杖来开启你的巫师之旅。",
"魔杖是巫师的工具。你能够释放任何你当前的魔杖等阶能够释放的@spells 法术@ (参见 @tiers 等阶@ ). 魔杖有许多种类型 ,但可以肯定的是,你需要从一把基础魔杖来开启你的巫师之旅。",
"#image magic_wand",
"大多数魔杖的制作,在最开始时无比的简单,将一块魔法水晶固定在木棍的一端,而另一端镶嵌一粒金粒。魔法水晶是魔杖力量的来源, 它提供了必要的,用来引导 @spells 法术@ 的核心. 魔杖的其它部分也很重要, 它不仅能让你方便的手持魔杖进行施法, 而且还作为引导和定向 @mana 魔力@ 流动的通路。",
"大多数魔杖的制作,在最开始时相当简单,将一块魔法水晶固定在木棍的一端,而另一端镶嵌一粒金粒,一根简单的魔杖就制作好了。魔法水晶是魔杖力量的来源, 它提供了必要的,用来引导 @spells 法术@ 的核心. 魔杖的其它部分也很重要, 它不仅能让你方便的手持魔杖进行施法, 而且还充当了引导和定向 @mana 魔力@ 流动的通路。",
"随着魔杖释放的法术越多, 它引导 @spells 法术@ 的效率会越来越高, 因此可以可以用它来施放更强大的魔法。这种效果可以从魔杖本身的形状和外观上的细微变化中看出: 随着魔杖变得越来越强大, 它的魔法晶将会变得更有活力, 水晶的颜色取决于 @elements 元素@ , 随着魔杖的强化, 制作它的木材将会生长和扭曲,形成更复杂的形状。",
"随着魔杖释放的法术越多, 它引导 @spells 法术@ 的效率会越来越高, 因此可以可以用它来施放更强大的魔法。这种能力的变化可以从魔杖本身的形状和外观上的细微变化中看出: 随着魔杖变得越来越强大, 它顶端的魔法晶将会变得更有活力, 水晶的颜色也会变化,变化的颜色取决于它所引导的 @elements 元素@ , 制作它的木材将会生长和扭曲,形成更复杂的形状。",
"拿着魔杖的时候, 一个状态显示将会出现在屏幕的角落. 这表示当前选中的咒语及其图形表示, 并且,如果当前法术被施放,指示该法术可以再次施放的时间的冷却条将会显示冷却时间。 它还能显示与魔杖当前使用的法术相连的上一个和下一个咒语的名称. 如要在咒语间切换, 使用 #next_spell_key 和 #previous_spell_key 键 (这些都可以在 选项 -> 控制 中修改). 也可以在潜行时通过滚动鼠标滚轮来切换咒语。",
"手持魔杖的时候, 屏幕的角落会出现一个显示框。 上面会显示当前选中的法术及其图,如果当前法术被施放,其上的冷却条将会指示该法术可以再次施放的时间间隔。 显示框还能显示与魔杖当前使用的法术相连的上一个和下一个法术的名称. 如要在法术间切换, 你可以使用 #next_spell_key 和 #previous_spell_key 键 (这些都可以在 选项 -> 控制 中修改). 也可以在潜行时通过滚动鼠标滚轮来切换法术。",
"查看库存时, 将鼠标悬停在一根魔杖上,就会显示出还有多少 @mana 魔力@ 储存在其中, 以及当前所应用的 @spells 法术@ 以及任何特殊的能力. 想要查询魔杖的更详细的信息,可将其放置在 @arcane_workbench 奥术工作台@ ."
"查看物品栏时, 将鼠标悬停在一根魔杖上,就会显示出还有多少 @mana 魔力@ 储存在其中, 以及当前所应用于魔杖的 @spells 法术@ 以及任何特殊的能力. 想要查询魔杖的更详细的信息,可将其放置在 @arcane_workbench 奥术工作台@ ."
]
},
"spells": {
"title": "法术",
"title": "法术",
"include_in_contents": "main_contents",
"triggers": [
"ebwizardry:handbook/spells"
],
"text": [
"一把 @wands 魔杖@ ,如果没有法术,那你就无法使用它. 法术有两种记录的形式: 永久性的写在咒语书中,或者写在一次性的法术卷轴上",
"一把 @wands 魔杖@ ,如果没有法术,那你就无法使用它. 法术有两种记录的形式: 永久性的写在法术书中,或者写在一次性的法术卷轴上",
"咒语书本身没什么用;但它们可以将其所包含的咒语绑定到 @wands 魔杖@ 上. 世界中的很多地方都藏有咒语书,你很快就能找到一本. 当你找到咒语书时,将鼠标悬停在在咒语书上就能看到咒语的基本信息。你也可以在拿着一本咒语书右键来阅读更多关于它的内容。",
"法术书本身没什么用;但它们可以将其所包含的法术绑定到 @wands 魔杖@ 上. 世界中的很多地方都藏有法术书,你很快就能找到一本. 当你找到法术书时,将鼠标悬停在在法术书上就能看到法术的基本信息。你也可以在拿着一本法术书右键来阅读更多关于它的内容。",
"卷轴有不同的用途: 右键将会施放与之绑定的法术, 在此过程中卷轴会销毁。像咒语书一样,卷轴可以在世界各地找到,但你也可以自己制作(参见 @enchanting_scrolls 附魔卷轴@ ).",
"卷轴有不同的用途: 右键将会施放与之绑定的法术, 在此过程中卷轴会销毁。像法术书一样,卷轴可以在世界各地找到,但你也可以自己制作(参见 @enchanting_scrolls 附魔卷轴@ ).",
"当你需要在一些特定的情形下中使用少量特殊的法术,但又不想占用你的 @wands 魔杖@ 位时,卷轴将会发挥巨大的作用。然而,我必须提醒你,与使用魔杖相比,使用卷轴是一种效率低下的施法方法。",
"当你需要在一些特定的情形下中使用少量特殊的法术,但又不想占用你的 @wands 魔杖@ 法术位时,卷轴将会发挥巨大的作用。然而,我必须提醒你,与使用魔杖相比,使用卷轴是一种效率低下的施法方法。",
"对不了解该法术的人而言, 那些用于书写咒语书的魔法符文实在是令人头疼。为了鉴定一个咒语,你可以尝试施放该法术,看看会发生什么 - 尽管这样做可能会产生副作用, 而且许多法术需要一定的条件才能生效。更重要的是,在施放一个你不了解的法术时,总会有误读该法术的可能, 而那些由误读而带来的潜在的危险的强度则取决于该法术的威力.一个更安全、更可靠的选择是使用鉴定卷轴,你可以在箱子里找到或者从巫师那里买到. 手持鉴定卷轴右键,将会识别第一个你所不知道的法术,该过程先将快捷栏的右边开始,然后向左依次检索, 鉴定完毕会消耗鉴定卷轴。"
"对不了解该法术的人而言, 那些用于书写法术书的魔法符文实在是令人头疼。为了鉴定一个法术,你可以尝试施放该法术,看看会发生什么 - 尽管这样做可能会产生副作用, 而且许多法术需要一定的条件才能生效。更重要的是,在施放一个你不了解的法术时,总会有误读该法术的可能, 而那些由误读而带来的潜在的危险的强度则取决于该法术的威力.一个更安全、更可靠的选择是使用鉴定卷轴,你可以在箱子里找到或者从巫师那里买到. 手持鉴定卷轴右键,将会识别第一个你所不知道的法术,该过程先将快捷栏的右边开始,然后向左依次检索, 鉴定完毕会消耗鉴定卷轴。"
]
},
"arcane_workbench": {
"title": "奥术工作台",
"title": "奥术工作台",
"include_in_contents": "main_contents",
"contents": {
"id": "arcane_workbench_subsections",
@@ -361,81 +361,81 @@
],
"text": [
"奥术工作台外观上与附魔台很相似,它可以用来为你的魔杖充能、升级 ,以及绑定 @spells 法术@ 到你的 @wands 魔杖@ 。制作方法如下所示:",
"奥术工作台外观上与附魔台很相似,它可以用来为你的魔杖充能、升级 ,以及绑定 @spells 法术@ 到你的 @wands 魔杖@ 。制作方法如下所示:",
"#recipe arcane_workbench",
"以下内容展示了在奥术工作台中可以执行的操作。",
"以下内容展示了在奥术工作台中可以执行的操作。",
"#image workbench"
],
"sections": {
"binding_spells": {
"title": "绑定法术",
"title": "绑定法术",
"include_in_contents": "arcane_workbench_subsections",
"triggers": [
"ebwizardry:handbook/arcane_workbench"
],
"text": [
"想要绑定@spells 法术@到你的@wands 魔杖@, 只需将你的魔杖放在工作台中间的凹槽里,然后把咒语书放在周围的一个槽里,然后点击“应用”按钮即可. 你会注意到咒语书在这个过程中并没有发生变化 - 这是因为法术绑定行为不会从咒语书中“取走”法术; 相反,它使魔杖与法术相协调。你可以通过简单地重复法术绑定过程来改变你魔杖上的法术。你可以一次性在一根魔杖上绑定五种法术, 而这个数字可能随魔杖协调升级而增加"
"想要绑定@spells 法术@到你的@wands 魔杖@, 只需将你的魔杖放在工作台中间的凹槽里,然后把法术书放在周围的一个槽里,然后点击“应用”按钮即可. 你会注意到法术书在这个过程中并没有发生变化 - 这是因为法术绑定行为不会从法术书中“取走”法术; 相反,它使魔杖与法术相协调。你可以通过简单地重复法术绑定过程来改变你魔杖上的法术,以及你也可以一次性在一根魔杖上绑定五种法术, 而一次性绑定法术上限的个数会随着魔杖协调升级而增加"
]
},
"charging_wands": {
"title": "魔杖充能",
"title": "魔杖充能",
"include_in_contents": "arcane_workbench_subsections",
"triggers": [
"ebwizardry:handbook/arcane_workbench"
],
"text": [
"想要充能你的 @wands 魔杖@ , 把魔杖放在奥术工作台的中央凹槽里,然后把一些魔法水晶放在左下角的凹槽里, 后点击“应用”按钮。每个水晶含有#mana_per_crystal @mana 魔力@, 充能时魔杖不会过量吸收魔力, 所以你可以在工作台中常备一些水晶,以便不时之需。不过要记住,魔杖只能吸收一整个水晶中的魔力, 例如,增加30点力, #example_charging_loss 魔力将会损失。."
"想要充能你的 @wands 魔杖@ , 你需要把魔杖放在奥术工作台的中央凹槽里,然后把一些魔法水晶放在左下角的凹槽里, 后点击“应用”按钮即可。每个水晶含有#mana_per_crystal @mana 魔力@, 充能时魔杖不会过量吸收魔力, 所以你可以在工作台中常备一些水晶,以便不时之需。不过要记住,魔杖只能吸收一整个水晶中的魔力, 例如,增加30点力, #example_charging_loss 魔力将会损失。."
]
},
"upgrading_wands": {
"title": "升级魔杖",
"title": "升级魔杖",
"include_in_contents": "arcane_workbench_subsections",
"triggers": [
"ebwizardry:handbook/tome_of_arcana"
],
"text": [
"为了升级你的 @wands 魔杖@ , 你需要一本适当 @tiers 等阶@ 的奥义之书 或者一些特殊的魔杖升级. 两者都可以作为战利品或者从巫师那里购买. 想要升级你的魔杖, 把它放在中央凹槽,升级物品放置在右上角凹槽,后点击应用。",
"为了升级你的 @wands 魔杖@ , 你需要一本适当 @tiers 等阶@ 的奥法宝典 或者一些特殊的魔杖升级. 两者都可以作为战利品或者从巫师那里购买. 想要升级你的魔杖, 你需要把它放在奥术工作台的中央凹槽,然后将升级物品放置在右上角凹槽,后点击应用。",
"特殊的魔杖升级可以改善魔杖某个方面的能力。每种类型的升级最多可以叠加三次,一根魔杖可以升级的总数取决于它的等级。魔杖的升级不能被移除。"
"特殊的魔杖升级可以改善魔杖某个方面的能力。每种类型的升级最多可以叠加三次,一根魔杖可以升级的总数取决于它的等级。魔杖的升级不能被移除。"
]
},
"enchanting_scrolls": {
"title": "附魔卷轴",
"title": "附魔卷轴",
"include_in_contents": "arcane_workbench_subsections",
"triggers": [
"ebwizardry:handbook/scrolls"
],
"text": [
"奥术工作台也可以用来附魔 @spells 法术@ 卷轴。首先,你需要一个空白卷轴, 空白卷轴由线和纸组成, 以及一本法术书, 还足够的 @mana 魔力@ 能够成功使拓印在上。",
"奥术工作台也可以用来附魔 @spells 法术@ 卷轴。首先,你需要一个空白卷轴, 空白卷轴由线和纸组成, 以及一本法术书, 还足够的 @mana 魔力@ ,这样才能够成功使法术拓印在空白卷轴上。",
"#recipe blank_scroll",
"将魔法水晶放在左下的凹槽, 空白卷轴放置在中央凹槽, 将一本法术书放置在周围凹槽, 点击应用来附魔该卷轴。"
"将魔法水晶放在左下的凹槽, 空白卷轴放置在中央凹槽, 将一本法术书放置在周围凹槽, 点击应用来附魔该卷轴。"
]
}
}
},
"wizard_armour": {
"title": "巫师护具",
"title": "巫师护具",
"include_in_contents": "main_contents",
"triggers": [
"ebwizardry:arcane_initiate"
],
"text": [
"作为一名巫师, 你需要一些东西在战斗时保护你不受过高的伤害,普通的盔甲明显不。 充分利用你的魔, 你需要一套巫师护具: 帽子、长袍、裤子和靴子。 与普通盔甲不同的是,它们耐久归零之后不会消失。 相反,蕴藏在其中的奥术能量将会保护穿戴者。当然,这意味着它们必须使用水晶充能, 这一点和魔杖很相似。幸运的是, 这些衣服不太消耗@mana 魔力@. 你可以像和魔杖那样,将其放置在 @arcane_workbench 奥术工作台@ ,或者使用 @mana_flasks 魔力瓶@ 为其充能, 但是要小心-如果护具们耗尽了魔力,它们将不再提供任何保护。",
"作为一名巫师, 你需要一些东西在战斗时保护你不受过高的伤害,普通的盔甲可无法承此重任。为了能够在提供保护时还能让你最高效率地使用的魔, 你需要一套巫师护具: 包括帽子、长袍、裤子和靴子。 与普通盔甲不同的是,它们耐久归零之后不会消失。而且,蕴藏在其中的奥术能量将会保护穿戴者。当然,这意味着它们必须使用水晶充能, 这一点和魔杖很相似。幸运的是, 这些护具不太消耗@mana 魔力@. 你可以像和魔杖那样,将其放置在 @arcane_workbench 奥术工作台@ ,或者使用 @mana_flasks 魔力瓶@ 为其充能, 但是要小心-如果护具们耗尽了魔力,它们将不再提供任何保护。",
"#image wizard_armour",
"你可以用魔法绸缎制造巫师护具:",
"你可以用魔法绸缎制造巫师护具:",
"#recipe magic_silk",
"#recipe wizard_hat",
@@ -443,16 +443,16 @@
"#recipe wizard_leggings",
"#recipe wizard_boots",
"你可以用附魔台为巫师护具附魔,而因为魔法绸缎的固有属性, 它们倾向于被附魔上能够使它们留存的更久的附魔. 对巫师具有特殊的实用价值为魔法,冰霜,雷电保护附魔, 这些附魔可以有效抵御其它巫师的进攻。",
"你可以用附魔台为巫师护具附魔,而因为魔法绸缎的固有属性, 它们倾向于被附魔上能够使它们留存的更久的附魔. 对巫师具有特殊的实用价值为魔法,冰霜,雷电保护附魔, 这些附魔可以有效抵御其它巫师的进攻。",
"那些沉迷于练习单系魔法的巫师,有时会穿上可以给予额外魔法增益的服装。全套这样的服装在巫师群体中很受欢迎,所以并不容易找到。",
"那些沉迷于练习单系魔法的巫师,有时会穿上可以给予额外魔法增益的服装。全套这样的服装在巫师群体中很受欢迎,所以并不容易找到。",
"在传说中,最强大的巫师使用一种神秘的封印来提高他们护甲。"
"在传说中,最强大的巫师使用一种神秘的封印来提高他们护甲的能力。"
]
},
"magical_world": {
"title": "魔法世界",
"title": "魔法世界",
"include_in_contents": "main_contents",
"contents": {
"id": "magical_world_subsections",
@@ -465,161 +465,161 @@
],
"text": [
"一个人仅仅呆在家里是无法掌握奥术之力的 - 这个充塞着魔力的世界等待着你的探索! 古代遗迹,还有那些神秘的,抱着善意或者恶意的生物等待着你发现 - 如果你知道它们在哪。最伟大的巫师往往有着强烈的好奇心, 他们通过对周围环境的探索获得大量的知识和力量, 然后通过实验去验证他们所发现的。",
"一个人仅仅呆在家里是无法掌握奥术之力的 - 这个充塞着魔力的世界等待着你的探索! 古代遗迹,还有那些神秘的,抱着善意或者恶意的生物等待着你发现 - 如果你知道它们在哪。最伟大的巫师往往有着强烈的好奇心, 他们通过对周围环境的探索获得大量的知识和力量, 然后通过实验去验证他们所发现的。",
"巫师的大部分时间都是一个人度过的, 然而与他人分享彼此的知识,对学习奥术也很重要。寻找那些先行者,尽可能多地向他们学习:交流可以说是最强大的力量了。"
"巫师的大部分时间都是一个人度过的, 然而对学习奥术而言,与他人分享彼此的知识很重要。你应该去寻找那些先行者,尽可能多地向他们学习:交流可以说是最强大的力量了。"
],
"sections": {
"crystal_flowers": {
"title": "魔法水晶花",
"title": "魔法水晶花",
"include_in_contents": "magical_world_subsections",
"triggers": [
"ebwizardry:handbook/crystal_flowers"
],
"text": [
"在你的旅行中,你可能在野外会不时地遇到一种奇怪的,发光的花. 这些独特的花朵被称为水晶花,它们能够高效的聚集 @mana 魔力@ - 直到今天,还没有人能确定它高效聚集魔力的原因。但是我们知道,它们可以被收集和制作成魔法水晶,使得它们成为相当有用的地上的魔力来源。然而,因为花的尺寸很小,而且它们无法密集生长,所以通过这种方式收获的魔力并不是很多,",
"在你的旅行中,你可能在野外会不时地遇到一种奇怪的,发光的花. 这些独特的花朵被称为水晶花,它们能够高效的聚集 @mana 魔力@ - 直到今天,还没有人能确定它高效聚集魔力的原因。但是我们知道,它们可以被收集和制作成魔法水晶,使得它们成为相当有用的地上的魔力来源。然而,因为花的尺寸很小,而且它们无法密集生长,所以通过这种方式收获的魔力并不是很多,",
"#image crystal_flower",
"#recipe crystal_flower_to_crystals"
]
},
"wizard_towers": {
"title": "巫师塔",
"title": "巫师塔",
"include_in_contents": "magical_world_subsections",
"triggers": [
"ebwizardry:wizard_tower"
],
"text": [
"不要害怕 —— 你不是这个世界上唯一一个使用魔法的人。 在旅行途中,你很可能会遇到一两个有着独特尖顶的高塔。这是其它巫师的住所。孤独的生活有时会让巫师有点暴躁,但他们通常都很友好,愿意与你分享他们的知识 —— 尽管是有代价的。你可以给予他们贵重金属和宝石,作为回报,你将得到许多珍贵的奥术知识。",
"不要害怕 —— 你不是这个世界上唯一一个使用魔法的人。 在旅行途中,你很可能会遇到一两个有着独特尖顶的高塔。这是其它巫师的住所。孤独的生活有时会让巫师有点暴躁,但他们通常都很友好,而且愿意与你分享他们的知识 —— 尽管是有代价的。你可以贵重金属和宝石来与他们交换珍贵的奥术知识。",
"然而,如果你寻找的是 @tiers 师@ 法术, 你需要去找那些专业人士。",
"然而,如果你寻找的是 @tiers 师@ 法术, 你需要去找那些专业人士。",
"#image wizard_tower",
"不幸的是,有一些巫师不欢迎访客的到来。这些巫师早已被逐出巫师群体, 他们对任何路过此地的人抱有敌意. 与这些人打交道要格外谨慎, 并做好防御强大魔法的准备。打败他们,他们的知识就是你的了。",
"不幸的是,有一些巫师不欢迎访客的到来。这些巫师早已被逐出巫师群体, 他们对任何路过此地的人抱有敌意. 与这些人打交道要格外谨慎, 并做好防御强大魔法的准备。打败他们,他们的知识就是你的了。",
"还应该指出的是,没有哪个巫师会乐意被攻击或被偷 - 他们更喜欢按他们的规矩来。"
"还应该指出的是,没有哪个巫师会乐意被攻击或被偷 - 他们更喜欢按他们的规矩来。"
]
},
"obelisks": {
"title": "方尖碑",
"title": "方尖碑",
"include_in_contents": "magical_world_subsections",
"triggers": [
"ebwizardry:handbook/obelisks"
],
"text": [
"古代魔法遗迹散布在世界各地, 其中最著名的是雕刻着许多符号和符文的石头建筑. 这些遗迹似乎是某种古代文明的遗迹。不管是谁,或者是什么东西建造了它们,它们显然拥有相当丰富的魔法知识, 并使用这些知识在这些地方设置了保护魔法,直到今天还在生效。",
"古代魔法遗迹散布在世界各地, 其中最著名的是雕刻着许多符号和符文的石头建筑. 这些遗迹似乎是某种古代文明的遗迹。不管是谁,或者是什么东西建造了它们,它们显然拥有相当丰富的魔法知识, 并使用这些知识在这些地方设置了保护魔法,这些魔法直到今天还在生效。",
"这些结构大致可分为两类. 第一个,也是最常见的,是方尖碑: 符文石制成的尖顶, 底部有一个开放的结构,其中为次要的魔法遗迹,你在上面还能感受到残着的被遗忘的过去的气息",
"这些结构大致可分为两类. 第一个,也是最常见的,是方尖碑: 符文石制成的尖顶, 底部有一个开放的结构,其中为次魔法遗迹,你在上面还能感受到残着的气息,那是来自被遗忘的过去",
"#image obelisk",
"这些建筑通常受到魔法的保护,一旦有人离得太近,就会召唤敌对 @creatures 生物@ 。击退这些生物并摧毁它们的源头,那么这个遗迹的财富就是你的了。"
"这些建筑通常受到魔法的保护,一旦有人离得太近,就会召唤敌对 @creatures 生物@ 。击退这些生物并摧毁它们的源头,那么这个遗迹的财富就是你的了。"
]
},
"shrines": {
"title": "祭坛",
"title": "圣祠",
"include_in_contents": "magical_world_subsections",
"triggers": [
"ebwizardry:visit_shrine"
],
"text": [
"第二种,也是比较少见的一种,被称为祭坛。这些结构由围绕着中心基座的一圈符文石柱组成, 上放置着一个箱子,里面装满了古代的 @artefacts 圣遗物@ . 这个箱子通常被一个奥术锁保护着, 防止任何人打开它,除了箱子的主人。整个结构也被一个控制场域保护着, 防止任何离得太近的东西逃跑。",
"第二种,也是比较少见的一种,被称为圣祠。这些结构由围绕着中心基座的一圈符文石柱组成, 基座上放置着一个箱子,里面装满了古代的 @artefacts 圣遗物@ . 这个箱子通常被一个奥术锁保护着, 除了箱子的主人,其它人都无法打开。整个结构也被一个控制场域保护着, 防止任何离得太近的东西逃跑。",
"#image shrine",
"只要发现祭坛的强大魔力和其重要性, 就不用提里面的财富是多么珍贵了, 这些结构对任何有抱负的巫师都特别有吸引力 - 但是要谨慎。有很多关于巫师被困在封闭空间里,慢慢被逼疯的报道,也许是因为幽闭恐惧症。 然而,越来越多的人相信这种情况的发生也是神殿保护魔法的一部分, 被困在里面的巫师实际上是被控制来保护该结构的。 对于任何胆敢靠近的人来说,这无疑令人不寒而栗....."
"只要你意识到圣祠所包含的强大魔力和其重要性, 箱子里所存放的东西的珍贵毋庸置疑, 这些结构对任何有抱负的巫师都特别有吸引力 - 但是要谨慎。有很多关于巫师被困在封闭空间里,慢慢被逼疯的报道,也许是因为幽闭恐惧症。 然而,越来越多的人相信这种情况的发生也是圣祠的保护魔法的一部分, 被困在里面的巫师实际上是被控制来保护该结构的。 对于任何胆敢靠近的人来说,这无疑令人不寒而栗....."
]
},
"creatures": {
"title": "魔法生物",
"title": "魔法生物",
"include_in_contents": "magical_world_subsections",
"triggers": [
"ebwizardry:handbook/magical_creatures"
],
"text": [
"除了巫师,许多其他生物也使用魔法。这些生物很多从出生开始就拥有魔力,而且大部分施放 @spells 法术@ . 其中一种你可能会在守卫 @obelisks 方尖碑@ 的生物中看到,他们可能是由更强大的召唤师召唤而来。甚至偶尔能够在野外中被发现魔法能力不强的生物。"
"除了巫师,许多其他生物也可以使用魔法。而在其中有很多从出生开始就拥有魔力,而且它们大部分都可以施放 @spells 法术@ . 其中一种你可能会在守卫 @obelisks 方尖碑@ 的生物中看到,他们可能是由更强大的召唤师召唤而来。偶尔你还能够在野外中被发现魔法能力不强的生物。"
]
},
"artefacts": {
"title": "圣遗物",
"title": "圣遗物",
"include_in_contents": "magical_world_subsections",
"triggers": [
"ebwizardry:artefact"
],
"text": [
"当你在探索神殿时,你可能会幸运地发现一些古老的魔法制品 —— 一些能赋予穿戴者独特而强大的魔法和特殊能力的物品。已发现三种类型: 戒指,给予法术增幅和额外效果,护身符,提高防御能力,还有符咒,能产生特殊效用。 这些魔法制物似乎只有在正确佩戴时才能发挥作用; 简单地把它们放在身上无法发挥效果。"
"当你在探索圣祠时,你可能会幸运地发现一些古老的魔法制品 —— 一些能赋予穿戴者独特而强大的魔法和特殊能力的物品。已发现三种类型: 戒指,给予法术增幅和额外效果,护身符,提高防御能力,还有符咒,能产生特殊效用。这些魔法制物似乎只有在正确佩戴时才能发挥作用; 仅仅是把它们放在身上无法发挥它们的效果。"
]
}
}
},
"tiers": {
"title": "等阶",
"title": "等阶",
"include_in_contents": "main_contents",
"triggers": [
"ebwizardry:handbook/tome_of_arcana"
],
"text":[
"@wands 魔杖@ 和 @spells 法术@ 分成四阶: #colour_novice新手#colour_reset, #colour_apprentice学徒#colour_reset, #colour_advanced进阶 #colour_reset 和 #colour_master师#colour_reset.每一阶都比上一阶更强大。",
"@wands 魔杖@ 和 @spells 法术@ 分成四阶: #colour_novice新手#colour_reset, #colour_apprentice学徒#colour_reset, #colour_advanced进阶 #colour_reset 和 #colour_master师#colour_reset.每一阶都比上一阶更强大。",
"#image tiers",
"#colour_novice新手 #colour_reset魔杖 魔杖可以手工制作. 它们可以容纳 #novice_max_charge 魔力, 且只可以释放基础法术. 基础法术很简单,任何人都可以使用,而且通常情况下不会消耗很多力。然而,这并不一定意味着在你步入更高等阶后,它们就没有用处了; 即便你已经可以使用师级魔法,基础法术低廉的魔力消耗依然使得它们备受青睐。",
"#colour_novice新手 #colour_reset魔杖 魔杖可以手工制作. 它们可以容纳 #novice_max_charge 魔力, 且只可以释放基础法术. 基础法术很简单,任何人都可以使用,而且通常情况下不会消耗很多力。然而,这并不一定意味着在你步入更高等阶后,它们就没有用处了; 即便你已经可以使用师级魔法,基础法术低廉的魔力消耗依然使得它们备受青睐。",
"#colour_apprentice学徒 #colour_reset魔杖 是新手的下一等阶. 学徒级魔杖可容纳 #apprentice_max_charge 魔力 可以施放基础和学徒法术。学徒法术比新手法术更令人眼前一亮,但通常魔力消耗更多。",
"#colour_apprentice学徒 #colour_reset魔杖 是新手的下一等阶. 学徒级魔杖可容纳 #apprentice_max_charge 魔力 可以施放基础和学徒法术。学徒法术比新手法术更令人眼前一亮,但通常魔力消耗更多。",
"#colour_advanced进阶 #colour_reset魔杖 魔杖是相当罕见的,而且更强大. 他们可以使用除师法术以外的所有法术,并能够容纳 #advanced_max_charge 魔力. 进阶法术能够带来超越人类极限的能力,譬如隐形,以及为你的敌人带来浩劫。",
"#colour_advanced进阶 #colour_reset魔杖 魔杖是相当罕见的,而且更强大. 他们可以使用除师法术以外的所有法术,并能够容纳 #advanced_max_charge 魔力. 进阶法术能够带来超越人类极限的能力,譬如隐形,以及为你的敌人带来浩劫。",
"#colour_master师 #colour_reset魔杖 魔杖是世界上最强大的魔杖. 他们能够容纳 #master_max_charge 魔力, 并且能够随意施展任何法术.师等阶的咒语书是非常罕见的,这些法术不仅可以对敌人造成彻底的破坏,甚至可以对世界本身造成破坏。请务必谨慎使用。",
"#colour_master师 #colour_reset魔杖 魔杖是世界上最强大的魔杖. 他们能够容纳 #master_max_charge 魔力, 并且能够随意施展任何法术.师等阶的法术书是非常罕见的,这些法术不仅可以对敌人造成彻底的破坏,甚至可以对世界本身造成破坏。请务必谨慎使用。",
"要升级到更高的等级,一根魔杖首先要有足够的力量来引导该等级的法术。魔杖在施法时会增进自身。法术种类、法术强度、元素效果和其他外部因素都会影响魔杖的成熟速度。",
"要升级到更高的等级,一根魔杖首先要有足够的力量来引导该等级的法术。魔杖在施法时会增进自身。法术种类、法术强度、元素效果和其他外部因素都会影响魔杖的成熟速度。",
"一旦一根魔杖足够强大,一本奥义之书就是魔杖提升到下一层所需的最后催化剂 (参见 @upgrading_wands 升级魔杖@ ), 升级过后,魔杖又可以继续成长到下一等阶。"
"一旦一根魔杖足够强大,一本奥法宝典就是魔杖提升到下一层所需的最后催化剂 (参见 @upgrading_wands 升级魔杖@ ), 升级过后,魔杖又可以继续成长到下一等阶。"
]
},
"elements": {
"title": "元素",
"title": "元素",
"include_in_contents": "main_contents",
"triggers": [
"ebwizardry:handbook/elements"
],
"text": [
"@spells 法术@ 分属于不同的元素 , 元素决定了法术的本质并且决定了它会何种 @wands 魔杖@ 中获得增幅。",
"@spells 法术@ 分属于不同的元素 , 元素决定了法术的本质并且决定了它会何种 @wands 魔杖@ 增幅。",
"#image elements",
"#colour_fire火焰#colour_reset \n 它或许是最具破坏性的元素, 火与燃烧、熔岩和爆炸有关。 一位强大的舞焰师能够释放出地狱烈焰灼烧他的敌人,并可能在这个过程中点燃整个世界。大多数攻击型火焰法术都会点燃目标,造成持续的伤害。然而,要注意火系法术可能对下界生物没有效果。",
"#colour_fire火焰#colour_reset \n 它或许是最具破坏性的元素, 火与燃烧、熔岩和爆炸有关。 一位强大的舞焰师能够释放出地狱烈焰灼烧他的敌人,并可能在这个过程中点燃整个世界。大多数攻击型火焰法术都会点燃目标,造成持续的伤害。然而,要注意火系法术可能对下界生物没有效果。",
"#colour_ice冰霜#colour_reset \nThe 冰元素囊括了所有与寒冷有关的事物,冰霜法术通常会让敌人减速或者完全冻结,对火焰生物能造成额外伤害。冰霜魔法在战斗之外也同样有用,比如冻住河流,让你方便的过河。",
"#colour_ice冰霜#colour_reset \nThe 冰元素囊括了所有与寒冷有关的事物,冰霜法术通常会让敌人减速或者完全冻结,同时对火焰生物能造成额外伤害。冰霜魔法在战斗之外也同样有用,比如冻住河流,让你方便的过河。",
"#colour_lightning雷电#colour_reset \n 这种元素与闪电,风暴和天气有关。绝不可忽视的一位强大的驯雷师的力量,他们能够使雷电屈从于他们的意志。电法术通常能够一次性伤害多个敌人,并且能够自动寻找目标,使他们有效地攻击任何生物…… 但是要小心爬行者。",
"#colour_lightning雷电#colour_reset \n 这种元素与闪电,风暴和天气有关。绝不可忽视的一位强大的驯雷师的力量,他们能够使雷电屈从于他们的意志。电法术通常能够一次性伤害多个敌人,并且能够自动寻找目标,这使得它们能有效地攻击任何生物…… 但是要小心爬行者。",
"#colour_necromancy死灵#colour_reset \n 死灵元素与黑暗, 混乱与亡灵相关. 操纵死灵元素的巫师是神秘的,通常被认为是邪恶的,虽然通常不是这样。死灵法术通常能够召唤 @creatures 魔法生物@ 为你而战,甚至可以扭曲你的敌人的意志。",
"#colour_necromancy死灵#colour_reset \n 死灵元素与黑暗, 混乱与亡灵相关. 操纵死灵元素的巫师是神秘的,而且通常被认为是邪恶的,但实际上往往并不是这样。死灵法术通常能够召唤 @creatures 魔法生物@ 为你而战,可以扭曲你的敌人的意志。",
"#colour_earth大地#colour_reset \nThe 大地元素专注于自然之中: 动物,植物,风,以及与这些相似的。大地魔法种类繁多,形式多样,毒害敌人到释放天气狂暴的一面。大地法术集合了攻击、防御和效用类法术。",
"#colour_earth大地#colour_reset \nThe 大地元素与自然相关: 动物,植物,风,以及与这些相似的。大地魔法种类繁多,形式多样,既可以毒害敌人,亦可展现天气狂暴的一面。大地法术集合了攻击、防御和功能类法术。",
"#colour_sorcery秘#colour_reset \n 秘元素与力场与变化. 巫师操纵光、重力甚至是现实本身来满足他们的需要。此外,秘法术可以赋予施法者奇特的魔法能力,或者移动其它目标。",
"#colour_sorcery秘#colour_reset \n 秘元素与力场与变化有关. 秘术师可以操纵光、重力甚至是现实本身来满足他们的需要。此外,秘法系法术可以赋予施法者奇特的魔法能力,或者可以帮助施法者移动他所希望移动的目标。",
"#colour_healing治愈#colour_reset \n 治愈元素关注防御和再生的能力,治疗师尽可能多地保护他们自己和他们的盟友,因此在特殊情况下会非常难对付。虽然一般不用于攻击,但某些治疗法术的净化之光会对亡灵造成相当大的伤害。治疗法术在战斗中是必不可少的。",
"#colour_healing治愈#colour_reset \n 治愈元素侧重于防御和再生,治疗师尽可能多地保护他们自己和他们的盟友,因此在特殊情况下会非常难对付。虽然一般不用于攻击,但某些治疗法术的净化之光会对亡灵造成相当大的伤害。治疗法术在战斗中是必不可少的。",
"不同元素之间的界限并不总是泾渭分明的,有些法术反而具有其它元素的特征。",
"不同元素之间的界限并不总是泾渭分明的,有些法术反而具有其它元素的特征。",
"如果幸运的话,你可能会到元素水晶。元素水晶是一种魔法水晶,它在生长过程中吸收了元素属性 - 尽管这种情况发生的条件和机制仍然是一个谜。 然而,我们确实知道,这些水晶可以用来制造单元素魔杖,这种魔杖会增幅与其相对应元素的法术强度。"
"如果幸运的话,你可能会到元素水晶。元素水晶是一种魔法水晶,它在生长过程中吸收了元素属性 - 尽管这种情况发生的条件和机制仍然是一个谜。 然而,我们确实知道,这些水晶可以用来制造单元素魔杖,这种魔杖会增幅与其相对应元素的法术的法术强度。"
]
},
"miscellaneous": {
"title": "杂项",
"title": "杂项",
"include_in_contents": "main_contents",
"contents": {
"id": "miscellaneous_subsections",
@@ -632,36 +632,36 @@
],
"sections": {
"mana_flasks": {
"title": "魔力瓶",
"title": "魔力瓶",
"include_in_contents": "miscellaneous_subsections",
"triggers": [
"ebwizardry:handbook/mana_flasks"
],
"text": [
"Arkendur的魔法物品供应 - 我们有你所想要的魔法物品!",
"Arkendur的魔法物品供应 - 我们有你所想要的魔法物品!",
"想要在旅途中充能你的 @wands 魔杖@ ? 没问题! @mana 魔力@ 现在可以装瓶了。将八颗魔法水晶放入玻璃瓶中,魔法瓶的制作就这样简简单单。 当你想使用它时, 将它与你的魔杖合成一下,它将会为你的魔杖恢复一些魔力。",
"想要在旅途中充能你的 @wands 魔杖@ ? 没问题! @mana 魔力@ 现在可以装瓶了。将八颗魔法水晶放入玻璃瓶中,魔法瓶的制作就这样简简单单。 当你想使用它时, 将它与你的魔杖合成一下,它将会为你的魔杖恢复一些魔力。",
"#recipe medium_mana_flask",
"新品!让我们为你介绍崭新的小型魔力瓶和大型魔力瓶 - 现在你可以根据你的需要来挑选适合大小的魔力瓶!",
"新品!让我们为你介绍崭新的小型魔力瓶和大型魔力瓶 - 现在你可以根据你的需要来挑选适合大小的魔力瓶!",
"#recipe small_mana_flask",
"#recipe large_mana_flask",
"* 这个过程会破坏瓶子。装瓶过程中会不可避免的损失一些魔力。"
"* 这个过程会破坏瓶子。装瓶过程中会不可避免的损失一些魔力。"
]
},
"throwable_items": {
"title": "投掷物",
"title": "投掷物",
"include_in_contents": "miscellaneous_subsections",
"triggers": [
"ebwizardry:handbook/throwables"
],
"text": [
"有许多 @spells 法术@ 召唤出物理实体的投掷物, 有些还可以直接制作。 燃烧弹, 毒气弹, 电击弹, 烟雾弹都可以制造:",
"有许多 @spells 法术@ 召唤出物理实体的投掷物, 有些还可以直接制作。燃烧弹, 毒气弹, 电击弹, 烟雾弹都可以制造:",
"#recipe firebomb",
"#recipe poison_bomb",
@@ -670,21 +670,21 @@
]
},
"automated_casting": {
"title": "施法自动化",
"title": "施法自动化",
"include_in_contents": "miscellaneous_subsections",
"triggers": [
"ebwizardry:enchant_scroll"
],
"text": [
"最近的实验表明,自动化释放 @spells 法术@ 是可能的, 只用一个简单的发射器就可以办到了。 没有人确切知道其中的原理, 但似乎红石的奇怪属性能够激活法术卷轴。在发射器里放一些法术卷轴,然后给它通上红石信号就可以了。"
"最近的实验表明,自动化释放 @spells 法术@ 是可能的, 只用一个简单的发射器就可以办到了。 没有人确切知道其中的原理, 但似乎红石的奇怪属性能够激活法术卷轴。在发射器里放一些法术卷轴,然后给它通上红石信号就可以了。"
]
}
}
},
"crafting_recipes": {
"title": "合成配方",
"title": "合成配方",
"include_in_contents": "main_contents",
"text": [
@@ -716,35 +716,36 @@
},
"credits": {
"title": "Credits",
"title": "鸣谢",
"include_in_contents": "main_contents",
"text": [
"Electroblob's Wizardry \nVersion #version \nFor Minecraft #mcversion",
"Electroblob's Wizardry \n版本 #version \nFor Minecraft #mcversion",
"Designed, coded and textured by Electroblob",
"设计, 代码和材质 by Electroblob",
"Thanks to Minecraft Forge and MCP, without which this mod would not have been possible.",
"感谢Minecraft Forge 以及 MCP, 没有它们, 这个mod就不可能得以实现。",
"Thanks also to the Minecraft modding community, which always has an answer to my modding problems!",
"同时也感谢Minecraft modding community, 他们总会在我遇到mod难题时帮助我!",
"In addition, I'd like to thank the following individuals for their contributions to the mod:",
"此外, 我还要感谢以下人员对本mod的贡献:",
"Code:",
"代码:",
"- Corail31 \n- 12foo \n- Shadows-of-Fire \n- HellFirePvP \n- Tora-B \n- Avatair \n- Aeronica",
"Translations:",
"翻译:",
"- Spanish: MadWrist, Alsentar \n- Mexican Spanish: MadWrist \n- Russian: VilagVil, kellixon, bigenergy \n- French: Hahdrim \n- Brazilian Portuguese: lorrampi \n- Chinese: ZHENGLOC, dragon-evol, Hokorizero, TUsama \n- Korean: shejery, rewi_wire \n- Polish: Trozuu \n-German: BirdyDragon",
"- 西班牙语 : MadWrist \n- 俄语: VilagVil, kellixon \n- 法语: Hahdrim \n- 葡萄牙语: lorrampi \n- 中文: ZHENGLOC, dragon-evol, Hokorizero, TUsama, Determancer \n- 韩语: shejery, rewi_wire \n- 波兰语: Trozuu \n- 德语: BirdyDragon",
"Lightning ray sound effect from OhhWowProductions",
"雷电效果音: OhhWowProductions",
"For more information, check out the @https://github.com/Electroblob77/Wizardry/wiki wiki@.",
"想要获得更多信息, 请参看 @https://github.com/Electroblob77/Wizardry/wiki wiki@.",
"觉得不过瘾? 加入 @https://discord.gg/MTmMzMv Discord server@ 获得第一手资讯,还可以一起探讨新内容!"
"Can't get enough wizardry? Join the @https://discord.gg/MTmMzMv Discord server@ for the latest news, discussions and extras!"
]
}
}
}
}
@@ -1,225 +0,0 @@
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
@@ -732,7 +732,7 @@
"程式碼:",
"》Corail31 \n》12foo \n》Shadows-of-Fire \n》HellFirePvP \n》Tora-B \n》Avatair \n》Aeronica",
"》Corail31 \n》12foo \n》Shadows-of-Fire \n》HellFirePvP \n》Tora-B \n》Avatair \n》Aeronica \n》UltraHex \n》Azim-Palmer \n》raoulvdberge \n》rafasoares",
"\n\n翻譯:",