Well, this was a relatively simple condition.Yeah, well, if I want to do any complicated conditionals I usually put them on a token item so I can script and force Order of Operations with parenteses.
working on run speed mod for player and companions
Started by
osterac
, Jan 08 2013 06:24 AM
18 replies to this topic
#11
Posted 08 January 2013 - 11:21 PM
#12
Posted 08 January 2013 - 11:27 PM
Well, this was a relatively simple condition.
Yeah, well, if I want to do any complicated conditionals I usually put them on a token item so I can script and force Order of Operations with parenteses.But yeah, making complex conditions with it becomes extremely difficult when many AND/ORs are required. I therefore absolutely agree that when it's possible to substitute conditions with scripting, the later is always preferable. Unfortunately, it's not always possible (in message-boxes and terminals, for example).
Mmm. Probably it could be with Game and MenuMode blocks and multiple tokens. You'd just have to delay the appearance of the terminal windows or message boxes until the tokens had finished processing... Hm, that could be a sticking point.
#13
Posted 09 January 2013 - 07:20 PM
The mod looks to be working now, thanks guys! Don't understand a word of the conversation you two are having though...
Only thing is, occasionally it will bug out a bit. Sometimes it won't go back to fast run speed until you go into sneak and then back out after combat, and sometimes it won't switch to normal speed in combat until you take a lot of damage. In any case, it will not switch until you take some damage. And in rare cases, it gets to this point (and this may happen without the mod too, I don't know) where you will be stuck walking slowly and if you jump you will walk at normal speed for a fraction of a second but then walk slowly again. Sometimes it seems the only way to get out of it is to reload a save, unless I'm mistaken.
I had another issue that sometimes happens too, occasionally when you get a new companion, they won't get the perk and you have to re-equip the run speed choker. I have a suspicion about this one though. I had in my scripts to assign the player perk on equip and the companion perk on un-equip. maybe I just forgot to unequip a few times. I'll fix that, but here's the code anyway from the 250% speed script (after fix):
Also, it seems like, sometimes, when I equip a choker, my companion won't get the perk. But if I equip it again, he/she will. Maybe this is why I was having that problem with new companions? They never had it in the first place and I didn't notice? Why would this occur?
EDIT 2:
Another weird thing:
I equipped on of the chokers, and my companion didn't get the perk, but then I un-equipped it and he did. And this was after I fixed the code. I used this code:
Edit 3:
It seems to happen ever other time I equip a choker.
Only thing is, occasionally it will bug out a bit. Sometimes it won't go back to fast run speed until you go into sneak and then back out after combat, and sometimes it won't switch to normal speed in combat until you take a lot of damage. In any case, it will not switch until you take some damage. And in rare cases, it gets to this point (and this may happen without the mod too, I don't know) where you will be stuck walking slowly and if you jump you will walk at normal speed for a fraction of a second but then walk slowly again. Sometimes it seems the only way to get out of it is to reload a save, unless I'm mistaken.
I had another issue that sometimes happens too, occasionally when you get a new companion, they won't get the perk and you have to re-equip the run speed choker. I have a suspicion about this one though. I had in my scripts to assign the player perk on equip and the companion perk on un-equip. maybe I just forgot to unequip a few times. I'll fix that, but here's the code anyway from the 250% speed script (after fix):
scn runspeedperk250 Begin OnEquip Player.RemovePerk Runspeed125 Player.RemovePerk Runspeed150 Player.RemovePerk Runspeed200 Player.RemovePerk Runspeed275 Player.RemovePerk Runspeed300 Player.RemovePerk Runspeedbonkers Player.RemovePerk Runspeed125 1 Player.RemovePerk Runspeed150 1 Player.RemovePerk Runspeed200 1 Player.RemovePerk Runspeed275 1 Player.RemovePerk Runspeed300 1 Player.RemovePerk Runspeedbonkers 1 Player.Addperk runspeed250 ShowMessage runspeedmsg Player.Addperk runspeed250 1 EndEDIT:
Also, it seems like, sometimes, when I equip a choker, my companion won't get the perk. But if I equip it again, he/she will. Maybe this is why I was having that problem with new companions? They never had it in the first place and I didn't notice? Why would this occur?
EDIT 2:
Another weird thing:
I equipped on of the chokers, and my companion didn't get the perk, but then I un-equipped it and he did. And this was after I fixed the code. I used this code:
scn runspeedperk300 Begin OnEquip Player.RemovePerk Runspeed125 Player.RemovePerk Runspeed150 Player.RemovePerk Runspeed200 Player.RemovePerk Runspeed250 Player.RemovePerk Runspeed275 Player.RemovePerk Runspeedbonkers Player.RemovePerk Runspeed125 1 Player.RemovePerk Runspeed150 1 Player.RemovePerk Runspeed200 1 Player.RemovePerk Runspeed250 1 Player.RemovePerk Runspeed275 1 Player.RemovePerk Runspeedbonkers 1 Player.Addperk runspeed300 Player.Addperk runspeed300 1 ShowMessage runspeedmsg EndWhy would that happen?
Edit 3:
It seems to happen ever other time I equip a choker.
Edited by osterac, 09 January 2013 - 08:06 PM.
#14
Posted 09 January 2013 - 10:34 PM
I'd like to propose a different approach. It relates to what Xaranth and I were discussing on our previous posts here. Counting on the perks to monitor the player's current state (i.e. sneaking/in combat) and adjust the running speed accordingly - this may not be the best idea, and could be the cause of the reliability issues you describe. It may work better if done by a dummy-quest running a script.
The quest (along with its attached script) will be activated/deactivated when the token item is equipped.
When activated, the script will continuously monitor the player's current state, adding/removing perks accordingly.
Each perk will only modify the running speed, with no conditions set. That means you would need two perks for every speed level - one for normal state, another for combat state.
Here's the skeleton of the quest script I have in mind:
(remember, when creating the quest, to set the script processing delay to 0.1)
As for the token items' scripts, each should look something like this:
The quest (along with its attached script) will be activated/deactivated when the token item is equipped.
When activated, the script will continuously monitor the player's current state, adding/removing perks accordingly.
Each perk will only modify the running speed, with no conditions set. That means you would need two perks for every speed level - one for normal state, another for combat state.
Here's the skeleton of the quest script I have in mind:
(remember, when creating the quest, to set the script processing delay to 0.1)
scn RunSpeedPerkMonitorScript short iState ; 2 - sneaking, 1 - in combat, 0 - default short bReset short iMultiplier ; this will be set by the token items scripts (see below). begin GameMode if bReset ; This block, when processed, will remove ALL the perks from the player and companions. endif if player.IsSneaking if iState != 2 if bReset set bReset to 0 else set bReset to 1 Return endif set iState to 2 endif elseif player.IsInCombat if iState != 1 if bReset set bReset to 0 else set bReset to 1 Return endif if iMultiplier == 125 player.AddPerk Runspeed125c ; x1.25 perk, combat version. player.AddPerk Runspeed125c 1 elseif iMultiplier == 150 ; etc. elseif iMultiplier == 200 ; etc. endif set iState to 1 endif elseif iState if iState == 1 if bReset set bReset to 0 else set bReset to 1 Return endif endif if iMultiplier == 125 player.AddPerk Runspeed125 ; x1.25 perk, default version. player.AddPerk Runspeed125 1 elseif iMultiplier == 150 ; etc. elseif iMultiplier == 200 ; etc. endif set iState to 0 endif end
As for the token items' scripts, each should look something like this:
scn runspeedperk125 begin OnEquip if GetQuestRunning RunSpeedPerkMonitor StopQuest RunSpeedPerkMonitor ; Then remove ALL the perks else StartQuest RunSpeedPerkMonitor set RunSpeedPerkMonitor.iMultiplier to 125 ; or 150/200/etc. endif player.UnequipItem [token item] 0 1 end
#15
Posted 10 January 2013 - 07:37 PM
I'll try that. Would the item have to stay equipped? That was one of the things I was trying to avoid in my mod. I didn't want it so the player had an armor slot used up by the mod.
Edit
Now I'm having a problem with GECK. When I go to create a new script, and put in all the code, and click save, it doesn't save. Then I click close, and it asks me if I want to save. If I click yes, the script window stays open and it doesn't save. If I click no, it doesn't save and the window closes?
Edit
Now I'm having a problem with GECK. When I go to create a new script, and put in all the code, and click save, it doesn't save. Then I click close, and it asks me if I want to save. If I click yes, the script window stays open and it doesn't save. If I click no, it doesn't save and the window closes?
Edited by osterac, 10 January 2013 - 08:21 PM.
#16
Posted 12 January 2013 - 09:17 PM
Still having this problem with GECK. Tried uninstalling and reinstalling GECK through steam. Tried starting from scratch and still no dice. What am I doing wrong?
#17
Posted 12 January 2013 - 09:18 PM
It means the script didn't compile for some reason. Look into the Geck PowerUp
#18
Posted 12 January 2013 - 09:19 PM
Edit: Freaking double posts. Sorry, got an error the first time and a refresh didn't show my post.
Edited by Xaranth, 12 January 2013 - 09:20 PM.
#19
Posted 13 January 2013 - 12:52 PM
I think that's because, when you copied the code from here and pasted it in the GECK script editor, it replaced all the tab stops with spaces. The script editor was then unable to resolve all the spaces and refused to compile. You will need to erase all the spaces, preceding each code line, then manually restore all the tab stops (the later is not really necessary - removing the spaces should be enough to get the script to compile).



Sign In
Create Account

Back to top









