[MOD]Misión Colonizar

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • [MOD]Misión Colonizar

      Esto es un pequeño cambio para la misión colonizar con esto la flota que va acompañando al colonizador se quedará en el nuevo planeta espero que les sea útil, aquí les dejo el código y el fichero para que reemplacen


      PHP Source Code: MissionCaseColonisation.class.php

      1. <?php
      2. /*
      3. *Modificado por Linkin
      4. *Ahora la flota que va con el colonizador se queda en el planeta que se ha colonizado
      5. */
      6. class MissionCaseColonisation extends MissionFunctions implements Mission
      7. {
      8. function __construct($Fleet)
      9. {
      10. $this->_fleet = $Fleet;
      11. }
      12. function TargetEvent()
      13. {
      14. $db = Database::get();
      15. $sql = 'SELECT * FROM %%USERS%% WHERE `id` = :userId;';
      16. $senderUser = $db->selectSingle($sql, array(
      17. ':userId' => $this->_fleet['fleet_owner'],
      18. ));
      19. $senderUser['factor'] = getFactors($senderUser, 'basic', $this->_fleet['fleet_start_time']);
      20. $LNG = $this->getLanguage($senderUser['lang']);
      21. $checkPosition = PlayerUtil::checkPosition($this->_fleet['fleet_universe'], $this->_fleet['fleet_end_galaxy'],
      22. $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']);
      23. $isPositionFree = PlayerUtil::isPositionFree($this->_fleet['fleet_universe'], $this->_fleet['fleet_end_galaxy'],
      24. $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']);
      25. if (!$isPositionFree || !$checkPosition)
      26. {
      27. $message = sprintf($LNG['sys_colo_notfree'], GetTargetAddressLink($this->_fleet, ''));
      28. }
      29. else
      30. {
      31. $allowPlanetPosition = PlayerUtil::allowPlanetPosition($this->_fleet['fleet_end_planet'], $senderUser);
      32. if(!$allowPlanetPosition)
      33. {
      34. $message = sprintf($LNG['sys_colo_notech'] , GetTargetAddressLink($this->_fleet, ''));
      35. }
      36. else
      37. {
      38. $sql = 'SELECT COUNT(*) as state
      39. FROM %%PLANETS%%
      40. WHERE `id_owner` = :userId
      41. AND `planet_type` = :type
      42. AND `destruyed` = :destroyed;';
      43. $currentPlanetCount = $db->selectSingle($sql, array(
      44. ':userId' => $this->_fleet['fleet_owner'],
      45. ':type' => 1,
      46. ':destroyed' => 0
      47. ), 'state');
      48. $maxPlanetCount = PlayerUtil::maxPlanetCount($senderUser);
      49. if($currentPlanetCount >= $maxPlanetCount)
      50. {
      51. $message = sprintf($LNG['sys_colo_maxcolo'], GetTargetAddressLink($this->_fleet, ''), $maxPlanetCount);
      52. $this->setState(FLEET_RETURN);
      53. $this->SaveFleet();
      54. }
      55. else
      56. {
      57. $NewOwnerPlanet = PlayerUtil::createPlanet($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'],
      58. $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_universe'], $this->_fleet['fleet_owner'],
      59. $LNG['fcp_colony'], false, $senderUser['authlevel']);
      60. if($NewOwnerPlanet === false)
      61. {
      62. $message = sprintf($LNG['sys_colo_badpos'], GetTargetAddressLink($this->_fleet, ''));
      63. }
      64. else
      65. {
      66. $this->_fleet['fleet_end_id'] = $NewOwnerPlanet;
      67. $message = sprintf($LNG['sys_colo_allisok'], GetTargetAddressLink($this->_fleet, ''));
      68. $this->StoreGoodsToPlanet();
      69. if ($this->_fleet['fleet_amount'] == 1) {
      70. $this->KillFleet();
      71. } else {
      72. $CurrentFleet = explode(";", $this->_fleet['fleet_array']);
      73. $NewFleet = '';
      74. foreach ($CurrentFleet as $Group)
      75. {
      76. if (empty($Group)) continue;
      77. $Class = explode (",", $Group);
      78. if ($Class[0] == 208 && $Class[1] > 1)
      79. $NewFleet .= $Class[0].",".($Class[1] - 1).";";
      80. elseif ($Class[0] != 208 && $Class[1] > 0)
      81. $NewFleet .= $Class[0].",".$Class[1].";";
      82. }
      83. $this->UpdateFleet('fleet_array', $NewFleet);
      84. $this->UpdateFleet('fleet_amount', ($this->_fleet['fleet_amount'] - 1));
      85. /*$this->UpdateFleet('fleet_resource_metal', 0);
      86. $this->UpdateFleet('fleet_resource_crystal', 0);
      87. $this->UpdateFleet('fleet_resource_deuterium', 0);*/
      88. $this->RestoreFleet(false);
      89. }
      90. }
      91. }
      92. }
      93. }
      94. PlayerUtil::sendMessage($this->_fleet['fleet_owner'], 0, $LNG['sys_colo_mess_from'], 4, $LNG['sys_colo_mess_report'],
      95. $message, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']);
      96. $this->setState(FLEET_RETURN);
      97. $this->SaveFleet();
      98. }
      99. function EndStayEvent()
      100. {
      101. return;
      102. }
      103. function ReturnEvent()
      104. {
      105. $this->RestoreFleet();
      106. }
      107. }
      Display All
      Files