home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Aventura / pendekar.swf / scripts / DefineSprite_745 / frame_1 / DoAction.as
Text File  |  2006-05-08  |  12KB  |  537 lines

  1. function init()
  2. {
  3.    if(runOnce)
  4.    {
  5.       return undefined;
  6.    }
  7.    this.runOnce = true;
  8.    this.stageWidth = Stage.width;
  9.    this.stageHeight = Stage.height;
  10.    this.stageName = "Untitled";
  11.    this.stageLength = 100;
  12.    this.envBuffer = new Array();
  13.    this.envDepth = 100;
  14.    this.envCount = 0;
  15.    this.flrBuffer = new Array();
  16.    this.flrDepth = 200;
  17.    this.flrCount = 0;
  18.    this.oTypeBuffer = new Array();
  19.    this.oDistBuffer = new Array();
  20.    this.oVisBuffer = new Array();
  21.    this.oDepth = 300;
  22.    this.oCount = 0;
  23.    this.pBuffer = new Array();
  24.    this.pDepth = 400;
  25.    this.pCount = 0;
  26.    this.sDepth = 500;
  27.    this.speed = 4;
  28.    this.dist = 0;
  29.    this.cp = 0;
  30.    this.bodyCount = 0;
  31.    this.isScroll = true;
  32.    switch(_root.currentLevel)
  33.    {
  34.       case 0:
  35.          this.attachMovie("level01","scenario",sDepth);
  36.          break;
  37.       case 1:
  38.          this.attachMovie("level02","scenario",sDepth);
  39.          break;
  40.       case 2:
  41.          this.attachMovie("level03","scenario",sDepth);
  42.          break;
  43.       case 3:
  44.          this.attachMovie("level04","scenario",sDepth);
  45.          break;
  46.       case 4:
  47.          this.attachMovie("practice","scenario",sDepth);
  48.          break;
  49.       case 5:
  50.          this.attachMovie("challenge01","scenario",sDepth);
  51.          break;
  52.       case 6:
  53.          this.attachMovie("challenge02","scenario",sDepth);
  54.          break;
  55.       default:
  56.          trace("err: Level scenario not loaded!");
  57.    }
  58.    sDepth++;
  59. }
  60. function setStage(stageName, stageLength, flr, env, bg)
  61. {
  62.    this.stageName = stageName;
  63.    this.stageLength = stageLength;
  64.    setComboTimer();
  65.    i = 0;
  66.    while(i < 4)
  67.    {
  68.       addFlr(flr);
  69.       i++;
  70.    }
  71.    this.flr = flr;
  72.    addEnv(env);
  73.    this.env = env;
  74.    this.attachMovie(bg,"bg",1);
  75.    this.attachMovie("screen_flasher_in","flasher",sDepth);
  76.    sDepth++;
  77.    this.attachMovie("oDimmer","dimmer",sDepth);
  78.    sDepth++;
  79.    this.attachMovie("hud","hud",sDepth);
  80.    mCombo = hud.combo;
  81.    sDepth++;
  82.    addSFXChannels(3);
  83. }
  84. function addFlr(flr)
  85. {
  86.    if(flr == undefined)
  87.    {
  88.       trace("err: Stage floor undefined!");
  89.    }
  90.    if(flrBuffer.length == 0)
  91.    {
  92.       newFlr = "flr_0";
  93.    }
  94.    else
  95.    {
  96.       newFlr = flrBuffer[flrBuffer.length - 1]._name.substr(0,4) + flrCount;
  97.    }
  98.    this.attachMovie(flr,newFlr,flrDepth);
  99.    this[newFlr]._y = stageHeight - this[newFlr]._height;
  100.    this[newFlr]._x = flrBuffer[flrBuffer.length - 1]._x + flrBuffer[flrBuffer.length - 1]._width;
  101.    flrBuffer.push(this[newFlr]);
  102.    flrCount++;
  103.    if(flrDepth < 299)
  104.    {
  105.       flrDepth++;
  106.    }
  107.    else
  108.    {
  109.       flrDepth = 200;
  110.    }
  111. }
  112. function addEnv(env)
  113. {
  114.    if(env == undefined)
  115.    {
  116.       trace("err: Stage environment undefined!");
  117.    }
  118.    if(envBuffer.length == 0)
  119.    {
  120.       newEnv = "env_0";
  121.    }
  122.    else
  123.    {
  124.       newEnv = envBuffer[envBuffer.length - 1]._name.substr(0,4) + envCount;
  125.    }
  126.    this.attachMovie(env,newEnv,envDepth);
  127.    this[newEnv]._y = stageHeight - (this[newEnv]._height + 50);
  128.    this[newEnv]._x = envBuffer[envBuffer.length - 1]._x + envBuffer[envBuffer.length - 1]._width;
  129.    envBuffer.push(this[newEnv]);
  130.    envCount++;
  131.    if(envDepth < 199)
  132.    {
  133.       envDepth++;
  134.    }
  135.    else
  136.    {
  137.       envDepth = 100;
  138.    }
  139. }
  140. function scrollStage(speed)
  141. {
  142.    if(dist >= stageLength)
  143.    {
  144.       scenario.checkPoint(cp);
  145.       return undefined;
  146.    }
  147.    if(speed == undefined)
  148.    {
  149.       trace("err: Stage scroll speed undefined!");
  150.       return undefined;
  151.    }
  152.    if(isObjectVisible())
  153.    {
  154.       addObject();
  155.    }
  156.    if(oVisBuffer.length > 0)
  157.    {
  158.       scrollObject(speed);
  159.    }
  160.    scrollFlr(speed);
  161.    scrollEnv(speed);
  162.    scrollBg(speed);
  163.    dist += speed;
  164. }
  165. function scrollObject(speed)
  166. {
  167.    i = 0;
  168.    while(i < oVisBuffer.length)
  169.    {
  170.       oVisBuffer[i]._x -= speed;
  171.       i++;
  172.    }
  173.    if(oVisBuffer[0]._x <= -1 * oVisBuffer[0]._width)
  174.    {
  175.       removeMovieClip(oVisBuffer.shift());
  176.    }
  177. }
  178. function scrollFlr(speed)
  179. {
  180.    if(flrBuffer[flrBuffer.length - 1]._x - speed + flrBuffer[flrBuffer.length - 1]._width <= stageWidth)
  181.    {
  182.       addFlr(this.flr);
  183.    }
  184.    i = 0;
  185.    while(i < flrBuffer.length)
  186.    {
  187.       flrBuffer[i]._x -= speed;
  188.       i++;
  189.    }
  190.    if(flrBuffer[0]._x <= -1 * flrBuffer[0]._width)
  191.    {
  192.       removeMovieClip(flrBuffer.shift());
  193.    }
  194. }
  195. function scrollEnv(speed)
  196. {
  197.    speed /= 2;
  198.    if(envBuffer[envBuffer.length - 1]._x - speed + envBuffer[envBuffer.length - 1]._width <= stageWidth)
  199.    {
  200.       addEnv(this.env);
  201.    }
  202.    i = 0;
  203.    while(i < envBuffer.length)
  204.    {
  205.       envBuffer[i]._x -= speed;
  206.       i++;
  207.    }
  208.    if(envBuffer[0]._x <= -1 * envBuffer[0]._width)
  209.    {
  210.       removeMovieClip(envBuffer.shift());
  211.    }
  212. }
  213. function scrollBg(speed)
  214. {
  215.    speed = Math.round(speed / 16);
  216.    if(bg._x > -1 * (bg._width - stageWidth))
  217.    {
  218.       bg._x -= speed;
  219.    }
  220. }
  221. function addSFXChannels(number)
  222. {
  223.    if(number == undefined)
  224.    {
  225.       trace("err: SFX channels undefined");
  226.       return undefined;
  227.    }
  228.    SFXChannel = new Array(number);
  229.    SFXStatus = new Array(number);
  230.    i = 0;
  231.    while(i < number)
  232.    {
  233.       SFXChannel[i] = new Sound();
  234.       SFXStatus[i] = true;
  235.       SFXChannel[i].onSoundComplete = function()
  236.       {
  237.          SFXStatus[i] = true;
  238.       };
  239.       i++;
  240.    }
  241. }
  242. function playSFX(name)
  243. {
  244.    i = 0;
  245.    if(i < SFXChannel.length)
  246.    {
  247.       if(SFXStatus[i])
  248.       {
  249.          SFXChannel[i].attachSound(name);
  250.          SFXChannel[i].start();
  251.       }
  252.       return undefined;
  253.    }
  254. }
  255. function setComboTimer()
  256. {
  257.    comboCount = 0;
  258.    this.attachMovie("oComboTimer","oComboTimer",sDepth);
  259.    sDepth++;
  260. }
  261. function resetComboTimer()
  262. {
  263.    oComboTimer.count = 0;
  264.    oComboTimer.play();
  265.    comboCount++;
  266. }
  267. function displayMaxCombo()
  268. {
  269.    if(comboCount > 1)
  270.    {
  271.       mCombo.display(comboCount);
  272.    }
  273. }
  274. function addObject()
  275. {
  276.    oCount++;
  277.    if(oDepth < 399)
  278.    {
  279.       oDepth++;
  280.    }
  281.    else
  282.    {
  283.       oDepth = 300;
  284.    }
  285.    oID = "object" + oCount;
  286.    newObjectType = oTypeBuffer.shift();
  287.    newObjectDist = oDistBuffer.shift();
  288.    attachMovie(newObjectType,oID,oDepth);
  289.    oVisBuffer.push(this[oID]);
  290.    this[oID]._x = stageWidth + newObjectDist - dist;
  291.    this[oID]._y = stageHeight - 30;
  292. }
  293. function registerObject(oType, oDist)
  294. {
  295.    oTypeBuffer.push(oType);
  296.    oDistBuffer.push(oDist);
  297. }
  298. function spawnObject(oType, oPos)
  299. {
  300.    oCount++;
  301.    if(oDepth < 399)
  302.    {
  303.       oDepth++;
  304.    }
  305.    else
  306.    {
  307.       oDepth = 300;
  308.    }
  309.    oID = "object" + oCount;
  310.    attachMovie(oType,oID,oDepth);
  311.    oVisBuffer.push(this[oID]);
  312.    this[oID]._x = oPos;
  313.    this[oID]._y = stageHeight - 30;
  314.    this[oID].intro = true;
  315.    return this[oID];
  316. }
  317. function isObjectVisible()
  318. {
  319.    oDist = oDistBuffer[0];
  320.    return dist < oDist ? false : true;
  321. }
  322. function pickupObject(hit, player)
  323. {
  324.    i = 0;
  325.    while(i < oVisBuffer.length)
  326.    {
  327.       if(hit.hitTest(oVisBuffer[i]) && oVisBuffer[i].id > 0)
  328.       {
  329.          weapon = player.weapon;
  330.          if(weapon > 0)
  331.          {
  332.             spawnObject("oWeapon" + getWeaponName(weapon),player._x + player.dirValue(40));
  333.          }
  334.          player.weapon = oVisBuffer[i].id;
  335.          removeMovieClip(oVisBuffer[i]);
  336.       }
  337.       i++;
  338.    }
  339. }
  340. function isPlayerConnect(hit, object)
  341. {
  342.    i = 0;
  343.    while(i < pBuffer.length)
  344.    {
  345.       if(hit.hitTest(pBuffer[i]) && pBuffer[i].hitable)
  346.       {
  347.          temp = object._x + object.dirValue(hit._x);
  348.          if(Math.abs(temp - pBuffer[i]._x) <= 55)
  349.          {
  350.             return true;
  351.          }
  352.       }
  353.       i++;
  354.    }
  355.    return false;
  356. }
  357. function isObjectConnect(hit, player)
  358. {
  359.    i = 0;
  360.    while(i < oVisBuffer.length)
  361.    {
  362.       if(hit.hitTest(oVisBuffer[i]) && oVisBuffer[i].hitable)
  363.       {
  364.          temp = player._x + player.dirValue(hit._x);
  365.          if(Math.abs(temp - oVisBuffer[i]._x) <= 60)
  366.          {
  367.             return true;
  368.          }
  369.       }
  370.       i++;
  371.    }
  372.    return false;
  373. }
  374. function hitPlayer(hit, power, object, hard)
  375. {
  376.    i = 0;
  377.    while(i < pBuffer.length)
  378.    {
  379.       if(hit.hitTest(pBuffer[i]) && pBuffer[i].hitable)
  380.       {
  381.          pBuffer[i].getHit(power,hard,object);
  382.          attachMovie("oHitFlash01","oHitFlash",pDepth + 1);
  383.          oHitFlash._x = pBuffer[i]._x + pBuffer[i].dirValue(Math.floor(pBuffer[i]._width / 2));
  384.          if(object.dir == -1)
  385.          {
  386.             oHitFlash._xscale *= -1;
  387.          }
  388.          oHitFlash._y = hit._y + object._y;
  389.       }
  390.       i++;
  391.    }
  392. }
  393. function hitObject(hit, power, player, hard)
  394. {
  395.    i = 0;
  396.    while(i < oVisBuffer.length)
  397.    {
  398.       if(hit.hitTest(oVisBuffer[i]) && oVisBuffer[i].hitable)
  399.       {
  400.          hud.tRightBar = oVisBuffer[i];
  401.          oVisBuffer[i].getHit(power,hard,player);
  402.          resetComboTimer();
  403.          if(comboCount > 1)
  404.          {
  405.             displayMaxCombo();
  406.          }
  407.          attachMovie("oHitFlash01","oHitFlash",pDepth + 1);
  408.          oHitFlash._x = oVisBuffer[i]._x + oVisBuffer[i].dirValue(Math.floor(oVisBuffer[i]._width / 2));
  409.          if(player.dir == -1)
  410.          {
  411.             oHitFlash._xscale *= -1;
  412.          }
  413.          oHitFlash._y = hit._y + player._y;
  414.       }
  415.       i++;
  416.    }
  417. }
  418. function hitAllObject(power, player, hard)
  419. {
  420.    result = false;
  421.    i = 0;
  422.    while(i < oVisBuffer.length)
  423.    {
  424.       if(oVisBuffer[i].hitable)
  425.       {
  426.          result = true;
  427.          hud.tRightBar = oVisBuffer[i];
  428.          oVisBuffer[i].getHit(power,hard,player);
  429.          resetComboTimer();
  430.          if(comboCount > 1)
  431.          {
  432.             displayMaxCombo();
  433.          }
  434.          attachMovie("oHitFlash01","oHitFlash",pDepth + 1);
  435.          oHitFlash._x = oVisBuffer[i]._x + oVisBuffer[i].dirValue(Math.floor(oVisBuffer[i]._width / 2));
  436.          if(player.dir == -1)
  437.          {
  438.             oHitFlash._xscale *= -1;
  439.          }
  440.          oHitFlash._y = -20 + player._y;
  441.       }
  442.       i++;
  443.    }
  444.    return result;
  445. }
  446. function slicePlayer(hit, power, object, hard)
  447. {
  448.    i = 0;
  449.    while(i < pBuffer.length)
  450.    {
  451.       if(hit.hitTest(pBuffer[i]) && pBuffer[i].hitable)
  452.       {
  453.          pBuffer[i].getHit(power,hard);
  454.          attachMovie("oHitFlash02","oHitFlash",pDepth + 1);
  455.          oHitFlash._x = pBuffer[i]._x + pBuffer[i].dirValue(Math.floor(pBuffer[i]._width / 2));
  456.          if(object.dir == -1)
  457.          {
  458.             oHitFlash._xscale *= -1;
  459.          }
  460.          oHitFlash._y = hit._y + object._y;
  461.       }
  462.       i++;
  463.    }
  464. }
  465. function sliceObject(hit, power, player, hard)
  466. {
  467.    i = 0;
  468.    while(i < oVisBuffer.length)
  469.    {
  470.       if(hit.hitTest(oVisBuffer[i]) && oVisBuffer[i].hitable)
  471.       {
  472.          hud.tRightBar = oVisBuffer[i];
  473.          oVisBuffer[i].getHit(power,hard);
  474.          resetComboTimer();
  475.          if(comboCount > 1)
  476.          {
  477.             displayMaxCombo();
  478.          }
  479.          attachMovie("oHitFlash02","oHitFlash",pDepth + 1);
  480.          oHitFlash._x = oVisBuffer[i]._x + oVisBuffer[i].dirValue(Math.floor(oVisBuffer[i]._width / 2));
  481.          if(player.dir == -1)
  482.          {
  483.             oHitFlash._xscale *= -1;
  484.          }
  485.          oHitFlash._y = hit._y + player._y;
  486.       }
  487.       i++;
  488.    }
  489. }
  490. function getWeaponName(number)
  491. {
  492.    switch(number)
  493.    {
  494.       case 1:
  495.          return "Bamboo";
  496.       case 2:
  497.          return "Golok";
  498.       case 3:
  499.          return "Kipas";
  500.       default:
  501.          trace("err: getWeaponName(number) not specified");
  502.    }
  503. }
  504. function getWeaponPower(number)
  505. {
  506.    switch(number)
  507.    {
  508.       case 1:
  509.          return 21;
  510.       case 2:
  511.          return 22;
  512.       case 3:
  513.          return 20;
  514.       default:
  515.          trace("err: getWeaponPower(number) not specified");
  516.    }
  517. }
  518. function addPlayer(pType)
  519. {
  520.    pCount++;
  521.    if(pDepth < 499)
  522.    {
  523.       pDepth++;
  524.    }
  525.    else
  526.    {
  527.       pDepth = 400;
  528.    }
  529.    pID = "player" + pCount;
  530.    attachMovie(pType,pID,pDepth);
  531.    pBuffer.push(this[pID]);
  532.    this[pID]._x = 10;
  533.    this[pID]._y = stageHeight - 30;
  534.    hud.tLeftBar = this[pID];
  535. }
  536. this.onLoad = init();
  537.