Jump to content

AnishaDawn

Members
  • Posts

    72
  • Joined

  • Last visited

Posts posted by AnishaDawn

  1. Over on the fallout 4 forums, I encountered something that was a bit of a wake up call. I experienced it here too but to a more passive degree.

    All my knowledge of the game was derived entirely from testing for fun and diving into the CK. I'm well educated but I have no degrees to show for it, so I've had people undermine the authenticity my knowledge. I'm not a developer and never been in that kind of environment professionally. I don't think spending time in the various RPG Maker games count enough for me to say "I've made a game", but yeah I tried that out.. I have dived in Java, JS, C++, Perl, PHP, HTML, XML, Python, with and Python being the one programming language I've stuck with. It's just a hobby of mine and it just had the added benefit and helping me understand how games/programs work. When I play MMOs for example, I know whats going on with spawns, monster movements, etc. Call it a third eye - I don't need to see the code.

    I don't own disassemblers, things that people use in order to present irrefutable proof of their findings, even though this can all be figured out in the CK They use this knowledge they pluck from the game code to obtain reverence and popularity - these types of people always seem to have a nasty "holier than thou" air about them as well. People will take them seriously, while taking people like me less seriously. Honestly that hurts.

    To be told that what I know is just an "opinion" is a slap to my face because I have tons of notes both hand written and typed. Lots of math(basic math..I'll get to that), lots of lines of codes, in the thousands, that have been read all in effort in me wanting to know the answer to two of the most daunting questions of mankind: How and why?

     

    Seems the modding community is saturated with CS majors and one-uppers. Math is my weakest point. I rely on basic math to arrive at any solution to a problem that otherwise would be reached by much faster algorithms. It's how I figured out how to get the local positions for objects without having to use SKSE or trignometry. It's not 'pretty' or show off math so it's not taken seriously. I can't even go to a r/Math without people giving off vibes of annoyance because I don't already have a master's degree in mathematics. I've been on my own, self teaching myself everything I know. I hate asking people for help, but I love to offer it because I know how it is to be denied answers. When I see a person's problem on these boards, I think of how I could fix that. Always though, someone comes along to shoot it down.

    This is getting a bit long winded..but it's been building up in my head for a long time.

     

     

    tl;dr: I stopped playing. I stopped modding. I just uninstalled it all. My knowledge is worthless. I'm not smart enough.

  2. ...modding Oblivion was 10000x easier. Ya didn't feel like you needed a degree in computer science..

     

    Another thing to take note of is that if the cell has an encounter zone, the lvl of the leveled actors will be locked to the level of the player when the player first enters that cell, permanently.

  3. If these are all custom NPCs you placed(not vanilla ones), you could try an easy script(apparently only works for things created through placeatme/actoratme):

    Event OnCellDetach()
        if self.IsDead() == true
            self.Delete()
        endif
    EndEven
    

    They will be deleted whenever the player leaves the cell, but they have to be dead before then.

     

    If these are spawning actors(the "M" markers):

    Event OnCellDetach()
        self.SetCriticalStage(self.CritStage_DisintegrateEnd)
    EndEvent
    

    Finally if you expect these actors to respawn and are placed in the cell(not created by PlaceAtme/ActorAtMe) and you checked the "Respawns" box on their references, you can let the game clean them up when the cell resets(if the encounterzone allows for it).

  4. Which is why I asked because I do have my own research for anything that involves cells, distance and what not, though I've been using basic math, I always needed a second set of eyes to see if my findings is sound.

     

    Anyway, there's nothing in your research that is a conflict to my own, it only tells me that my math needs work. With a radius of 10,250 units, that puts the inscribed circle of the 5x5 box at a circumference of 64,402.65 units.

    You know all this already though. I didn't, but I do now. :D One other I like is that you speak only in game unit terms and not try to use real world measurements like most do.

    Your research on movement speed, I was looking for data on the base speed(in Skyrim it's 370 and increased by race height multipliers). Based on your data the speed is 500.

    Your last link is also what I was looking for. A "range finder" or how range works in the game.

    Obviously I got a A LOT more questions for you but I think I can make it from here. These corrections based on your data will also be adapted to my Skyrim research since Bethesda isn't known to make drastic changes to the inner workings of the cells/distance/range systems between Oblivion, Skyrim and Fallout series.

    Now if I can just freaking log into the wiki I can add some notes to the Load event pages.

  5. Oh~ that is real nifty. I think you can also use math to get the local x, y and z positions(position relative to the cell).

     

     

    x:13000 - ((13000 / 4096) as int * 4096) = 13000 - 12288 = x:712

    (12288 is the 3rd cell from the origin on the x axis)

     

    Negative positions has to be accounted for, thus the result has to be multiplied or added by -1.

  6. Maybe. Testing is underway but I've hit a snag, I think.

     

    I've gotten the visuals really dark in my game, like so dark a touch is needed.

     

    The problem is that when I switch over to my other monitor, it's back to looking like the moonlight is illuminating the entire world. I think you all know what I mean with that.

     

    I primarily play the game on my laptop(where I see the actual darkness effect).

     

    I guess I should just keep going and then when I'm ready to release it, i can see if it's actually dark for people too and if not, just take it down?

     

    I don't use ENBs, etc.

  7. ::scratches head::

     

    Would you care to elaborate on the OnLoad part as it appears there's something I missed? Those are in terms of cells(positions converted to coordinates) 2.4x to 2.9x. Granted I've never used OnLoad outside of spawned objects that are designed to unload immediately, what you're saying suggests that the game uses just a portion of UGridsToLoad.

  8. CellAttach/Detached are events that fire for the cells that are loaded(using 'load/ed' to make it less confusing - it's actually deeper than that, since cells unload at different times in memory regardless if the player is there or not) around the player in 5x5 cell radius(UGridsToLoad default). Should an NPC be in a cell that becomes "detached" it will fire for them as that cell has moved out of the 5x5 range. It's not very reliable in exteriors but great to use for interiors as you will know when the attachment/detachment will occur.

     

    Edit: I think I misunderstood the question.

  9. If you add a bunch of NPCs to a property, there's a fast way to do that.

     

    Create a formlist and just drag the actors to that formlist's window and then add the Formlist as a property in the script.

     

    Problem: Formlists are slow, so 2,000 NPCs might take several seconds to iterate through and this doesn't include the use of MoveTo, which would undoubtedly add to the process time.

     

    Another way to go about it is with arrays. They are faster than formlists but there's no drag and drop shortcut - you'd have to add each NPC individually in the CK, and then there's the silly 128 element array limit.

     

    Finally - I don't know how Immersive Patrols add their NPCs, but if I were to avoid the methods I mentioned above, I'd use an enable parent and hand place all the NPCs. Obviously this will take FOREVER, but after that's done, Enable Parent will enable a whole bunch of NPCs in one go and you could have control over when you want the enabling to happen and so forth.

  10. Hi Nexus community!

     

    I've been out of modding a lot of time by now, and I need some help scripting a menu, simple in terms of purpose, but complicated when I have to write the script of it.

    My knowledge about Papyrus and programming in general is zero and normally I avoid as much as possible the scripting thing.

     

    But in this case, I see myself forced to use it, since there's no other way to do it properly.

     

    I have an idea that is a custom placeable shrine that gives you some blessings all at a time. I want that shrine to be able to be dropped and picked up whenever I want.

     

    The thing that came to my mind was through a menu that, when you activate it, it'll show 3 options: Receive the custom blessing, pick up the shrine, or cancel.

     

    I've been using a mod that I know of, that does the thing I want partially. It's called Your Market Stall, but its programming seems a bit complicated.

     

    I've managed to drop the shrine from my inventory, and stays put the way I want, and when I click on it, the menu shows correctly, and it gives me the blessing, but it fails when has to pick up the shrine or simply, cancelling the action.

     

    This is the code I've got. I'm learning from imitation, and it is far from being finish, so don't be hursh please.

    Scriptname ArtisanShrineScript extends ObjectReference  
    
    MiscObject Property ArtisanShrine Auto
    Spell Property ArtisanSpellFortAlchemy Auto
    Spell Property ArtisanSpellFortEnchanting Auto
    Spell Property ArtisanSpellFortSmithing Auto
    Message Property ArtisanShrineMenu Auto
    Message Property ArtisanShrineAddBlessMsg  Auto  
    Message Property ArtisanShrineRemoveBlessMsg  Auto
    Message Property ArtisanShrineRemoveFailMsg Auto
    Bool Property isPlaced = false Auto Hidden 
    
    Event onLoad()
    	if (is3DLoaded())
    		blockActivation(true)
    	endIf
    endEvent
    
    Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)
    		if (akOldContainer == Game.getPlayer())
    			ObjectReference shrine = placeAtMe(ArtisanShrine, 1, false, true)
    			shrine.setPosition(shrine.getPositionX(), shrine.getPositionY(), akOldContainer.getPositionZ())
    			shrine.setAngle(180, 180, akOldContainer.getAngleZ())
    			float px = shrine.getPositionX()
    			float py = shrine.getPositionY()
    			float pz = shrine.getPositionZ()
    			float pA = shrine.getAngleZ()
    			float distance = 50
    			distance = 60
    			shrine.enable()
    			disable()
    			delete()
    		else
    			disable()
    			setPosition(getPositionX(), getPositionY(), akOldContainer.getPositionZ())
    			setAngle(180, 180, akOldContainer.getAngleZ())
    			enable()
    		endIf
    endEvent
    
    int Button
    Event OnActivate(objectReference akActionRef)
    	If akActionRef == Game.GetPlayer()
    		Button = ArtisanShrineMenu.show()
    			if Button == 0
    				ArtisanSpellFortAlchemy.Cast(akActionRef, akActionRef)
    				ArtisanSpellFortEnchanting.Cast(akActionRef, akActionRef)
    				ArtisanSpellFortSmithing.Cast(akActionRef, akActionRef)
    				if akActionRef == Game.GetPlayer()
    				ArtisanShrineRemoveBlessMsg.Show()
    				ArtisanShrineAddBlessMsg.Show()
    
    			elseif Button == 1
    
    Event OnActivate(ObjectReference akActivator)
    	if(isPlaced == FALSE) 
    		if akActivator.getItemCount(ArtisanShrine) >= 1
    			isPlaced = TRUE
    			self.getLinkedRef().enable()
    			(akActivator as actor).removeItem(ArtisanShrine, 1)
    		else
    			ArtisanShrineRemoveFailMsg.show()
    		endif
    	else
    		isPlaced = FALSE  
    		self.getLinkedRef().disable()
    		(akActivator as actor).addItem(ArtisanShrine, 1)
    	endif
    endEvent
    

    As you can see it's a complete mess, but I know that someone with programming knowledge could help me. I've been with this several days with no luck at all.

    Any help would greatly appreciated.

    Not a complete mess.

     

    Scripts on objectreferences don't need to have their positions called via GetPosition, and instead you can use x y or z. Yeah, the letters. Also the virtual box is called the bounding box.

  11. I never thought I'd be frustrated with anything like this, but here we are.

     

    I know how this works simply through time, but I don't know how to explain the how. I have difficulties explaining things at length, so I make it as simple as possible. It's when someone doesn't get it that it's a big problem.

    There are people that do know how to explain this coherently and perhaps to them it's just easier to go to xEdit. For Skyrim.esm though, you don't need to do that. Nothing can ever load before it. As for Bend Will; all I know is that for my mods, my records always have the 02 index in the CK, so I don't know what's going on with Dragonborn.esm - I can't even get it to load, something about strings, I wont frustrate myself with that, so I'm sorry I can't help you figure that out.

     

    I can tell you that if I want to spawn one of my modded objects, I need to use the 0E index in-game because it's 14 in my load order - this is standard decimal to hexadecimal conversion. Load Order managers also display mod indexes too. The CK doesn't read from plugins.txt, it doesn't care about load orders. In fact the 'load order' list you see in the CK is always arranged in what appears to be the last loaded/last created mod. It is on point about the FormID after 0x. The digits that follow are for sure 100% accurate.

     

    I'll stick to the problem at hand. You can use the cast command for your racial power, it by all accounts WILL work, even if it's been removed.

     

    ; the ID I provided is for your night eye

    player.cast 000D9DB0 player voice

     

    I'm not a VR player, I don't know how you can go about using that in VR. There's a visual hand effect bug that comes with it supposedly but nothing that will break the game.

  12. You're correct. The DLCs(as they are esms) are subject to the load order index. Skyrim.esm is always 00/01. 0x Records native to Skyrim.esm never change and you can rely on them from the CK. 02 onward, you need to look at their mod index in an MO or in-game.

     

     


    BTW... You wouldn't happen to know how to player.equip a Racial Power, would you? I've tried both equipspell and equipshout on Night Eye, which is a Racial Power for me because I'm playing as Khajit... and neither works. I'm trying to figure out how Powers relate to Spells and Shouts.

    If you mean how to make it the active power, can't you equip it in the powers menu? Also if it's already been used, it wont let you deselect it until it's ready again.

    Powers generally are 1 use per game day, this appears to be a hardcoded thing. Powers are still spells, just like shouts, however they(shouts) require extra steps because the Words of Power are required to work, and those are separate forms.

     

    Powers, Lesser Powers and Shouts are all spell forms.

     

    Assuming you removed the power through some other means and want to add it back, you have to first use addspell, then use equipspell.

    Assuming you removed the power and meant how to add it back, that's still addspell.

×
×
  • Create New...