-
Posts
508 -
Joined
-
Last visited
-
Days Won
1
xkkmEl last won the day on July 19 2024
xkkmEl had the most liked content!
Nexus Mods Profile
About xkkmEl

Recent Profile Visitors
2892 profile views
xkkmEl's Achievements
Proficient (10/14)
31
Reputation
-
This is what I suggest: Set up a quest with script to count hits by the player with the enchanted weapon; counter resets to zero after 10s without hits, if less than 4 hits were recorded; counter resets to zero after 20s without hits, if at least 4 hits were recorded. Use an enchantment on the weapon to detect hits by the player and increment the quest's hit counter, and refresh the 10s/20s timer. Trigger 1st set of buffs based on the quest's hit counter. Use the quest to listen for animation events on the player to detect power attacks (experimentation will be required; I have never tried to distinguish power attacks using animation events). Trigger power buff when animation event is detected, and expire the counter immediately thereby returning the hit counter to zero. In this, a 5th hit 10s+ after the 4th (but less than 20s) will keep the counter going. If you deem it important during the 10-20s period to act on the power buff but ignore the normal attack, it can be done but it will require more code (with corresponding debugging and testing).
-
Hmm.... I don't know about tweaking the HUD active magic effect icons... Not the slightest idea on that. I can have it show whichever standard icon you want, but I don't know about putting a number on it, or use a custom icon. The code you shared indicates how additional effects are done in that mod. It does not address explicitly how the "Power" global variable is managed. This approach will also only work for the player (though you may be ok with this). In what you'd said earlier, I understood you wanted extra buffs to take effect as you repeat hits on the same target.... which is why I've had you set things up to count hits per-target. Perhaps I assumed wrong... To distinguish different power attacks you'd need to listen for animation events; I know how to work with them, but have not researched which events to listen for and experience tells me to expect a need to experiment (though having that mod's source can certainly help narrow the search). It may be easier to start with just hit counts, and then layer on top per-attack-style variations. Also, you have not made explicit how you want to manage the debuffs... or rather how buffs timeout. Right now, what I wrote places a magiceffect on the target with the 1st hit, and removes it 20s later. During these 20s you can count hits, triggering buffs as needed, then everything resets. That's probably not exactly what you want. If you want (for example) the buffs and hit counts to continue until 20s go by without a hit on that target, add the following line at the end of the "OnHit" event (while you're at it, replace the 20.0 with whatever delay you have in mind): registerForSingleUpdate( 20.0) In any case, I'll wait for a bit more info on you plans and dreams before suggesting more code.
-
Oops! "Actor 14" is the player. I got the order of the event parameters wrong. Change both scripts to use: Event OnEffectStart(Actor akTarget, Actor akCaster) Now it should id correctly the victim NPC. The popup is just to show what events you are detecting. You'll want to replace the "Debug.messageBox" call with appropriate code to count the hits and buff/debuff your weapon enchantment. We can tackle that next. For early debugging, I recommend using "Debug.messageBox" or "Debug.trace". In this case, I chose the former because it is easier to access, though it is annoying in game. You can also try replacing it with "Debug.notification" but you'll see that the notification message is truncated and much less informative; it would not have caught my parameter-order-confusion error.
-
Ishara is almost right. Form.GetName is from SKSE. However, SKSE also has ObjectReference.getDisplayName. I use it and it does compile and return a valid string, on LE. In any case, the direct reference to "target" will be good enough to get started. It's just a little uglier than getName or getDisplayName. Note however that it does not work well if you replace Debug.messageBox with Debug.notification.
-
Not sure how/why you'd get an error there. In any case, it's not a critical part of the script. Use this instead: Debug.messageBox( "Hit on " + target + "!")
-
Unless someone has a better idea... what I have in mind is not trivial. You want to use the OnHit event. Since this requires a script on the target, we'll use a magiceffect to hold the script, and an ability to start a stable magiceffect: Create a "script", "constant effect", "self" magic effect. Create a "ability", "constant effect", "self" spell, and assign it the previously created magiceffect. Create a 2nd "script", "fire and forget", "contact" magic effect. Create a "enchantment", "fire and forget", "contact" enchantment, and assign it the 2nd magiceffect. Add the enchantment to your test weapon. Now you need to create two scripts, one for each magic effect, then add the script to the magiceffect and populate its properties. The 1st script, I call "MyHitDetectionMagicEffectScript": Script MyHitDetectionMagicEffectScript extends ActiveMagicEffect Spell property MyHitDetectionSpell Auto Actor target = None event OnEffectStart( Actor akCaster, Actor akTarget) target = akTarget registerForSingleUpdate( 20.0) endevent event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked) Debug.messageBox( "Hit on " + target.getDisplayName() + "!") endevent event OnUpdate() target.removeSpell( MyHitDetectionSpell) endevent The 2nd script, I call "MyHitCounterMagicEffectScript": Script MyHitCounterMagicEffectScript extends ActiveMagicEffect Spell property MyHitDetectionSpell Auto event OnEffectStart( Actor akCaster, Actor akTarget) akTarget.addSpell( MyHitDetectionSpell) endevent Now this is just the start of it... to detect when you hit your target... and can start counting hits. Well... if I didn't make any typos... or forgot to mention some detail.
-
Isn't it just a matter of counting OnHit events? Classically, since OnHit events register on the target, you'd need your weapon to place an ability on each target. Or, use Dylbill's global events plugin, if you're on SE. Note however that enchanted weapons produce multiple OnHit events on each strike (once for physical damage, and then once for each enchantment magiceffect). To increase the effect, use multiple magiceffects in the weapon enchantment, conditioned on the number of hits recorded. You might use a faction to record the number of hits since the counters will be per-actor (either the attacker or the victim or both). This works as long as you have a small finite number of steps, which seems to be what you have in mind. It's not a trivial project... and will get a bit hairier when you take into account the need for the hit counters to expire in some way.
-
In MO2, I double click on a mod which brings about a popup. One of the tabs in this popup allows you to manage conflicts. In this tab, I can right-click any of the mod's asset files and tell MO2 to disable or enable that version of the asset (the menu entries are called "hide" and "unhide"). It also tells me which other versions of the asset exist. That's pretty much the gist of it. Vortex and other mod managers will have similar utilities. Sometimes, it's easy to guess which asset needs twidling (in your case, it'll have a filename "texture/....dds"). Sometimes the names of the assets are obscure and you'll have to go with trial and error. Sometimes, an asset is used by multiple objects... and so enabling/disabling the asset could affect objects you did not intend. Since you have "More informative console", you may still want to try nifskope. When you click on an object, the console will tell you which nif model you are looking at. Nifskope presents the model as a tree. All the textures are referenced in tree nodes called "BSLightingShaderProperty"; finding those nodes is not difficult; just expand tree nodes until they appear. This will help you identify the texture files you are interested in if they have obscure names. Note that the textures in the nif can be overridden by records in the CK/xEdit but that's generally not the case. In any case, inspecting a nif file with nifskope will not be harder than what you've been doing with xEdit (modifying a nif file on the other hand!).
-
My WIP mod is in need of a "carry book stack" offset animation. I'm just terrible at creating such things so I am hoping someone can help me, by pointing at an existing asset, or offering to help create it. My idea is to just use FNIS to create a variant of OffsetCarryMQ201DrinkTray with a purpose-built anim object (or the carry wood animation, but I haven't managed to locate it). I think it's very doable, but being relatively unfamiliar with nifskope it'd take me forever, and it may have already been done. Perhaps I'm going at this wrong as well... just not that proficient with the 3D/animation stuff.
-
It is not always easy. 1st step is finding the texture files you don't want, then deal with them. To find the texture files, you should: find the corresponding objects in the CK or in xEdit and check if they use texture overrides or texture sets; if they do, note the filenames referenced. find the corresponding objects in the CK or in xEdit and open the meshes/nifs in nifskope; note the texture file names referenced. Once you know which texture files, determine if they replace a vanilla texture, or are entirely new texture files, by checking if the same from exist in the vanilla BSA files. If the texturesets reference new files, use the CK or xEdit to change them back to the vanilla filename If meshes reference new files, use nifskope to change them to the vanilla texture Otherwise, tell MO2 or Vortex to ignore the new file so the game reverts to the vanilla file You can also be optimistic: directly tell your mod manager to ignore the mod texture files and hope that's enough. You'll know it didn't work if the objects appear uniformly purple. You still need to correctly guess which mods to look at, and which texture files to disable within the mod. If you are unfamiliar with the CK, xEdit and/or nifskope, you'll obviously need further instructions to get it done.
-
Try "GetFactionRank PlayerMarriedFaction' >= 0". 0 is the most common faction rank. -1 or -2 for not in faction. Ranks of 1 and more are only used in some specific factions to denote distinctions within the faction (like leader vs commoner). Edit: I should have read the post more carefully before answering. What I wrote was assuming "getFactionRank", not "GetInFaction". I always use the former but the latter should work as you expected. You must have some other problem... Tell us more about your dialogue and conditions.
-
consultation and suggestion pregunta sobre las traducciones
xkkmEl replied to Cekronix0's topic in Skyrim's Skyrim LE
Esta preguntando si se debe traducir "wenchreplacer" y "YW_Q_SDA_WDcards_count"? En ese caso, no. Son codigo y nunca estarán vistos por usarios. Ademas, si estas haciendo un patch de traducción, las correspondencias requiridas por el codigo del mod original no fonctionarán.- 1 reply
-
- 1
-
-
placeAtMe - seems unreliable?
xkkmEl replied to dafydd99's topic in Skyrim's Creation Kit and Modders
I too was thinking that your numerals don't show because they get hidden by other numerals that are being piled up. Remembering the last numeral created, and deleting it when creating a new one... Dunno about using a Global though; can't put an ObjectReference into that; use a script variable, outside the event/function declaration, to remember last numeral created. Dunno what loop PeterMartyr is thinking of either. ObjectReference newNumeral = None function setNumber(int numeral) Debug.Trace("Setting number to:"+numeral) if newNumeral newNumeral.delete() endif newNumeral=placeAtMe(NumeralsList.GetAt(numeral) as form, 1, true, true) newNumeral.SetScale(numeralScale) newNumeral.enableNoWait() endfunction You may need to cleanup your current savefile, or start a new game, to get rid of the extra numerals you already created. -
Add Boss Music Using a Script
xkkmEl replied to TheCrowKnight's topic in Skyrim's Creation Kit and Modders
Is the music being re-added because there is a final OnCombatStateChanged after OnDying? Try adding a !IsDead() condition in OnCombatStateChanged. Also, try using OnDeath instead of OnDying. It may be that IsDead won't return true while he's dying.