-
Posts
36 -
Joined
-
Last visited
Nexus Mods Profile
About ThalmorJusticiar7th

Profile Fields
-
Discord ID
Thalmorjusticiar7th
-
Country
Iran
-
Currently Playing
Elder Scrolls V: Skyrim, Special Edition
-
Favourite Game
Warcraft 3, Dragon Age Origins, ES5: Skyrim, Mass Effect 2, Darksouls 3
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
ThalmorJusticiar7th's Achievements
Explorer (4/14)
0
Reputation
-
SSE Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
i definitely would, because i want it to come out clean, no matter how much time it takes to create the enchantment. as long as it works perfectly. as for your steps, i think i just need help with the 2 magic effects corresponding to hit detection/counting, and buffs. i simply don't know how i can even begin to start writing a code for that, maybe an event that calls in the function which will trigger the power attack buff, when the normal attack buff reaches stack #4 ? if you can just help me out with the counter & buff scripts (already helped me with counter script), or rather just give me an idea on how to stack 1 buff, 4 times (for normal attacks), and then upon 4 normal attacks switch the buff, into a power attack buff, through script, i think i can take care of the rest of it for the explosion and fireballs, through a function that simply casts the corresponding spell that i would create for each of those effects. -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
ok so first of all, the mod that i posted its script, is called The Infinity Sword. you can see all of its scripts there. i don't know i can post its scripts on the forum, without my post being taken down. now for the weapon enchantment: it's pretty simple, so to avoid confusion, i'm gonna fully explain it (with as little word swarm as i can). so this is what i want the enchantment to do: 1. upon successfully hitting a target with a normal attack, it applies 1 stack of a buff on player (not enemies), 2. at 4 stacks of the buff (4 successful normal attacks), it will transform into a new buff, 3. with the new buff, your next Standing power attack (the one where you just stand there with no directions and push the power attack button), will cause an explosion in the location of impact, regardless of whether it hit an opponent or not, and then 3 fireballs are sent in directions forward, left and right, the explosion is similar to the fire trap spell, and the fireballs are similar to the fireball spell. 4. each stack of the buff received from normal attacks will last 10 seconds, until it dissipates, when it does, the buff is entirely gone, and you have to start stacking buffs from the beginning. 5. after 4 stacks of the normal attack buffs where they will turn into a power attack buff, the buff will last 20 seconds until it dissipates or until you execute a power attack, after which the buff is gone. ok so, the mod that i linked (and shown you its script), accomplishes the explosion and fireballs after performing a power attack, but the standing power attack causes the explosion, whereas directional power attacks cast fireballs. it is a very good foundation to build from for the main part of the enchantment, that's why i originally, only asked for the first part of the script here, which is creating a hit counter for normal attacks, building up to a power attack buff. my personal bet was, if i can find a way to count normal attacks and apply stacks of a buff to the player, then i can simply change normal attack buff with the power attack buff, and then put a condition for on the power attack enchantment to cause the explosion and fireballs. so in essence, the enchantment has 2 phases. i hope that answers everything, thanks for helping out. i'll await your response on how to go forward with this before making any further changes to the script. -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
for this part, what i had in mind, was taking inspiration from a long existing mod on nexus called: infinity sword. this mod makes it so that directional power attacks with the sword, will cast some form of fire ball, and the standing power attack cuases an explosion in place. by reading though its script i found 2 interesting functions in it: Function SuperPowerAtk(Actor akSource) Float Power = InfSwordPowerGlobal.GetValue() ;Debug.Trace(Power) if (Power >= 100) FlameWave.Cast(akSource) FlameWaveRelease.Play(akSource) InfSwordPowerGlobal.SetValue(0.0) else FlameBlastBall.Cast(akSource) EndIf endFunction Function SuperPowerBlast(Actor akSource) Float Power = InfSwordPowerGlobal.GetValue() ;Debug.Trace(Power) if (Power >= 100) InfSwordSooperBlast.Cast(akSource) InfSwordPowerGlobal.SetValue(0.0) else FlameBlastLocal.Cast(akSource) EndIf endFunction as far as i can understand, he set up a global count for the weapon's enchantment, and then if that global count goes to 100 or above the weapon is charged and therefore unleashes the power attacks. i want you to take a look at this and see how can i marry this script into what we've created here so far, and see if we can somehow introduce our buff that we created (1 to 4 stacks) and then tie the explosion to the next power attack done after the stacks created by doing 4 normal attacks consecutively, to this script ? let me know what what ideas do you have for pulling this off. thanks -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
ah good to know. so if we're using it for testing its fine, i'll be removing it anyway in the final version of the script. now how do i create a buff that stacks up to 4 times visually ? and by visually i mean the icon of the buff on the right side of the screen (where buffs appear), goes up in count (from 1 to 4 or disappear when the player didn't power attack during the buff timer) ? -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
so i implemented the script, and tried it in game, when i first hit anybody in the game, it says the hitdetectionspell started, then upon hitting anyone else, instead of it being a simple notification or a stack of the debuff on enemy's hp bar, it instead appears as a prompt in the middle of the screen, and announces the NPC's FormdID instead of its name, take a look: https://www.mediafire.com/view/em5oaq75xgbowse/ScreenShot343.png/file EDIT: so i just realized, you talked about debug.messagebox & debug.notification. the thing is, a messagebox, aka a prompt, will stop the game to tell you, you have attacked a corresponding NPC, that's obviously not what i want, what i was going for was how to apply a debuff on the opponent, that stacks up to 4, and disappears 1 at a time, after a set duration, so going up from 1 to 4, and then fades away to 3, 2, 1 and then disappears from the opponent after each stack's set duration is over. i did not want a notification or prompt that tells you it is stacking up. how do you think that is achievable in skyrim ? -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
the error says "GetDisplayName()" is not a function (or does not exist). i assume, CK does not recognize getdisplayname as a default function in the game's script, either because the name should be different or maybe because it was never written as a function in game's default script. here is an image of the error (i posted the wrong image in the post above, now i've edited it): https://www.mediafire.com/view/rd0y0lm5uut595v/123345.png/file -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
there is a problem with a specific part of the script for detection spell, the event: event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked) Debug.messageBox( "Hit on " + target.getDisplayName() + "!") endevent will not be saved/compiled because of an error with the target.getDisplayName(). here is an image of the error: https://www.mediafire.com/view/rd0y0lm5uut595v/123345.png/file -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
. -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
thanks. i'll implement this in a fresh plugin and see if it works in game, also no worries about the typos, i'll refine any missing letters, etc without much issues as i edit my scripts in Notepad++ not CK. -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
thanks for the answer, how do i write the script for Normal attacks registering inside an OnHit event ? that's something i'm totally green about as nothing that i've seen ever handled normal attacks (same question about power attacks), i'm working on a mod project with already a main requirement, so i do not want to add anymore requirements for the quest, the issue of enchantment registering a hit on the opponent can be negated by simply not adding those hits to the script, and only count physical attacks, no ? i do have only 4 hits in mind, and a new effect for the power attack that follows these 4 normal attacks when the player has 4 stacks of the buff effect. also i don't understand what you mean by using multiple magic effects, are you saying i add a specific magic effect for each of the 4 attacks ? then how can i condition each one to stack after the one before it already happened, or if the one before it expires, this hit that (lets say i created for the 4th attack) should no longer be considered the 4th stack, but rather the 1st one, that can't happen if its a unique buff/debuff that applies stack number 4, rather than adding on the stack pile itself. -
Papyrus Scripting
ThalmorJusticiar7th replied to Gorgopis's topic in Skyrim's Creation Kit and Modders
i know this might be late, but i found this thread just now, i have a request quite similar to this thread's original post: i want to create a weapon enchantment, that: 1. counts the number of times you have done normal attacks 2. add an effect that with each attack, increases fire damage with a buff on player, stacking up to 4 3. at 4 stacks of the effect, your next power attack will trigger a fire explosion (similar to fire rune trap) and 3 fire balls in front, left and right directions (like fireball), my real issue is with implementing a method for the game to register and count normal and power attacks and increase the effect's stack based on the number of attacks. i couldn't find anything like this in the game's records, so i don't even know where to begin. -
ok cool. so playerrefalias wasn't important as i guessed. i understand what you mean, i just wasn't sure why you change the script, hence why i asked. as for: (GetOwningQuest() as SoulCollectionQuestScript).CastSoulTrap(akSpeaker) i saw that in your mock quest's dialogue and mimicked it in my own quest, but wasn't familiar why i'm doing it like this. glad that you've cleared this up. so if i am to lets say, after the quest, add the soulgem as a separate item that hosts the soul of a giant, then i can simply call on this function for the new item right ? interesting stuff. thanks for clearing it up. and thank you for coming back tome pretty fast. i appreciate it.
-
so i've been studying your quest, and there are stuff that i don't understand, first off why did you change the script completely from the one you gave me here ? now there are 3 functions in your attached mod, whereas in the script that you wrote for me here, there were two functions, one for applying the soultrap to the target and another for checking if a soul was collected: so this is the old script you gave me: ; assuming corresponding objectives are numbered 31, 32, 33 Bool Function SpecialTrapSoul(Actor Victim, Actor Caster) If Caster == PlayerRef If GetStage() == 60 && Victim.GetRace() == GiantRace Return AdvanceCollectionStage(EmptySoulGem, PartialSoulGem, 63, 31) ElseIf GetStage() == 63 && Victim.GetRace() == DragonPriestRace Return AdvanceCollectionStage(PartialSoulGem, ModerateSoulGem, 66, 32) ElseIf GetStage() == 60 && Victim.GetRace() == DragonRace Return AdvanceCollectionStage(ModerateSoulGem, FilledSoulGem, 70, 33) ; <<< THE EDITED LINE, updated gem names EndIf EndIf Return false EndFunction Bool Function AdvanceCollectionStage(MiscObject OldSoulGem, MiscObject NewSoulGem, Int NewStage, Int Objective) If PlayerRef.GetItemCount(OldSoulGem) > 0 PlayerRef.RemoveItem(OldSoulGem, 1, true) PlayerRef.AddItem(NewSoulGem, 1) SetObjectiveCompleted(Objective, true) SetStage(NewStage) Return true EndIf Return false EndFunction but in your attached file, in the script files, there's a whole new script, and another function: Scriptname SoulCollectionQuestScript extends Quest Conditional ReferenceAlias Property PlayerRefAlias Auto Actor Property PlayerRef Auto SPELL Property aa_SpecialSoulTrap Auto Race Property GiantRace Auto Race Property DragonPriestRace Auto Race Property DragonRace Auto MiscObject Property aa_EmptySoulGem Auto MiscObject Property aa_PartialSoulGem Auto MiscObject Property aa_ModerateSoulGem Auto MiscObject Property aa_FilledSoulGem Auto Function CastSoulTrap(Actor akTarget) if (akTarget.GetRace() == GiantRace && GetStage() == 60) || \ (akTarget.GetRace() == DragonPriestRace && GetStage() == 63) || \ (akTarget.GetRace() == DragonRace && GetStage() == 66) aa_SpecialSoulTrap.Cast(PlayerRef, akTarget) endif EndFunction Bool Function CompleteSoulTrap(Actor akCaster, Actor akTarget) if akCaster == PlayerRef if akTarget.GetRace() == GiantRace && GetStage() == 60 return ApplySoulCollection(aa_EmptySoulGem, aa_PartialSoulGem, 63) elseif akTarget.GetRace() == DragonPriestRace && GetStage() == 63 return ApplySoulCollection(aa_PartialSoulGem, aa_ModerateSoulGem, 66) elseif akTarget.GetRace() == DragonRace && GetStage() == 66 return ApplySoulCollection(aa_ModerateSoulGem, aa_FilledSoulGem, 66) endif endif return false EndFunction Bool Function ApplySoulCollection(MiscObject amOldGem, MiscObject amNewGem, int aiStage) if PlayerRef.GetItemCount(amOldGem) > 0 PlayerRef.RemoveItem(amOldGem, 1, true) PlayerRef.AddItem(amNewGem, 1) SetStage(aiStage) return true endif return false EndFunction could you elaborate why is there a third function ? because now i'm confused, also there's a reference alias property for the player in your new script, but the player Alias is not used in your new script. are you sure it should be there ?
-
i understand those conditions. as you said self explanatory. the script attached to it is what i don't understand: (GetOwningQuest() as SoulCollectionQuestScript).CastSoulTrap(akSpeaker) .castsoultrap ? whouldn't that just cause the normal soultrap to be casted on the giant/drpriest/dr ? whereas we would want our special soul trap to be casted here ? i understand that this is a default script so it is necessary to use the default properties, but it just confused me. i'm guessing the condition for hasmagiceffect set to 0 means that our magic effect won't be cast on the giant, as you said, so when will the effect be cast on them ?