Forums » General
Bind Help Please
Can someone tell me why this isn't working?
This bind is to chainfire a rocket rag into a pretty strafing pattern... It's supposed to alternate tubes and fire in rotation for one complete volley and then reset the weapon groups... instead, when activated it seems to arbitrarily pick between 1 and 3 weapons to fire continually without end, and the others don't even enter the rotation... it seems to like the group1 shoot1, group1 shoot2 and groupx shoot3 the most. Holding down the fire button causes it to do all kinds of weird shit, as does repeatedly clicking the fire button throughout the sequence, which at least ensures the other weapons are eventually fired...
After ending the sequence and disabling the chain, it continues to fire the weapon(s) that got locked on until I exit the client.
alias setWeapon1 "weapon1; missile1"
alias setWeapon2 "weapon2; missile2"
alias chainfireActivate "setWeapon1; +shoot2; wait 0.13 '+shoot1'; wait 0.13 'setWeapon2'; +shoot2; wait 0.13 '+shoot3'; wait 0.13 'setWeapon1'; +shoot2; wait 0.13 'setWeapon2'; +shoot1; wait 0.13 '+shoot2'; chainfirePause"
alias chainfirePause "wait 0.25 'setWeapon1'"
alias chainOn "bind v chainfireActivate; bind C chainOff; echo '[]Weapons Chained[]'"
alias chainOff "bind v +tertiaryfire; bind C chainOn; echo '[]Weapons Unchained[]'"
bind C chainOn
This bind is to chainfire a rocket rag into a pretty strafing pattern... It's supposed to alternate tubes and fire in rotation for one complete volley and then reset the weapon groups... instead, when activated it seems to arbitrarily pick between 1 and 3 weapons to fire continually without end, and the others don't even enter the rotation... it seems to like the group1 shoot1, group1 shoot2 and groupx shoot3 the most. Holding down the fire button causes it to do all kinds of weird shit, as does repeatedly clicking the fire button throughout the sequence, which at least ensures the other weapons are eventually fired...
After ending the sequence and disabling the chain, it continues to fire the weapon(s) that got locked on until I exit the client.
alias setWeapon1 "weapon1; missile1"
alias setWeapon2 "weapon2; missile2"
alias chainfireActivate "setWeapon1; +shoot2; wait 0.13 '+shoot1'; wait 0.13 'setWeapon2'; +shoot2; wait 0.13 '+shoot3'; wait 0.13 'setWeapon1'; +shoot2; wait 0.13 'setWeapon2'; +shoot1; wait 0.13 '+shoot2'; chainfirePause"
alias chainfirePause "wait 0.25 'setWeapon1'"
alias chainOn "bind v chainfireActivate; bind C chainOff; echo '[]Weapons Chained[]'"
alias chainOff "bind v +tertiaryfire; bind C chainOn; echo '[]Weapons Unchained[]'"
bind C chainOn
Weapon groups can not be configured via binds. So you have to manually set groups in station, and according to this set you program the bind. See my post on wiki about Chainfire binds
Also, pay attention to the fact that wait makes a delay only for the command given as argument. So "wait 0.13 '+shoot1'; wait 0.13 'setWeapon2'" means that +shoot1 and setWeapon2 commands will be exectuted at the same moment.
Also, pay attention to the fact that wait makes a delay only for the command given as argument. So "wait 0.13 '+shoot1'; wait 0.13 'setWeapon2'" means that +shoot1 and setWeapon2 commands will be exectuted at the same moment.
I know about configuring the weapon groups - I set them up right for that (by splitting up the weapons in group 1 and 2) and it id activate them properly (sometimes), so...
I didn't know about the syntax of the wait command though, thanks. I'll see if fixing the wait times will help anything.
EDIT: Oh yeah, that still wouldn't fix the issue with the weapons continuing to fire after the sequence is complete. how do you stop the weapons fire?
I didn't know about the syntax of the wait command though, thanks. I'll see if fixing the wait times will help anything.
EDIT: Oh yeah, that still wouldn't fix the issue with the weapons continuing to fire after the sequence is complete. how do you stop the weapons fire?
I'm not sure if the wait command supports anything other than full second increments, that's probably your issue right there.
Someone told me it was accurate to 1/100-second, so...
it USED to be one second increments only, but someone changed it like four updates back.
+Shoot[1-3] 0 should stop it from firing, but there is a problem with wait. I'll try to show that problem:
0.00: +Shoot1
0.00: wait 0.13 +Shoot2
0.11: +Shoot1 0; +Shoot2 0
0.13: [+Shoot2 is executed]
Look to my article at wiki again ;) to see how I solved this issue
0.00: +Shoot1
0.00: wait 0.13 +Shoot2
0.11: +Shoot1 0; +Shoot2 0
0.13: [+Shoot2 is executed]
Look to my article at wiki again ;) to see how I solved this issue
Aleksey, your article does not really -explain- anything technical about what you did. I looked that over a few nights back, and it hasn't changed since.
And, umm, yeah, that post really doesn't tell me anything about what the problem is... could you clarify?
EDIT: Aleksey, if you have an IM or TS client and would like to explain it to me better, I'd be happy to make the appropriate technical edits to your article... technical writing is something I do reasonably well.
EDIT2: wait, are you trying to say that you can't retroactively cancel a shoot command before it executes? I don't really see where that would be a problem....
And, umm, yeah, that post really doesn't tell me anything about what the problem is... could you clarify?
EDIT: Aleksey, if you have an IM or TS client and would like to explain it to me better, I'd be happy to make the appropriate technical edits to your article... technical writing is something I do reasonably well.
EDIT2: wait, are you trying to say that you can't retroactively cancel a shoot command before it executes? I don't really see where that would be a problem....
yeah, I didn't EXPLAIN it, it's all in the code and should be self-explaining for 1337 haxors :D
briefly: if you have wait ... +ShootN you should replace +ShootN with command, and when you do +ShootN 0 you also do alias command ''
Just look at my stopfire bind, and notice how I use fire1...fire3
briefly: if you have wait ... +ShootN you should replace +ShootN with command, and when you do +ShootN 0 you also do alias command ''
Just look at my stopfire bind, and notice how I use fire1...fire3
Well I don't know if you've guessed by now, but I'm not '1337 haxorz'... incidentally, neither am I fluent in Lua nor vastly experienced in VO automizing.
So you're saying you're using modularization... I know the benefits of modular programming, but I really don't see how they would apply for a bind containing only one linear routine... unless it's a limitation with the language. I'll look into it more this evening perhaps. For the time being though, I must go for I have a date to keep.
So you're saying you're using modularization... I know the benefits of modular programming, but I really don't see how they would apply for a bind containing only one linear routine... unless it's a limitation with the language. I'll look into it more this evening perhaps. For the time being though, I must go for I have a date to keep.
Aleksey, the fire1...3 idea is good for insuring that it stops firing.
For those who don't quite understand, here's the basic idea:
When you put something in a wait queue, it happens after that delay. Thus, if you say, "do A, wait 1 second then do B", and then say "stop A and B" after 0.5 seconds, the timer will still trigger "do B" at 1 second after you did A.
Aleksey's method redefines B to do nothing, so that it doesn't start firing again. Another option, which is perhaps simpler to visualize but less accurate, is to simply say "stop A and B, wait X stop A and B again".
For those who don't quite understand, here's the basic idea:
When you put something in a wait queue, it happens after that delay. Thus, if you say, "do A, wait 1 second then do B", and then say "stop A and B" after 0.5 seconds, the timer will still trigger "do B" at 1 second after you did A.
Aleksey's method redefines B to do nothing, so that it doesn't start firing again. Another option, which is perhaps simpler to visualize but less accurate, is to simply say "stop A and B, wait X stop A and B again".
Ah, I see... Well then, if I want it to fire a full volley at a time and wait .25 seconds between each .75-second volley while the trigger is depressed, but want it to cease firing volleys when I left up on the trigger, what would be the ideal way to use the stop firing command? I'm assuming that by stopping the fire before you start it with the wait command, you're allowing the fire to continue indefinately until you stop it a second time, correct?