In the major integration packages, there are not a few adding witchcraft.But the magic reform is often limited to disable some spells in Config, which makes the homogeneity serious.In fact, witchcraft is not difficult.
The first way is to open the MOD file -ASSETS -EBWIZARDRY — Spells, extract the JSON files, and then create Spells under Config — Ebwizardry Folder — Ebwizardry, Place in it.Open the JSON file, you can change some basic settings.The following is a withered totem spell after the magic reform.Note that you can only modify the entry data he given.I believe that these very basic English can understand.
It should be noted that some spells actually call other spells. For example, the fragments of frosty shocks are actually frost fragments, so his damage is changed in the latter;Flame rays, skeleton wizards call certain basic spells, etc., please also study by yourself.
The acquisition of spell books can also be adjusted.For example, we can disable the original way of gain, and change from some books written in specific spells for stars transformation.(
Representatives change)
mods.astralsorcery.starlightinFusion.addinfusion (
Starting sentence
(Second sentence)
(Single and double -row back and forth)
(Category here) "], select: 0}),
For example, fighting star movement:
The breathing of the tide chasing the junction of the sea of clouds,
The torrent of the light dance steps to see the time.
Who touched the gears of the Xinghe River and the light and shadow of the sky,
Who reflects the stars of the bubbles and sprinkle the world's spring and autumn?
... (I won't mention it in the next half) or the like ~
If you want to talk about the magic reform, CRT and its affiliated incidents must be an unavoidable topic.Compared with the level of the big brothers, I dare not throw into the CRT partition.Here are some cases:
0. Make a staff of a certain attribute can only use certain spells:
Import Crafttweaker.event.entityLiversLivingUseitemevent.start;
events.
Var Player = Event.player;
Var stack = event.item;
If (event.isplayer &&
If (stack.hastag) {
Var Spells = stack.tag.spells;
Var Earth as int [] = [The number of spells, view the staff that binds the spell/ct hand]; var selected = stack.tag.selectSpell;
If (! Isnull (Specials)) {
Var Held as int = 0;
If (! Isnull (selectd)) {
Held = selectd as int;
For I in 0 .. Earth.Length {
If (Spells [Held] == EARTH [i]) {
Player.addpotionEffect
}}}}}});
1. Elves the same value void damage when the ghost shadow blade causes damage
2. Summon Phoenix: If the Phoenix is killed before the natural disappearance, it will produce a black hole that lasted 6 seconds in place. When the black hole disappears, a explosion occurs, and the Phoenix is reborn.
3.使用大师级治愈魔杖施放活体彗星落地后获得680tick的浴火效果,并于666tick后在原地产生一场威力为32.0F的爆炸,杀死所有生物,蒸发半径360格的所有方块,清除所有Falling (for computer performance considerations, this is the air sphere with a radius with a radius of 360 with a small wooden ax), with 666T cooling time.(Note: After the original Live Comet will add about 1 second of fire resistance for players after landing) 4. After using hell trials to hit the enemy, start judgment -if you hit the enemy 6 times in the next 6 seconds, the last time will be right for the last timeAll creatures in the centered radius of hitting the target is 6
2147483647 points of emptiness damage; if you fail to hit 6 times, it will cause 2147483647 magic damage to the player.(Note: CURSE_OF_DEATH BUFF of Ancient Mantra is unfinished BUFF, without any effect)
import crafttweaker.player.iplayer;
Import crafttweaker.damage.idamageSource;
Import crafttweaker.event.entitylivingHurtevent;
Import crafttweaker.event.entitylivingupDateEvent;
import crafttweaker.entity.ientitylivingbase;
Import crafttweaker.entity.ientity;
import crafttweaker.item.iitemstack;
Import crafttweaker.util.position3f;
Import crafttweaker.World.iworld;
// The trial starts
events.onentitylivingHurt (Function (event as EntitylivingHurtevent) {{
// Get the entity that causes damage
Val TrueSource As IENTITY = EVENT.DAMAGESOURCE.GettrueSource ();
// Get damage type records as damageSource
Val DamageSource as IDAMAGESOURCE = EONT.DAMAGESOURCE;
// If the source of the damage is the player
If (TrueSource Instanceof iPlayer && TrueSource Instanceofof IntiblelivingBase) {{
// Define Player
Val Player as iPlayer = TrueSource;
// Define base
Val base as IENTITYLIVINGBASE = TRUESource;
// Get the potion effect as Potions
Var Potions = Base.activePotionEffects; for Potion in Potions {
If (Potion.effectname! = "Potion.ancientSm audiencerft: curse_of_death") {) {
// Define stack to hold items for players and compare it with the ghost
Val Stack as IItemstack = Player.currentity;
If (! Isnull (Player.CurrenTitem) &&
If (stack.hastag) {
Var Spells = stack.tag.spells;
Var select = stack.tag.selectedspell;
If (! Isnull (Specials) &&! Isnull (selectd)) {
For I in 0. Spells.Length {if (Spells [i] == 212 && i == select) {
// Add effect
Player.addpotionEffect (
// Trial layer
events.onentitylivingHurt (Function (event as EntitylivingHurtevent) {{
// Get the entity that causes damage
Val TrueSource As IENTITY = EVENT.DAMAGESOURCE.GettrueSource ();
// Get damage type records as damageSource
Val DamageSource as IDAMAGESOURCE = EONT.DAMAGESOURCE;
// If the source of the damage is the player
If (TrueSource Instanceof iPlayer && TrueSource Instanceofof IntiblelivingBase) {{
// Define Player
Val Player as iPlayer = TrueSource; // Define base
Val base as IENTITYLIVINGBASE = TRUESource;
// Get the potion effect as Potions
Var Potions = Base.activepotionEffects;
For Potion in Potions {
If (Potion.effectname == "Potion.ancientSm audiencerft: curse_of_death") {) {
VAL POTION = Potion;
Val x as int = Potion.amPlifier;
Val x as int = x+1;
Val T as int = Potion.Duration;
If (x == 0 || x == 1 || x == 2 || x == 3 || x == 4 || x == 5 || x == 6) {
// Define stack to hold items for players and compare it with the ghost
Val Stack as IItemstack = Player.currentity;
If (! Isnull (Player.CurrenTitem) &&
If (stack.hastag) {var Spells = stack.tag.spells;
Var select = stack.tag.selectedspell;
If (! Isnull (Specials) &&! Isnull (selectd)) {
For I in 0. Spells.Length {
If (Spells [i] == 212 && i == selectd) {
// Add effect
Player.AddpotionEffect (
events.onentitylivingHurt (Function (event as EntitylivingHurtevent) {{
// Get the entity
Val Entity as IEntity = Event.entity;
Val EntitylivingBase As IntiblelivingBase = Event.entitylivingBase;
Var World as iworld = Entity.World;
// Get the entity that causes damage
Val TrueSource As IENTITY = EVENT.DAMAGESOURCE.GettrueSource ();
// Get damage type records as damageSource
Val DamageSource as IDAMAGESOURCE = EONT.DAMAGESOURCE;
// If the source of the damage is the player
If (TrueSource Instanceof iPlayer && TrueSource Instanceofof IntiblelivingBase) {{
// Define Player
Val Player as iPlayer = TrueSource;
// Define base
Val base as IENTITYLIVINGBASE = TRUESource;
// Get the potion effect as Potions
Var Potions = Base.activepotionEffects;
For Potion in Potions {
If (Potion.effectname == "Potion.ancientSm audiencerft: curse_of_death") {Val Potion = Potion;
Val x as int = Potion.amPlifier;
Val T as int = Potion.Duration;
If (x == 6) {
// Define stack to hold items for players and compare it with the ghost
Val Stack as IItemstack = Player.currentity;
If (! Isnull (Player.CurrenTitem) &&
If (stack.hastag) {
Var Spells = stack.tag.spells;
Var select = stack.tag.selectedspell;
If (! Isnull (Spells) &&! Isnull (selectd) {for I in 0. Spells.length {
If (Spells [i] == 212 && i == selectd) {
// Add effect
Var pos = Entity.positation;
Var pos1 as position3f = position3f.create (pos.getx ()+6, pos.get ()+6, pos.getz ()+6);
Var POS2 AS POSITION3F = POSITION3F.CREATE (POS.GETX ()-6, POS.GETY ()-6, POS.GETZ ()-6); for Entity in World.GetentITIESIETIESINAREA (POS1, POS2) {
If (! Isnull (Entity)) {
If (entity instanceof personitylivingbase) {{
Var Living as IENTITYLIVINGBASE = Entity;
Living.attacketityFrom (
// Trial failure
Events.onntityLiversLivingupdate
// Get the physical notes as living
Val Living as IENTITYLIVINGBASE = Event.entitylivingBase;
If (Living Instanceof iPlayer) {
// Get the potion effect as Potions
Var Potions = living.activepotionEffects;
// If the potion effect is
For Potion in Potions {
If (! Isnull (Living) &&! Isnull (PotionS) &&! Isnull (Potion) && Potion.effectname == "Potion.ancientSpellcraft: Curse_of_Death" &&PU rate == 1)
Living.attacketitchfrom (
Import mods.ctutils.utils.math;
Import mods.ctutils.World.World;
Import crafttweaker.World.iworld;
import crafttweaker.player.iplayer;
Import crafttweaker.entity.ientity;
Import Crafttweaker.WORLD.IBLOCKPOS;
Import crafttweaker.util.position3f;
import crafttweaker.entity.ientitylivingbase;
Import Crafttweaker.event.entityjoinWorldEvent;
Import crafttweaker.event.entitylivingHurtevent;
Import crafttweaker.event.entitylivingDeathevent;
Import crafttweaker.event.entitylivingttackedEvent;
// 1. No more than the place of silence
// Go to death
Events.onentityLiversLivingttacked (Function (Event As EntityLivingtackedEvent) {
Val Living as IENTITYLIVINGBASE = Event.entitylivingBase;
Value as string = Event.damageSource.getDamageType ();
If (! Isnull (living.definition) && "AncientSpellcraft: Entity_volcano" == Living.Definition.id && Type! = "Outofworld") {) {) {) {)
Event.cancel ();}});
// Buried Bone Hongchuan
Events.onEntityjoinWorld (Function (event as EntityJoinWorld) {var entity = event.entity;
Var World = Entity.WORLD;
If (! World.remote &&! Isnull (Entity) && Entity Instanceof IENTITYLIVINGBASE) {
Val Living as IENTITYLIVINGBASE = Entity;
If (! Isnull (living.definition) && "AncientSpellcraft: ENTITY_VOLCANO" == Living.Definition.id) {
Living.addpotionEffect (
Living.addpotionEffect (
Living.addpotionEffect (
Entity.WORLD.Cateenation ()
.Sleep (20) .then (function (world, context) {
Living.attacketityfrom (
.Start ();
// Chang Ye Ming Ru
Var pos = Entity.positation;
Var pos1 as position3f = position3f.create (pos.getx ()+64, pos.get ()+64, pos.getz ()+64);
Var POS2 As Positive3F = POSITION3F.CREATE (POS.GETX ()-64, POS.GETY () -64, POS.GETZ ()-64);
For Entity in World.GetentITIESIAREA (POS1, POS2) {
If (! Isnull (Entity) && Entity Instanceof iPlayer) {Val Player as iPlayer = Entity;
Server.ComandManager.executecommand (Player, "// Sphere Air 36");
Server.ComandManager.executecommand (Player, "// HSPHERE EBWIZARDRY: Spectral_block 36");
Player.addpotionEffect (
Player.addpotionEffect (
Player.addpotionEffect (
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {{
Val Entity = Entity; Val Base As IENTIVINGBASE = Entity;
Base.addpotionEffect (
// Dead Butterfly Floating Moon
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {{
Val Living as IENTITYLIVINGBASE = Entity;
If (! Isnull (living.definition) && "Mod_lavacow: Enigmoth" == living.definition.id) {
Var pos = Entity.positation;
Var pos1 as position3f = position3f.create (pos.getx ()+64, pos.get ()+64, pos.getz ()+64);
Var POS2 As Positive3F = POSITION3F.CREATE (POS.GETX () -64, POS.GETY () -64, POS.GETZ ()-64);
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {{
Val Entity as IENTITY = Entity;
Val EntitylivingBase As IntiblelivingBase = Entity;
If (! Isnull (EntitylivingBase) &&! Isnull (EntityLivingBase.Definition) && EntityLivingbase.Definition.id == "AncientSpellCraft: Entity_ Volcano))
Living.addpotionEffect (
// 2. Hell six changes
// Events.onEntitylivingHurt (Function (Event As EntityLivingHurtevent) {
Val Entity as IEntity = Event.entity;
Val World As IWorld = Entity.World;
Val Living as IENTITYLIVINGBASE = Event.entitylivingBase;
If (! Isnull (Entity) &&! Isnull (living) &&! Isnull (living.definition) &&! World.remote &&DEFINITIN.id == "AncientSpellCraft: ENT it_volcano ")) {
Value as string = Event.damageSource.getDamageType ();
If (Type == "Outofworld") {{
Living.addpotionEffect (
Var ENIGMoth =
ENIGMOTH.Setposition (Entity.position);
World.spaWentity (Enigmoth); world.spaWentity (Enigmoth);
Entity.WORLD.Cateenation ()
.Sleep (125)
.Then (function (world, context) {
Living.attacketityfrom (
.Start ();}}
If (! Isnull (Entity) &&! Isnull (living) &&! Isnull (living.Definition) &&! World.remote &&DEFINGID == "Mod_lavacow: ENIGMOTH") {
Living.addpotionEffect (
World.setBlockState (
Entity.WORLD.Cateenation ()
.Sleep (40)
.Then (function (world, context) {
World.setBlockState (
// Hell Road
Events.onentitylivingHurt (Function (event as EntitylivingHurtevent) {{
Val Entity as IEntity = Event.entity;
Val Living as IENTITYLIVINGBASE = Event.entitylivingBase;
Var pos = Entity.positation;
Val World as IWorld = Entity.World;
Var pos1 as position3f = position3f.create (pos.getx ()+64, pos.get ()+64, pos.getz ()+64);
Var POS2 As Positive3F = POSITION3F.CREATE (POS.GETX ()-64, POS.GETY () -64, POS.GETZ ()-64);
For Entity in World.GetentITIESIAREA (POS1, POS2) {
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {Val Base As IENTITYLIVINGBASE = Entity;
If (! Isnull (base) &&! Isnull (base.definition) && basfinition.id == "AncientSpellcraft: Entity_volcano") {{
Value as string = Event.damageSource.getDamageType ();
If (! Isnull (type) && type == "lava") {{
Var Potions = living.activepotionEffects;
For Potion in Potions {
If (Potion.effectname == "Effect.sinking") {living.addpotionEffect (
// Beast Road
Var a =
Var b =
Var C =
Var d =
Var e =
Var F =
Var g =
Var h =
Var I =
Var l =
Var w =
Var P =
Var Q =
Var r =
A.setposition (Entity.position);
B.setposition (Entity.position);
C.Setposition (Entity.position);
D.setposition (Entity.position);
E.Setposition (Entity.position);
F.setposition (Entity.position);
G.Setposition (Entity.position);
H.Setposition (Entity.position); I.setposition (Entity.position);
J.Setposition (Entity.position);
L.setposition (Entity.position);
Q.setposition (Entity.position);
W.Setposition (Entity.position);
P.Setposition (Entity.position);
R.setposition (Entity.position);
Var x = math.random ();
If (x <0.1 && x> 0.0) {world.spawentity (a);}
If (x <0.2 && x> 0.1) {world.spawentity (b);}
If (x <0.3 && x> 0.2) {world.spawentity (c);}
If (x <0.4 && x> 0.3) {world.spawentity (d);}
If (x <0.5 && x> 0.4) {world.spawentity (e);} if (x <0.6 && x> 0.5) {world.spawentity (h);}
If (x <0.7 && x> 0.6) {world.spawentity (i);}
If (x <0.8 && x> 0.7) {world.spawentity (j);}
If (x <0.9 && x> 0.8) {world.spawentity (l);}
If (x <1.0 && x> 0.9) {world.spawentity (f);}
If (x <1.0 && x> 0.9) {world.spawentity (g);}
If (x <0.997 && x> 0.996) {world.spawentity (q);}
If (x <0.998 && x> 0.997) {world.spawentity (w);}
If (x <0.999 && x> 0.998) {world.spawentity (p);} if (x <1.000 && x> 0.999) {world.spawnents (r);}}}}}});
// Skull Phantom Map
//
Events.onentityjoinworld
Var Entity = Event.entity;
Var World = Entity.WORLD;
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {{
Val Living as IENTITYLIVINGBASE = Entity;
If (! Isnull (living.definition)) {{
If ("Ancientspellcraft: Fire_ant" == Living.definition.id ||
"Mod_lavacow: lilsludge" == living.definition.id ||
"Mod_lavacow: seagull" == living.definition.id ||
"Mod_lavacow: raven" == living.definition.id) {event.cancel ();}
If ("MOD_LAVACOW: Enigmoth" == living.definition.id) {
Var pos = Entity.positation;
Var pos1 as position3f = position3f.create (pos.getx ()+64, pos.get ()+64, pos.getz ()+64);
Var POS2 As Positive3F = POSITION3F.CREATE (POS.GETX ()-64, POS.GETY () -64, POS.GETZ ()-64);
For Entity in World.GetentITIESIAREA (POS1, POS2) {
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {{
Val EntitylivingBase As IENTITYLIVINGBASE = Entity; Val Entity as IENTITY = Entity;
If (! Isnull (EntitylivingBase) &&! Isnull (EntityLivingBase.Definition) && EntityLivingbase.Definition.id == "AncientSpellCraft: Entity_ Volcano))
Var m = Entity.nbt.casteruuidmost;
Var l = Entity.nbt.casteruuidLeast;
Living.updatenbt ({Forgetata: {ControllingEntityMost: m});
Living.updatenbt ({ForgetA: {ControllingEntityLast: l}); living.addpotionEffect (
// Empty color
If ("Iceandfire: Gorgon" == living.definition.id ||
"MOD_LAVACOW: Banshee" == Living.definition.id ||
"Mod_lavacow: ithaqua" == living.definition.id ||
"Mowziesmobs: foliaath" == living.definition.id ||
"Mod_lavacow: bonework" == living.definition.id ||
"Mod_lavacow: scarecrow" == living.definition.id ||
"Iceandfire: Dream_horse" == Living.definition.id ||
"Mod_lavacow: sludgelord" == living.definition.id ||
"Cqrepoured: giant_spider" == living.definition.id ||
"Iceandfire: Dream_knight" == Living.definition.id || "Ancientbeasts: Netherhouse" == Living.Definition.id ||
"Iceandfire: Dream_scuttler" == Living.definition.id ||
"Twilightforest: ice_crystal" == living.definition.id ||
"== logine.idefinition.id) {
Var pos = Entity.positation;
Var pos1 as position3f = position3f.create (pos.getx ()+64, pos.get ()+64, pos.getz ()+64);
Var POS2 As Positive3F = POSITION3F.CREATE (POS.GETX ()-64, POS.GETY () -64, POS.GETZ ()-64);
For Entity in World.GetentITIESIAREA (POS1, POS2) {
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {{
Val EntitylivingBase As IENTITYLIVINGBASE = Entity; Val Entity as IENTITY = Entity;
If (! Isnull (EntitylivingBase) &&! Isnull (EntityLivingBase.Definition) && EntityLivingbase.Definition.id == "AncientSpellCraft: Entity_ Volcano))
Var m = Entity.nbt.casteruuidmost;
Var l = Entity.nbt.casteruuidLeast;
Living.updatenbt ({Forgetata: {ControllingEntityMost: m});
Living.updatenbt ({Forgetata: {ControllingEntityLeast: l}});
Living.addpotionEffect (
Living.addpotionEffect (
//
Events.onentitylivingDeath (Function (event as EntitylivingDeathevent) {
Var Entity = Event.entity;
Var World = Entity.WORLD;
If (! Isnull (Entity.definition) && "Twilightforest: ROVING_CUBE" == Entity.definition.id) {
Var pos = Entity.positation;
Var pos1 as position3f = position3f.create (pos.getx ()+64, pos.get ()+64, pos.getz ()+64);
Var POS2 As Positive3F = POSITION3F.CREATE (POS.GETX ()-64, POS.GETY () -64, POS.GETZ ()-64);
For Entity in World.GetentITIESIAREA (POS1, POS2) {
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {{
Val Living as IENTITYLIVINGBASE = Entity;
Living.attacketityfrom (
// Fantasy Bubble
If (! Isnull (Entity.Definition) && "AncientSpellcraft: Entity_volcano" == Entity.definition.id) {
Var pos = Entity.positation;
Var pos1 as position3f = position3f.create (pos.getx ()+64, pos.get ()+64, pos.getz ()+64);
Var POS2 As Positive3F = POSITION3F.CREATE (POS.GETX () -64, POS.GETY () -64, POS.GETZ ()-64);
If (! Isnull (Entity) && Entity Instanceof IEntityLivingBase) {{
VAL LENTITY As IENTITY = Entity;
Val Living as IENTITYLIVINGBASE = Entity;
Var Potions = living.activepotionEffects;
For Potion in Potions {
If (Potion.effectname == "Potion.ebwizardry: Mind_Control") {
Var posl = lentity.position;
VAR POSY As Position3F = Position3f.create (POSL.GETX (), POSL.GETY () -360, POSL.GETZ ()); LENTITY.SetPosition (posy);}}}});
Seeing this big brother begging for a light spray, we are Ctrl+CV in Lu Bucai's case every day. I'm sorry to use others as shields ...