Jump to content

BigKevSexyMan

Members
  • Posts

    127
  • Joined

  • Last visited

Nexus Mods Profile

About BigKevSexyMan

BigKevSexyMan's Achievements

Collaborator

Collaborator (7/14)

  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter
  • First Post

Recent Badges

0

Reputation

  1. Hi, I'm having an issue with a script. What I want to do is cast two spells at the same time when you raise your shield, but when I do that, it only does the last one(Actually, it probably does one, then stops instantly and does the other). The Spell has to be a concentration self type. Finally, here's my script: Scriptname _BKSM_ShieldBlockEffect extends activemagiceffect String AnimationEnter = "blockStartOut" String AnimationExit = "blockStop" SPELL Property AbilityAdded Auto SPELL Property AbilityAdded2 Auto Event OnAnimationEvent(ObjectReference akSource, string asEventName) if (asEventName == AnimationEnter) AbilityAdded.Cast(akSource , akSource ) AbilityAdded2.Cast(akSource , akSource ) endif if (asEventName == AnimationExit) (akSource as Actor).DispelSpell(AbilityAdded) akSource.InterruptCast() endif EndEvent Event OnEffectStart(Actor akTarget, Actor akCaster) RegisterForAnimationEvent(akTarget, AnimationEnter) RegisterForAnimationEvent(akTarget, AnimationExit) EndEvent Event OnEffectFinish(Actor akTarget, Actor akCaster) UnregisterForAnimationEvent(akTarget, AnimationEnter) UnregisterForAnimationEvent(akTarget, AnimationExit) EndEvent It works for one spell, but it won't do two. It's a problem, because this is supposed to be an enchantment and when someone dual enchants, only one enchantment will work. Any help would be appreciated.
  2. I just released a beta for a shield enchantments mod that contains the ward spell shield. http://skyrim.nexusmods.com/mods/30300
  3. Spell sneak attacks: http://skyrim.nexusmods.com/mods/12637
  4. Hi, my mod is nearly done, and I'm thinking of taking it to beta to get everyone's opinion and any info on if things are OP and stuff. I was just wondering, for those who've had BETA mods or have downloaded them. Is there a specific way to go about it? Do I just upload my mod and throw BETA at the end of it? This would be my first mod that I'll officially release so any advice is appreciated.
  5. In terms of bashing spells, the only other way would be to register for animation events. It is weird that perks are used for casting spells like that, but it works extremely well. You don't need a script however, just make an enchantment with a constant self magic effect. On the magic effect there's a "Perk to Apply" drop down you can select your new perk from.
  6. I think racial powers are technically spells, so all you have to do is add the spell you want.
  7. Create two magic effects, one set to health damage, and the other will be a script. Make a spell and add both of these effects to it. For the Health one, just set the amount of damage you want it to do. For the second effect, set the duration you want it to last. Now, on the script magic effect, make a script and give it a Spell Property, and give it the OnHit event. Whenever this event is triggered you cast a new damage spell on the target actor using the GetTargetActor() function. Oh, and don't forget to set the property to the spell you want.
  8. Actually, I ended up emailing them, and they replied that the papyrus interface for skse isn't available for plugins yet. They also suggested I copy a few classes from skse into my project to get rid of the linker errors I mentioned, and it compiled, but my function in game didn't run. Like they said. I guess I'll just keep an eye out for the next version of skse, and hope they added the feature. But I promise this, when they come out with the version that allows this, and I manage to figure it out, I'll post tutorials about what I figured out. Because this lack of tutorial stuff for skse is just frustrating. I guess I'll just work on my other projects for now. But thanks scrivener07 for trying to help me out.
  9. I did like going through that, but unfortunately it doesn't contain anything that adds to papyrus. I've done a lot of narrowing things down, and I found the line that's really giving me trouble: registry->RegisterFunction( new NativeFunction0<StaticFunctionTag, UInt32>("TestValue", "PapyrusExample", TestPapyrus::TestValue, registry)); When I my code contains this line I get 4 LNK2019 errors in visual studio. I don't get why this doesn't work, I'm opening this project up directly from the skse download. I've search the internet, and what little there is out there on skse and this problem isn't coming up. Here's my source code, maybe someone will see what's happening. Although the source code might not be the problem so much as it would be my project settings. But again, they should all be skse default. TestPapyrus.h #pragma once #include "skse/GameTypes.h" struct StaticFunctionTag; class VMClassRegistry; namespace TestPapyrus { void RegisterFuncs(VMClassRegistry* registry); UInt32 TestValue(StaticFunctionTag*); UInt32 asdf(UInt32 a); }; TestPapyrus.cpp #include "TestPapyrus.h" #include "skse/GameObjects.h" UInt32 TestPapyrus::TestValue(void*) { return 12345; } UInt32 TestPapyrus::asdf(UInt32 a) { return 54321; } #include "skse/PapyrusVM.h" #include "skse/PapyrusNativeFunctions.h" void TestPapyrus::RegisterFuncs(VMClassRegistry* registry) { registry->RegisterFunction( new NativeFunction0<StaticFunctionTag, UInt32>("TestValue", "PapyrusExample", TestPapyrus::TestValue, registry)); } main.cpp (with most papyrus code taken out) //#define _PPAPI 1 #include "skse/PluginAPI.h" #include "skse/skse_version.h" #include "skse/SafeWrite.h" #include "skse/ScaleformCallbacks.h" #include "skse/ScaleformMovie.h" #include "skse/GameAPI.h" IDebugLog gLog("skse_example_plugin.log"); PluginHandle g_pluginHandle = kPluginHandle_Invalid; #ifdef _PPAPI SKSEPapyrusInterface * papyrus = NULL; #endif extern "C" { bool SKSEPlugin_Query(const SKSEInterface * skse, PluginInfo * info) { _MESSAGE("skse_example_plugin"); // populate info structure info->infoVersion = PluginInfo::kInfoVersion; info->name = "example plugin"; info->version = 1; // store plugin handle so we can identify ourselves later g_pluginHandle = skse->GetPluginHandle(); if(skse->isEditor) { _MESSAGE("loaded in editor, marking as incompatible"); return false; } else if(skse->runtimeVersion != RUNTIME_VERSION_1_8_151_0) { _MESSAGE("unsupported runtime version %08X", skse->runtimeVersion); return false; } #ifdef _PPAPI papyrus = (SKSEPapyrusInterface *)skse->QueryInterface(kInterface_Papyrus); if(!papyrus) { _MESSAGE("couldn't get papyrus interface"); return false; } if(papyrus->interfaceVersion < SKSEPapyrusInterface::kInterfaceVersion) { _MESSAGE("papyrus interface too old (%d expected %d)", papyrus->interfaceVersion, SKSEPapyrusInterface::kInterfaceVersion); return false; } #endif // ### do not do anything else in this callback // ### only fill out PluginInfo and return true/false // supported runtime version return true; } bool SKSEPlugin_Load(const SKSEInterface * skse) { _MESSAGE("load"); #ifdef _PPAPIg papyrus->Register(RegisterPapyrus); #endif return true; } }; Finally, here are my Linker Errors Error 2 error LNK2019: unresolved external symbol "void __cdecl PackValue<unsigned long>(class VMValue *,unsigned long *,class VMClassRegistry *)" (??$PackValue@K@@YAXPAVVMValue@@PAKPAVVMClassRegistry@@@Z) referenced in function "public: virtual bool __thiscall NativeFunction0<struct StaticFunctionTag,unsigned long>::Run(class VMValue *,class VMClassRegistry *,unsigned long,class VMValue *,class VMState *)" (?Run@?$NativeFunction0@UStaticFunctionTag@@K@@UAE_NPAVVMValue@@PAVVMClassRegistry@@K0PAVVMState@@@Z) C:\Users\BKSM\Desktop\skse_1_06_05\src\skse\plugin_example\TestPapyrus.obj plugin_example Error 3 error LNK2019: unresolved external symbol "void * __cdecl UnpackHandle(class VMValue *,unsigned long)" (?UnpackHandle@@YAPAXPAVVMValue@@K@Z) referenced in function "void __cdecl UnpackValue<struct StaticFunctionTag>(struct StaticFunctionTag * *,class VMValue *)" (??$UnpackValue@UStaticFunctionTag@@@@YAXPAPAUStaticFunctionTag@@PAVVMValue@@@Z) C:\Users\BKSM\Desktop\skse_1_06_05\src\skse\plugin_example\TestPapyrus.obj plugin_example Error 4 error LNK2019: unresolved external symbol "unsigned long __cdecl GetTypeID<unsigned long>(class VMClassRegistry *)" (??$GetTypeID@K@@YAKPAVVMClassRegistry@@@Z) referenced in function "public: __thiscall NativeFunction0<struct StaticFunctionTag,unsigned long>::NativeFunction0<struct StaticFunctionTag,unsigned long>(char const *,char const *,unsigned long (__cdecl*)(struct StaticFunctionTag *),class VMClassRegistry *)" (??0?$NativeFunction0@UStaticFunctionTag@@K@@QAE@PBD0P6AKPAUStaticFunctionTag@@@ZPAVVMClassRegistry@@@Z) C:\Users\BKSM\Desktop\skse_1_06_05\src\skse\plugin_example\TestPapyrus.obj plugin_example Error 5 error LNK2019: unresolved external symbol "public: void __thiscall NativeFunction::DebugRunHook(class VMValue *,class VMClassRegistry *,unsigned long,class VMValue *,class VMState *)" (?DebugRunHook@NativeFunction@@QAEXPAVVMValue@@PAVVMClassRegistry@@K0PAVVMState@@@Z) referenced in function "public: virtual bool __thiscall NativeFunction0<struct StaticFunctionTag,unsigned long>::Run(class VMValue *,class VMClassRegistry *,unsigned long,class VMValue *,class VMState *)" (?Run@?$NativeFunction0@UStaticFunctionTag@@K@@UAE_NPAVVMValue@@PAVVMClassRegistry@@K0PAVVMState@@@Z) C:\Users\BKSM\Desktop\skse_1_06_05\src\skse\plugin_example\TestPapyrus.obj plugin_example Error 6 error LNK1120: 4 unresolved externals C:\Users\BKSM\Desktop\skse_1_06_05\src\skse\Debug\plugin_example.dll plugin_example
  10. You could always download one of those alternative start mods.
  11. You have to attach that perk to the player somehow. Did you set 'Perk to Apply' in a magic effect to your perk and somehow give that magic effect to the player?
  12. Bump..... Does this not exist yet? Should I just try to do my mod without?
  13. Well, I tried to take a look at SkyUI, but it doesn't use skse plugins. And Uncapper looked promising until I found out I couldn't disassemble the .dll plugin that it had. Still thanks for the help. I took a deeper look at the plugin example that came with skse, and I understand it a little better, but there's this #ifdef _PPAPI variable that's throwing me for some problems. I'm trying to look into that a little more.
  14. I think it might be because when bethesda updates skyrim, skse is updated quicker than script dragon is.
  15. For interuptCast, the spell isn't an Object Reference, so you can't use it. Instead of beamSpell.InterruptCast(), try BeamSource.InterruptCast(). As for OnHit(), I guess it depends on what you have this script attached to. The object that has this script isn't being hit, so the OnHit() isn't triggering.
×
×
  • Create New...