-
Posts
1576 -
Joined
-
Last visited
Everything posted by Surilindur
-
Resolution mods that work with disk version?
Surilindur replied to EvilKillnEvil's topic in Morrowind's Discussion
Does MGE XE require them? Oops. It does. Sorry. Never thought about that. -
How to create object references!?
Surilindur replied to Clameron1's topic in Oblivion's Classic Discussion
You are welcome. :) -
You can see that using TES4Edit. The only record in your new mod is probably the Mehrunes Razor, so you can open TES4Edit, unselect all esps, select your mod, click okay and wait for it to load (it loads all masters automatically). When it has loaded, you can find the Razor in your mod. Select it and the right window should show if any other mods change the same record - or, in this case, if your mod overwrites things from the Razor that is defined in one of your plugin's masters, like the DLC or Oblivion.esm or wherever it originates from. If it overwrites the 'original' Razor (coloured, not white, and has other files listed in the right window under the Razote record), it does change it and it is not a new record. If you want to make a new record, you need to at least change the editor ID in the CS. Hopefully that helps a little. I am bad at explaining things. Here is the UESP wiki page if you just want to add it to player to test if it looks different: http://www.uesp.net/wiki/Oblivion:Mehrunes%27_Razor_Items#Mehrunes_Razor Hopefully that helps a little. I am bad at explaining things. :)
-
How to create object references!?
Surilindur replied to Clameron1's topic in Oblivion's Classic Discussion
You need to double-click on the chair and tick the 'Persistent Reference' box at the bottom. Same goes for beds, too, if you want the NPC to sleep in a specific bed. And the package could be 'use item at', but the chair must be the location (location tab -> specific reference) with a distance of 0, I think. Not the target. You can set the target to a book, maybe, and give one to the NPC so he/she will read it on the chair. Or at least I have not managed to make an NPC sit on a chair any other way. :P But chairs and beds need to be persistent references so that they can be used as a 'specific reference' in AI packages or referenced in a script. :) -
GetNthDetectedActor - OBSE
Surilindur replied to crippknottick's topic in Oblivion's Oblivion Construction Set and Modders
Thank you, QQuix. -
Maybe another mod is conflicting, then... I have no idea. I have played a bit to test if it would happen to me, but with OR and the camera mode disabled, it does not. At least I have not noticed it. Do you have any mods that could conflict with something? A bit vague, but I honestly do not know what could cause it. Maybe a load order could help. And also, do you use anything like Unnecessary Violence, Deadly Reflexes or CameraCommands? The OR page has a list of incompatibilities that might be a good place to start. If it is not something directly touching first-person, maybe it is something that also modifies the complete camera system that could conflict? This is odd. No one else seems to have reported it, so it is probably a conflict. Maybe.
-
That sounds tricky... maybe I could try to make something out of it, too. But not too soon. I myself have gotten enough of making mods for today. I just cannot make NPCs sit down at a random chair. And it is killing me! I want sandboxing! Sandboxing! Like in Skyrim with EFF. And then I have a few other projects, too. I had hoped they would all be ready by Christmas, but now it seems only two of them will be sure to make it. And it is driving me nuts, to have to spend hours and hours trying to make NPCs interact with surrounding furniture when the mod is almost ready otherwise. :wallbash: Well. Maybe things will be better tomorrow. Sleeping usually solves most tricky problems for me.
-
GetNthDetectedActor - OBSE
Surilindur replied to crippknottick's topic in Oblivion's Oblivion Construction Set and Modders
All right. Thank you. :) And 'nth' is defined how? The CSE would show arguments for all, but I do not have it here at the moment. The CS wiki misses that part. Is it just put at the end? <reference>.GetNthDetectedActor <number> -
Then it is probably Oblivion Reloaded, as it has the option to display body in first-person. See the description and readme for the mod, it helps. Maybe it is something related to forcing point of view.
-
The blue pathnodes are tagged as 'preferred', red ones have been hand-placed and yellow ones have been auto-generated by the CS. Does the NPC have 'allow swimming' ticked in the AI package? You could make sure the pathnodes (every one in the 'chain' on the water surface you want the NPC to travel) are blue, so they should be 'preferred' by NPCs, and that you have 'allow swimming' ticked in the AI package (just in case it could affect riding, too). If the 'mount' is a creature, check its settings so that it will also be able to swim. Just in case. I have never tried to make anyone travel by boat - or even on water - myself, so I cannot help you more that that. The idea sounds interesting, though. Shame I do not want to turn my Oblivion into Battlefield Vietnam for immersion's sake. :P
-
GetNthDetectedActor - OBSE
Surilindur replied to crippknottick's topic in Oblivion's Oblivion Construction Set and Modders
Umm... Well... I just checked the wiki page, and as I do not have CSE here at the moment, I cannot tell how it would work. I suspect the Nth needs to be defined somewhere, or else it would make little sense to use just 'get some nth actor, please, figure yourself out which one'. It is, however, possible to use a ForEach loop to check all actors and maybe then somehow see if one of them is hostile? GetHighActors returns all high-level AI processing actors and it could probably be used to get the ones in the surroundings. But I am not sure how to get the 'hostile' status for creatures. Array_var aActors Array_var aTemp ref rTemp int iTemp let aActors := GetHighActors let aTemp := ar_Construct Array let iTemp := 0 ForEach aTemp <- aActors let rTemp := *aTemp If ( rTemp.IsActorEvil ) && ( rTemp.IsCreature == 0 ) let iTemp += 1 EndIf Loop PrintD "SomePrefix: Currently " + $iTemp + " hostile NPCs in high-level AI processing" let aTemp := ar_Null let aActors := ar_Null That is all I could think of. And I have not tested it. The IsActorHostile does not work on creatures according to the wiki, and I have never used it, so I have no idea what it returns if called on a creature. Maybe 0, but I put the condition there just in case it returns 1. Hopefully that helps a little. You could also use GetDistance to see how far the actors are from player, if you need it. Some have said GetDistance is a performance-heavy function, but others have said it is not. Using it with care should be safe, though, I think. Unless you plan to use it a thousand times every frame... or something like it. What is it you are trying to achieve? Just out of curiosity. I am drowning in my own projects, so I do not have the time to steal yours. :P -
Getting References from Arrays
Surilindur replied to DasFedoraGuy's topic in Oblivion's Mod troubleshooting
Odd. But how do you get to the part where you add the item to array? Also, I think you will need ar_Append if you do not already have element (empty or filled) in someArray[index], but I am not sure. It should work if you first initialise the array (as I think you have done?) and then use ar_Append: Array_var someArray ref refTempA int intTemp ... let intTemp := ar_Size someArray If ( intTemp < 0) let someArray := ar_Construct Array PrintD "YourModPrefix: someArray initialised" Else PrintD "YourModPrefix: someArray size = " + $intTemp EndIf ... let refTempA := GetCrosshairRef If ( refTempA == 0 ) PrintD "YourModPrefix: No ref at crosshair" ElseIf ( refTempA.GetObjectType == 35 || refTempA.GetObjectType == 36 ) ; Creature or actor ar_Append someArray refTempA PrintD "YourModPrefix: Added %q" + $refTempA + "%q to someArray" EndIf ... And you could then access it with the index. As you have done: ref refTempB int Index ... let refTempB := otherQuest.someArray[Index] If ( refTempB == 0 ) PrintD "YourModPrefix: No ref in someArray[" + $Index + "]" ElseIf ( refTempB.GetItemCount BreadLoaf > 0 ) PrintD "YourModPrefix: %q" + $refTempB + "%q has " + ( refTempB.GetItemCount BreadLoaf ) + " bread loafs" EndIf I put it that way so that, if you have debug messages on for your project (SetDebugMode 1 in one of your scripts, if you have not yet found the feature), you will see messages in console. If they help. Maybe the crash could have been caused by the game trying to check a 'null' reference in case GetCrosshairRef did not return anything? You do know it only returns the one wihing 'activation' distance (like an apple only if the apple name is visible at crosshair, not an apple from twenty metres away). Also, indexes are [0,(size - 1)], so if an array has one element, the Index of that element is 0 and size of the array 1. Just in case that might be it? I do not know how much you know, but in case you knew, sorry about the basics. :) Other than that, I do not know how it would not work. I hope it is not something too obscure. -
I think this is the right page (took me quite a while to find it myself, too): http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html There are the "Windows x86 Online" and "Windows x86 Offline" versions . You will need either with Mod Organizer. It should not make any difference to pick the offline or online one. If that helps. The Oracle web page is a mess. I did not even remember it was THAT horrible. :blink: Edit: If you have trouble downloading it, try checking the "Accept License Agreement" button just below the "You must accept the Oracle Binary Code License Agreement for Java SE to download this software." text, if it does not allow you to download it without checking that button.
-
How to remove an equipped item?
Surilindur replied to NameNotPresent's topic in Oblivion's Classic Discussion
All right. You are welcome. But if you want to double the break chance, should you divide the break chance instead, to 'double' it, if the chance to break is greater the smaller the breaking chance variable is? In my example, that would then be let iTargetShieldBreakChance /= 2 instead of the current one with shield health. As it would seem that you are currently dividing the health by two, instead of the break chance variable. Not just in my example, but also in your original script, there is this: if shieldHealth <= 100 set shieldHealth to shieldHealth / 2 endifWhen it should probably be this ( to use the "/=" from OBSE to make it easier): if shieldHealth <= 100 let shieldBreakChance /= 2 endifMaybe? I am not sure. You are welcome. :) -
Did you read and follow the installation instructions? You should do that. Requiem requires that you run the "Reqtificator", a sort of 'skyproc patcher' that is made with Java. If you want to use Mod Organizer, you will need a 32-bit (x86) Java to be able to run the Reqtificator through Mod Organizer. All the more detailed instructions and such, which you should have read, can be found here: https://requiem.atlassian.net/wiki/display/REQ19/Installing+Requiem Latest version of Requiem is 1.9 and I am currently so very happy, as it is holiday and I have time to play it. Good to hear others like it, too. :)
-
The idea behind Requiem is to make playing the game more like roleplaying. As it says, it changes a lot of things. Even if it did work on your current playthrough, as you installed it in the middle of it, you will miss a lot. Anyway, I suspect that even if it magically worked, which is veeeeery unlikely, it would ruin the game as there are so many changes and scripts and everything. Installation instructions tell you to start a new game, so if you want to play with Requiem, start a new game. It is usually the same thing with most larger scale mods. You do not need to dump the current playthrough, though. You can finish it and start a new one with Requiem after it. Just make sure to start a new playthrough when you install Requiem. Hopefully that answers your question. :) Edit: And no, it cannot be 'fixed', as there is nothing wrong with that.
-
How to remove an equipped item?
Surilindur replied to NameNotPresent's topic in Oblivion's Classic Discussion
The problem is probably, as Drake said, the part where you set the 'shield' to a "<ref>.GetEquippedObject <slot>" that returns the base object, not the reference currently equipped. That is why RemoveMeIR will not work, as the 'shield' is not referring to the one equipped but the base object of the equipped item. You can get the reference (not base object) using ForEach loop with a ref iterator-sort-of-thingy-whatever-it-is-named, which will return a reference. A ForEach with a ref could probably work like that in your case (also found in OBSE command documentation): ref rActor ; Actor, the 'container' in this loop ref rTemp ; Temporary ref pointing to the reference, not base object ForEach rTemp <- rActor If ( rTemp.GetEquipmentSlot == 13 ) ; For example ; Here, rTemp can be used OR - as you would probably want to do, ; as you want to get the refs, store it in another variable, like 'shield' ElseIf ( ...) ... EndIf Loop With that one in use, your script, when using references instead of base objects, might look like that (not like that, but maybe work in a way that distantly resembles it): ScriptName AAANNPonhitFunction ref rTemp ref rTarget ref rAttacker ref rAttackerWeapon short iAttackerWeaponType float fAttackerWeaponSpeed short iKnockawayChance float fKnockawayForce short iTargetAgility ref rTargetShield short iTargetShieldBreakChance float fTargetShieldHealth Begin Function { rTarget, rAttacker } ForEach rTemp <- rAttacker ; Find attacker's weapon If ( rTemp.GetEquipmentSlot == 16 ) && ( rTemp.IsEquipped ) let rAttackerWeapon := rTemp EndIf Loop ; If attacker has no weapon, and is armed with fists? Should the rest if the script be ignored? If ( rAttackerWeapon == 0 ) MessageEX "%n has no weapon in slot 16", rAttacker Return EndIf ForEach rTemp <- rTarget ; Find target's shield If ( rTemp.GetEquipmentSlot == 13 ) && ( rTemp.IsEquipped ) let rTargetShield := rTemp EndIf Loop let iAttackerWeaponType := rAttackerWeapon.GetWeaponType let fAttackerWeaponSpeed := rAttackerWeapon.GetWeaponSpeed If ( rTarget.IsBlocking ) ;--------------------------------------------------------------------- Shield Break Chance If ( rTarget.IsShieldOut == 0 ) Return EndIf let iTargetShieldBreakChance := GetRandomPercent + 1 let fTargetShieldHealth := rTargetShield.GetCurrentHealth If ( fTargetShieldHealth <= 100 ) let fTargetShieldHealth /= 2 ; Not sure why this is done... ? ; Is this one below what you wanted? I commented it out in case not. ;rTargetShield.SetCurrentHealth fTargetShieldHealth EndIf If ( iAttackerWeaponType == 2 && iTargetShieldBreakChance <= 10 ) ; Blunt 1H Effect ;rTargetShield.UnequipMe ; Probably unnecessary? rTargetShield.RemoveMeIR ElseIf ( iAttackerWeaponType == 3 && fAttackerWeaponSpeed <= 0.65 && iTargetShieldBreakChance <= 20 ) ; Blunt 2H Effect ;rTargetShield.SetCurrentHealth 0 ; Probably unnecessary? ;rTargetShield.UnequipMe ; Probably unnecessary? rTargetShield.RemoveMeIR EndIf Return ;--------------------------------------------------------------------------------------- Else ;---------------------------------------------------------------------- Knockback chance on attack ;MessageEX "Weapon is %n", rAttackerWeapon If ( iAttackerWeaponType == 3 && fAttackerWeaponSpeed <= 0.65 ) let iKnockawayChance := GetRandomPercent + 1 If ( iKnockawayChance > 70 ) let iTargetAgility := rTarget.GetActorValue Agility let fKnockawayForce := ( 40 / ( 1 + iTargetAgility * ( -1 ) * 0.008 ) ) rAttacker.PushActorAway rTarget, fKnockawayForce EndIf EndIf ;----------------------------------------------------------------------- EndIf ;rTarget.PlayMagicShaderVisuals effectFireDamage 1 ;rAttacker.PlayMagicShaderVisuals effectFrostDamage 1 End Something like that? It is guaranteed to be 100% untested. But the idea should be clear. Also, from what I have read, Oblivion processes (or at least reads) also every line inside If statements. So making them short is usually recommended. At least the overly long ones. I put all the conditions on the same line because of that. Might not be necessary, but at least it makes the code easier to read and a bit shorter. Or at least in my opinion. :) Edit: Maskar also beat me to it. I really need to learn to type faster. :( Edit 2: Also, I do not know if there are other commands to get inventory references. ForEach two times in a row... looks odd now. But maybe it is fine. I have no idea what its performance impact is compared to possible other functions to get a reference. But maybe it is not too much? -
Oblivion HUD and Menu Problem, please help!
Surilindur replied to Feyrved's topic in Oblivion's Mod troubleshooting
You are welcome. :) -
5th anniversary edition
Surilindur replied to SupremeMayflower's topic in Oblivion's Classic Discussion
I use the 5th anniversary edition and it definitely works. The main menu should also have the version somewhere in it, I think. People say Wrye Bash has a 'higher learning curve' than OBMM, but I have personally found WB incredibly easy to use and OBMM confusing and complicated. At least after learning to use WB. The main things to note about WB are , if you are new to it, that: The tabs at the top house all the stuffYou can use the ini of WB to make it possible to have mods on another drive or another folder instead of in the WB folder inside the game folder. Just remember to copy the default ini, rename it and the modify the renamed ini. The ini includes the instructions, I think. At least the basic ones.Installers tab shows the folders in your mod 'store' wherever that may be and it supports drag-and-drop install order management. Right-clicking a mod there gives options, and if you change order of installed mods, use the 'Anneal' command to make sure the last installed files (later in load order) are the ones in your Data folder.Mods tab allows drag-and-drop load order management and the Bashed Patch helps with conflicts (like inventory and leveled lists), as well as allows to change some settings (like how many items need to be in inventory before showing the 'quantity prompt' thing).WB basically just handles copying files and removing them for you, so that you do not need to manually copy-paste and delete mods' files when installing and uninstalling them.WB has some tools to manage savegames, like removing 'abomb' that causes animations to turn into slow motion after playing long enough (like two hundred hours). Also has face import thing to import player face from another savegame. And much more.And such. If you are not afraid of spending a few (or more) hours to learn Wrye Bash and possibly change the mod 'storage' folder (I recommend it, if you want to have them somewhere else other than game folder, as it keeps the files in the WB folder by default, causing you to have the mods twice in there - installed in Data folder and as an install-ready 'package' in the place where WB keeps the mods). It will take some patience and you will probably fail a few times (at least I did) when trying to change the mods folder to another drive, but in the end it will be worth it if you succeed. At least in my opinion. If you find OBMM too complicated, that is. At least I find it much more difficult to use than Wrye Bash and it does not make installing mods any easier than WB in my opinion - although some mods come packaged for OBMM. Still most should support Wrye Bash (like normal simple replacers and simple mods) and the BAIN thing (when folders are "00 Core", "01 Optional Something", etc.). And if you end up installing more complicated mods, the Bashed Patch is really a must. But that one is easy to learn if you have learned how to use WB. :P After you have learned Wrye Bash and want to save space in game folder (reason number 1), keep data folder pretty (reason 2) and spend even more time thinking and restructuring mods, Mod Organizer (found in its Skyrim Nexus page) is the best option available. It is possible to use it to install mods and manage install order, but still use Wrye Bash through it for load order management and the Bashed Patch. Also TES4LODGen, CS(E) and others work though it. It should not even be too complicated to get it working with 5th anniversary edition compared to a Steam one (the MO OBSE hook might or might not work). But that is the last option and will take some more time and patience. But I recommend it if you end up modding and playing Oblivion for the next several years. :) For now, Wrye Bash would probably be best. Or OBMM if you manage to learn how to use it also for something other than .bsa creation and unpacking - which I never did. It just felt too clunky. Maybe it was just me and OBMM really is easier. I hope not. :( -
Oblivion HUD and Menu Problem, please help!
Surilindur replied to Feyrved's topic in Oblivion's Mod troubleshooting
Your fDefaultFOV setting in Oblivion.ini is something else than default 75. It causes exactly that kind of menus. Make sure you have the following in your Oblivion.ini - if it is something else than 75, set it to 75 (in the Display section): fDefaultFOV=75.0000 Hopefully that helps a little. :) Edit: The FOV change from Oblivion Reloaded seems to fail to set it back to 75 for me and causes that. In case you use OR and wonder what might be causing it. -
You could create a new faction in the CS and new dialogue topics to everyone belonging to that faction (set faction membership as a requirement in topics). Then new AI packages with 'must complete' and follow player. To the topics result scripts "AddScriptPackage YourFollowPackage" and such. Then in-game use console to add the copy to that faction (and probably AddTopic to add your topics if you do not want to make a script for it in CS and so on). He/she should then have the new topics available and they should make him/her available as a follower. To put it simply. Unless you already have a follower mod that allows you to recruit anyone and manage anyone. Vanilla Oblivion follower 'systems' are per-NPC and utterly insufficient in regards to options. There is no way to recruit just anyone without mods. And I have never used any follower system mods for the game, so I do not know if any mod allows to recruit anyone. There might be one somewhere, though.:)
-
Skyrim armors/Weapons mods in Oblivion
Surilindur replied to lucifer1978's topic in Oblivion's Classic Discussion
@fallitout In that case, Immersive Armors did not mess up your savegame. It was you removing the mod. The mod works. Removing Skyrim mods is not recommended. Also, the 'Save Game Script Cleaner' by Hadoram does nothing about NPCs. If that was the one you used, which I suspect, as all the other 'cleaners' seem suspicious. Even Hadoram's utility needs to be used carefully. But in this case, it was probably indeed the NPCs' inventories and/or outfits saved, as they had been loaded with the modded items on during the playthrough. Perhaps waiting for the game to reset all cells might have reset the NPCs, so that next time they would have been loaded, they would have worn their original equipment. -
Statue Plaques (Oblivion)
Surilindur replied to Palpenious's topic in Oblivion's Oblivion Construction Set and Modders
I care about Oblivion. :) As do many others. Maybe you could have asked about this in the Oblivion section of the forums, where also those without access to the mod authors section could comment on the idea? -
Multi Level MessageBox Minor Issue
Surilindur replied to DKong27's topic in Oblivion's Mod troubleshooting
Oops. You are right. And thank you. :) If DKong27 is still reading this, apologies. Hijacking the thread was not my intention, yet I somehow managed to end up doing it. Sorry. And to return to the original 'issue', how is your MessageBox project doing, DKong27?
