Jump to content
⚠ Known Issue: Media on User Profiles ×

Moltenhead

Premium Member
  • Posts

    9
  • Joined

  • Last visited

Nexus Mods Profile

About Moltenhead

Profile Fields

  • Website URL
    http://WIP
  • Country
    France
  • Currently Playing
    Skyrim SE (Ordinator + CGO + Wildcat)
  • Favourite Game
    TES, Souls & Castlevania

Moltenhead's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  1. Hello ! I'm wondering about Array Properties and the way of making use of setters and getters with them : Here is something I'm trying to achieve Int[] PrivateSoundsId Int[] Property SoundsId Function Set(Int SoundId) Debug.MessageBox("[" + StateId + "]" + SoundId) PrivateSoundsId[StateId] = SoundId Modaltracker = StateId EndFunction Function Get(Int Key) return PrivateSoundsId[Key] EndFunction EndProperty Right now, the only way I was able to succeed Set / Get was with procedural style Int[] Property SoundsId auto Event OnInit() SoundsInit = new Int[4] EndEvent Function SetSoundId(Int Key, Int SoundId) SoundsId[Key] = SoundId EndFunction Function GetSoundId(Int Key) return SoundsId[Key] EndFunction Is there another way ? Setter option would be so cool ...
  2. Exhaustion that is !!!! Sorry to bother I just forgot to add the famous 'i += 1', never ending loops are bad !!! Anyway, I let you check the code : I fyou have some good willed criticism I'm all open.
  3. So ... I Have this : Scriptname HelloWorldScript extends ObjectReference {Testing scripting} Actor Property PlayerRef auto Sound[] Property ExhaustionSounds auto Float FirstTreshold = 0.7490 Float Property ExhaustionStart Float Function Get () return FirstTreshold EndFunction EndProperty Float Interval = 0.1875 Float Property ExhaustionInterval Float Function Get () return Interval EndFunction EndProperty Float[] Property ExhaustionTresholds Auto ;State index and previous index tracker Get/Set Int PrivateExhaustionIndex = -1 Int Property ExhaustionIndex Function Set (Int StateIndexTarget) if (StateIndexTarget < ExhaustionTresholds.Length && StateIndexTarget >= -1) PrivateExhaustionIndex = StateIndexTarget endIf EndFunction Int Function Get () return PrivateExhaustionIndex EndFunction EndProperty ;CHMOD like system to check which sounds are still playing Int PrivateModalTracker = 0 Int Property ModalTracker Function Set(int RequestedIndex) Int[] ModalToBinary = IntToBinary(PrivateModalTracker) Int TargetedBit = ModalToBinary[RequestedIndex] Int PowTwo = Math.Pow(2, RequestedIndex) as Int if (TargetedBit == 0) PrivateModalTracker += PowTwo elseIf (TargetedBit == 1) PrivateModalTracker -= PowTwo endIf EndFunction Int Function Get() return PrivateModaltracker EndFunction EndProperty Int[] Property PlayingSounds auto ;MaxVolume Get/Set Float PrivateMaxSFxVolume = 1.0 Float Property MaxSFxVolume Function Set(Float VolumeTarget) if (VolumeTarget >= 0.3 && VolumeTarget < 1) PrivateMaxSFxVolume = VolumeTarget endIf EndFunction Float Function Get() return PrivateMaxSFxVolume EndFunction EndProperty Float PrivateTransitionInterval = 0.01 Float Property TransitionInterval Function Set(Float IntervalTarget) if (IntervalTarget > 0.01 && IntervalTarget <= 0.10) PrivatetransitionInterval = IntervalTarget endIf EndFunction Float Function Get() return PrivateTransitionInterval EndFunction EndProperty Float PrivateTransitioner = 0.0 Float Property Transitioner Function Set(Float Target) if (Target >= 0 && Target <= 1) PrivateTransitioner = Target endIf EndFunction Float Function Get() return Privatetransitioner EndFunction EndProperty ;END OF GLOBAL PRIVATE VARIABLES AND PROPERTIES DECLARATIONS ----------------------- Event OnInit() PlayerRef = Game.GetPlayer() ExhaustionTresholds = new Float[4] ExhaustionTresholds[0] = ExhaustionStart - ExhaustionInterval ;Construct and store nth needed tresholds based on ExhaustionTresholds.Length Int i = 1 while (i < ExhaustionTresholds.Length) ExhaustionTresholds[i] = ExhaustionTresholds[i - 1] - ExhaustionInterval i += 1 endWhile PlayingSounds = new Int[8] GotoState("TrackChanges") EndEvent ;END OF INIT ----------------------------------------------------------------------------------------------- State TrackChanges Event OnBeginState() Debug.Notification(GetState()) RegisterForSingleUpdate(0.10) EndEvent Event OnUpdate() Int ActualExhaustionIndex = GetExhaustionIndex(GetPcStmPercentage()) if (ActualExhaustionIndex != ExhaustionIndex) ExhaustionIndex = ActualExhaustionIndex Debug.Notification("ExhaustionIndex is " + ExhaustionIndex) GotoState("SFxTransitions") else RegisterForSingleUpdate(0.10) return endIf EndEvent EndState ;Handle SFx transitions State SFxTransitions Event OnBeginState() Debug.Notification(GetState()) while (Transitioner < MaxSFxVolume) ManageExhaustionSFx(ExhaustionIndex) Transitioner += TransitionInterval endWhile Debug.Notification("Getting Back to Tracking") Transitioner = 0 UnregisterForUpdate() GotoState("TrackChanges") EndEvent EndState ;END OF STATES DECLARATIONS ------------------------------------------------------------------------ Int[] Function IntToBinary(Int i) Int[] Binarray = new Int[8] String BinaryString = "" Int ModuloStep = i while (ModuloStep > 0) Int Modulo = ModuloStep % 2 BinaryString = BinaryString + Modulo as String ModuloStep = Math.Floor(ModuloStep / 2) endWhile Int StringLength = StringUtil.GetLength(BinaryString) if (StringLength < 1) Binarray[0] = 0 else Int count = 0 while (count < StringLength) Int IndexTarget = StringLength - 1 - count Binarray[IndexTarget] = StringUtil.GetNthChar(BinaryString, IndexTarget) as Int count += 1 endWhile endIf return Binarray EndFunction Int[] Function GetBinarrayKeys(Int[] Binarray) Int[] ExistingKeys String KeysString = "" Int i = 0 while (i < Binarray.Length) if (Binarray[i] == 1) KeysString = KeysString + i as String endIf i += 1 endWhile Int KeysQuantity = StringUtil.GetLength(KeysString) if (KeysQuantity == 1) ExistingKeys = new Int[1] elseif (KeysQuantity == 2) ExistingKeys = new Int[2] elseif (KeysQuantity == 3) ExistingKeys = new Int[3] elseif (KeysQuantity == 4) ExistingKeys = new Int[4] elseif (KeysQuantity == 5) ExistingKeys = new Int[5] elseif (KeysQuantity == 6) ExistingKeys = new Int[6] elseif (KeysQuantity == 7) ExistingKeys = new Int[7] elseif (KeysQuantity == 8) ExistingKeys = new Int[8] endIf i = 0 while(i < KeysQuantity) ExistingKeys[i] = StringUtil.GetNthChar(KeysString, i) as Int i += 1 endWhile return ExistingKeys EndFunction Float Function GetPlayerStaminaPercentage() native Float Function GetPcStmPercentage() return PlayerRef.getAVPercentage("Stamina") EndFunction Int Function GetExhaustionIndex(Float StaminaPercentage) Int i = 0 while (i < ExhaustionTresholds.Length) if (StaminaPercentage > ExhaustionTresholds[i] && StaminaPercentage < GetTresholdCeiling(i)) return i endIf i += 1 endWhile return -1 endFunction Float Function GetTresholdCeiling(Int IterationIndex) if (IterationIndex == 0) return ExhaustionStart else return ExhaustionTresholds[IterationIndex - 1] endIf EndFunction Function ManageExhaustionSFx(Int StateIndex) Int[] Binarray = IntToBinary(ModalTracker) Int[] BinarrayTrueKeys if (Binarray.Length > 0) BinarrayTrueKeys = GetBinarrayKeys(Binarray) endIf if (StateIndex >= 0) if (BinarrayTrueKeys.find(StateIndex) < 0) PlayingSounds[StateIndex] = StartExhaustionSFx(StateIndex) as Int ModalTracker = StateIndex endIf ModulateExhaustionSFx(PlayingSounds[StateIndex], Transitioner) endIf if (ModalTracker > 0) if (Transitioner >= 1) Int i = 0 while (i < BinarrayTrueKeys.Length) Int TrueKey = BinarrayTrueKeys[i] EndExhaustionSFx(PlayingSounds[TrueKey]) ;Adjust needed values PlayingSounds[TrueKey] = 0 ModalTracker = TrueKey i += 1 endWhile else Int i = 0 while (i < BinarrayTrueKeys.Length) ModulateExhaustionSFx(PlayingSounds[BinarrayTrueKeys[i]], MaxSFxVolume - Transitioner) i += 1 endWhile endIf endIf EndFunction Int Function StartExhaustionSFx(Int SFxID) Int SoundId = ExhaustionSounds[SFxID].Play(PlayerRef) as Int return SoundId EndFunction Function EndExhaustionSFx(Int SFxID) Sound.StopInstance(SFxID) EndFunction Function ModulateExhaustionSFx(Int SFxID, Float Volume) Sound.SetInstanceVolume(SFxID, Volume) EndFunction The SFxTransitions State (line 114) never change back to trackChanges State ... Sound doesn't work also but that's not my concern right now. I Don't get what is going on, this is as if the source code just don't want to get pass by a certain point. Is There a way to check when Skyrim cease to read a script ??? Also I was using Update system previously but it only updated twice then completely stoped working. Is it too heavy ? Am I doing something wrong ?
  4. The problem as been fixed without anything much changed. I'm sorry for the one who'll find this thread in need of answers, but I actualy have no clue about what happenned, since I didn't even tweak a thing. My guess is : some Creation Kit cache overrided the .esp when I saved and disappeared after some time ... if it isn't, then I have absolutly no clue.
  5. Hello, I've just started modding, and checked the basic from some videos and the Creation Kit official wiki. My goal was to tweak a bit the woodcutter's axe and the pickaxe statistic and to turn them 2 handed weapons. It worked fine for the woodcutter, but the pickaxe model isn't working properly. I've used the Creation Kit for the stats tweaking and NifSkope to edit the models. The problem : Whatever I can try, the pickaxe model doesn't seem to turn to "WeaponBack" and stays "WeaponAxe" in game. I have obviously over checked the 1st person and 3rd person paths for the model within Creation Kit, and over checked NiStringExtraData within NifSkope several times. I've closed and reopened the game, NifSkope and Creation Kit several times. More troubling, I've suppressed the little ring that is used as a sheath for the pickaxe within my new .nif, but it is still apearing within the game ... I've checked compatibility on a clean Skyrim. LOOT and Tes5Edit aren't going crazy when checking my game ; no errors reported. Here are some screenshots : The thing is attached to this thread, if you want to check it yourself, I higly advise a clean Skyrim to use it, since it just has been created. EDIT : Here is the save from the screenshots, to avoid you the trouble https://www.nexusmods.com/skyrim/mods/87265/?
  6. I approuve. Even if the experience is great though !
  7. Here is a thing I posted on ULG mod, 'cause my pc sucks... Now I'm posting this to, maybe, interest someone, and since f4's ck isn't here yet, try to think about something that could suppress the green highligthing thing (speacking of the one in V.A.T.S and during construction module). So ? Any ideas ? Because images are better than words for some people, here are some screenshots... ... for construction module : ...for V.A.T.S :
  8. In response to post #25513419. Pirates are not stupid people for the most. Piracy represent a will to "counter" the main system/s, by violently opposing the actual policies, to show you're point. To make it short : piracy is violent revolutionism. By the way : terrorrism is a way of piracy, and revolutionist during WW2 where kind of pirates. Obviously, I'm not defending here the "pro-violence" dudes, but I felt the importance to replace words in their context. What people nowadays call piracy is mostly about a selfish attitude because it's easy to access, rules and federationism isn't possible because the movement is too big. And yes : good old "rhum pirates" had rules and a way of federationism, through non exaustiv hierarchy. But still, why do people nowadays are pirating ? Because they don't agree with the actual system. Why is it so hugelly spread ? Because the market treating it as "need to eradicate criminals" and not "we should maybe try to understand why it is so virulent". For the obligatory payment thing. This has been very badly handled by steam and bethesda, since the communication about it was so bad. They didn't even tried to fit it in the community, just tried to force the customers of mods to instantly change their ways of doing. That was violent, and badly introduced, for what it broke nearly spontaniously. That was so badly done that It even socialy damaged the moding comunity... So yes : modders should be congratulated for their hard work, but a system is already partially working with the donations. And if they want more fundings, there are more better systems for doing so, than the way bethesda and steam did ; without consulting anyone except the market itself. Crowdfunding, sensibilisation to moders' work, selling goodies, and maybe one day a moding market ; as it has just been tried : but without forcing people to change their vision of something they love. And most of all : with the system steam tried, there were lots of ways for "baddies", to trick people with it. And yes : that is a fact, customers are always right when they bought something. I'de even say : customers make the market. And if you think most people are thinking this way : you're wrong. I'm sometimes working as a shop assistant, and lots of them are thinking the opposite way : "I'm a customer, so I must be this or that way"... You can argue what you want, without customers there is no market. But this doesn't means you have to be a dick as a customer. P.S : yes, sorry for my approximated english, I'm French... but doing my best. ^^"
×
×
  • Create New...