STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228071
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2560 · P5120

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/27039827?noj=FRM27039827-28DC" width="1" height="1"></div>

9 Ball Pool.swf

This is the info page for
Flash #27978

(Click the ID number above for more basic data on this flash file.)


Text
9

Single Player
Controls
Rules
Credits

Single Player
Controls
Rules
Credits

Single Player

Multiplayer

Controls

Rules

Credits

Credits

Programming: Jobe Makar
A.I. Opponent: Brandon Williams
XML Server Programming: Mike Grundvig
Graphics: Robert Firebaugh
Sound: Jobe Makar

Credits

Programming: Jobe Makar
A.I. Opponent: Brandon Williams
XML Server Programming: Mike Grundvig
Graphics: Robert Firebaugh
Sound: Jobe Makar

Back

Back

Back

How to Shoot
1.) Click on the cue ball, you will see the cue
stick appear.
2.) Move the mouse around the cue ball to
rotate the stick to the desired position.
3.) Then the mouse around the cue ball to rotate
the stick to the desired position.
3.) Then click (not on the cue ball) and drag
away from the cue ball for power.
4.) Then let go to shoot.

How to Shoot
1.) Click on the cue ball, you will see the cue
stick appear.
2.) Move the mouse around the cue ball to
rotate the stick to the desired position.
3.) Then the mouse around the cue ball to rotate
the stick to the desired position.
3.) Then click (not on the cue ball) and drag
away from the cue ball for power.
4.) Then let go to shoot.

Controls

Controls

Rules

Rules

1.) When you shoot you must hit the lowest
numbered ball on the table before hitting any
other ball. This ball is called the "target ball".
2.) If you or your opponent sinks the cue ball or
you fail to meet rule 1 then you have "scratched"
and the other player can place the cue ball any
where on the table. This is called "ball-in-hand".
3.) A player has won if the player sinks the 9 Ball
without breaking any rules. If the player sinks
the 9 Ball without hitting the "target ball" first
then the opponent is the winner.

1.) When you shoot you must hit the lowest
numbered ball on the table before hitting any
other ball. This ball is called the "target ball".
2.) If you or your opponent sinks the cue ball or
you fail to meet rule 1 then you have "scratched"
and the other player can place the cue ball any
where on the table. This is called "ball-in-hand".
3.) A player has won if the player sinks the 9 Ball
without breaking any rules. If the player sinks
the 9 Ball without hitting the "target ball" first
then the opponent is the winner.

Play Again

Instructions

Credits

When
breaking the
ball must be
hit from within
this area.

1

2

3

4

5

6

7

8

9

The Brain

turnturn

Target Ball:

Target Ball:

Test

Test

press "g" to turn guide off

press "g" to turn guide on

Menu

Menu

ää

Back

Help for  9 Ball

X

X

The User Controls

The Rules of 9 Ball

To Start a New Game
Click on the "New Game" button. You will see a rack of pool balls
appear.
To Shoot
1.) Click on the cue ball, you will see the cue stick appear.
2.) Move the mouse around the cue ball to rotate the stick to the desired
position.
3.) Then click (not on the cue ball) and drag away from the cue ball for
power.
4.) Then let go to shoot.
Note: An onscreen indicator will let you know if it is still your turn, or the
computer's turn.

The Objective
When playing 9 Ball the goal is to sink the 9 ball. This sounds easy but
you must do so without breaking any rules.
The Rules
1.) When you shoot you must hit the lowest numbered ball on the table
before hitting any other ball. This ball is called the "target ball."
2.) If you or the computer sinks the cue ball or you fail to meet rule 1
then you have "scratched" and the other player can place the cue ball
anywer on the table. This is called "ball-in-hand".
3.) A player has won if the player sinks the 9 Ball without breaking any
rules. If the player sinks the 9 Ball and breaks a rule then the opponent
is the winner.

9 Ball Credits

Game Intelligence and Physics Engine:
Jobe Makar

Graphics:
Robert Firebaugh

AI Opponent:
Brandon Williams

Another Great Production from Electrotank

ActionScript [AS1/AS2]

Frame 1
total_bytes = this.getBytesTotal(); fscommand ("allowscale", "false"); fscommand ("showmenu", "false"); security = "no";
Frame 2
loaded = this.getBytesLoaded(); if (loaded >= total_bytes) { gotoAndStop (5); } percent = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100) + "% Loaded";
Frame 3
gotoAndPlay (2);
Frame 5
if (security == "yes") { myURL = "http://www.ultimatearcade.com"; length = length(myURL); if ((substring(_url, 1, length)) eq myURL) { gotoAndStop (10); } else { gotoAndStop (1); } } else { gotoAndStop (10); }
Frame 10
bg.bg_noise = new sound(bg); bg.bg_noise.attachsound("bg_noise"); bg.bg_noise.start(0, 999); bg.bg_noise.setVolume(80);
Frame 31
function aiShoot() { bsx = this["ball" + ballShoot]._x; bsy = this["ball" + ballShoot]._y; bhx = this["ball" + ballHit]._x; bhy = this["ball" + ballHit]._y; deltax = bsx - bhx; deltay = bsy - bhy; distance = Math.sqrt((deltax * deltax) + (deltay * deltay)); var slope = (deltay / deltax); var indx = bsx; if (bsx < bhx) { inc = 0.75; } else { inc = -0.75; } loop = true; while (loop) { var cpx = indx; var cpy = ((slope * (cpx - bsx)) + bsy); var invSlope = (-1 / slope); var invslopeAngle = Math.atan(Math.abs(invSlope)); var leftx = (cpx + (radius * Math.cos(invslopeAngle))); var lefty = (cpy + (radius * Math.sin(invslopeAngle))); var rightx = (cpx - (radius * Math.cos(invslopeAngle))); var righty = (cpy - (radius * Math.sin(invslopeAngle))); i = 1; while (num_of_balls >= i) { if ((i != ballShoot) && (i != ballHit)) { if ((this["ball" + i].hitTest(cpx, cpy, true) || (this["ball" + i].hitTest(leftx, lefty, true))) || (this["ball" + i].hitTest(rightx, righty, true))) { var path = "blocked"; var loop = false; i = i + 10; } else { var path = "clear"; } } i++; } if (((inc < 0) && (indx < bhx)) || ((0 < inc) && (bhx < indx))) { var loop = false; } else { indx = indx + inc; } } if (path == "blocked") { aiBlocked(); } else { aiClear(); } } function aiClear() { var cpvx = ((-1 * deltax) / 10); var cpvy = ((-1 * deltay) / 10); var collx = bsx; var colly = bsy; var sideColl = false; while (!sideColl) { var ocollx = collx; var ocolly = colly; collx = collx + cpvx; colly = colly + cpvy; if (right < collx) { var tempax = collx; var collx = right; var ratio = (Math.abs(ocollx - collx) / Math.abs(ocollx - tempax)); var sub = (Math.abs(ocolly - colly) * ratio); (((0 < cpvy) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true; } if (collx < left) { var tempax = collx; var collx = left; var ratio = (Math.abs(ocollx - collx) / Math.abs(ocollx - tempax)); var sub = (Math.abs(ocolly - colly) * ratio); (((0 < cpvy) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true; } if (bottom < colly) { var tempay = colly; var colly = bottom; var ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay)); var sub = (Math.abs(ocolly - colly) * ratio); (((0 < cpvx) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true; } if (colly < top) { var tempay = colly; var colly = top; var ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay)); var sub = (Math.abs(ocolly - colly) * ratio); (((0 < cpvx) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true; } } d = 1; while (6 >= d) { var pdx = (collx - pockets[d][pocketx]); var pdy = (colly - pockets[d][pockety]); this["dist" + d] = Math.sqrt((pdx * pdx) + (pdy * pdy)); d++; } var min1 = Math.min(dist1, dist2); var min2 = Math.min(dist3, dist4); var min3 = Math.min(dist5, dist6); var subMin = Math.min(min1, min2); var finalMin = Math.min(subMin, min3); i = 1; while (6 >= i) { if (finalMin == this["dist" + i]) { closestPocket = i; break; } i++; } var pbdx = (pockets[i][pocketx] - bhx); var pbdy = (pockets[i][pockety] - bhy); var hyp = Math.sqrt((pbdx * pbdx) + (pbdy * pbdy)); var tempcx = (((pbdx / hyp) * radius) + bhx); var tempcy = (((pbdy / hyp) * radius) + bhy); var tempcdx = (bhx - tempcx); var tempcdy = (bhy - tempcy); var finalcx = (bhx + tempcdx); var finalcy = (bhy + tempcdy); var finalbx = (bsx - tempcdx); var finalby = (bsy - tempcdy); angleShoot = Math.atan(Math.abs(finalcy - finalby) / Math.abs(finalcx - finalbx)); var sumDist = (this["dist" + closestPocket] + distance); (((0 < (bhx - bsx)) ? ((sgnX = 1)) : ((((bhx - bsx) < 0) ? ((sgnX = -1)) : ((sgnX = 0))))));// not popped (((0 < (bhy - bsy)) ? ((sgnY = 1)) : ((((bhy - bsy) < 0) ? ((sgnY = -1)) : ((sgnY = 0))))));// not popped _root.stick.inner.tempvelx = (sgnX * (sumDist / 12)) * Math.cos(angleShoot); _root.stick.inner.tempvely = (sgnY * (sumDist / 12)) * Math.sin(angleShoot); check = Math.atan((finalby - finalcy) / (finalbx - finalcx)) * 57.2957795130823; if ((finalcx < finalbx) && (finalby < finalcy)) { setAngle = check + 180; } else if (((finalbx < finalcx) && (finalby < finalcy)) || ((finalbx < finalcx) && (finalcy < finalby))) { setAngle = check; } else { setAngle = check - 180; } _root.stick._rotation = setAngle - 180; _root.stick._x = ball1._x; _root.stick._y = ball1._y; _root.stick.inner.play(); _root.gonogo = 1; } function aiBlocked() { (((Math.abs(deltay) >= Math.abs(deltax)) ? (if ((bbleft = Math.abs(bsx - left)) < (bbright = Math.abs(bsx - right))) { closestBank = 1} else { closestBank = 3} if (bsx < ()) { inc = 0.75} else { inc = -0.75} while (!(endYet = false)) { ccx = indxccy = (slope * (ccx - pointLx)) + pointLyinvslopeAngle = Math.atan(Math.abs(-1 / slope))leftx = ccx + (radius * Math.cos(invslopeAngle))lefty = ccy + (radius * Math.sin(invslopeAngle))rightx = ccx - (radius * Math.cos(invslopeAngle))righty = ccy - (radius * Math.sin(invslopeAngle))var ccp = 1while (num_of_balls >= ccp) { if ((ccp != ballShoot) && (ccp != ballHit)) { if (this["ball" + ccp].hitTest(leftx, lefty, true) || (this["ball" + ccp].hitTest(rightx, righty, true))) { path_coll = "blocked"endYet = truebreak; } path_coll = "clear"} ccp++} if (((((0 < inc) && (imPointBx < indx)) || ((inc < 0) && (indx < imPointBx))) && ((pointLx = bsx) == bsx)) && ((pointLy = bsy) == bsy)) { inc = inc * -1indx = () + incslope = (slope = (bsy - (imPointBy = ((tempImSlope = (bsy - (subImPointY = bhy)) / (bsx - subImPointX)) * ((imPointBx = banks[closestBank]) - bsx)) + bsy)) / (bsx - ())) * -1pointLx = bhxpointLy = bhybankedAlready = true} else { if (path_coll == "blocked") { break; } if ((((0 < inc) && (bhx < ccx)) || ((inc < 0) && (ccx < bhx))) && ((bankedAlready = false) == true)) { break; } indx = (indx = bsx) + inc} } if (path_coll == "blocked") { bestBank = 4 - closestBank} else { bestBank = closestBank} if (path_coll == "blocked") { subImPointY = bhy(((bestBank == 1) ? ((subImPointX = banks[bestBank] - Math.abs(bhx - banks[bestBank]))) : ((subImPointX = banks[bestBank] + Math.abs(bhx - banks[bestBank])))));// not popped tempImSlope = (bsy - ()) / (bsx - subImPointX)imPointBx = banks[bestBank]imPointBy = (() * (() - bsx)) + bsy} var sideColl = falsewhile (!sideColl) { var ocollx = collxvar ocolly = collycollx = collx + cpvxcolly = colly + cpvyif (right < collx) { var tempax = collxvar collx = rightvar ratio = (Math.abs(ocollx - collx) / Math.abs(ocollx - tempax))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < cpvy) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true} if (collx < left) { var tempax = collxvar collx = leftvar ratio = (Math.abs(ocollx - (collx = bhx)) / Math.abs(ocollx - tempax))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < (cpvy = (deltay = bhy - ()) / 15)) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true} if (bottom < colly) { var tempay = collyvar colly = bottomvar ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < cpvx) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true} if (colly < top) { var tempay = collyvar colly = topvar ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay))var sub = (Math.abs(ocolly - (colly = bhy)) * ratio)(((0 < (cpvx = (deltax = bhx - ()) / 15)) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true} } var pcc = 1while (4 >= pcc) { ttdx = pockets[pocketChoices[bestBank][pcc]][pocketx] - ()ttdy = pockets[pocketChoices[bestBank][pcc]][pockety] - ()this["pcdist" + pcc] = Math.sqrt((ttdx * ttdx) + (ttdy * ttdy))pcc++} if (short3 == pcdist1) { closestPocket = pocketChoices[bestBank][1]} else if (short3 == pcdist2) { closestPocket = pocketChoices[bestBank][2]} else if ((short3 = Math.min(short1 = Math.min(pcdist1, pcdist2), short2 = Math.min(pcdist3, pcdist4))) == pcdist3) { closestPocket = pocketChoices[bestBank][3]} else { closestPocket = pocketChoices[bestBank][4]} _root.stick.inner.tempvelx = (sgnX * ((velocity = ((distBB1 = Math.sqrt(((bhx - imPointHx) * (bhx - imPointHx)) + ((bhy - ()) * (bhy - imPointHy)))) + (distBB2 = Math.sqrt(((bsx - imPointHx) * (bsx - imPointHx)) + ((bsy - ()) * (bsy - imPointHy))))) + ()) / 30)) * Math.cos(angleShoot = Math.atan(Math.abs((closeBPy = bsy + (tempCloseDy = bhy - (closePy = bhy + ((() / ()) * radius)))) - (imPointHy = )) / Math.abs((closeBPx = bsx + (tempCloseDx = bhx - (closePx = bhx + ((() / (closehyp = Math.sqrt(((closedx = bhx - pockets[closestPocket][pocketx]) * closedx) + ((closedy = bhy - pockets[closestPocket][pockety]) * closedy)))) * radius)))) - imPointHx)))_root.stick.inner.tempvely = (sgnY * (() / 30)) * Math.sin()if ((imPointHx < closeBPx) && (closeBPy < imPointHy)) { setAngle = check * -1} else if ((closeBPx < imPointHx) && (closeBPy < imPointHy)) { setAngle = (180 - check) * -1} else if ((() < imPointHx) && (() < ())) { setAngle = 180 + check} else { setAngle = (360 - (check = (theta = Math.atan((() - ()) / (() - imPointHx))) * 57.2957795130823)) * -1} _root.stick._rotation = setAngle_root.stick._x = ball1._x_root.stick._y = ball1._y_root.stick.inner.play()_root.gonogo = 1((bsy < imPointHy) ? ((sgnY = 1)) : (((() < bsy) ? ((sgnY = -1)) : ((sgnY = 0)))))((bsx < imPointHx) ? ((sgnX = 1)) : (((imPointHx < bsx) ? ((sgnX = -1)) : ((sgnX = 0)))))((bestBank == 1) ? ((imPointHx = banks[bestBank] - Math.abs(() - banks[bestBank]))) : ((imPointHx = banks[bestBank] + Math.abs(closePx - banks[bestBank]))))((closestBank == 1) ? ((subImPointX = banks[closestBank] - Math.abs(bhx - banks[closestBank]))) : ((subImPointX = banks[closestBank] + Math.abs(bhx - banks[closestBank]))))) : (if (bsx < bhx) { inc = 0.75} else { inc = -0.75} if ((bbTop = Math.abs(bsy - top)) < (bbBottom = Math.abs(bsy - bottom))) { closestBank = 2} else { closestBank = 4} trace(closestBank = 6 - closestBank)while (!(endYet = false)) { ccx = indxccy = (slope * (ccx - pointLx)) + pointLyinvslopeAngle = Math.atan(Math.abs(-1 / slope))leftx = ccx + (radius * Math.cos(invslopeAngle))lefty = ccy + (radius * Math.sin(invslopeAngle))rightx = ccx - (radius * Math.cos(invslopeAngle))righty = ccy - (radius * Math.sin(invslopeAngle))var ccp = 1while (num_of_balls >= ccp) { if ((ccp != ballShoot) && (ccp != ballHit)) { if (this["ball" + ccp].hitTest(leftx, lefty, true) || (this["ball" + ccp].hitTest(rightx, righty, true))) { path_coll = "blocked"endYet = truebreak; } path_coll = "clear"} ccp++} if (((((0 < inc) && (imPointBx < indx)) || ((inc < 0) && (indx < imPointBx))) && ((pointLx = bsx) == bsx)) && ((pointLy = bsy) == bsy)) { indx = () + incslope = (slope = (bsy - (imPointBy = (() * ((imPointBx = ((((-1 * (tempImSlope = (bsy - subImPointY) / (bsx - (subImPointX = bhx)))) * bsx) + bsy) - banks[]) / (-1 * tempImSlope)) - bsx)) + bsy)) / (bsx - ())) * -1pointLx = bhxpointLy = bhy} else { if (path_coll == "blocked") { break; } if (((0 < inc) && (bhx < ccx)) || ((inc < 0) && (ccx < bhx))) { break; } indx = (indx = bsx) + inc} } if (path_coll == "blocked") { bestBank = 6 - closestBank} else { bestBank = } if (path_coll == "blocked") { subImPointX = bhx(((bestBank == 2) ? ((subImPointY = banks[bestBank] - Math.abs(bhy - banks[bestBank]))) : ((subImPointY = banks[bestBank] + Math.abs(bhy - banks[bestBank])))));// not popped tempImSlope = (bsy - subImPointY) / (bsx - ())imPointBx = ((((-1 * tempImSlope) * bsx) + bsy) - banks[bestBank]) / (-1 * tempImSlope)imPointBy = (() * (() - bsx)) + bsy} var sideColl = falsewhile (!sideColl) { var ocollx = collxvar ocolly = collycollx = collx + cpvxcolly = colly + cpvyif (right < collx) { var tempax = collxvar collx = rightvar ratio = (Math.abs(ocollx - collx) / Math.abs(ocollx - tempax))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < cpvy) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true} if (collx < left) { var tempax = collxvar collx = leftvar ratio = (Math.abs(ocollx - (collx = bhx)) / Math.abs(ocollx - tempax))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < (cpvy = (deltay = bhy - ()) / 15)) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true} if (bottom < colly) { var tempay = collyvar colly = bottomvar ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < cpvx) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true} if (colly < top) { var tempay = collyvar colly = topvar ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay))var sub = (Math.abs(ocolly - (colly = bhy)) * ratio)(((0 < (cpvx = (deltax = bhx - ()) / 15)) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true} } var pcc = 1while (3 >= pcc) { ttdx = pockets[pocketChoices[bestBank][pcc]][pocketx] - ()ttdy = pockets[pocketChoices[bestBank][pcc]][pockety] - ()this["pcdist" + pcc] = Math.sqrt((ttdx * ttdx) + (ttdy * ttdy))pcc++} if (short2 == pcdist1) { closestPocket = pocketChoices[bestBank][1]} else if ((short2 = Math.min(pcdist3, short1 = Math.min(pcdist1, pcdist2))) == pcdist2) { closestPocket = pocketChoices[bestBank][2]} else { closestPocket = pocketChoices[bestBank][3]} _root.stick.inner.tempvelx = (sgnX * ((velocity = ((distBB1 = Math.sqrt(((bhx - ()) * (bhx - imPointHx)) + ((bhy - imPointHy) * (bhy - imPointHy)))) + (distBB2 = Math.sqrt(((bsx - ()) * (bsx - imPointHx)) + ((bsy - imPointHy) * (bsy - imPointHy))))) + ()) / 25)) * Math.cos(angleShoot = Math.atan(Math.abs((closeBPy = bsy + (tempCloseDy = bhy - (closePy = bhy + ((() / ()) * radius)))) - imPointHy) / Math.abs((closeBPx = bsx + (tempCloseDx = bhx - (closePx = bhx + ((() / (closehyp = Math.sqrt(((closedx = bhx - pockets[closestPocket][pocketx]) * closedx) + ((closedy = bhy - pockets[closestPocket][pockety]) * closedy)))) * radius)))) - (imPointHx = ))))_root.stick.inner.tempvely = (sgnY * (() / 25)) * Math.sin()if ((imPointHx < closeBPx) && (closeBPy < imPointHy)) { setAngle = check * -1} else if ((closeBPx < imPointHx) && (closeBPy < imPointHy)) { setAngle = (180 - check) * -1} else if ((() < ()) && (imPointHy < ())) { setAngle = 180 + check} else { setAngle = (360 - (check = (theta = Math.atan((() - imPointHy) / (() - ()))) * 57.2957795130823)) * -1} _root.stick._rotation = setAngle_root.stick._x = ball1._x_root.stick._y = ball1._y_root.stick.inner.play()_root.gonogo = 1((bsy < imPointHy) ? ((sgnY = 1)) : (((imPointHy < bsy) ? ((sgnY = -1)) : ((sgnY = 0)))))((bsx < imPointHx) ? ((sgnX = 1)) : (((() < bsx) ? ((sgnX = -1)) : ((sgnX = 0)))))((bestBank == 2) ? ((imPointHy = banks[bestBank] - Math.abs(() - banks[bestBank]))) : ((imPointHy = banks[bestBank] + Math.abs(closePy - banks[bestBank]))))((closestBank == 2) ? ((subImPointY = banks[] - Math.abs(bhy - banks[closestBank]))) : ((subImPointY = banks[closestBank] + Math.abs(bhy - banks[closestBank])))))));// not popped } pockets = new Array(); var mmm = 0; while (6 >= (++mmm)) { pockets[mmm] = new Array(this["pocket" + mmm]._x, this["pocket" + mmm]._y); } pocketx = 0; pockety = 1; pocketChoices = new Array(); pocketChoices[1] = new Array(null, 2, 3, 4, 5); pocketChoices[2] = new Array(null, 4, 5, 6); pocketChoices[3] = new Array(null, 1, 2, 5, 6); pocketChoices[4] = new Array(null, 1, 2, 3); radius = _root.ball1._width / 2; banks = new Array(null, left._x, top._y, right._x, bottom._y); function new_game() { var i = -1; while (11 >= (++i)) { velx[i] = 0; vely[i] = 0; } rack.start(); thegameisover = ""; winner = ""; winner_ball = 10; nine_ball_sank = "no"; this.ball_in_hand = "yes"; this.breaking = "yes"; turn = "your_turn"; condition_one = "no"; condition_two = "no"; turn_verification_done = "yes"; first_ball_done = "no"; current_ball = 2; pop_up = "no"; mode = "stopped"; fill_arrays(); var i = 1; while (num_of_balls >= (++i)) { this["ball" + i]._visible = 1; this["ball" + i]._x = this["ball" + i].begin_x; this["ball" + i]._y = this["ball" + i].begin_y; } this.ball1._x = ball1.begin_x; this.ball1._y = ball1.begin_y; this.ball1._visible = true; } function every_frame() { if ((mode == "stopped") && (this.gonogo == 0)) { if (turn_verification_done == "no") { if (nine_ball_sank == "yes") { if ((condition_one == "yes") && (condition_two == "yes")) { if (turn == "computers_turn") { winner = "The Computer Wins! To play again press the Play Again button above."; } else { winner = "You Win! To play again press the Play Again button above."; } } else if (turn == "computers_turn") { winner = "You Win! To play again press the Play Again button above."; } else { winner = "Computer Wins! To play again press the Play Again button above."; } thegameisover = "yes"; } if (thegameisover != "yes") { turn_verification_done = "yes"; verify_turn(); determine_current_ball(); condition_one = "no"; condition_two = "no"; computer_count = 0; if (ball_in_hand == "yes") { this.ball1._x = ball1.begin_x; this.ball1._y = ball1.begin_y; this.ball1._visible = 1; skipBall[1] = 0; velx[1] = 0; vely[1] = 0; } } } } else { turn_verification_done = "no"; } if (((turn == "computers_turn") && (this.nomoreCalc == 0)) && (thegameisover != "yes")) { computer_shoot(); } } function first_ball() { if ((jj == current_ball) && (first_ball_done == "no")) { condition_one = "yes"; } else if ((jj != current_ball) && (first_ball_done == "no")) { condition_one = "no"; } first_ball_done = "yes"; } function pocket_verification(ball_number) { if (ball_number == winner_ball) { condition_two = "yes"; nine_ball_sank = "yes"; } if (ball_number == 1) { condition_two = "no"; ball_in_hand = "yes"; } if ((1 < ball_number) && (ball_number < 10)) { condition_two = "yes"; } } function verify_turn() { if ((condition_one == "yes") && (condtion_two == "yes")) { turn = turn; } else if ((condition_one != "yes") || (condition_two != "yes")) { if (turn == "computers_turn") { turn = "your_turn"; } else if (turn == "your_turn") { turn = "computers_turn"; } } } function determine_current_ball() { var i = 1; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { current_ball = i; return; } } } function computer_shoot() { ballShoot = 1; ballHit = current_ball; aiShoot(); this.nomoreCalc = 1; this.turn_verification_done = "no"; this.pop_up = ""; this.window._visible = 0; this.ball_in_hand = "no"; this.first_ball_done = "no"; } function fill_arrays() { var i = 0; while (num_of_balls >= (++i)) { velx[i] = 0; vely[i] = 0; r[i] = this["ball" + i]._width / 2; mass[i] = 1; skipBall[i] = 0; duplicateMovieClip (this.bot, "bot" + i, 100 + i); this["bot" + i]._visible = 0; } } function display() { if (((pop_up != "no") && (mode == "stopped")) && (isNaN(Number(pop_up) - 1) == false)) { window._visible = 1; window._x = _xmouse; window._y = _ymouse; window.n = "ball " + (Number(pop_up) - 1); pop_up = "no"; } else { window._visible = 0; } } function are_they_moving() { if (mode == "balls_move") { var count_balls = 0; var i = 0; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { if ((velx[i] == 0) && (vely[i] == 0)) { count_balls++; } else { break; } } else { count_balls++; } } if (count_balls >= num_of_balls) { mode = "stopped"; } } } function make_throwable() { var i = 0; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { ox[i] = x[i]; oy[i] = y[i]; velx[i] = velx[i] * friction; vely[i] = vely[i] * friction; if ((Math.abs(velx[i]) < velmin) && (Math.abs(vely[i]) < velmin)) { velx[i] = 0; vely[i] = 0; } vely[i] = vely[i] + gravity; x[i] = this["ball" + i]._x; y[i] = this["ball" + i]._y; if (this["drag" + i] == 1) { velx[i] = x[i] - ox[i]; vely[i] = y[i] - oy[i]; } else { x[i] = x[i] + velx[i]; y[i] = y[i] + vely[i]; } } } } function wall_detection() { var i = 0; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { if (right < (x[i] + r[i])) { var txm = x[i]; x[i] = right - r[i]; var ratiom = (Math.abs(ox[i] - x[i]) / Math.abs(ox[i] - txm)); var subm = (Math.abs(oy[i] - y[i]) * ratiom); (((0 < vely[i]) ? ((y[i] = oy[i] + subm)) : ((y[i] = oy[i] - subm))));// not popped velx[i] = velx[i] * -1; } if ((x[i] - r[i]) < left) { var txm = x[i]; x[i] = left + r[i]; var ratiom = (Math.abs(ox[i] - x[i]) / Math.abs(ox[i] - txm)); var subm = (Math.abs(oy[i] - y[i]) * ratiom); (((0 < vely[i]) ? ((y[i] = oy[i] + subm)) : ((y[i] = oy[i] - subm))));// not popped velx[i] = velx[i] * -1; } if (bottom < (y[i] + r[i])) { var tym = y[i]; y[i] = bottom - r[i]; var ratiom = (Math.abs(oy[i] - y[i]) / Math.abs(oy[i] - tym)); var subm = (Math.abs(ox[i] - x[i]) * ratiom); (((0 < velx[i]) ? ((x[i] = ox[i] + subm)) : ((x[i] = ox[i] - subm))));// not popped vely[i] = vely[i] * -1; } if ((y[i] - r[i]) < top) { var tym = y[i]; y[i] = top + r[i]; var ratiom = (Math.abs(oy[i] - y[i]) / Math.abs(oy[i] - tym)); var subm = (Math.abs(ox[i] - x[i]) * ratiom); (((0 < velx[i]) ? ((x[i] = ox[i] + subm)) : ((x[i] = ox[i] - subm))));// not popped vely[i] = vely[i] * -1; } } } } function collision_detection() { var i = 0; while (num_of_balls >= (++i)) { var ii = i; while (num_of_balls >= (++ii)) { tempx[i] = x[i]; tempy[i] = y[i]; tempx[ii] = x[ii]; tempy[ii] = y[ii]; if (((this["bot" + i].hitTest(this["bot" + ii]) && (skipBall[i] == 0)) && (skipBall[ii] == 0)) || ((i == 1) && (ii == current_ball))) { dist = Math.sqrt(((tempx[i] - tempx[ii]) * (tempx[i] - tempx[ii])) + ((tempy[i] - tempy[ii]) * (tempy[i] - tempy[ii]))); if (((dist - r[i]) - r[ii]) < 0) { var col = "COLLISION"; var cc = 1; } else { var col = "NO COLLISION"; var cc = 0; } if (cc == 1) { j = i; jj = ii; reaction(); collisionHappened = true; } } } } } function move_balls() { var i = 0; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { this["ball" + i]._x = x[i]; this["bot" + i]._x = x[i]; this["ball" + i]._y = y[i]; this["bot" + i]._y = y[i]; } } } function reaction() { first_ball(); var cx1 = this["ball" + j]._x; var cy1 = this["ball" + j]._y; var cx2 = this["ball" + jj]._x; var cy2 = this["ball" + jj]._y; trans = (Math.PI/180); var cdx = (cx2 - cx1); var cdy = (cy2 - cy1); if (cdx == 0) { var phi = (Math.PI/2); } else { var phi = Math.atan(cdy / cdx); } var vel1 = Math.sqrt(((x[j] - ox[j]) * (x[j] - ox[j])) + ((y[j] - oy[j]) * (y[j] - oy[j]))); var vel2 = Math.sqrt(((x[jj] - ox[jj]) * (x[jj] - ox[jj])) + ((y[jj] - oy[jj]) * (y[jj] - oy[jj]))); var c = 1; var cc = j; while (2 >= c) { if (velx[cc] < 0) { var tempa = (180 + (Math.atan(vely[cc] / velx[cc]) / trans)); } else if ((0 < velx[cc]) and (vely[cc] >= 0)) { var tempa = (Math.atan(vely[cc] / velx[cc]) / trans); } else if ((0 < velx[cc]) and (vely[cc] < 0)) { var tempa = (360 + (Math.atan(vely[cc] / velx[cc]) / trans)); } else if ((velx[cc] == 0) and (vely[cc] == 0)) { var tempa = 0; } else if ((velx[cc] == 0) and (vely[cc] >= 0)) { var tempa = 90; } else { var tempa = 270; } Set("angle" + c, tempa * trans); cc = jj; c = c + 1; } var vxr1 = (vel1 * Math.cos(angle1 - phi)); var vyr1 = (vel1 * Math.sin(angle1 - phi)); var vxr2 = (vel2 * Math.cos(angle2 - phi)); var vyr2 = (vel2 * Math.sin(angle2 - phi)); var nvx1 = ((((mass[j] - mass[jj]) * vxr1) + ((mass[jj] + mass[jj]) * vxr2)) / (mass[j] + mass[jj])); var nvy1 = vyr1; var nvx2 = ((((mass[j] + mass[j]) * vxr1) + ((mass[jj] - mass[j]) * vxr2)) / (mass[j] + mass[jj])); var nvy2 = vyr2; var finalvx1 = ((Math.cos(phi) * nvx1) + (Math.cos(phi + (Math.PI/2)) * nvy1)); var finalvy1 = ((Math.sin(phi) * nvx1) + (Math.sin(phi + (Math.PI/2)) * nvy1)); var finalvx2 = ((Math.cos(phi) * nvx2) + (Math.cos(phi + (Math.PI/2)) * nvy2)); var finalvy2 = ((Math.sin(phi) * nvx2) + (Math.sin(phi + (Math.PI/2)) * nvy2)); num_of_collisions++; this["ball" + j]["hit" + num_of_collisions] = new sound("ball" + j); this["ball" + j]["hit" + num_of_collisions].attachsound("hit"); var loudness = (math.sqrt(((velx[j] - finalvx1) * (velx[j] - finalvx1)) + ((vely[j] - finalvy1) * (vely[j] - finalvy1))) * 10); if (loudness_max < loudness) { loudness = loudness_max; } else if (loudness < loudness_min) { loudness = loudness_min; } var balance = (((cx1 - (left + ((right - left) / 2))) / ((right - left) / 2)) * max_pan); this["ball" + j]["hit" + num_of_collisions].setvolume(loudness); this["ball" + j]["hit" + num_of_collisions].setPan(balance); this["ball" + j]["hit" + num_of_collisions].start(); velx[j] = finalvx1; vely[j] = finalvy1; velx[jj] = finalvx2; vely[jj] = finalvy2; x[j] = ox[j] + velx[j]; y[j] = oy[j] + vely[j]; x[jj] = ox[jj] + velx[jj]; y[jj] = oy[jj] + vely[jj]; } guideyn = 1; gonogo = 0; this.nomoreCalc = 0; stop(); maxSteps = 20; num_of_collisions = 0; hit = new sound(); rack = new sound(); hit.attachsound("hit"); rack.attachsound("rack"); max_pan = 80; loudness_max = 90; loudness_min = 10; top = top._y; bottom = bottom._y; left = left._x; right = right._x; gravity = 0; velmin = 0.1; drag1 = 0; drag2 = 0; num_of_balls = 10; turn = "your_turn"; friction = 0.97; skipBall = new array(); ox = new array(); oy = new array(); x = new array(); y = new array(); tempx = new array(); tempy = new array(); velx = new array(); vely = new array(); r = new array(); mass = new array(); banks = new Array(null, left, top, right, bottom); fill_arrays(); velx[1] = 0;
Instance of Symbol 76 MovieClip "left" in Frame 31
onClipEvent (load) { this._visible = 0; }
Instance of Symbol 78 MovieClip "top" in Frame 31
onClipEvent (load) { this._visible = 0; }
Instance of Symbol 80 MovieClip "right" in Frame 31
onClipEvent (load) { this._visible = 0; }
Instance of Symbol 82 MovieClip "bottom" in Frame 31
onClipEvent (load) { this._visible = 0; }
Instance of Symbol 90 MovieClip "ball1" in Frame 31
onClipEvent (enterFrame) { if (((_root.ball_in_hand == "yes") && (_root.mode == "stopped")) && (_root.turn == "your_turn")) { this.gotoandstop(2); if ((270 < (_x + (_width / 2))) && (_root.breaking == "yes")) { _root.greenness.gotoandstop(2); } else { _root.greenness.gotoandstop(1); } } else { this.gotoandstop(1); } }
Instance of Symbol 114 MovieClip in Frame 31
onClipEvent (enterFrame) { if (_parent.mode == "balls_move") { _parent.collisionHappened = false; _parent.make_throwable(); _parent.wall_detection(); _parent.collision_detection(); if (_parent.collisionHappened) { _parent.collision_detection(); } _parent.move_balls(); _parent.are_they_moving(); } else { _parent.display(); _parent.every_frame(); } _parent.current_ball_temp = _parent.current_ball - 1; }
Instance of Symbol 117 MovieClip "stick" in Frame 31
onClipEvent (load) { function Move_Cue_Ball() { _root.first_ball_done = "no"; _root.pop_up = ""; _root.ball_in_hand = "no"; speed = (-(1 - ((x_limit - far_x) / x_limit))) * speed_max; if (math.abs(speed) < 2) { speed = 2; } _root.loop = "yes"; if (first_shot != "done") { first_shot = "done"; if (speed_limit < speed) { speed = speed_limit; } else if (speed < (-speed_limit)) { speed = -speed_limit; } } _root.mode = "balls_move"; _root.velx[1] = speed * math.cos((math.pi / 180) * alpha); _root.vely[1] = speed * math.sin((math.pi / 180) * alpha); } function guide() { if (_root.guideyn == 1) { velx = (_root.ball1._x - _root._xmouse) / 5; vely = (_root.ball1._y - _root._ymouse) / 5; i = 1; while (_root.maxSteps >= i) { if (i == 1) { x = _root.ball1._x; y = _root.ball1._y; } ox = x; oy = y; x = x + velx; y = y + vely; if ((_root.right - radius) < x) { tempx = x; x = _root.right - radius; top = Math.abs(ox - x); bottom = Math.abs(ox - tempx); ratio = top / bottom; sub = Math.abs(oy - y) * ratio; (((0 < vely) ? ((y = oy + sub)) : ((y = oy - sub))));// not popped velx = velx * -1; } if (x < (_root.left + radius)) { tempx = x; x = _root.left + radius; top = Math.abs(ox - x); bottom = Math.abs(ox - tempx); ratio = top / bottom; sub = Math.abs(oy - y) * ratio; (((0 < vely) ? ((y = oy + sub)) : ((y = oy - sub))));// not popped velx = velx * -1; } if ((_root.bottom - radius) < y) { tempy = y; y = _root.bottom - radius; top = Math.abs(oy - y); bottom = Math.abs(oy - tempy); ratio = top / bottom; sub = Math.abs(ox - x) * ratio; (((0 < velx) ? ((x = ox + sub)) : ((x = ox - sub))));// not popped vely = vely * -1; } if (y < (_root.top + radius)) { tempy = y; y = _root.top + radius; top = Math.abs(oy - y); bottom = Math.abs(oy - tempy); ratio = top / bottom; sub = Math.abs(ox - x) * ratio; (((0 < velx) ? ((x = ox + sub)) : ((x = ox - sub))));// not popped vely = vely * -1; } _root["guide" + i]._x = ox; _root["guide" + i]._y = oy; _root["guide" + i]._xscale = x - ox; _root["guide" + i]._yscale = y - oy; i++; } } } radius = _root.ball1._width / 2; this._visible = 0; inner._x = 0; x_limit = 80; speed_limit = 35; speed_max = 35; end_x = 0; k = 0.1; } onClipEvent (enterFrame) { if (_root.stick_appear == "yes") { this._visible = true; this.inner._x = 0; _root.stick_appear = ""; stick_drag = ""; shoot = ""; } if (shoot == "yes") { inner._x = 0; shoot = ""; vel = xmov; xmov = 0; Move_Cue_Ball(); this._visible = 0; i = 1; while (_root.maxSteps >= i) { removeMovieClip(_root["guide" + i]); i++; } xmov = ((end_x - this._x) * k) + xmov; inner._x = inner._x + xmov; } } onClipEvent (mouseMove) { if (((this._visible == true) && (stick_drag != "yes")) && (_root.gonogo == 0)) { _root.mode = "shooting"; guide(); mx = _root._xmouse; my = _root._ymouse; wx = this._x; wy = this._y; slope = (my - wy) / (mx - wx); theta = Math.atan(slope) * 57.2957795130823; if ((wx < mx) and (my < wy)) { ang = theta * -1; _rotation = (-1 * ang); Set("../:quad", 1); alpha = -1 * ang; } else if ((mx < wx) and (my < wy)) { _rotation = ((180 - theta) * -1); Set("../:quad", 2); ang = 180 - theta; alpha = (180 - theta) * -1; } else if ((mx < wx) and (wy < my)) { _rotation = (180 + theta); ang = 180 - theta; alpha = 180 + theta; Set("../:quad", 3); } else if ((wx < mx) and (wy < my)) { _rotation = ((360 - theta) * -1); Set("../:quad", 4); ang = 360 - theta; alpha = (360 - theta) * -1; } } if ((stick_drag == "yes") && (_root.gonogo == 0)) { if ((this._xmouse < (x_limit + x_shift)) && (inner._x >= 0)) { inner._x = this._xmouse - x_shift; } if (inner._x < 0) { inner._x = 0; } } } onClipEvent (mouseDown) { if ((this._visible == true) && (_root.turn == "your_turn")) { stick_drag = "yes"; x_shift = this._xmouse - inner._x; } } onClipEvent (mouseUp) { if ((((stick_drag == "yes") && (key.isDown(key.SHIFT) == false)) && (_root.turn == "your_turn")) && (this._visible == true)) { stick_drag = "no"; far_x = inner._x; shoot = "yes"; xmov = 0; } else if ((key.isDown(key.SHIFT) == true) && (_root.turn == "your_turn")) { stick_drag = ""; inner._x = 0; } }
Instance of Symbol 121 MovieClip "window" in Frame 31
onClipEvent (load) { this._visible = 0; }
Instance of Symbol 135 MovieClip in Frame 31
onClipEvent (enterFrame) { turn = _parent.turn; current_ball_temp = _parent.current_ball_temp; if (0 >= current_ball_temp) { current_ball_temp = "N/A"; } if (_parent.mode == "balls_move") { status = "The table is locked while the balls are in motion."; } else { if (_parent.winner == "") { if (_parent.turn == "your_turn") { status = "It is now your turn.\r1.) Click once on the cue ball to activate the cue stick."; if (_parent.stick._visible == true) { status = "2.) Move the mouse around the cue ball to aim the stick."; status = status + "\r3.) Click and drag away from the cue ball to gain power."; } if ((_parent.stick.stick_drag == "yes") && (_parent.stick._visible == true)) { status = "4.) Release the mouse to shoot!"; } } else if (_parent.turn == "computers_turn") { status = "It is now the computer's turn."; } } else { status = _parent.winner; } if (((_parent.ball_in_hand == "yes") && (_parent.turn == "your_turn")) && (_parent.winner == "")) { status = "It is Your Turn and you have Ball-In-Hand. Click and drag the ball to the desired position, and then release."; } } }
Instance of Symbol 138 MovieClip "guide_choice" in Frame 31
onClipEvent (load) { _root.guides = 1; } onClipEvent (data) { if (mode != "balls_move") { if ((Key.getCode() == 71) && (_root.guide_choice._currentframe == 1)) { _root.guideyn = 0; var i = 1; while (_root.maxSteps >= i) { removeMovieClip(_root["guide" + i]); i++; } _root.guide_choice.gotoAndStop(2); } else if ((Key.getCode() == 71) && (_root.guide_choice._currentframe == 2)) { _root.guideyn = 1; var i = 1; while (_root.maxSteps >= i) { duplicateMovieClip ("/guide", "guide" + i, i); i++; } _root.guide_choice.gotoAndStop(1); } } } onClipEvent (keyDown) { if (Key.getCode() == 71) { if (_root.guides == 1) { _root.guides = 0; this.gotoandstop(2); } else { _root.guides = 1; this.gotoandstop(1); } } }
Symbol 20 MovieClip Frame 1
stop();
Symbol 20 MovieClip Frame 2
stop();
Symbol 20 MovieClip Frame 3
stop();
Symbol 20 MovieClip Frame 4
stop();
Symbol 20 MovieClip Frame 5
stop();
Symbol 20 MovieClip Frame 6
stop();
Symbol 22 Button
on (rollOver) { tellTarget ("/highlight") { gotoAndStop (3); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { getURL ("http://www.electrotank.com/games/multiuser/"); }
Symbol 23 Button
on (rollOver) { tellTarget ("/highlight") { gotoAndStop (4); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { gotoAndStop (20); }
Symbol 24 Button
on (rollOver) { tellTarget ("/highlight") { gotoAndStop (5); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { gotoAndStop (23); }
Symbol 25 Button
on (rollOver) { tellTarget ("/highlight") { gotoAndStop (2); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { gotoAndStop (31); }
Symbol 26 Button
on (rollOver) { tellTarget ("/highlight") { gotoAndStop (6); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { gotoAndStop (16); }
Symbol 36 MovieClip Frame 1
stop();
Symbol 36 MovieClip Frame 2
stop();
Symbol 37 Button
on (rollOver) { tellTarget ("/back") { gotoAndStop (2); }; } on (rollOut) { tellTarget ("/back") { gotoAndStop (1); }; } on (release) { gotoAndStop (10); }
Symbol 43 MovieClip Frame 1
stop();
Symbol 43 MovieClip Frame 2
stop();
Symbol 57 MovieClip Frame 1
stop();
Symbol 57 MovieClip Frame 2
stop();
Symbol 57 MovieClip Frame 3
stop();
Symbol 57 MovieClip Frame 4
stop();
Symbol 58 Button
on (rollOver) { tellTarget ("/over") { gotoAndStop (2); }; } on (rollOut) { tellTarget ("/over") { gotoAndStop (1); }; } on (release) { new_game(); }
Symbol 59 Button
on (rollOver) { tellTarget ("/over") { gotoAndStop (3); }; } on (rollOut) { tellTarget ("/over") { gotoAndStop (1); }; } on (release) { credits.gotoAndStop(1); instructions.gotoAndStop(2); }
Symbol 60 Button
on (rollOver) { tellTarget ("/over") { gotoAndStop (4); }; } on (rollOut) { tellTarget ("/over") { gotoAndStop (1); }; } on (release) { credits.gotoAndStop(2); instructions.gotoAndStop(1); }
Symbol 65 MovieClip Frame 1
stop();
Instance of Symbol 72 MovieClip in Symbol 73 MovieClip Frame 1
/* no clip actions */
Symbol 74 MovieClip Frame 1
_root.table.greenness.gotoAndStop(1); stop();
Symbol 74 MovieClip Frame 2
_root.table.greenness.gotoAndStop(2);
Symbol 87 MovieClip Frame 1
stop();
Symbol 87 MovieClip Frame 44
gotoAndPlay (5);
Symbol 89 Button
on (press) { if ((_root.turn == "your_turn") && (_root.mode == "stopped")) { if (_root.ball_in_hand == "yes") { _root.drag1 = 1; _root.t1 = 1; startDrag ("", false, 155, 105, 560, 285); } else { i = 1; while (_root.maxSteps >= i) { duplicateMovieClip ("/guide", "guide" + i, i); i++; } } } } on (release, releaseOutside) { if (((_root.turn == "your_turn") && (_root.mode == "stopped")) && (_root.noShoot != 1)) { _root.drag1 = 0; stopDrag(); } } on (release) { if ((((_root.turn == "your_turn") && (_root.mode == "stopped")) && (_root.ball_in_hand != "yes")) && (_root.noShoot != 1)) { _root.loop = "no"; _root.stick_appear = "yes"; _root.stick._x = this._x; _root.stick._y = this._y; } if ((270 < (_x + (_width / 2))) && (_root.breaking == "yes")) { _root.ball_in_hand = "yes"; _root.breaking = "yes"; _x = 240; _y = 290; } else { _root.ball_in_hand = ""; _root.breaking = ""; } _parent.velx[0] = 0; _parent.vely[0] = 0; }
Symbol 90 MovieClip Frame 1
ball.gotoAndStop(1); n = _name.substr(4); begin_x = this._x; begin_y = this._y; stop();
Instance of Symbol 87 MovieClip "ball" in Symbol 90 MovieClip Frame 1
onClipEvent (load) { radius1 = _root.pocket1._width / 2; radius2 = this._width / 2; name = substring(_parent._name, 5, 2); } onClipEvent (enterFrame) { ox = x; oy = y; x = _parent._x; y = _parent._y; if ((x != ox) && (y != oy)) { if (_parent._y < 250) { start = 1; finish = 3; } else { start = 4; finish = 6; } i = start; while (finish >= i) { if (_parent.hitTest(_root["pocket" + i])) { dX = _parent._x - _root["pocket" + i]._x; dY = _parent._y - _root["pocket" + i]._y; dist = Math.sqrt((dX * dX) + (dY * dY)); if ((dist - radius1) < 0) { _root.skipBall[this.name] = 1; _parent._visible = 0; _parent._x = 1000 * i; _root.pocket_verification(this._parent.n); } } i++; } } }
Symbol 90 MovieClip Frame 2
ball.gotoAndPlay("fade");
Symbol 91 MovieClip Frame 1
stop();
Symbol 91 MovieClip Frame 44
gotoAndPlay (5);
Symbol 112 MovieClip Frame 1
stop(); if (_name != "dummy") { n = _name.substr(4); nn = Number(n) - 1; begin_x = this._x; begin_y = this._y; this.gotoandstop(Number(n) + 1); }
Instance of Symbol 91 MovieClip in Symbol 112 MovieClip Frame 1
onClipEvent (load) { function stuff() { if (this._parent.hitTest(_parent._parent._xmouse, _parent._parent._ymouse)) { _parent._parent.pop_up = this._parent.n; } var ox = x; var oy = y; var x = _parent._x; var y = _parent._y; if ((x != ox) && (y != oy)) { if (_parent._y < 250) { if (_parent._x < 275) { var start = 1; var finish = 1; } else if ((275 < _parent._x) && (_parent._x < 535)) { var start = 2; var finish = 2; } else { var start = 3; var finish = 3; } } else if (_parent._x < 275) { var start = 6; var finish = 6; } else if ((275 < _parent._x) && (_parent._x < 535)) { var start = 5; var finish = 5; } else { var start = 4; var finish = 4; } var i = start; while (finish >= i) { if (_parent.hitTest(_parent._parent["pocket" + i])) { var dX = (_parent._x - _parent._parent["pocket" + i]._x); var dY = (_parent._y - _parent._parent["pocket" + i]._y); var dist = Math.sqrt((dX * dX) + (dY * dY)); if ((dist - radius1) < 0) { trough = new sound(this); trough.attachSound("trough"); trough.start(); _parent._parent.skipBall[this.name] = 1; _parent._visible = 0; _parent._x = 1000 * i; _parent._parent.pocket_verification(this._parent.n); } } i++; } } } if (_parent._name != "dummy") { this._parent._visible = 0; radius1 = _parent._parent.pocket1._width / 2; radius2 = this._width / 2; name = substring(_parent._name, 5, 2); } } onClipEvent (enterFrame) { stuff(); }
Symbol 114 MovieClip Frame 2
stop(); _parent.new_Game();
Symbol 116 MovieClip Frame 1
stop();
Symbol 116 MovieClip Frame 2
_root.stick._visible = 1; _root.stick.stick_drag = "yes";
Symbol 116 MovieClip Frame 25
_root.velx[1] = tempvelx; _root.vely[1] = tempvely; _root.stick._visible = 0; _root.mode = "balls_move"; gotoAndStop (1); _root.gonogo = 0; trace(tempvelx); trace(tempvely); _root.nomoreCalc = 0;
Instance of Symbol 119 MovieClip in Symbol 120 MovieClip Frame 1
onClipEvent (enterFrame) { _parent._visible = _root.guides; }
Symbol 134 MovieClip Frame 1
stop(); if (_name != "dummy") { n = _name.substr(4); nn = Number(n) - 1; begin_x = this._x; begin_y = this._y; this.gotoandstop(Number(n) + 1); }
Instance of Symbol 91 MovieClip in Symbol 134 MovieClip Frame 1
onClipEvent (load) { function stuff() { if (this._parent.hitTest(_parent._parent._xmouse, _parent._parent._ymouse)) { _parent._parent.pop_up = this._parent.n; } var ox = x; var oy = y; var x = _parent._x; var y = _parent._y; if ((x != ox) && (y != oy)) { if (_parent._y < 250) { if (_parent._x < 275) { var start = 1; var finish = 1; } else if ((275 < _parent._x) && (_parent._x < 535)) { var start = 2; var finish = 2; } else { var start = 3; var finish = 3; } } else if (_parent._x < 275) { var start = 6; var finish = 6; } else if ((275 < _parent._x) && (_parent._x < 535)) { var start = 5; var finish = 5; } else { var start = 4; var finish = 4; } var i = start; while (finish >= i) { if (_parent.hitTest(_parent._parent["pocket" + i])) { var dX = (_parent._x - _parent._parent["pocket" + i]._x); var dY = (_parent._y - _parent._parent["pocket" + i]._y); var dist = Math.sqrt((dX * dX) + (dY * dY)); if ((dist - radius1) < 0) { trough = new sound(this); trough.attachSound("trough"); trough.start(); _parent._parent.skipBall[this.name] = 1; _parent._visible = 0; _parent._x = 1000 * i; _parent._parent.pocket_verification(this._parent.n); } } i++; } } } if (_parent._name != "dummy") { this._parent._visible = 0; radius1 = _parent._parent.pocket1._width / 2; radius2 = this._width / 2; name = substring(_parent._name, 5, 2); } } onClipEvent (enterFrame) { stuff(); }
Instance of Symbol 134 MovieClip "dummy" in Symbol 135 MovieClip Frame 1
onClipEvent (enterFrame) { n = _parent.current_ball_temp; nn = n; this.gotoandstop(Number(n) + 2); }
Symbol 138 MovieClip Frame 1
stop();
Symbol 147 Button
on (release) { gotoAndStop (2); }
Symbol 152 Button
on (release) { gotoAndStop (1); }
Symbol 156 Button
on (release) { gotoAndStop (4); }
Symbol 158 Button
on (release) { gotoAndStop (13); }
Symbol 162 MovieClip Frame 1
stop();
Symbol 162 MovieClip Frame 2
stop();
Symbol 162 MovieClip Frame 4
stop();
Symbol 162 MovieClip Frame 13
stop();
Symbol 170 Button
on (release) { getURL ("http://www.electrotank.com", "_blank"); }
Symbol 171 Button
on (release) { gotoAndStop (1); }
Symbol 172 MovieClip Frame 1
stop();
Symbol 172 MovieClip Frame 2
stop();

Library Items

Symbol 1 Sound [trough]
Symbol 2 Sound [rack]
Symbol 3 Sound [hit]
Symbol 4 FontUsed by:5 64 113 132 133 136 148 157 159 160 161 164 165 166 167 168
Symbol 5 EditableTextUses:4Used by:Timeline
Symbol 6 GraphicUsed by:7 170
Symbol 7 MovieClipUses:6Used by:Timeline
Symbol 8 GraphicUsed by:Timeline
Symbol 9 FontUsed by:10
Symbol 10 TextUses:9Used by:Timeline
Symbol 11 GraphicUsed by:Timeline
Symbol 12 FontUsed by:13 14 15 16 17 18 19 27 30 33 34 35 41 42 44 45 49 51 52
Symbol 13 TextUses:12Used by:Timeline
Symbol 14 TextUses:12Used by:Timeline
Symbol 15 TextUses:12Used by:20
Symbol 16 TextUses:12Used by:20
Symbol 17 TextUses:12Used by:20
Symbol 18 TextUses:12Used by:20
Symbol 19 TextUses:12Used by:20
Symbol 20 MovieClipUses:15 16 17 18 19Used by:Timeline
Symbol 21 GraphicUsed by:22 23 24 25 26 37 58 59 60
Symbol 22 ButtonUses:21Used by:Timeline
Symbol 23 ButtonUses:21Used by:Timeline
Symbol 24 ButtonUses:21Used by:Timeline
Symbol 25 ButtonUses:21Used by:Timeline
Symbol 26 ButtonUses:21Used by:Timeline
Symbol 27 TextUses:12Used by:Timeline
Symbol 28 FontUsed by:29 31 39 40 46 47
Symbol 29 TextUses:28Used by:Timeline
Symbol 30 TextUses:12Used by:Timeline
Symbol 31 TextUses:28Used by:Timeline
Symbol 32 GraphicUsed by:Timeline
Symbol 33 TextUses:12Used by:Timeline
Symbol 34 TextUses:12Used by:Timeline
Symbol 35 TextUses:12Used by:36 43
Symbol 36 MovieClipUses:35Used by:Timeline
Symbol 37 ButtonUses:21Used by:Timeline
Symbol 38 FontUsed by:39 40
Symbol 39 TextUses:38 28Used by:Timeline
Symbol 40 TextUses:38 28Used by:Timeline
Symbol 41 TextUses:12Used by:Timeline
Symbol 42 TextUses:12Used by:Timeline
Symbol 43 MovieClipUses:35Used by:Timeline
Symbol 44 TextUses:12Used by:Timeline
Symbol 45 TextUses:12Used by:Timeline
Symbol 46 TextUses:28Used by:Timeline
Symbol 47 TextUses:28Used by:Timeline
Symbol 48 GraphicUsed by:Timeline
Symbol 49 TextUses:12Used by:Timeline
Symbol 50 GraphicUsed by:Timeline
Symbol 51 TextUses:12Used by:Timeline
Symbol 52 TextUses:12Used by:Timeline
Symbol 53 GraphicUsed by:Timeline
Symbol 54 GraphicUsed by:57
Symbol 55 GraphicUsed by:57
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClipUses:54 55 56Used by:Timeline
Symbol 58 ButtonUses:21Used by:Timeline
Symbol 59 ButtonUses:21Used by:Timeline
Symbol 60 ButtonUses:21Used by:Timeline
Symbol 61 GraphicUsed by:62 70
Symbol 62 MovieClipUses:61Used by:70
Symbol 63 GraphicUsed by:65
Symbol 64 TextUses:4Used by:65
Symbol 65 MovieClipUses:63 64Used by:70
Symbol 66 GraphicUsed by:70
Symbol 67 GraphicUsed by:70
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68Used by:70
Symbol 70 MovieClipUses:62 61 65 66 67 69Used by:Timeline
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:73
Symbol 73 MovieClipUses:72Used by:Timeline
Symbol 74 MovieClipUsed by:Timeline
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:Timeline
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:77Used by:Timeline
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClipUses:79Used by:Timeline
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClipUses:81Used by:Timeline
Symbol 83 GraphicUsed by:87 91 112 134
Symbol 84 ShapeTweeningUsed by:87 91
Symbol 85 ShapeTweeningUsed by:87 91
Symbol 86 GraphicUsed by:87 91
Symbol 87 MovieClipUses:83 84 85 86Used by:90
Symbol 88 GraphicUsed by:89
Symbol 89 ButtonUses:88Used by:90
Symbol 90 MovieClipUses:87 89Used by:Timeline
Symbol 91 MovieClipUses:83 84 85 86Used by:112 134
Symbol 92 GraphicUsed by:112 134
Symbol 93 GraphicUsed by:112 134
Symbol 94 FontUsed by:95 97 99 101 103 105 107 109 111 160 161
Symbol 95 TextUses:94Used by:112 134
Symbol 96 GraphicUsed by:112 134
Symbol 97 TextUses:94Used by:112 134
Symbol 98 GraphicUsed by:112 134
Symbol 99 TextUses:94Used by:112 134
Symbol 100 GraphicUsed by:112 134
Symbol 101 TextUses:94Used by:112 134
Symbol 102 GraphicUsed by:112 134
Symbol 103 TextUses:94Used by:112 134
Symbol 104 GraphicUsed by:112 134
Symbol 105 TextUses:94Used by:112 134
Symbol 106 GraphicUsed by:112 134
Symbol 107 TextUses:94Used by:112 134
Symbol 108 GraphicUsed by:112 134
Symbol 109 TextUses:94Used by:112 134
Symbol 110 GraphicUsed by:112 134
Symbol 111 TextUses:94Used by:112 134
Symbol 112 MovieClipUses:83 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111Used by:Timeline
Symbol 113 TextUses:4Used by:114
Symbol 114 MovieClipUses:113Used by:Timeline
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClipUses:115Used by:117
Symbol 117 MovieClipUses:116Used by:Timeline
Symbol 118 GraphicUsed by:120
Symbol 119 MovieClipUsed by:120
Symbol 120 MovieClipUses:118 119Used by:Timeline
Symbol 121 MovieClipUsed by:Timeline
Symbol 122 GraphicUsed by:123 124
Symbol 123 MovieClipUses:122Used by:Timeline
Symbol 124 MovieClipUses:122Used by:Timeline
Symbol 125 GraphicUsed by:Timeline
Symbol 126 FontUsed by:127
Symbol 127 EditableTextUses:126Used by:Timeline
Symbol 128 GraphicUsed by:Timeline
Symbol 129 FontUsed by:130 131 137 149 150
Symbol 130 TextUses:129Used by:135
Symbol 131 TextUses:129Used by:135
Symbol 132 EditableTextUses:4Used by:135
Symbol 133 EditableTextUses:4Used by:135
Symbol 134 MovieClipUses:83 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111Used by:135
Symbol 135 MovieClipUses:130 131 132 133 134Used by:Timeline
Symbol 136 TextUses:4Used by:138
Symbol 137 TextUses:129Used by:138
Symbol 138 MovieClipUses:136 137Used by:Timeline
Symbol 139 GraphicUsed by:162
Symbol 140 FontUsed by:141 142 146
Symbol 141 TextUses:140Used by:147
Symbol 142 TextUses:140Used by:147
Symbol 143 GraphicUsed by:147
Symbol 144 FontUsed by:145
Symbol 145 TextUses:144Used by:147
Symbol 146 TextUses:140Used by:147
Symbol 147 ButtonUses:141 142 143 145 146Used by:162
Symbol 148 TextUses:4Used by:162
Symbol 149 TextUses:129Used by:152 171
Symbol 150 TextUses:129Used by:152 171
Symbol 151 GraphicUsed by:152 171
Symbol 152 ButtonUses:149 150 151Used by:162
Symbol 153 GraphicUsed by:156 158
Symbol 154 GraphicUsed by:156 158
Symbol 155 GraphicUsed by:156 158
Symbol 156 ButtonUses:153 154 155Used by:162
Symbol 157 TextUses:4Used by:162
Symbol 158 ButtonUses:153 154 155Used by:162
Symbol 159 TextUses:4Used by:162
Symbol 160 TextUses:94 4Used by:162
Symbol 161 TextUses:4 94Used by:162
Symbol 162 MovieClipUses:139 147 148 152 156 157 158 159 160 161Used by:Timeline
Symbol 163 GraphicUsed by:172
Symbol 164 TextUses:4Used by:172
Symbol 165 TextUses:4Used by:172
Symbol 166 TextUses:4Used by:172
Symbol 167 TextUses:4Used by:172
Symbol 168 TextUses:4Used by:172
Symbol 169 GraphicUsed by:170
Symbol 170 ButtonUses:6 169Used by:172
Symbol 171 ButtonUses:149 150 151Used by:172
Symbol 172 MovieClipUses:163 164 165 166 167 168 170 171Used by:Timeline

Instance Names

"highlight"Frame 10Symbol 20 MovieClip
"back"Frame 16Symbol 36 MovieClip
"back"Frame 20Symbol 43 MovieClip
"over"Frame 31Symbol 57 MovieClip
"table"Frame 31Symbol 70 MovieClip
"pocket1"Frame 31Symbol 73 MovieClip
"pocket2"Frame 31Symbol 73 MovieClip
"pocket3"Frame 31Symbol 73 MovieClip
"pocket4"Frame 31Symbol 73 MovieClip
"pocket5"Frame 31Symbol 73 MovieClip
"pocket6"Frame 31Symbol 73 MovieClip
"greenness"Frame 31Symbol 74 MovieClip
"left"Frame 31Symbol 76 MovieClip
"top"Frame 31Symbol 78 MovieClip
"right"Frame 31Symbol 80 MovieClip
"bottom"Frame 31Symbol 82 MovieClip
"ball1"Frame 31Symbol 90 MovieClip
"ball2"Frame 31Symbol 112 MovieClip
"ball4"Frame 31Symbol 112 MovieClip
"ball6"Frame 31Symbol 112 MovieClip
"ball5"Frame 31Symbol 112 MovieClip
"ball7"Frame 31Symbol 112 MovieClip
"ball9"Frame 31Symbol 112 MovieClip
"ball10"Frame 31Symbol 112 MovieClip
"ball8"Frame 31Symbol 112 MovieClip
"ball3"Frame 31Symbol 112 MovieClip
"stick"Frame 31Symbol 117 MovieClip
"guide"Frame 31Symbol 120 MovieClip
"window"Frame 31Symbol 121 MovieClip
"bot"Frame 31Symbol 123 MovieClip
"tester"Frame 31Symbol 124 MovieClip
"guide_choice"Frame 31Symbol 138 MovieClip
"instructions"Frame 31Symbol 162 MovieClip
"credits"Frame 31Symbol 172 MovieClip
"greenness"Symbol 70 MovieClip Frame 1Symbol 65 MovieClip
"ball"Symbol 90 MovieClip Frame 1Symbol 87 MovieClip
"inner"Symbol 117 MovieClip Frame 1Symbol 116 MovieClip
"dummy"Symbol 135 MovieClip Frame 1Symbol 134 MovieClip

Special Tags

Protect (24)Timeline Frame 10 bytes ""
ExportAssets (56)Timeline Frame 1Symbol 1 as "trough"
ExportAssets (56)Timeline Frame 1Symbol 2 as "rack"
ExportAssets (56)Timeline Frame 1Symbol 3 as "hit"

Labels

"ready"Frame 10
"credits"Frame 16
"controls"Frame 20
"rules"Frame 23
"fade"Symbol 87 MovieClip Frame 5
"fade"Symbol 91 MovieClip Frame 5
"userControls"Symbol 162 MovieClip Frame 4
"howToPlay"Symbol 162 MovieClip Frame 13

Dynamic Text Variables

percentSymbol 5 EditableText""
turnSymbol 127 EditableText"turnturn"
statusSymbol 132 EditableText"Test"
statusSymbol 133 EditableText"Test"




http://swfchan.com/6/27978/info.shtml
Created: 20/5 -2019 21:40:38 Last modified: 20/5 -2019 21:40:38 Server time: 28/04 -2024 20:06:41