• Content count

  • Joined

  • Last visited

Community Reputation

11 Nibbler


About Contrathetix

  • Rank

Profile Information

  • Gender
  1. Have you tried printing the contents of the Actor variable itself? It is the way I have been debugging errors when getting data dynamically. What do the MessageBoxes in the following say in-game to you (first for Actor, then for ActorBase)? Function FindFriend() Actor Sasquatch = Game.GetFormFromFile(0x00013478, "Skyrim.esm") as Actor Debug.MessageBox("Delhine as Actor -> " + Sasquatch) ActorBase SasquatchBase = Game.GetFormFromFile(0x00013478, "Skyrim.esm") as ActorBase Debug.MessageBox("Delhine as ActorBASE -> " + SasquatchBase) EndFunction If the Form ID "00013478" from Skyrim.esm is the in-game placed actor reference (in the editor window), then Actor should probably work? I think. Or if it is the actor base record (NPC, in the object view window listed under Actor), then the ActorBase might work. Actor --> ActorBase --> Just my thoughts. When I have the time to boot up my desktop (I have a horrible assignment that has taken a week already), then I can check myself. For now, just some ideas. Well. Others have already sort of presented them, but for clarification. If it helps. If not, send the hatemail to my address. Game.GetFormFromFile should work on everything as far as I know. I have not seen any mentiones of restrictions anywhere, at least (excluding a too large load order index that is mentioned on the regular GetForm page but that one is probably just for GetForm). Edit: Also, one handy way to make sure the eight character hexadecimal thing is right is to just copy-paste it from TES5Edit (or the Creation Kit, but that one probably does not work with copy-paste), change the first two characters to 00 and add "0x" before it. Like (a fictive example): from TES5Edit --> 05014B9G --> change first two (the plugin ID) --> 00014B9G --> add 0x --> 0x00014B9G It definitely should work that way.
  2. I have not really counted how long it takes to boot the thing up to an OS... it does not really matter to me, being an all-round slow-ish person with usually little to no hurry anywhere. Maybe, as was mentioned, it could help with games. Maybe one day. It took some digging to find a place to buy from. There actually was this new chain (small one) that opened a shop here. I could order online, they delivered it to a local store and I picked them up + paid there (for no extra cost, as in, added to price, though they probably have it hidden in the product prices themselves already). Handy. One thing that drives me nutters are the recommended customer prices on Intel website! The i7-6700k says $350 but it costs like 450 Euros here. I would have bought it if it were closer to 350 Euros, but over 400 is just a bit too much for a processor, I think. I can spend the money on a new GPU in a few years. The i5-6600k I bought says $243 on Intel website, and I bought if for about 290 Euros. Perhaps it is about the VAT rates we have here in Finland... or maybe all retailers are just milking customers. Or both. The 16 GB of memory is 2x8 Gb Kingston HyperX, so I have two slots left on the motherboard! Chances are I will never need them, though. Already 16 is a lot, I think. I have never seen it use 8GB... yet. Maybe one day. But the memory still only cost around 80 Euros in total, it would have been 50 for just 8 GB. It is not a huge gaming PC, I might have gone a bit cheap, but it does its job, as I am not a huge gamer, either. Lots of people have a lot better (and a lot more expensive) thingies, I think. As long as it works, it is fine by me. Thank you for the tip, maybe I will one day see about trying SSD. I have my system on one disk, my games on another, and my mods on yet another (I use Mod Organizer).
  3. Sure, delay is always possible! The first step to take is to Google for Skyrim ini Papyrus section tweaks and copypaste the first 1000x default values to the ini. That should help everyone achieve some delays eventually. Sorry, could not resist. Do not do that. Yes, there is the Utility.Wait command ( for that purpose. But, as I think you might already know, Papyrus can have some script latency depending on the current workload. So depending on the user's script latency (or whatever the official term may be), the Utility.Wait command can either wait just the amount of time it was told to, or it can wait twice that, ten times, or even an eternity, if the user has serious issues. Ehm. The user's setup has serious issues. You can use it just fine, but if you use it on something that requires precise timing, then there might be issues. Utility.Wait(0.5) ; script stops here, continues after ~0.5 seconds gamemode If you add an intentional delay to the script, there is a greater chance of a restless user spamming the button over and over again because it did not work instantly (maybe he/she also suffers from a modest amount of self-induced script lag). So a state could be added, to account for the "busy" state, when the work is being done. This is something I forgot from that last version. Also, this one has not been tested, either (just compiled, which it did just fine), but to give you an idea of how to add the delay (with length determined as property, but you could also type it straight into the script if you want, making it potentially less modular): The Wait command is outside the While loop, and it should, upon pressing the button, first wait for a certain amount of time, then go through the loop to disable/enable lights. And no need to give any credit for me, this is not really that much work. I like scripting, and it is great to be able to help others. Also, it seemed you were actually invested in the project, considering how there was also a smilar thread with similar contents on The Nexus Forums (that got buried by other threads pretty quickly). But anyway, no need to credit me. And indeed! I have only really done worldbuilding with Oblivion, not so much with Skyrim. Someone did actually mention issues with too many lights. Thank you for reminding me! I like scripting more, and like to focus on that. But in theory (*ahem*), that second script suggestion could handle lots of lights with no issues. From what I have noticed, the classroom thing is the idea behind this "modding school" here: each classroom is dedicated to a specific aspect of modding, and each classroom has a scholar assigned, and that scholar is in charge of the classroom. People can carry out the excercises described in the "lessons", and the scholar can assist them should any issues arise. Others should not interfere, to keep the scholar in charge of the whole process and to prevent "students" getting confused. Or that is how I have perceived it. I am not sure where the classroom boundaries go. Maybe this is a casual forum. Looks like Hanaisse moved this from somewhere else, and I am not sure where from. But there is also the "Study Hall" forum, for example. But if you posted this there first, and then Hanaisse moved it here, that could mean that he/she intended that you be instructed by a scholar - something I am definitely not. Hopefully that helps a little.
  4. Great suggestions here, also ideas! Sorry to be so late to respond! My current GPU should do relatively well for a few years to come. And when I buy another one, that one will probably also be AMD. NVIDIA feels a bit... well... odd. Maybe they offer some marginally (?) better performance or such, and also their GameNotWorks stuff and all that, but if the prices are close to 2x the AMD ones here, it is not worth it to me. I am not a huge gamer, most of my time goes into making mods. I did build a (partially) new machine at the beginning of the year! The case, as well as all the HDDs, are from an old one. I did buy a 400GB WD Caviar as the system disk, because it was only 20 Euros. I have managed to fit three operating systems on it, after moving my Steam Library and other games to another disk. So that I can still keep partition backups on yet another disk. Not sure how smart a pucrhase I made, but the thing seems to be running just fine now. This is what I bought (and yes, I am not an expert, just bought something I thought might make sense): motherboard: Asus Z170-K processor: Intel i5-6600k processor cooler: Arctic 13 Freezer CO power supply: Corsair CS650M (modular 650W) memory: 16 GB DDR4 2400MHz And like I said, that is probably not the best purchase available, but I am not an expert, and it all cost only around 730 Euros or so (VAT included), which I found relatively cheap. I mean relatively cheap, here where I live. And I have no complaints thus far. The GPU is still the old Asus R9 290 DC2OC one, and my monitor is still 1680x1050. Not going to buy a new monitor, this one does its job just fine. And it was free (from the electronics recycling container of my father's employer). I can now play The Witcher 3, too, and Fallout 4 runs relatively fine (framerate drops here and there, but overall just fine). Now the only thing I need to do is play the games. When I find the time. Also, it seems the food at the university is actually a lot more complicated. Not really a buffet, and I am not sure how it works, exactly. But it is still cheap, and includes dessert. Usually. Ugh. I have only eaten there like twice, and it was horrible (as a process, not knowing how it works, exactly). Maybe I need to start eating there regularly at some point, currently I just wait until I get home to eat...
  5. Hello, and huge apologies if I am not supposed to be posting here! The rules said that one shall not interfere with a scholar's classroom or something like that, but I am still not quite sure whether this is still a part of the classroom. The scripting classroom, that is. But there would appear to be others replying to posts placed here, too. Which makes me uncertain. So any moderators are free to remove this! And also let me know if this is a part of the classroom, that I should not be posting in. I am still relatively new here (as in, not having posted a lot)! You have the idea there: only the one light that currently should be visible needs to be enabled, others need to be disabled. So when you have the first light on, you will need to have the other two lights off. When the second one is on, the other two ones off, etc. So if you use individual lights, and add all three as separate properties, it might look something like that: ScriptName LightSwitch Extends ObjectReference ObjectReference Property rLight1 Auto ; light one ObjectReference Property rLight2 Auto ; light two ObjectReference Property rLight3 Auto ; light three Event OnInit() GoToState("Light3") ; go to the state before 1 (so when activated, state goes to 1) rLight3.Disable() ; so that 3 (enabled in state 3) should not be enabled EndEvent State Light1 Event OnBeginState() rLight1.Enable() rLight2.Disable() rLight3.Disable() EndEvent Event OnActivate(ObjectReference akActionRef) GoToState("Light2") ; go to next state EndEvent EndState State Light2 Event OnBeginState() rLight1.Disable() rLight2.Enable() rLight3.Disable() EndEvent Event OnActivate(ObjectReference akActionRef) GoToState("Light3") ; go to next state EndEvent EndState State Light3 Event OnBeginState() rLight1.Disable() rLight2.Disable() rLight3.Enable() EndEvent Event OnActivate(ObjectReference akActionRef) GoToState("Light1") ; return to state 1 EndEvent EndState And I think it should be perfectly fine. At least it compiled just fine. However, adding more lights might be tricky with that method, and there is a lot of code in that for something that could be done in a more flexible manner with less code (in my opinion, at least). So I cannot resist trying to maybe explain how that could work! If you do not get it straight away, it is fine! But in case you are planning to one day move on to things like looping through stuff, this might be one chance to switch from the current hardcoded set of three or two to a more flexible manner using a list one can easily add a hundred lights in! Makes my inner nerd excited! Also, a huge disclaimer: I have not tested that script in-game! The idea should be there, and it compiles just fine. If the ObjectReference array/list works the way I think it should, then it should work. So, assuming you just want to cycle through a number of lights, you could, instead of manually adding a new state for each light, have a list of lights. One list to hold all lights! It would both cut down property count and code length! Also manual labour in writing the code! And a list would not be limited to three, you could have a hundred lights! In addition to a list, one would need a variable to store the currently active index. When the list does not change constantly, the index could show the currently active light's position on that list. So a list and an integer variable. After that, the list of an arbitrary length needs to be handled somehow. This is what While is for. A while loop runs as long as the condition it is given evaluates to false. One can use it to travel along the list all the way to the end, no matter how long the list. It proceeds one step at a time. When the list is there, and the active index, all we need to do is, upon activating, increment the current index by one (to move it to the next one) or set it to 0 (to return to the end if the list end is reached). When the new active light index is available, all there remains is to disable all other lights in the list, and enable the one at the current active index. As in, the script would be attached to your button, and after attaching it to that button, you would need to fill the two properties in the CK. The rLightList is an array/list of ObjectReferences, and that would hold all your light references (in a single property! yay!). The iCurrentLight would be the index of the currently active light (from the rLightList property), or -1 if you want to have all lights disabled initially and only turn on the first one upon first activation. Because one needs to keep track of the current active light somehow! When the button would be activated, the index of the current light would be either incremented by 1 or set to 0 (if at the end of list, as the index of the last item in an array/list is actually the length - 1). The script should then cycle through the list of ObjectReferences (in reverse order), and disable all but the current light. Like I said, I have not tested it, but I think something like that should work (if it does not work "out of the box"). If there is something unclear, I can see about trying to explain it - but I am extremely bad at explainign things, mind you! Also, if that works, it should work with any number of lights to cycle, not just three. ScriptName LightSwitch Extends ObjectReference ObjectReference[] Property aLightList Auto ; this is a list, add all your lights here Int Property iCurrentLight Auto ; currently active light's index, remember to fill it! Event OnActivate(ObjectReference akActionRef) Int iTemp = aLightList.Length ; how many items are there in the light list? ObjectReference rTemp ; this is a temporary ObjectReference If(iCurrentLight > iTemp - 2) ; have we reached the end of the list? iCurrentLight = 0 Else iCurrentLight += 1 EndIf While(iTemp > 0) ; travels list in reverse order, from end to start iTemp -= 1 ; to make the while loop move along the list rTemp = aLightList[iTemp] ; get the light ObjectReference at current index If(iTemp != iCurrentLight) ; if it's not the current one, disable it rTemp.Disable() Else ; the current light needs to be enabled rTemp.Enable() EndIf EndWhile EndEvent Hopefully that helps a little! And please, moderators and/or scholars remove this if the classroom extends all the way here.
  6. Welcome! Great to see other Nexus people here! Not that I would be too active around here, though... but anyway! Also, I think I need to test some of your mods soon. There is always room in my follower party for one elderly male. Having checked the mod page every now and then, it might be something I need to try out soon. Tempted? Definitely - as I should be! Also, one thing about TES Alliance that has caught my attention is the variety of smileys here Nexus has yet to match. It is also the first place I ran into virtual cookies in. Sort of. Now I just need to learn how to use them. Perhaps if I gave you one, I suppose you could experiment on it and share the results... ?
  7. Aaaaaaaaand apologies to everyone. I hope this is not too bad of a "thread necro" or something. Totally forgot this, and then real life and mod projects kept me busy for a while. But I finally got around to making that example MCM toggle option I mentioned. What a job it was, took me a grand total of five minutes. Derpityderp. Should have done it earlier. But in case you are still interested, I will try to attach the archive in this post (which would at least appear to be possible here) so that you can see how I have done it. When the menu has been registered automatically, and when you enter it, the toggle option (the only thing there is) should be off. I have tested, and it works on my end just fine. I have even used that exactly the same method in a released mod of mine that has MCM, and it works just fine. There is no initialisation in the property itself, just a declaration: Bool Property bToggleTest Auto That has been set to False (un-ticked) in the Creation Kit. And that is all, it should work, and I still firmly believe it does, so there you go, I hope the attached test thingy proves it. Yes, I can be stubborn, especially when I think something should work for others the way it has worked for me. And now that I think of it, could it be possible that, whatever you have done, has gone this way: have the MCM registered in-game change the Property value either in declaration or the CK load the MCM in-game, but nothing happens Because, from what I have noticed, once a variable has been initialised, it stays that way, and is not re-initialised in-game when the value is changed elsewhere. If you have issues with that, you could see about adding something like bYourToggleValue = False in your OnVersionUpdate function, and then incrementing the version number returned by GetVersion by one so that OnVersionUpdate gets called. Or just call the OnConfigInit on each version update, and add all the intended default initialisations (and everything related) in that one. See the (hopefully) attached example for some reference. Hopefully that helps a little, albeit being somewhat late. My bad. MCMTest.rar
  8. OBSE is just a utility to extend the scripting capabilities of the engine. The normal scripting language is extremely limited, for example it does not even have arrays, event handlers, user-created functions or any other more advanced thignies, so OBSE exists to offer those more advanced thingies to mod makers. Mod makers can use the new features offered by OBSE to make their mods more efficient, more straightforward to create, more complex, or all of them at once, for example. Users need to also run OBSE for the new features to actually be there for the mods to use. Just like SKSE for Skyrim. If you have a Steam version of Oblivion, you do not need to run obse_loader.exe, in fact, if you run it, it will throw an error about you having a Steam version. Just make sure you have all the things in the game folder (like the obse steam loader dll file) and launch the game via Steam, OBSE should then be loaded automatically. So obse_loader.exe is not the way to launch a Steam version of the game. When you are in the game, you can try to see if typing "GetOBSEVersion" in the console gives you anything, I have not tried it myself, but if it does work, that might be an easy way to check if OBSE really is loaded. And I have no idea about the mod you asked about, sorry.
  9. Oh, there was this type of thread around! haha. Cheydinhal seems nice enough, so that would probably be pretty high up in my list. Not a bad word to say about the town. It is colourful enough and has a beautiful scenery. Also nice surroundings. And the one who sings about Cliffracers. Overall a nice town, as long as any Cliffracers do not show up there.
  10. Hmm. But have you tried it without initialising the moment you declare it? You had this in your example: Bool Property EnableCompDial = False AutoBut have you tried this (and then filling it in the CK): Bool Property EnableCompDial AutoJust being curious, as I think it has worked for me without further hassle. Or at least any I would have noticed. So I just cannot see why it could not work. Argh. Maybe I need to make a small MCM to prove it works the way I did it. That would solve it. Unless, of course, I fail to make it work somehow, and end up embarrassing myself here.
  11. Oh yes. There are no animations for crafting at all. I was just thinking about the statics, navmeshes, bying the land and menus. So the basic concept is possible, tweaking it with animations and such might not necessarily be. Or well, they are, but it would mean acquiring the animations and such. So all the scripting is doable, and is needed, but despite the need for a lot of scripting, the mod will not be 'script heavy' at all if made correctly, quite on the contrary, the scripts can be made so that they will have no effect on overall performancecrafting needs to be done via scripts, by making some simple messagebox menus, for example, or maybe MenuQue could provide the options to create a new proper menu somehow (I have never used MenuQue myself)animations would need to be acquired somehow, but it is possible to play animations and such in Oblivion, too, it just needs to be done via scripts (again)Scripting is something I like myself, too. Scripting in Oblivion is quite simple, and then there is OBSE to keep it enjoyable even when the vanilla system proves insufficient for anything more interesting - which usually happens pretty fast.
  12. Not really, no. I mean the price difference is ridicilous. The few stores that do it even wait for the customer to order it, then order it somewhere themselves, deliver to the customer and put a hefty price tag on it. It really is that silly here. But I need to think about it. Shipping costs are can indeed be huge. I would love to have a local shop that sells computer parts at acceptable prices but there are not really any.
  13. Haha. Also, no need to 'sir' me, I think you might in fact be a lot older than me. I have just started the university. Little kiddie here playing around with the CS. If you need help with something, just ask. I have played around with Oblivion a lot more than Skyrim. Especially scripting for Oblivion is something I am good at. But then again, everything is easier in Oblivion than it is in Skyrim. Do not forget to install the Construction Set Extender by shademe, the normal CS is just intolerable without it:
  14. Depends on how you want to make it. But... umm... maybe not Mazoga. Or at least give some other options. Or was it more of a request? I thought you considered making the mod yourself. At least I cannot do it, I have a ton of project myself to finish already.
  15. It is possible, yes. All the way to Navmeshes and AI. Not too complicated, either, if done like Hearthfire. Some scripting would be needed, but other than that, it is a lot of 'brainless' building, AI and the like. Pure work, not too creative once the overall layout and such has been planned. That is actually a relatively good idea for a mod. There are some ready wood pieces and such in the game, and there might be modders resources for everything else if needed for the WIP exterior. So definitely possible, it just takes some work. One house might already be enough, three is way over the top.