Gimli
Pinball Master
I would add a timer after plunger release code and paste my code there and only apply the effect if the ball is in the plunger lane
I would add a timer after plunger release code and paste my code there and only apply the effect if the ball is in the plunger lane
would be a solution, but adding it to the plunger release code would not be enough, because in that lane there is also an emkicker ....I would add a timer after plunger release code and paste my code there and only apply the effect if the ball is in the plunger lane
Sub PlungerTimer_Expired()
PlungerPercentage = PlungerPercentage +7
If PlungerPercentage > 100 Then PlungerPercentage = 100
If PlungerPercentage < 0 Then PlungerPercentage = 0
Plunger.Pull(PlungerPercentage)
'plungerPull
End Sub
Sub PlungerBoost_Expired()
PlungerBoost.Set False
If bBallInPlungerLane = True then
AddDebugText "Bost applied"
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 10 '''''' Or any number you choose
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End if
End Sub
Yes....great job!!!Try this Paolo
'------------------------------------------------------------------
' Ball Boost by gimli
'------------------------------------------------------------------
Dim BallTrajectory
const RadToDeg = 57.295779513082320876798154814105
Const DegToRad = 0.01745329251994329576923690768489
Function Atn2(x, y)
If x > 0 Then
Atn2 = Atn(y / x) * RadToDeg
ElseIf x < 0 Then
Atn2 = 180 - RadToDeg * Atn(y / -x)
ElseIf y > 0 Then
Atn2 = 90
Else
Atn2 = -90
End If
Atn2 = Atn2+90
End Function
Sub NewtonPhysicsTick()
dim ball
Set ball = xBAM.BallCloseTo(0,0 )
BallTrajectory = Atn2( xBAM.Ball.Velocity.X, xBAM.Ball.Velocity.y )
End Sub
Sub TimerBallBoost_Expired()
TimerBallBoost.Set False
AddDebugText "Bost applied"
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 2 'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Note: added the timer "TimerBallBoost" in editor of fp.
Yes they do ! They set the ball.speed that is in the math equationYes....great job!!!
I'm adding it to my version,i just have to adjust the speed, but i have a question in this way the kickers have no input,right?
This magic code? can be applied, in any object (I think) but in this case in plunger-lane or kicker or emkicker above all
where it is necessary to have more strength when you have reached the limit in fp editor, but in this case it is the Velocity (precisely ball.SetVelocity) to have the keystone, and not the strength.
As I said before, sometimes changing the physics of the ball or the table, among which: "mass and gravity" and why not, even the "Slope" which in DK I set it to 10, kickers suffer from strength,fail to push the ball even if you put it at maximum in fp editor, this method solves the problem.
Many thanks Gimli(Bob) and popotte!
PS: in my opinion, you should open a thread dedicated to this magical code, which solve the problem of lack of strength of the kickers,in certain physical custom.
therefore it is necessary to adjust the strength also in these kickers in the fp editor, to have an optimal setting?Yes they do ! They set the ball.speed that is in the math equation
Yestherefore it is necessary to adjust the strength also in these kickers in the fp editor, to have an optimal setting?
Yes......and if you improve it, (I'm ready to support you) it could solve a lot of problems.Yes
Whatever the table developer wants to do
It is the same with variable fliippers above. The dynamic flipper code causes the ball.speed
sub TimerKickerBoost1_Expired()
TimerKickerBoost1.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 1 'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Sub TimerKickerBoost2_Expired()
TimerKickerBoost2.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 2'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Sub TimerKickerBoost3_Expired()
TimerKickerBoost3.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 3 'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Sub TimerKickerBoost4_Expired()
TimerKickerBoost4.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 4 'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Sub TimerKickerBoost5_Expired()
TimerKickerBoost5.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 5'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Sub TimerKickerBoost6_Expired()
TimerKickerBoost6.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 6 'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Sub TimerKickerBoost7_Expired()
TimerKickerBoost7.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 7 'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Sub TimerKickerBoost8_Expired()
TimerKickerBoost8.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 8 'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
Sub TimerKickerBoost9_Expired()
TimerKickerBoost9.Set False
Dim SpeedNumber
Dim ball
Set ball = xBAM.BallCloseTo(0,0 )
SpeedNumber = ball.speed * 9 'speed ball 1/10
ball.SetVelocity SpeedNumber*sin(BallTrajectory * DegToRad), -SpeedNumber*cos(BallTrajectory * DegToRad), 0
End Sub
I totally agree with you. Physic is physic, and none have an incredible physic. So, as you say, it's just a brain adjust to do.I think the "warm up" is not FP... but ourselves.
FP / VPX / FX,etc all play different. When you are used to playing one of them for a long time, then when playing another your brain needs time to adjust.
the fact is that: each of us makes tables according to "what"? with what "criterion"? based on what "vision"?I have never looked at the "xml" physics of another table, I never had the need, a technicolor dream, it would be to have a single physics applicable for all tables, so as to have optimal gameplay, neither too fast nor too slow, in between, I mean
I understand that the gravity of a game is not comparable to the real one which is constant, for everyone and in everything, but here we are talking about a game ... of which we have: standard fp physics, which I don't know on what basis it was conceived, and on the other part we have a Bam,which helps us to improve the physics of fp.
the keystone...... is to find out how.
Only for old EM's:...
Jp, says that the real physics of an "EM" table is also the same as modern ones .... so why can't we find the same physics for all FP tables
....