Jump to content

SandMouseAnarchy

Members
  • Posts

    347
  • Joined

  • Last visited

Everything posted by SandMouseAnarchy

  1. Yep :) that's about it :) You might want to add the perk directly rather than casting the spell/effect, but that would be an option. (I'm on my phone right now, so I can't insert code here, but the script will look something like...) Scriptname F1keyscript extends Quest int F1Timer = 10 Perk Property IdiotSavant Event OnInit() RegisterForKey(100) EndEvent Event OnKeyDown(int key) If (key == 100) If !Game.GetPlayer().HasPerk(IdiotSavant) Game.GetPlayer().AddPerk(IdiotSavant) StartTimer(10, Timer) EndIf EndIf EndEvent Event OnTimer(int aiTimerID) If aiTimerID == Timer Game.GetPlayer().removePerk(IdiotSavant) EndIf EndEvent :) (and don't forget to fill properties before testing)
  2. Ah, well someone else will be able to give you much better advice on this than me, I've only just gotten into making quests, but I think what you want is a quest that has a script that looks for OnKeyDown event and add the perk with a timer or something and that should do it nicely ^.^
  3. Aha yeh always best to make a new project when making a new outfit ^.^ Good job mate, nice outfit!
  4. Hahahahahaha, oh Hahahahahaha! I see what you mean Hahahahahaha! No problem mate :) I'll help if I can :) Yeh, that's definitely a skinning issue mate, loading a reference and copying bone weights will do the job (hopefully anyway - cos that's crazy hahaha) *edit* Oh- I like the look of your room in the background by the way ^.^
  5. Nice one, well, how are you wanting to activate the new perk exactly? You could make a consumable that fires a script to add the perk and then remove the perk after (x)seconds, You could make a ring or other accessory that adds the perk when worn, You could make a quest that will add the perk if the target is under (x) health, You could make a certain ammo type or grenade that adds the perk on hitting the target (x) amount of times. I think it will all depend on how you want to manually activate it ^.^
  6. Genius idea! As for grenades - maybe you could rig up an invisible npc (like mysterious stranger) and a vats event to shoot the grenades out the sky as if they just exploded on the shield. (again, not actually sure how it's done, but that kind of thing can be used for all sorts ^.^)
  7. "copy bone weights" Yeh that's the one I meant :) When moving meshes that already have skin information, the mesh will deform as if it had stayed in its original position, so it's always important to re-skin any mesh that you move around. The best way to skin the meshes in your outfit is to go File>load reference>cbbe body (seeing as you're using a male body, use HumanMaleBody instead of cbbe, or use whatever body replacer mod you may have installed. The reference will contain the skinning info that you will need to copy to each mesh in your outfit - by selecting the mesh, right click> copy bone weights. :) Hahaha it looks like a necromorph in game? Haha can we see? ;)
  8. I'm not too sure what's going on there, but a possible solution might be to make your own "sky box" and just make that pitch black, maybe set up some dark distance fog too?
  9. Hmm, I'm not exactly sure why the boots are appearing lower than the rest of the outfit - Some times people use a "skin pose" when weighing a mesh to a skeleton in a 3d modelling program (the mesh is modelled under or around or above the skeleton and then when weighing the mesh is moved over the skeleton) I think that data can get carried over to OS, but I could be wrong. To solve the problem, load a reference (like the human body or similar outfit to yours) and move the mesh up until it's in the right place (use the movement gizmo in the middle of the top bar of the window) Then - with the mesh selected, go into the bones tab on the right of the window, select all bones, right click>delete from shape, then go back to the mesh and import bone weights from reference like normal :) that should do it mate :)
  10. There might be a simple solution here (?) you could maybe add an enchantment to the player that reduces the chance of being hit to 0 while the shield is on, so any incoming fire would hit the shield but could never hit the player, then maybe the collision won't be necessary and with no collision - maybe npc's will be able to still see and interact with the player normally ^.^ ((just an idea mate, I haven't touched enchantments since skyrim so I can't guarantee this method works ^.^ but sounds good to me))
  11. Ah, nice tip BlahblahDeeBlahBlah! With too many OMods being equipped/unequipped at the same time can cause the mod to still show up after it's removed, I think it's got something to do with the game not actually checking if a mod has been equipped or not before doing another operation. Not everything disappears straight away when it's disabled, so disabling and then re-enabling the item might circumvent the 3d unloading and reloading - will have to test ^.^
  12. Definitely possible mate! :) Look on the ck wiki for "AttachMod" and "AttachModToInvintoryItem" they will be the main parts of your code. (in one of the AttachMod wiki pages they give a robot a mod as an example script - that would be a great place to start looking) Other than that, for every "mod" you want on your robot - the (armo) armor record for that robots Base body part (eg, torso, Larm, etc) will need attachpoints (ap) ((these will be the categories that show in the menu)) and the armor record will also need a (ma_) mod association keyword. Then every mod you want to have will need an (OMod) object mod, and that object mod will need a corresponding (misc) misc item and a (CObj) constructible object. Inside each OMod place in one the ma keyword that is in armor record and place in the ap keyword so that the mod appears in that category. And that's it really :) Note - the ap category keyword must be named or no category will show, and the OMod must be named or no option will show in the workbench. The same name for the ap category keyword you put in your OMod and armor record need to match the name of a child connect point (CPT) in the mods nif (if any), and that same ap name needs to be in a (CPA) parent attach point in the armor record's nif
  13. Im trying to figure out how to open a power armor and leave it in an open state after an npc has gotten out of the frame, any ideas anyone? Thanks ^.^
  14. Good idea Rasikko :) i did have to step the distance up to 120 in the latest itteration of this script, but this is supposed to fire while the player is fixing up the power armor at the workbench so the player will be right on top of the power armor anyway ;)
  15. Oh man, ^.^ haha I can't believe I used the wrong brackets, I can't really see the difference between them with the font and resolution I have, thankyou Deadbeeftffn! Ah thank-you yet again DieFeM! Legend! The prepend is exactly what I needed to get the script going ^.^
  16. How do you use FindAllReferencesWithKeyword in an ActiveMagicEffect script? This is what i have so far... Scriptname SM_PA_Spell extends activemagiceffect Keyword property FrameKWD Auto Keyword Property powerArmorFurnitureKW Auto Keyword Property powerArmorKW Auto bool ExitingPowerArmor = false Event OnEffectStart(Actor akTarget, Actor akCaster) Debug.MessageBox("Begin test") ; find nearest suit of power armor ObjectReference{} nearbyPowerArmors = FindAllReferencesWithKeyword(powerArmorFurnitureKW, 50.0) ObjectReference nearestPowerArmor If nearbyPowerArmors.Length > 0 float fnearestDistance = 999999999999.9 int i = 0 while (i < nearbyPowerArmors.Length) float fcurrentDistance = GetDistance(nearbyPowerArmors[i]) if( fcurrentDistance < fnearestDistance && nearbyPowerArmors[i].IsEnabled() ) nearestPowerArmor = nearbyPowerArmors[i] fnearestDistance = fcurrentDistance endIf i = i + 1 endWhile if( nearestPowerArmor ) If !NearestPowerArmor.HasKeyword(FrameKWD) Debug.notification("standard frame detected") EndIf EndIf EndIf EndEvent But i get the compile error - "(20,17): no viable alternative at input '' No idea what the error means, could anyone kindly explain whats going wrong with my script? - and maybe how to fix it ^.^
  17. Ah Yeh I think I know the power armor you mean, I think that one on the overpass belongs to the gunners though ^.^ I suppose the galaxy Park and the power station are probably the most 'enclave' like places in nuka world but I get the impression that the enclave never went to nuka world. I'll have a look around nuka world anyway ^.^
  18. Ah thanks for the great reply mate, very useful! :) I'm definitely looking for more of an end game kind of location where the player would already be a high(ish) level :)
  19. I never thought i would be here trying to help the great SKK50 out with a problem hahaha - but is the issue the Compatability>"reduced Colour Mode" or "Disable Display scaling on high dpi settings" in the shortcut properties for CK?
  20. Hi again everyone, i have some power armor pieces that add keywords when an OMod is equipped which will swap the ref frame for a new frame - but i cant seem to detect that keyword by checking the power armor reference, i think ill need to search the power armor's worn items, but i dont know how to do that... ((note i need this to happen in the power armor workbench menu, not while the power armor is worn.)) This is what i have so far... Scriptname FMod extends ObjectReference Keyword property MF_KWD Auto Armor Property RFrame Auto Keyword property KWD_F Auto Keyword property KWD_M Auto Furniture Property Frame_1 Auto Furniture Property Frame_2 Auto Keyword Property powerArmorFurnitureKW Auto Keyword Property powerArmorKW Auto Event OnActivate( ObjectReference akActionRef ) RegisterForTutorialEvent("ModdingSuccess") EndEvent Event OnTutorialEvent(String asEventName, Message aMessage) if asEventName == "ModdingSuccess" ObjectReference[] nearbyPowerArmors = FindAllReferencesWithKeyword(powerArmorFurnitureKW, 50.0) ObjectReference nearestPowerArmor If nearbyPowerArmors.Length > 0 float fnearestDistance = 999999999999.9 int i = 0 while (i < nearbyPowerArmors.Length) float fcurrentDistance = GetDistance(nearbyPowerArmors[i]) if( fcurrentDistance < fnearestDistance && nearbyPowerArmors[i].IsEnabled() ) nearestPowerArmor = nearbyPowerArmors[i] fnearestDistance = fcurrentDistance endIf i = i + 1 endWhile if( nearestPowerArmor ) If !NearestPowerArmor.HasKeyword(MFKWD) Debug.notification("Standard Frame detected") If NearestPowerArmor.HasKeyword(KWD_F) Debug.notification("Changing frame...") nearestPowerArmor.DisableNoWait() nearestPowerArmor.Delete() ObjectReference newFrame = Self.PlaceAtMe(Frame_1) NewFrame.MoveTo(Self) EndIf If NearestPowerArmor.HasKeyword(KWD_M) Debug.notification("Changing frame...") nearestPowerArmor.DisableNoWait() nearestPowerArmor.Delete() ObjectReference newFrame = Self.PlaceAtMe(Frame_2) NewFrame.MoveTo(Self) EndIf EndIf EndIf EndIf EndIf EndEvent When checking NearestPowerArmor i don't get the debug, meaning that the keyword isnt fornd on the frame, even though the keyword is definiately added to a piece of armor that is on the frame... *Edit* - i tried detecting the keyword on the power armor's worn items... if NearestPowerArmor.WornHasKeyword(KWD_F) instead of If NearestPowerArmor.HasKeyword(KWD_F) But that gives me a compile error - (110,27): WornHasKeyword is not a function or does not exist (110,27): cannot call the member function WornHasKeyword alone or on a type, must call it on a variable as far as i can tell - nearestpowerarmor is a variable, but the "wornHasKeyword" doesnt work here, i get the feeling "wornHasKeyword" belongs to the actor script not the object reference script, which might be why its failing... how can i get this to work in an object reference script? i also tried just looking for any matching keyword nearby... ObjectReference[] FrameTofit_F = FindAllReferencesWithKeyword(KWD_F, 50.0) if( FrameTofit_F ) Debug.notification("Changing frame...") nearestPowerArmor.DisableNoWait() nearestPowerArmor.Delete() ObjectReference newFrame = Self.PlaceAtMe(Frame_2) NewFrame.MoveTo(Self) EndIf But the game doesnt seem to find the keyword in this case either, which is very wierd. i would have expected to be able to find the keyword with this like i can find the "nearestPowerArmor" in the same way with "FindAllReferencesWithKeyword()" no idea why that one doesnt work??? So another idea i had was to use "GetWornItem" like this - Actor:WornItem wornItem = NearestPowerArmor.GetWornItem(26) If WornItem.HasKeyword(KWD_F) To see if the worn item 26 has the keyword, but unfortionately i get another complie error - (112,19): GetWornItem is not a function or does not exist (113,5): variable WornItem is undefined (113,14): none is not a known user-defined script type (113,2): cannot cast a void to a bool to perform a condition check (126,5): variable WornItem is undefined (126,14): none is not a known user-defined script type (126,2): cannot cast a void to a bool to perform a condition check I have no idea why this one wont compile either, but i suspect that even if it did compile it wouldnt matter because i bet the power armor isnt classed as being "worn" when on the furniture model, its probably in a "power armor container" of some kind... i wonder if we can check items in containers for keywords? *** Does anyone know how to detect this keyword on my power armor? Any help or advice on this one would be very appreciated ^.^
  21. Hmm, that is quite weird - you could try converting the whole thing to editable mesh again after putting in the smooth and normal modifiers, and you could also try resetting Xform (click reset Xform twice and collapse all) and then convert the mesh back to editable mesh. Usually I will clone a shape, convert to editable mesh, make my changes to the clone, then I smooth, edit normals, set pivot points to 0.0.0, then I reset Xform (twice) and then export the mesh as obj, then I open a new vanilla shape, import my ojb, convert to editable mesh again, skin/skin wrap, and then I export as nif, (that process works 95% of the time for me) You could try checking the flags in the nif and make sure they're the same value as the vanilla frame, but I doubt that is the problem, it really does sound like something is going wrong during the export from max. Maybe too many unused bones in the skin modifier or some old data being left in the mesh. When you export as nif, try checking the box that says something like remove unused bones, not sure if that will fix it though. If you're still stuck with it and run out of ideas - I would be happy to take a look at the file for you and see if I can find the problem or a workaround :)
  22. No problem mate, it's good to help when ya can ^.^ Hmm, I keep having that kind of issue :D But I'm not sure why exactly it happens but I can guarantee that bsSubIndex is not needed to have a visible+smooth model in game ^.^ Does it kind of disappear at certain angles too? I think that is a skinning issue, try re-skinning the mesh with the "skin wrap" modifier and removing any bones that aren't needed, that usually solves it for me mate :) Unless you are directly modifying the original mesh, which I guess you are? In which case, try making a clone of the original mesh and make all your edits to the clone :) Note, I don't think having the smooth modifier in the stack matters when exporting, but best practice would be to put smooth below bsSubindex and right above EditableMesh, and then right click -> collapse to.
  23. That's strange - did you figure it out yet? Did you collapse your modifier stack down to just EditableMesh before exporting? Did you reset XForm?
  24. Hi everyone, for my power armor mod i need a piece of armor to be hidden from the player inventory but I want the player to still be able to modify the armor in a workbench. Does anyone know how it's done? ((I tried just adding and removing the armor using Ontutorialevent(powerarmorworkbenchentered) but the armor won't show in the workbench menu if it's added while in the workbench menu, so i tried removing the name from the armor record so that it doesn't appear in a workbench - and then added an OMod with a pk keyword (dn_powerarmorSM) and set up the dn_ form list (and set the dn keyword in the armor record) but the name doesn't change, probably because the name was blank...))
×
×
  • Create New...