Jump to content

Lisselli

Members
  • Posts

    306
  • Joined

  • Last visited

Everything posted by Lisselli

  1. If a player is at an activator that is going to teleport him on activation, but has a follower with him, how do I teleport the follower as well? Edit: Hmm I think I have a method. Just check if the Follower alias is empty or not and then check their location against the players'.
  2. There are some functions that don't work as they should(GetItemCount) and the compiler itself ain't all the perfect, but scripting itself is pretty solid.
  3. I can't stick a 27GB game on a 106GB SDD with 33GB remaining :P
  4. Papyrus is aggravating as hell bullshit SCRIPTING language, and can't be compared to REAL languages like C, C++ and Python. /rant It wont take much time to learn it when you get the chance. IMO its far too limiting to do anything on a large scale without constantly finding ways to go around its silly limitations that you'd recognize as something you can easily get around with a real language. The creator himself even said it was created for puzzles and didn't expect people to use it to the extent that they have.
  5. If that's all you want, you could adjust the script to be a magic effect script instead, make it an ability, place it on the player. It will run(the conditions only) every second but this is not taxing on the engine since you wont have it check a ton of conditions(and assuming there isn't other abilities like this on the player). For the conditions on the ability, you can either choose to have the script do its thing during a certain time period(GameHour >= 15.00 AND GameHour <= 21.00 for example) or use GetRandomInt/Float.
  6. You can only do this on Oldrim through scripting via SetWeaponDamage. On SE, you can try this: Make some abilities that have magic effects attached that have "perk to apply" set to a damage affecting perk and then add the abilities to the actor, through AddSpell in a script. Also the conditions on the abilities themselves need to check the health of the actor. On Oldrim, this condition check doesn't work, but I don't know if it was fixed in SE. Also if you need to create your own perk, just duplicate a vanilla one and make changes from it, since completely new perks are bugged in the CK SE unless you duplicate.
  7. Because obviously no person on the dev team has ever been in a military campaign and no real concept of survival.
  8. No one wants to do half of years worth of work and it gets nil exposure. But you mod for yourself for the most part, and just share your results. So it should be all about making things work for you above all else. If you only mod for the glory, you will be disappointed.
  9. When I'm working with modded objects, I make a "test cell" and work with the objects in there so that loading is fast as the game doesn't have to render the outside world, and rendering 4 walls another else static takes like 10 seconds haha. For any other reason, I look for a save that's in a small area. Stay away from Boston, as loading takes 1,000,000 years. Make sure to open the console and use qqq(quit to desktop) or open the pipboy and exit from there as it disables auto saves on exit.
  10. There's a way for type checks that I know of but it will only work on objectreferences, meaning it probably wont work in containers. You store the objectreferences' base object to a Form variable and then cast the variable to a type you want to check. Untested example: Form myForm = object.GetBaseObject() if myForm as Weapon ; some notification that its true else ; not this type endif
  11. I would attempt it, if I knew enough math. Getting the z value at the ground level would have been extremely useful in Skyrim, but especially more so in Fallout 4 where terrain height varies drastically.
  12. That very event is what you would use after the terminal is closed, it just can't be used to force close one. Try this and don't forget to register the event: Event OnMenuOpenCloseEvent(string asMenuName, bool abOpening) if asMenuName == "TerminalMenu" if abOpening == false ; do stuff endif endif endEvent
  13. I also learned the hard way that Fallout 4 is not so similar to the games under the hood..
  14. I find its best to start modding after you have already played through the game and gained a sense of familiarity with locations, NPCs, creatures, etc. It also is a huge source of sprouting modding ideas. This way when you dive into the CK, you know exactly what to look for and what you want to do. I haven't seriously played Fallout 4 in a long time, but I logged 144 hours into it and finished it all before I started modding. Same thing with Skyrim, 600 hours and I can pretty much make any dungeon I like because I been to all the vanilla dungeson over and over again and have an idea how beth builds them. For example - when I play Fallout 4, I always want to manipulate Turrets from the Pipboy, and have tried several times to get this right XD. Once you "become one" with the CK, everytime you play the game, you see everything as a resource. You can look a trash can and call it a reference.. because that's what it is. Then you start getting ideas on what you can do to this trash can(s). When you do a quest, you'd know the quest giver is actually a Reference Alias of that quest.
  15. Ah, good ol' pain in the ass Papyrus arrays. I wish they were simple like for-loops. Your array isn't properly initialized. It's being filled but there's 1 important step missing. The length. If you want to know if the array is being filled at all do this: Int iCount = 0 Int Index = FoundActors.Length ; returns the size of the array, including empty slots. While Index Index -= 1 ; Starting at the last index if FoundActors[Index] == none iCount += 1 debug.trace("::::::::::::::How many actors not found? " +iCount) endif EndWhileCheck your logs for trace results. In case the array is being filled, a notification might take forever to finish if it picks up a ton of actors.
  16. Ok I've got a working method for you. The only problem is the container that brings up this menu will have its activation blocked - meaning the container's contents can't be accessed, but the script will still fire so that the main menu comes up. This is the only way I could think of as otherwise the container will prevent other containers from opening. I also had to change the script for optimization. For each message an additional button needs to added if you want the player to return back to the main menu. If not, you can just adjust the checks in the aaad functions. Edit: You need a forth button for Main Message for exiting the menu. Scriptname aaadREFIGMASTERSCRIPT extends ObjectReference Message Property aaadContaineroptionsMessage Auto Message Property aaadtest Auto Message Property aaadtest2 Auto Message Property aaadtest3 Auto ObjectReference Property aaadPSC_ProvisionedMetalBox_Activator Auto ObjectReference Property aaadFood_Activator Auto ObjectReference Property aaadFoodDryAlt_Activator Auto Actor Player Event OnInit() Player = Game.GetPlayer() BlockActivation() EndEvent Event OnActivate (ObjectReference akActionRef) if akActionRef == Player MainMessage() endif EndEvent Function MainMessage() Int iCount = 99999 Int iButton = aaadContaineroptionsMessage.Show() If iButton == 0 ; Master Food Chest aaadtestfunc() elseif iButton == 1 ; Dry Foods Chest aaadtesttwo() elseif iButton == 2 ; Perishable Foods Chest aaadtestthree() elseif iButton == 3 ; Exit return endif Endfunction Function aaadtestfunc() Int button = aaadtest.Show() if button == 0 ; Open this container? aaadPSC_ProvisionedMetalBox_Activator.Activate(Player) elseif button == 1 ; return? MainMessage() elseif button == 2 ; close? return endif EndFunction Function aaadtesttwo() Int button = aaadtest2.Show() if button == 0 ; Open this container? aaadFood_Activator.Activate(Player) elseif button == 1 ; return? MainMessage() elseif button == 2 ; close? return endif EndFunction Function aaadtestthree() Int button = aaadtest3.Show() if button == 0 ; Open this container? aaadFoodDryAlt_Activator.Activate(Player) elseif button == 1 ; return? MainMessage() elseif button == 2 ; close? return endif EndFunction
  17. As usual scripting styles of two people will run into each other. Neither way is wrong: It wasn't missing. I wrote it that way on purpose. It's just another way to check if the ObjectReference is the player. You can even use if !akTriggerRef for the script to ignore the player. When you assign an object to a parameter, you don't need to compare it to the exact same object. It will simply return false(none in the case of ObjectReferences) if it doesn't match the object assigned to it. Don't need a return either. Your style is of a very cautious approach, and nothing wrong with that. My style is cautious as well but also using the least amount of coding as possible. You can even just put the Interaction Keyword on the trigger's form to PlayerKeyword and remove the akTriggerRef check entirely.
  18. Yes F4SE is getting some attention and more than SKSE. And people people, just because there is no SKSE64, doesn't make Skyrim unmoddable.. you don't always need to create scripts. Papyrus is just a wanna-be C++ embedded in a totally flawed game engine. Well, all their names is displayed on their sites. And EnaiSiaion on March 27, 2017: Bottom line is that behippo (aka ******) was the person who posted the video on December 28, 2016 at silverlock.org. He was the one working on it, not the others. The "team" apparently does not even talk to each other. We have not heard from Stephen Abel for 4 months now, not even a one sentence update. The project is abandoned by the current team. That is the only reasonable conclusion. Posting identity information without permission is both dangerous and stupid. Don't do it again - TVD. No offense but I think you just agree with those guys because they are well known, but are likely speculating like the rest of us. Though in schlangster's case he has worked a bit closer with the team for obvious reasons. But... you can say work for SKSE on Oldrim stopped a little over 2 years ago. Indeed they were more active during the days of OBSE, but that time has passed.
  19. Downloaded it and looked for myself. Lots of OnCellAttach/Detach use - these ARE more reliable than OnLoad/OnUnLoad. IMO you should look at how the code are structured and try out some optimization tweaks before going to other codes. I can say, there is no need for the notifications if not testing the events. Edit: I'm thinking the Attach/Detach could be crammed down, and unless the spawn points are under the terrain, or in the sky, there is not need to call MoveToNearestNavmesh, after MoveToMyEditorLocation, because the editor location should be on a navmesh anyway. (But then I would think its better to have created refs unstead of objectreferences).
  20. This will start a quest when the player walks through it and kill the script. Quest myQuest ; change this to a property and point it to your quest. AUTO STATE StartQuest Event OnTriggerEnter(ObjectReference akTriggerRef) akTriggerRef = Game.GetPlayer() ; Trigger will now always expect the player. if akTriggerRef GoToState("Done") myQuest.Start() endif EndEvent ENDSTATE State Done EndState
  21. IIRC MoveToxx functions are latent and therefor scripts are paused until the move is complete. You may need to re-work the scripts to try and account for this function "taking its time". For example, all the important things need to happen before this function is called. If you're going to try by distance, use the Event and not the function. You can try and re-work OnUnloaded events to disable and delete(if they are created through PlaceAtMe) when the cell is UnLoaded. OnCellDetach is no good since crossing cell borders are too easy to do. Also look at any OnTimer events. I remember one mod that spawns a lot of enemies and that had a lot of issues with stack dumping. It turns out the Timer event was not coded to stop creating spawns once it started, it was a large nested mess of loops restarting the timer.
  22. No mods that edit workshop anything.. and the most Turrets I've placed in one settlement was 15. They don't have nothing to worry about, like..forever. I'm actually shocked I was able to place so much.
  23. @ all of fftfan's questions directed towards me: 1.Put it this way, I don't think it's enough for Oldrim. Skyrim SE might not have that many mods with huge file sizes that you might want yet. 2. Skyrim SE supports all of Oldrim mods that do not depend on SKSE, but those mods needs to be ported over through the CK SE first. 3. There is no SKSE for Skyrim SE yet. So in my opinion, if you want to play with SKSE mods, Oldrim is the way to go right now. But if you want a fresh start and a more stable game, give Skyrim SE a shot. Edit: I just realized that you meant Oldrim the whole time. But my opinion stands. .
×
×
  • Create New...