-
Posts
32 -
Joined
-
Last visited
Everything posted by grey79
-
Still requesting this. But it's probably not possible without a major overhaul.
-
I dont think there is an elegant way of doing things. There aren't any good events to listen for either. OnCellAttach and OnCellLoad would trigger way before you reached the mapmarker (a mapmarker is a static as I wrote earlier). So even if FindClosestReferenceOfType were to work, it wouldn't be very synergetic with the above events. I'm officially giving up. I've spent waaay too long pondering this, and as a programmer of profession I'm pretty annoyed by the myriad of limitations set by CK, and Papyrus as a "language". I only needed one sodding event to do this: OnDiscoveredLocation(ObjectReference aoLocation)... but alas it doesn't exist. I MAY give it a shot with SKSE later, if that is possible. Anyway, thanks for the suggestion, expired!
-
I want to change how the fast travel system works. I wish every mapmarker to be disabled after a desired period of the player not visiting that location. You can attach scripts to certain base objects. So I don't see why they would limit Statics in that way.
-
Can something like that be done in any way? I'd need the script to be inherited on to every MapMarker reference. I cant search/replace every MapMarker with an equivalent MapMarkerActivator - that breaks the map icons on the world map. Ideas?
-
[Script Tutorial] Script initialization on game load
grey79 replied to grey79's topic in Skyrim's Skyrim LE
Maybe it's a bug. Sometimes you need to create an object and the reopen it (edit) for all the options to show up. But if you are saying that it crashes when you do that, I suggest you take an existing quest - copy it, and then just change everything to your liking. -
A cell is loaded when you are near it. So you can be pretty sure that if you are visiting Winterhold, then the cells surrounding and containing Markarth will not be loaded. However, if you are on the outskirts of Markarth, then the cells will loaded. Its an optimization trick obviously. No need to load cells the player has no way of seeing - which again means that every exterior cell is "detached (unloaded)" when you are in a dungeon or a similar interior cell. Hope that clarifies it. Here is a simple test I did: Attached a script to the mapmarker on the alchemistshack. The script contained the above events, and a simple Debug.MessageBox("") output. I fast travelled to a settlement nearby, and rode closer until i got the OnCellAttach event.
-
Ok I figured it out. OnCellAttach is when the cell "enters" the world. Meaning it is now loaded into the engine, where before it was not. OnCellDetach is the opposite. So if I have a script on a mapmarker f.ex, containing the above events, then that event will trigger when the cell that mapmarker exists on is loaded into the game.
-
What the topic says: Does anyone know the conditions for making these two events trigger?
-
How can I make this work: Main script Scriptname IFT extends Quest ObjectReference[] property MapMarkersCategory1 auto ObjectReference[] property MapMarkersCategory2 auto Function Init() IFT_CORE category1 IFT_CORE category2 category1.Register(MapMarkersCategory1, 3) category2.Register(MapMarkersCategory2, 1) Debug.MessageBox("Installed") EndFunction Core script: Scriptname IFT_CORE extends Form hidden ObjectReference[] mapMarkers Function Register(ObjectReference[] mm, int time) Debug.MessageBox("Core init") mapMarkers = mm RegisterForUpdateGameTime(time) EndFunction Event OnUpdateGameTime() Debug.MessageBox("The event was received") EndEvent So basically the main script tries to call the core script. Everything compiles just fine. However, only this message gets triggered: Debug.MessageBox("Installed") The messages in the core file never does. I wish I could do something like "IFT_CORE category2 = new IFT_CORE()" like a real object oriented language. Anyone know a solution to getting an instance of IFT_CORE?
-
Technically its called a meteorite when its inside the earths atmosphere. :D
-
Scripters: Is there a global cell or something you can hook on too?
grey79 replied to grey79's topic in Skyrim's Skyrim LE
Thanks for your help. I got it to work. -
Here is how you have your script run when the game is started So you have a script that needs to be run? An example of this could be: Scriptname MyModsInstallScript extends Quest Function Init() ; My code runs here ... Debug.MessageBox("The mod has been installed") EndFunction How do we get the game to run this? We create an empty quest. 1. In the Object Window, go to Character>Quest and create a new quest. 2. You'll be on the "Quest Data" tab first - create a unique ID here for the quest. Leave everything else as the default - no need to enter a quest name. 3. Go to the last tab - Scripts - and include MyModsInstallScript. NOTE: It is important that your script extends Quest, or it wont work. 4. Go to "Quest Stages" and create a new index. The default of 0 is fine, then create a new "log entry". 5. Tick "Startup Stage" and "Complete Quest". 6. In the "Papyrus Fragment" section, choose MyModsInstallScript in the dropdown. kmyQuest is a variable that now holds your quest script reference (MyModsInstallScript) (if it is grayed out, save the quest and reopen). 7. In the text box below enter "kmyQuest.Init()" (without quotes) and press compile. If it doesn't complain, you can click OK. 8. Save, and run the game. When you load your save you should get a popup saying "The mod has been installed". There is no entry in the quest log of the quest ever existing. Thats it. Thanks goes to Ocyris for pointing me in the right direction Ps. I've been told that if you don't tick "Complete Quest", the quest will run at every game start, and every game load. Can anyone verify this?
-
Its pretty buggy yes. It usually crashes when I save a quest.
-
Scripters: Is there a global cell or something you can hook on too?
grey79 replied to grey79's topic in Skyrim's Skyrim LE
Should have been more clear. I know of what you speak, but the problem is when you change a property in your script you have to reselect it from the GUI - something I was hoping to avoid by supplying the reference IN the script. :) EDIT Can you post the source of the initializing part of your script? I've attached it to a quest like yours - but nothing happens. -
Scripters: Is there a global cell or something you can hook on too?
grey79 replied to grey79's topic in Skyrim's Skyrim LE
Have you figured out how to initialize a property with a complex object? All the examples seem to only show simple types like float and string. The compiler doesn't like this much: ObjectReference property riftenMapMarker = "MapMarker 3400CED" auto -
Scripters: Is there a global cell or something you can hook on too?
grey79 replied to grey79's topic in Skyrim's Skyrim LE
Thanks, I'll check it out. -
So basically I need my script to be run when the game runs. Not when an object is clicked. And not when I move into a trigger. Anyone know how to do that? Can I attach my script to the player somehow maybe? EDIT: Found this later. You can attach a script to the player actor. Search for "Player" under actors.
-
Have you checked out TIF__01003335.psc?
-
Anyone figured out how to do that? I've been wanting to tweak the fast travel system to my liking, but have not found any script related to this. I know "locations" are in WorldData>Location But changing how the game travels to and from these places eludes me... Game-script only contains a native function: Function FastTravel(ObjectReference akDestination) native global Is it all hardcoded I wonder?
-
Is the Skyrim: High Resolution Texture Pack worth it?
grey79 replied to Guy97's topic in Skyrim's Skyrim LE
Thats a pretty awful comparison. Some textures were lower res than other before, and its very easy to see the difference between those. I did a little comparison myself: Before: http://cloud.steampowered.com/ugc/505763950864427893/FDD42878107277437BD9F748A5ED2BADB6670645/ After: http://cloud.steampowered.com/ugc/505763950864400981/3B4BAC4BBDCD9DDD05CE699CC462597594BF4743/ Her clothes gets a visible upgrade. As does the wall stone texture, and the stone steps. The stone tiles doesnt, nor does the wooden panels. I think they focused on updating those textures that were horribly blurred to begin with. It a welcome update in my eyes. Doesn't hurt my performance. -
Is there no compile error you can learn something from? I'm not totally sure what your problem is. Have you simply tried this: AATrissDQuest.Status = 1
-
The wiki is vague: "Conditional Properties Properties cannot be declared as conditional. Auto properties can be defined as conditional because what they actually do is define the hidden variable they create as conditional." I'm not sure if this means you cant assign a default value to it...
-
For your texture question. Apologies if you know this stuff. You have to create a new model object. F.ex if you expand WorldObjects>Static>Dungeons>Caves>Blackreach you will see all the objects related to that cave. You can duplicate one of these and retexture it (or create a new one from scratch). You can do a search replace on the dungeon elements you want to swap into the ones you've made. (CTRL-F) Should be the fastest way of doing things, without having to rebuild anything by hand.
-
I'm sure he's talking about Dirty Edits and the like: http://cs.elderscrolls.com/index.php/TES4Edit_Cleaning_Guide
-
Its not that terrible. I have lost maybe a few fps on my ancient system, but I've gotten a lot of higher quality textures. Though they didn't update all textures in the game.