Administrators Dazz Posted December 19, 2012 Administrators Share Posted December 19, 2012 One thing that I think we really needed is plunger code standardization. Right now I think we have 3 or 4 different methods that can be used to add analog plunger code to tables. Some seem to be easier to implement than others, but others seem to be more consistent in their power when released. I'm not as familiar with the methods as I would like to be, but after testing out the differences I think the impulse plunger method that Koadic uses. It seems to have the most consistent release power when released from the same tension. If anyone is familiar with the multiple plunger methods can chime in and discuss the + and - to the different methods. Perhaps if could get someone to create a couple test tables and use a different plunger method we can determine the better way to go. Link to comment Share on other sites More sharing options...
Content Provider unclewilly Posted December 19, 2012 Content Provider Share Posted December 19, 2012 I havent looked at kodiacs code as of yet. When I get a chance to have a look at it ill give my opinion. Although for the most part he is pretty good at using the most optimum code Link to comment Share on other sites More sharing options...
koadic Posted December 19, 2012 Share Posted December 19, 2012 Hey guys... here is the current version of my code with example Impulse Plunger initialization along with the suggested Key Down and Key Up entries and some code comments... ' Example of modified Impulse Plunger scripting. IMPowerSetting and IMTime moved down to plunger area.' 'Impulse Plunger' '--------------------' '' Set plungerIM = New cvpmImpulseP '' With plungerIM '' .InitImpulseP swPlunger, IMPowerSetting, IMTime '' .Switch 16 '' .Random 1.5 '' .InitEntrySnd "PlungerPull" '' .InitExitSnd "plunger2", "plunger" '' .CreateEvents "plungerIM" '' End With '**************' 'Key Input ' '**************' Sub Table1_KeyDown(ByVal keycode) If keycode = PlungerKey Then PlungerIM.Pullback:Pcount = 0:PTime.Enabled = 1:Plunger.TimerEnabled=0 If vpmKeyDown(keycode) Then Exit Sub End Sub Sub Table1_KeyUp(ByVal keycode) If keycode = PlungerKey Then PTime.Enabled = 0:Pcount = 0:PTime2.Enabled = 1:PlungerIM.Fire If vpmKeyUp(keycode) Then Exit Sub End Sub ' Koadic's Alpha Ramp ' Impulse Plunger Scripting v5' ' single ramp animated' ' via image switching' '------------------------------' Dim PDelay, PCount, PImages, PStart, IMTime, IMPowerSetting, PlFrame IMPowerSetting = Plunger.MechStrength ' Plunger Power - Set via Plunger MechStrength' IMTime = Round(Plunger.PullSpeed/10, 2)' Time in 1/10th seconds for Full Plunge - Set via Plunger Pull Speed...' ' 1 = .1 second, 5 = .5 second, 10 = 1 second, etc.' PStart = 0 ' Set number of first plunger image, use 1 for legacy "1-12" setup' PImages = 25 ' Set number of animation frames not including the PStart position, use 11 for legacy "1-12" setup' PTime.Interval = INT(IMTime*1000/PImages) 'This sets window for power readings to use when the analog plunger triggers a ball launch.' ' When the analog plunger position triggers the launch, this will grab the power to use from previous' ' readings going back the amount of the delay window (200ms by default). This helps compensate if the' ' plunger is slowed too much by friction by grabbing the power from an earlier reading.' 'Set desired delay in editor via Plunger Release Speed' PDelay = CINT(Plunger.FireSpeed/Plunger.TimerInterval) ReDim PlPos(PDelay) ResetPlungers Sub ResetPlungers aPlunger.Image = "p" & PStart For x = 0 to ubound(PlPos):PlPos(x) = 0:Next Pcount = 0 PRefresh.state = ABS(PRefresh.state - 1) End Sub Sub PTime_Timer If PCount < (PImages) Then PCount = PCount + 1 aPlunger.Image = "p" & (PCount+PStart) PRefresh.state = ABS(PRefresh.state - 1) End If End Sub Sub PTime2_Timer Select Case PCount Case 0:aPlunger.Image = "p" & PStart : PRefresh.state = ABS(PRefresh.state - 1) Case 1:aPlunger.Image = "p" & INT(PImages/5) : PRefresh.state = ABS(PRefresh.state - 1) Case 2:ResetPlungers:Plunger.TimerEnabled = 1:Me.Enabled = 0 End Select Pcount = Pcount + 1 End Sub Sub Plunger_Timer() PlPos(PDelay) = Plunger.Position PlFrame = PlPos(PDelay) ' can change to INT(PlPos(PDelay)/2)+1 for legacy "1-12" setups' 'If PlFrame > 12 Then PlFrame = 12 ''uncomment and adjust if needed for using fewer animation frames' If PlPos(PDelay) <> PlPos(PDelay - 1) Then aPlunger.Image = "p" & PlFrame PRefresh.state = ABS(PRefresh.state - 1) If PlPos(PDelay) < 2 and PlPos(0) > 5 Then PlungerIM.Strength = (PlPos(0)/25*Plunger.MechStrength) PlungerIM.AutoFire PlungerIM.Strength = Plunger.MechStrength Plunger.TimerEnabled = 0:PTime2.Enabled = 1 End If End If For x = 0 to ubound(PlPos)-1:PlPos(x)=PlPos(x+1):Next End Sub Link to original If anyone wants further information/explanation of the specifics, just ask Link to comment Share on other sites More sharing options...
jadflat Posted June 6, 2013 Share Posted June 6, 2013 Hi, is this something that I can just paste in to a table script? if so where? I just received one of the new virtua pin plungers and am getting confused with the multiple ways on how to add analog plunger support to tables thanks Link to comment Share on other sites More sharing options...
Spektre Posted June 29, 2013 Share Posted June 29, 2013 No offense, but something as basic as plunger response coding should be placed in VP proper, not in table scripts. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.