it definately still works, make sure you put the files in manually in the reframework folder in your dd2 directory, i tried installing this with fluffy and it wouldnt work, but will work if you put it in the reframework/autorun folder
awsome mod, i did use cast magic without a staff for a while but changed to this simply becuase it has more spells. i hope you get frigor working better, instead of being cast on the players location. one thing i was hoping you could do is maybe add an option to change the length needed for the hold function to activate, or maybe have all spells in the mod able to be whatever hotkey you want, i dislike the hold system lol but it is great because it means i can have more abilities set onto a single button
EDIT: sorry i should have mentioned, im using controller lol. but also, in the reframework UI for this mod, the only available option to hotkey is for sets of abilities, not singular. so im asking for singular spells hotkeys, and/or configurable hold length from tap to 5 second hold or something
In the Description it says: 1. Can cast magic with projectiles: The projectiles will always fly to the direction you are looking at (camera direction), which means if you are looking up, the projectiles will fly up, not always fly horizontally like the vanilla mage's bolt.
Just for clarification, do the basic magic attacks still automatically lock-on to whatever enemy your camera is facing? As in, can I aim specifically for the head, arms, legs, and have the basic attacks go to those specific body parts? Or do they function normally and do whatever they want when looking in the general direction of the enemy?
I'm trying to find ways to manually aim all magic attacks, it's honestly really frustrating the way the automatic lock-on works in the game.
EDIT: I would still like an answer to my previous inquiry. However, I decided to install this mod and try it out, but the bolts are flying horizontally, entirely disregarding my camera angle. This is the first mod I try, aside from the requirements, nothing else is installed.
Hey, I've been having the same issue too, but I think I figured it out. I use an external application to read my Dualsense controller as a Xbox controller. While I was having the issue, I didn't have the controller set to be read as a Xbox controller. Once I closed the game and toggled the Xbox config on, my preset keys finally showed up as saved. Not saying it will work for you but it might-PC is finicky like that.
Outstanding mod! Manytimes see the npcs sitting and lying down everywhere, can you make a mod that allows for us to do the same with our character and main pawn interacting with the bed and chairs?
If possible, would you mind adding an activate button? Like the opposite of the block/inhibit button, holding this while pressing one of the keybinds would be what allows you to cast the spell. Without it, nothing else happens. Like how the spellmaker mod does it. It would make this mod a lot more controller friendly.
I think you can easily do this by yourself, just find: local CanCast = true if hotkeys.check_hotkey("Prevent Key", true, false) then CanCast = false endand change it into local CanCast = false if hotkeys.check_hotkey("Prevent Key", true, false) then CanCast = true end Then you make the prevent key into enbale key.
if ur are already using a mod that advance improves ur gameplay besides what it already provided (not including cloth changing mods, lul or mods that improves only the looks of your character) ...then that's the gamers issue..not the modders...
you should give spell maker a try...it really makes the game as fun or as challenging as possible -i made a whole complete vocation that only uses all healing spells except for on single move from fighter that dashes with a lighting punch at the end...
I love your other mod Cast Magic without a staff, do you know what ID's I'd need to replace to get the advanced versions of Salamander, Frigor, and Thundermine? As well as possibly replacing Celerity with the mage's healing? Much appreciated if you get around to updating that one at all.
aslamander is "ShootMagic(5,41)", it can be cast normally Frigor is "ShootMagic(2,12)", butthe ice will be placed around the player. I am working on this two spells now. Thundermine and mage's healing is already included in this mod. Mage's healing is 'CastMagic("Head_0",5,17)". it can be used by pressing V in this mod. Thundermine is a bit complicated, to place it in front of you the code will be:local player = getPlayer() local playerM = player and player:get_Valid() and player:get_GameObject() local pl_xform = playerM:get_Transform() local pl_mat = pl_xform:getJointByName("Head_0"):get_WorldMatrix() local TargetPosition = pl_mat[3] + pl_mat[2] * 1.25 + Vector3f.new(0, 1.2, 0) local RayPosition = func.cast_ray(pl_mat[3], TargetPosition, 2, 0, 0.01, 0)[1] if RayPosition then SummonMagic(RayPosition[2],2,45) else SummonMagic(TargetPosition,2,45) end If you want to use these code in the old mod, you need to add several functions to the mod: local function CastMagic(P1, job_id, item_id) local mplayer = getPlayer() local player = mplayer and mplayer:get_Valid() and mplayer:get_GameObject() local pl_xform = player:get_Transform() local shellreq = player:call("getComponent(System.Type)", sdk.typeof("app.ShellRequest")) local shell_mgr = sdk.get_managed_singleton("app.ShellManager") local sparam_info = shellreq.DataList._ShellParamDataArray._items[job_id] local pl_mat = pl_xform:getJointByName(P1):get_WorldMatrix() local shell_req = sdk.create_instance("app.ShellRequest.ShellCreateInfo"):add_ref() shell_req.ResourceIdHash = sparam_info._ResourceIDHash shell_req.ShellParamIdHash = sparam_info._Data.ShellParams._items[item_id]._ShellParamIdHash local quat = Quaternion.new(0,0,0,1) return shell_mgr:call("requestCreateShell(via.GameObject, via.vec3, via.Quaternion, app.ShellRequest.ShellCreateInfo, app.ShellParamData, app.ShellRequest.EventCreateShellSuccess, app.ShellRequest.EventBeforeShellInstantiate)", player, pl_mat[3], quat, shell_req, sparam_info._Data, nil, nil) end
local function SummonMagic(P2, job_id, item_id) local mplayer = getPlayer() local player = mplayer and mplayer:get_Valid() and mplayer:get_GameObject() local pl_xform = player:get_Transform() local shellreq = player:call("getComponent(System.Type)", sdk.typeof("app.ShellRequest")) local shell_mgr = sdk.get_managed_singleton("app.ShellManager") local sparam_info = shellreq.DataList._ShellParamDataArray._items[job_id] local shell_req = sdk.create_instance("app.ShellRequest.ShellCreateInfo"):add_ref() shell_req.ResourceIdHash = sparam_info._ResourceIDHash shell_req.ShellParamIdHash = sparam_info._Data.ShellParams._items[item_id]._ShellParamIdHash local quat = Quaternion.new(0,0,0,1) return shell_mgr:call("requestCreateShell(via.GameObject, via.vec3, via.Quaternion, app.ShellRequest.ShellCreateInfo, app.ShellParamData, app.ShellRequest.EventCreateShellSuccess, app.ShellRequest.EventBeforeShellInstantiate)", player, P2, quat, shell_req, sparam_info._Data, nil, nil) end
local function ShootMagic(job_id, item_id) local mplayer = getPlayer() local player = mplayer and mplayer:get_Valid() and mplayer:get_GameObject() local pl_xform = player:get_Transform() local shellreq = player:call("getComponent(System.Type)", sdk.typeof("app.ShellRequest")) local shell_mgr = sdk.get_managed_singleton("app.ShellManager") local sparam_info = shellreq.DataList._ShellParamDataArray._items[job_id] local pl_mat = pl_xform:getJointByName("Head_0"):get_WorldMatrix() local shell_req = sdk.create_instance("app.ShellRequest.ShellCreateInfo"):add_ref() shell_req.ResourceIdHash = sparam_info._ResourceIDHash shell_req.ShellParamIdHash = sparam_info._Data.ShellParams._items[item_id]._ShellParamIdHash local pl_eul = pl_xform:get_EulerAngle() local camera = sdk.get_primary_camera() local cam_matrix = camera and camera:get_WorldMatrix() local rot_mat = cam_matrix local quat = (rot_mat[2] * -1):to_quat():normalized() return shell_mgr:call("requestCreateShell(via.GameObject, via.vec3, via.Quaternion, app.ShellRequest.ShellCreateInfo, app.ShellParamData, app.ShellRequest.EventCreateShellSuccess, app.ShellRequest.EventBeforeShellInstantiate)", player, pl_mat[3], quat, shell_req, sparam_info._Data, nil, nil) end
22 comments
EDIT: sorry i should have mentioned, im using controller lol. but also, in the reframework UI for this mod, the only available option to hotkey is for sets of abilities, not singular. so im asking for singular spells hotkeys, and/or configurable hold length from tap to 5 second hold or something
anyway, thank you for the awsome mod
1. Can cast magic with projectiles: The projectiles will always fly to the direction you are looking at (camera direction), which means if you are looking up, the projectiles will fly up, not always fly horizontally like the vanilla mage's bolt.
Just for clarification, do the basic magic attacks still automatically lock-on to whatever enemy your camera is facing? As in, can I aim specifically for the head, arms, legs, and have the basic attacks go to those specific body parts? Or do they function normally and do whatever they want when looking in the general direction of the enemy?
I'm trying to find ways to manually aim all magic attacks, it's honestly really frustrating the way the automatic lock-on works in the game.
EDIT: I would still like an answer to my previous inquiry. However, I decided to install this mod and try it out, but the bolts are flying horizontally, entirely disregarding my camera angle. This is the first mod I try, aside from the requirements, nothing else is installed.
local CanCast = true
and change it intoif hotkeys.check_hotkey("Prevent Key", true, false) then
CanCast = false
end
local CanCast = false
Then you make the prevent key into enbale key.if hotkeys.check_hotkey("Prevent Key", true, false) then
CanCast = true
end
you should give spell maker a try...it really makes the game as fun or as challenging as possible
-i made a whole complete vocation that only uses all healing spells except for on single move from fighter that dashes with a lighting punch at the end...
Frigor is "ShootMagic(2,12)", butthe ice will be placed around the player. I am working on this two spells now.
Thundermine and mage's healing is already included in this mod.
Mage's healing is 'CastMagic("Head_0",5,17)". it can be used by pressing V in this mod.
Thundermine is a bit complicated, to place it in front of you the code will be:
local player = getPlayer()
If you want to use these code in the old mod, you need to add several functions to the mod:local playerM = player and player:get_Valid() and player:get_GameObject()
local pl_xform = playerM:get_Transform()
local pl_mat = pl_xform:getJointByName("Head_0"):get_WorldMatrix()
local TargetPosition = pl_mat[3] + pl_mat[2] * 1.25 + Vector3f.new(0, 1.2, 0)
local RayPosition = func.cast_ray(pl_mat[3], TargetPosition, 2, 0, 0.01, 0)[1]
if RayPosition then
SummonMagic(RayPosition[2],2,45)
else
SummonMagic(TargetPosition,2,45)
end
local function CastMagic(P1, job_id, item_id)
local mplayer = getPlayer()
local player = mplayer and mplayer:get_Valid() and mplayer:get_GameObject()
local pl_xform = player:get_Transform()
local shellreq = player:call("getComponent(System.Type)", sdk.typeof("app.ShellRequest"))
local shell_mgr = sdk.get_managed_singleton("app.ShellManager")
local sparam_info = shellreq.DataList._ShellParamDataArray._items[job_id]
local pl_mat = pl_xform:getJointByName(P1):get_WorldMatrix()
local shell_req = sdk.create_instance("app.ShellRequest.ShellCreateInfo"):add_ref()
shell_req.ResourceIdHash = sparam_info._ResourceIDHash
shell_req.ShellParamIdHash = sparam_info._Data.ShellParams._items[item_id]._ShellParamIdHash
local quat = Quaternion.new(0,0,0,1)
return shell_mgr:call("requestCreateShell(via.GameObject, via.vec3, via.Quaternion, app.ShellRequest.ShellCreateInfo, app.ShellParamData, app.ShellRequest.EventCreateShellSuccess, app.ShellRequest.EventBeforeShellInstantiate)", player, pl_mat[3], quat, shell_req, sparam_info._Data, nil, nil)
end
local function SummonMagic(P2, job_id, item_id)
local mplayer = getPlayer()
local player = mplayer and mplayer:get_Valid() and mplayer:get_GameObject()
local pl_xform = player:get_Transform()
local shellreq = player:call("getComponent(System.Type)", sdk.typeof("app.ShellRequest"))
local shell_mgr = sdk.get_managed_singleton("app.ShellManager")
local sparam_info = shellreq.DataList._ShellParamDataArray._items[job_id]
local shell_req = sdk.create_instance("app.ShellRequest.ShellCreateInfo"):add_ref()
shell_req.ResourceIdHash = sparam_info._ResourceIDHash
shell_req.ShellParamIdHash = sparam_info._Data.ShellParams._items[item_id]._ShellParamIdHash
local quat = Quaternion.new(0,0,0,1)
return shell_mgr:call("requestCreateShell(via.GameObject, via.vec3, via.Quaternion, app.ShellRequest.ShellCreateInfo, app.ShellParamData, app.ShellRequest.EventCreateShellSuccess, app.ShellRequest.EventBeforeShellInstantiate)", player, P2, quat, shell_req, sparam_info._Data, nil, nil)
end
local function ShootMagic(job_id, item_id)
local mplayer = getPlayer()
local player = mplayer and mplayer:get_Valid() and mplayer:get_GameObject()
local pl_xform = player:get_Transform()
local shellreq = player:call("getComponent(System.Type)", sdk.typeof("app.ShellRequest"))
local shell_mgr = sdk.get_managed_singleton("app.ShellManager")
local sparam_info = shellreq.DataList._ShellParamDataArray._items[job_id]
local pl_mat = pl_xform:getJointByName("Head_0"):get_WorldMatrix()
local shell_req = sdk.create_instance("app.ShellRequest.ShellCreateInfo"):add_ref()
shell_req.ResourceIdHash = sparam_info._ResourceIDHash
shell_req.ShellParamIdHash = sparam_info._Data.ShellParams._items[item_id]._ShellParamIdHash
local pl_eul = pl_xform:get_EulerAngle()
local camera = sdk.get_primary_camera()
local cam_matrix = camera and camera:get_WorldMatrix()
local rot_mat = cam_matrix
local quat = (rot_mat[2] * -1):to_quat():normalized()
return shell_mgr:call("requestCreateShell(via.GameObject, via.vec3, via.Quaternion, app.ShellRequest.ShellCreateInfo, app.ShellParamData, app.ShellRequest.EventCreateShellSuccess, app.ShellRequest.EventBeforeShellInstantiate)", player, pl_mat[3], quat, shell_req, sparam_info._Data, nil, nil)
end