supernova-ws /
SuperNova
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
| 1 | <?php |
||
| 2 | |||
| 3 | if(!defined('IN_UPDATE') || IN_UPDATE !== true) { |
||
| 4 | die('Hack attempt'); |
||
| 5 | } |
||
| 6 | |||
| 7 | switch($new_version) { |
||
| 8 | case 0: |
||
| 9 | case 1: |
||
| 10 | case 2: |
||
| 11 | case 3: |
||
| 12 | case 4: |
||
| 13 | case 5: |
||
| 14 | case 6: |
||
| 15 | case 7: |
||
| 16 | case 8: |
||
| 17 | case 9: |
||
| 18 | upd_log_version_update(); |
||
| 19 | |||
| 20 | upd_alter_table('planets', "ADD `debris_metal` bigint(11) unsigned DEFAULT '0'", !$update_tables['planets']['debris_metal']); |
||
| 21 | upd_alter_table('planets', "ADD `debris_crystal` bigint(11) unsigned DEFAULT '0'", !$update_tables['planets']['debris_crystal']); |
||
| 22 | |||
| 23 | upd_alter_table('planets', array( |
||
| 24 | "ADD `parent_planet` bigint(11) unsigned DEFAULT '0'", |
||
| 25 | "ADD KEY `i_parent_planet` (`parent_planet`)" |
||
| 26 | ), !$update_tables['planets']['parent_planet']); |
||
| 27 | upd_do_query( |
||
| 28 | "UPDATE `{{planets}}` AS lu |
||
| 29 | LEFT JOIN `{{planets}}` AS pl |
||
| 30 | ON pl.galaxy=lu.galaxy AND pl.system=lu.system AND pl.planet=lu.planet AND pl.planet_type=1 |
||
| 31 | SET lu.parent_planet=pl.id WHERE lu.planet_type=3;" |
||
| 32 | ); |
||
| 33 | upd_drop_table('lunas'); |
||
| 34 | |||
| 35 | if($update_tables['galaxy']) { |
||
| 36 | upd_do_query( |
||
| 37 | 'UPDATE `{{planets}}` |
||
| 38 | LEFT JOIN `{{galaxy}}` ON {{galaxy}}.id_planet = {{planets}}.id |
||
| 39 | SET |
||
| 40 | {{planets}}.debris_metal = {{galaxy}}.metal, |
||
| 41 | {{planets}}.debris_crystal = {{galaxy}}.crystal |
||
| 42 | WHERE {{galaxy}}.metal>0 OR {{galaxy}}.crystal>0;' |
||
| 43 | ); |
||
| 44 | } |
||
| 45 | upd_drop_table('galaxy'); |
||
| 46 | |||
| 47 | upd_create_table('counter', |
||
| 48 | "( |
||
| 49 | `id` bigint(11) NOT NULL AUTO_INCREMENT, |
||
| 50 | `time` int(11) NOT NULL DEFAULT '0', |
||
| 51 | `page` varchar(255) CHARACTER SET utf8 DEFAULT '0', |
||
| 52 | `user_id` bigint(11) DEFAULT '0', |
||
| 53 | `ip` varchar(15) DEFAULT NULL, |
||
| 54 | PRIMARY KEY (`id`), |
||
| 55 | KEY `i_user_id` (`user_id`), |
||
| 56 | KEY `i_ip` (`ip`) |
||
| 57 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 58 | ); |
||
| 59 | upd_alter_table('counter', "ADD `url` varchar(255) CHARACTER SET utf8 DEFAULT ''", !$update_tables['counter']['url']); |
||
| 60 | |||
| 61 | upd_alter_table('fleets', array( |
||
| 62 | "ADD KEY `fleet_mess` (`fleet_mess`)", |
||
| 63 | "ADD KEY `fleet_group` (`fleet_group`)" |
||
| 64 | ), !$update_indexes['fleets']['fleet_mess']); |
||
| 65 | |||
| 66 | upd_alter_table('referrals', "ADD `dark_matter` bigint(11) NOT NULL DEFAULT '0' COMMENT 'How much player have aquired Dark Matter'", !$update_tables['referrals']['dark_matter']); |
||
| 67 | upd_alter_table('referrals', "ADD KEY `id_partner` (`id_partner`)", !$update_indexes['referrals']['id_partner']); |
||
| 68 | |||
| 69 | upd_check_key('rpg_bonus_divisor', 10); |
||
| 70 | |||
| 71 | upd_do_query("DELETE FROM {{config}} WHERE `config_name` IN ('BannerURL', 'banner_source_post', 'BannerOverviewFrame', |
||
| 72 | 'close_reason', 'dbVersion', 'ForumUserBarFrame', 'OverviewBanner', 'OverviewClickBanner', 'OverviewExternChat', |
||
| 73 | 'OverviewExternChatCmd', 'OverviewNewsText', 'UserbarURL', 'userbar_source');"); |
||
| 74 | |||
| 75 | $dm_change_legit = true; |
||
| 76 | |||
| 77 | upd_do_query( |
||
| 78 | "UPDATE {{referrals}} AS r |
||
| 79 | LEFT JOIN {{users}} AS u |
||
| 80 | ON u.id = r.id |
||
| 81 | SET r.dark_matter = u.lvl_minier + u.lvl_raid;" |
||
| 82 | ); |
||
| 83 | upd_add_more_time(); |
||
| 84 | |||
| 85 | if($update_tables['users']['rpg_points']) { |
||
| 86 | upd_do_query( |
||
| 87 | "UPDATE {{users}} AS u |
||
| 88 | RIGHT JOIN {{referrals}} AS r |
||
| 89 | ON r.id_partner = u.id AND r.dark_matter >= " . classSupernova::$config->rpg_bonus_divisor . " |
||
| 90 | SET u.rpg_points = u.rpg_points + FLOOR(r.dark_matter/" . classSupernova::$config->rpg_bonus_divisor . ");" |
||
| 91 | ); |
||
| 92 | } |
||
| 93 | |||
| 94 | $dm_change_legit = false; |
||
| 95 | upd_do_query('COMMIT;', true); |
||
| 96 | $new_version = 10; |
||
| 97 | |||
| 98 | case 10: |
||
| 99 | case 11: |
||
| 100 | case 12: |
||
| 101 | case 13: |
||
| 102 | case 14: |
||
| 103 | case 15: |
||
| 104 | case 16: |
||
| 105 | case 17: |
||
| 106 | case 18: |
||
| 107 | case 19: |
||
| 108 | case 20: |
||
| 109 | case 21: |
||
| 110 | upd_log_version_update(); |
||
| 111 | |||
| 112 | upd_create_table('alliance_requests', |
||
| 113 | "( |
||
| 114 | `id_user` int(11) NOT NULL, |
||
| 115 | `id_ally` int(11) NOT NULL DEFAULT '0', |
||
| 116 | `request_text` text, |
||
| 117 | `request_time` int(11) NOT NULL DEFAULT '0', |
||
| 118 | `request_denied` tinyint(1) unsigned NOT NULL DEFAULT '0', |
||
| 119 | PRIMARY KEY (`id_user`,`id_ally`) |
||
| 120 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8;" |
||
| 121 | ); |
||
| 122 | |||
| 123 | upd_alter_table('announce', "ADD `detail_url` varchar(250) NOT NULL DEFAULT '' COMMENT 'Link to more details about update'", !$update_tables['announce']['detail_url']); |
||
| 124 | |||
| 125 | upd_alter_table('counter', array("MODIFY `ip` VARCHAR(250) COMMENT 'User last IP'", "ADD `proxy` VARCHAR(250) NOT NULL DEFAULT '' COMMENT 'User proxy (if any)'"), !$update_tables['counter']['proxy']); |
||
| 126 | |||
| 127 | upd_alter_table('statpoints', array( |
||
| 128 | "ADD `res_rank` INT(11) DEFAULT 0 COMMENT 'Rank by resources'", |
||
| 129 | "ADD `res_old_rank` INT(11) DEFAULT 0 COMMENT 'Old rank by resources'", |
||
| 130 | "ADD `res_points` BIGINT(20) DEFAULT 0 COMMENT 'Resource stat points'", |
||
| 131 | "ADD `res_count` BIGINT(20) DEFAULT 0 COMMENT 'Old rank by resources'" |
||
| 132 | ), !$update_tables['statpoints']['res_rank']); |
||
| 133 | |||
| 134 | upd_alter_table('planets', "ADD `supercargo` bigint(11) NOT NULL DEFAULT '0' COMMENT 'Supercargo ship count'", !$update_tables['planets']['supercargo']); |
||
| 135 | |||
| 136 | upd_alter_table('users', "DROP COLUMN `current_luna`", $update_tables['users']['current_luna']); |
||
| 137 | upd_alter_table('users', array("DROP COLUMN `aktywnosc`", "DROP COLUMN `time_aktyw`", "DROP COLUMN `kiler`", |
||
| 138 | "DROP COLUMN `kod_aktywujacy`", "DROP COLUMN `ataker`", "DROP COLUMN `atakin`"), $update_tables['users']['ataker']); |
||
| 139 | upd_alter_table('users', "ADD `options` TEXT COMMENT 'Packed user options'", !$update_tables['users']['options']); |
||
| 140 | upd_alter_table('users', "ADD `news_lastread` int(11) NOT NULL DEFAULT '0' COMMENT 'News last read date'", !$update_tables['users']['news_lastread']); |
||
| 141 | upd_alter_table('users', array("MODIFY `user_lastip` VARCHAR(250) COMMENT 'User last IP'", "ADD `user_proxy` VARCHAR(250) NOT NULL DEFAULT '' COMMENT 'User proxy (if any)'"), !$update_tables['users']['user_proxy']); |
||
| 142 | |||
| 143 | upd_drop_table('update'); |
||
| 144 | |||
| 145 | upd_check_key('fleet_speed', classSupernova::$config->fleet_speed / 2500, classSupernova::$config->fleet_speed >= 2500); |
||
| 146 | upd_check_key('game_counter', 0); |
||
| 147 | upd_check_key('game_default_language', 'ru'); |
||
| 148 | upd_check_key('game_default_skin', 'skins/EpicBlue/'); |
||
| 149 | upd_check_key('game_default_template', 'OpenGame'); |
||
| 150 | upd_check_key('game_news_overview', 3); |
||
| 151 | upd_check_key('game_news_actual', 259200); |
||
| 152 | upd_check_key('game_noob_factor', 5, !isset(classSupernova::$config->game_noob_factor)); |
||
| 153 | upd_check_key('game_noob_points', 5000, !isset(classSupernova::$config->game_noob_points)); |
||
| 154 | upd_check_key('game_speed', classSupernova::$config->game_speed / 2500, classSupernova::$config->game_speed >= 2500); |
||
| 155 | upd_check_key('int_format_date', 'd.m.Y'); |
||
| 156 | upd_check_key('int_format_time', 'H:i:s', true); |
||
| 157 | upd_check_key('int_banner_background', 'design/images/banner.png', true); |
||
| 158 | upd_check_key('int_userbar_background', 'design/images/userbar.png', true); |
||
| 159 | upd_check_key('player_max_colonies', classSupernova::$config->player_max_planets ? (classSupernova::$config->player_max_planets - 1) : 9); |
||
| 160 | upd_check_key('url_forum', classSupernova::$config->forum_url, !isset(classSupernova::$config->url_forum)); |
||
| 161 | upd_check_key('url_rules', classSupernova::$config->rules_url, !isset(classSupernova::$config->url_rules)); |
||
| 162 | upd_check_key('url_dark_matter', '', !isset(classSupernova::$config->url_dark_matter)); |
||
| 163 | |||
| 164 | upd_do_query("DELETE FROM {{config}} WHERE `config_name` IN ( |
||
| 165 | 'game_date_withTime', 'player_max_planets', 'OverviewNewsFrame', 'forum_url', 'rules_url' |
||
| 166 | );"); |
||
| 167 | |||
| 168 | upd_do_query('COMMIT;', true); |
||
| 169 | $new_version = 22; |
||
| 170 | |||
| 171 | case 22: |
||
| 172 | upd_log_version_update(); |
||
| 173 | |||
| 174 | upd_alter_table('planets', "ADD `governor` smallint unsigned NOT NULL DEFAULT '0' COMMENT 'Planet governor'", !$update_tables['planets']['governor']); |
||
| 175 | upd_alter_table('planets', "ADD `governor_level` smallint unsigned NOT NULL DEFAULT '0' COMMENT 'Governor level'", !$update_tables['planets']['governor_level']); |
||
| 176 | upd_alter_table('planets', "ADD `que` varchar(4096) NOT NULL DEFAULT '' COMMENT 'Planet que'", !$update_tables['planets']['que']); |
||
| 177 | |||
| 178 | if($update_tables['planets']['b_building']) { |
||
| 179 | $planet_query = upd_do_query('SELECT * FROM {{planets}} WHERE `b_building` <> 0;'); |
||
| 180 | $const_que_structures = QUE_STRUCTURES; |
||
| 181 | while($planet_data = db_fetch($planet_query)) { |
||
| 182 | $old_que = explode(';', $planet_data['b_building_id']); |
||
| 183 | foreach($old_que as $old_que_item_string) { |
||
| 184 | if(!$old_que_item_string) { |
||
| 185 | continue; |
||
| 186 | } |
||
| 187 | |||
| 188 | $old_que_item = explode(',', $old_que_item_string); |
||
| 189 | if($old_que_item[4] == 'build') { |
||
| 190 | $old_que_item[4] = BUILD_CREATE; |
||
| 191 | } else { |
||
| 192 | $old_que_item[4] = BUILD_DESTROY; |
||
| 193 | } |
||
| 194 | |||
| 195 | $old_que_item[3] = $old_que_item[3] > $planet_data['last_update'] ? $old_que_item[3] - $planet_data['last_update'] : 1; |
||
| 196 | $planet_data['que'] = "{$old_que_item[0]},1,{$old_que_item[3]},{$old_que_item[4]},{$const_que_structures};{$planet_data['que']}"; |
||
| 197 | } |
||
| 198 | upd_do_query("UPDATE {{planets}} SET `que` = '{$planet_data['que']}', `b_building` = '0', `b_building_id` = '0' WHERE `id` = '{$planet_data['id']}' LIMIT 1;", true); |
||
| 199 | } |
||
| 200 | } |
||
| 201 | |||
| 202 | upd_do_query('COMMIT;', true); |
||
| 203 | $new_version = 23; |
||
| 204 | |||
| 205 | case 23: |
||
| 206 | case 24: |
||
| 207 | upd_log_version_update(); |
||
| 208 | |||
| 209 | upd_create_table('confirmations', |
||
| 210 | "( |
||
| 211 | `id` bigint(11) NOT NULL AUTO_INCREMENT, |
||
| 212 | `id_user` bigint(11) NOT NULL DEFAULT 0, |
||
| 213 | `type` SMALLINT NOT NULL DEFAULT 0, |
||
| 214 | `code` NVARCHAR(16) NOT NULL DEFAULT '', |
||
| 215 | `email` NVARCHAR(64) NOT NULL DEFAULT '', |
||
| 216 | `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, |
||
| 217 | PRIMARY KEY (`id`), |
||
| 218 | KEY `i_code_email` (`code`, `email`) |
||
| 219 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 220 | ); |
||
| 221 | |||
| 222 | if($update_tables['users']['urlaubs_until']) { |
||
| 223 | upd_alter_table('users', "ADD `vacation` int(11) NOT NULL DEFAULT '0' COMMENT 'Time when user can leave vacation mode'", !$update_tables['users']['vacation']); |
||
| 224 | upd_do_query('UPDATE {{users}} SET `vacation` = `urlaubs_until` WHERE `urlaubs_modus` <> 0;'); |
||
| 225 | upd_alter_table('users', 'DROP COLUMN `urlaubs_until`, DROP COLUMN `urlaubs_modus`, DROP COLUMN `urlaubs_modus_time`', $update_tables['users']['urlaubs_until']); |
||
| 226 | } |
||
| 227 | |||
| 228 | upd_check_key('user_vacation_disable', classSupernova::$config->urlaubs_modus_erz, !isset(classSupernova::$config->user_vacation_disable)); |
||
| 229 | upd_do_query("DELETE FROM {{config}} WHERE `config_name` IN ('urlaubs_modus_erz');"); |
||
| 230 | |||
| 231 | upd_do_query('COMMIT;', true); |
||
| 232 | $new_version = 25; |
||
| 233 | |||
| 234 | case 25: |
||
| 235 | upd_log_version_update(); |
||
| 236 | |||
| 237 | upd_alter_table('rw', array( |
||
| 238 | "DROP COLUMN `a_zestrzelona`", |
||
| 239 | "DROP INDEX `rid`", |
||
| 240 | "ADD COLUMN `report_id` bigint(11) NOT NULL AUTO_INCREMENT FIRST", |
||
| 241 | "ADD PRIMARY KEY (`report_id`)", |
||
| 242 | "ADD INDEX `i_rid` (`rid`)" |
||
| 243 | ), !$update_tables['rw']['report_id']); |
||
| 244 | |||
| 245 | upd_add_more_time(); |
||
| 246 | upd_create_table('logs_backup', "AS (SELECT * FROM {{logs}});"); |
||
| 247 | |||
| 248 | upd_alter_table('logs', array( |
||
| 249 | "MODIFY COLUMN `log_id` INT(1)", |
||
| 250 | "DROP PRIMARY KEY" |
||
| 251 | ), !$update_tables['logs']['log_timestamp']); |
||
| 252 | |||
| 253 | upd_alter_table('logs', array( |
||
| 254 | "DROP COLUMN `log_id`", |
||
| 255 | "ADD COLUMN `log_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Human-readable record timestamp' FIRST", |
||
| 256 | "ADD COLUMN `log_username` VARCHAR(64) NOT NULL DEFAULT '' COMMENT 'Username' AFTER `log_timestamp`", |
||
| 257 | "MODIFY COLUMN `log_title` VARCHAR(64) NOT NULL DEFAULT 'Log entry' COMMENT 'Short description' AFTER `log_username`", |
||
| 258 | "MODIFY COLUMN `log_page` VARCHAR(512) NOT NULL DEFAULT '' COMMENT 'Page that makes entry to log' AFTER `log_text`", |
||
| 259 | "CHANGE COLUMN `log_type` `log_code` INT UNSIGNED NOT NULL DEFAULT 0 AFTER `log_page`", |
||
| 260 | "MODIFY COLUMN `log_sender` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'User ID which make log record' AFTER `log_code`", |
||
| 261 | "MODIFY COLUMN `log_time` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Machine-readable timestamp' AFTER `log_sender`", |
||
| 262 | "ADD COLUMN `log_dump` TEXT NOT NULL DEFAULT '' COMMENT 'Machine-readable dump of variables' AFTER `log_time`", |
||
| 263 | "ADD INDEX `i_log_username` (`log_username`)", |
||
| 264 | "ADD INDEX `i_log_time` (`log_time`)", |
||
| 265 | "ADD INDEX `i_log_sender` (`log_sender`)", |
||
| 266 | "ADD INDEX `i_log_code` (`log_code`)", |
||
| 267 | "ADD INDEX `i_log_page` (`log_page`)", |
||
| 268 | "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci" |
||
| 269 | ), !$update_tables['logs']['log_timestamp']); |
||
| 270 | upd_do_query('DELETE FROM `{{logs}}` WHERE `log_code` = 303;'); |
||
| 271 | |||
| 272 | if($update_tables['errors']) { |
||
| 273 | upd_do_query('INSERT INTO `{{logs}}` (`log_code`, `log_sender`, `log_title`, `log_text`, `log_page`, `log_time`) SELECT 500, `error_sender`, `error_type`, `error_text`, `error_page`, `error_time` FROM `{{errors}}`;'); |
||
| 274 | if($update_tables['errors_backup']) { |
||
| 275 | upd_drop_table('errors_backup'); |
||
| 276 | } |
||
| 277 | upd_alter_table('errors', ' RENAME TO ' . classSupernova::$config->db_prefix . 'errors_backup'); |
||
| 278 | |||
| 279 | upd_drop_table('errors'); |
||
| 280 | } |
||
| 281 | |||
| 282 | upd_alter_table('logs', 'ORDER BY log_time'); |
||
| 283 | |||
| 284 | upd_alter_table('logs', array("ADD COLUMN `log_id` SERIAL", "ADD PRIMARY KEY (`log_id`)"), !$update_tables['logs']['log_id']); |
||
| 285 | |||
| 286 | upd_do_query('UPDATE `{{logs}}` SET `log_timestamp` = FROM_UNIXTIME(`log_time`);'); |
||
| 287 | upd_do_query('UPDATE `{{logs}}` AS l LEFT JOIN `{{users}}` AS u ON u.id = l.log_sender SET l.log_username = u.username WHERE l.log_username IS NOT NULL;'); |
||
| 288 | |||
| 289 | upd_do_query("UPDATE `{{logs}}` SET `log_code` = 190 WHERE `log_code` = 100 AND `log_title` = 'Stat update';"); |
||
| 290 | upd_do_query("UPDATE `{{logs}}` SET `log_code` = 191 WHERE `log_code` = 101 AND `log_title` = 'Stat update';"); |
||
| 291 | upd_do_query("UPDATE `{{logs}}` SET `log_code` = 192 WHERE `log_code` = 102 AND `log_title` = 'Stat update';"); |
||
| 292 | $sys_log_disabled = false; |
||
| 293 | |||
| 294 | upd_do_query('COMMIT;', true); |
||
| 295 | $new_version = 26; |
||
| 296 | |||
| 297 | case 26: |
||
| 298 | upd_log_version_update(); |
||
| 299 | |||
| 300 | $sys_log_disabled = false; |
||
| 301 | |||
| 302 | upd_alter_table('planets', "ADD INDEX `i_parent_planet` (`parent_planet`)", !$update_indexes['planets']['i_parent_planet']); |
||
| 303 | upd_alter_table('messages', "DROP INDEX `owner`", $update_indexes['messages']['owner']); |
||
| 304 | upd_alter_table('messages', "DROP INDEX `owner_type`", $update_indexes['messages']['owner_type']); |
||
| 305 | upd_alter_table('messages', "DROP INDEX `sender_type`", $update_indexes['messages']['sender_type']); |
||
| 306 | |||
| 307 | upd_alter_table('messages', array( |
||
| 308 | "ADD INDEX `i_owner_time` (`message_owner`, `message_time`)", |
||
| 309 | "ADD INDEX `i_sender_time` (`message_sender`, `message_time`)", |
||
| 310 | "ADD INDEX `i_time` (`message_time`)" |
||
| 311 | ), !$update_indexes['messages']['i_owner_time']); |
||
| 312 | |||
| 313 | upd_drop_table('fleet_log'); |
||
| 314 | |||
| 315 | upd_do_query("UPDATE `{{planets}}` SET `metal` = 0 WHERE `metal` < 0;"); |
||
| 316 | upd_do_query("UPDATE `{{planets}}` SET `crystal` = 0 WHERE `crystal` < 0;"); |
||
| 317 | upd_do_query("UPDATE `{{planets}}` SET `deuterium` = 0 WHERE `deuterium` < 0;"); |
||
| 318 | upd_alter_table('planets', array( |
||
| 319 | "DROP COLUMN `b_building`", |
||
| 320 | "DROP COLUMN `b_building_id`" |
||
| 321 | ), $update_tables['planets']['b_building']); |
||
| 322 | |||
| 323 | upd_do_query("DELETE FROM {{config}} WHERE `config_name` IN ('noobprotection', 'noobprotectionmulti', 'noobprotectiontime', 'chat_admin_msgFormat');"); |
||
| 324 | |||
| 325 | upd_do_query("DELETE FROM `{{logs}}` WHERE `log_code` = 501;"); |
||
| 326 | upd_do_query("DELETE FROM `{{logs}}` WHERE `log_title` IN ('Canceling Hangar Que', 'Building Planet Defense');"); |
||
| 327 | |||
| 328 | upd_check_key('chat_admin_highlight', '<font color=purple>$1</font>', !isset(classSupernova::$config->chat_admin_highlight)); |
||
| 329 | |||
| 330 | upd_check_key('int_banner_URL', 'banner.php?type=banner', classSupernova::$config->int_banner_URL == '/banner.php?type=banner'); |
||
| 331 | upd_check_key('int_userbar_URL', 'banner.php?type=userbar', classSupernova::$config->int_userbar_URL == '/banner.php?type=userbar'); |
||
| 332 | |||
| 333 | upd_alter_table('users', 'CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci'); |
||
| 334 | |||
| 335 | if(!$update_tables['shortcut']) { |
||
| 336 | upd_create_table('shortcut', |
||
| 337 | "( |
||
| 338 | `shortcut_id` SERIAL, |
||
| 339 | `shortcut_user_id` BIGINT(11) UNSIGNED NOT NULL DEFAULT 0, |
||
| 340 | `shortcut_planet_id` bigint(11) NOT NULL DEFAULT 0, |
||
| 341 | `shortcut_galaxy` int(3) NOT NULL DEFAULT 0, |
||
| 342 | `shortcut_system` int(3) NOT NULL DEFAULT 0, |
||
| 343 | `shortcut_planet` int(3) NOT NULL DEFAULT 0, |
||
| 344 | `shortcut_planet_type` tinyint(1) NOT NULL DEFAULT 1, |
||
| 345 | `shortcut_text` NVARCHAR(64) NOT NULL DEFAULT '', |
||
| 346 | |||
| 347 | PRIMARY KEY (`shortcut_id`), |
||
| 348 | KEY `i_shortcut_user_id` (`shortcut_user_id`), |
||
| 349 | KEY `i_shortcut_planet_id` (`shortcut_planet_id`), |
||
| 350 | |||
| 351 | CONSTRAINT `FK_shortcut_user_id` FOREIGN KEY (`shortcut_user_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 352 | |||
| 353 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 354 | ); |
||
| 355 | |||
| 356 | $temp_planet_types = array(PT_PLANET, PT_DEBRIS, PT_MOON); |
||
| 357 | |||
| 358 | $query = upd_do_query("SELECT id, fleet_shortcut FROM {{users}} WHERE fleet_shortcut > '';"); |
||
| 359 | while($user_data = db_fetch($query)) { |
||
| 360 | $shortcuts = explode("\r\n", $user_data['fleet_shortcut']); |
||
| 361 | foreach($shortcuts as $shortcut) { |
||
| 362 | if(!$shortcut) { |
||
| 363 | continue; |
||
| 364 | } |
||
| 365 | |||
| 366 | $shortcut = explode(',', $shortcut); |
||
| 367 | $shortcut[0] = db_escape($shortcut[0]); |
||
| 368 | $shortcut[1] = intval($shortcut[1]); |
||
| 369 | $shortcut[2] = intval($shortcut[2]); |
||
| 370 | $shortcut[3] = intval($shortcut[3]); |
||
| 371 | $shortcut[4] = intval($shortcut[4]); |
||
| 372 | |||
| 373 | if($shortcut[0] && $shortcut[1] && $shortcut[2] && $shortcut[3] && in_array($shortcut[4], $temp_planet_types)) { |
||
| 374 | $db_prefix = classSupernova::$config->db_prefix; |
||
| 375 | upd_do_query("INSERT INTO {$db_prefix}shortcut (shortcut_user_id, shortcut_galaxy, shortcut_system, shortcut_planet, shortcut_planet_type, shortcut_text) VALUES ({$user_data['id']}, {$shortcut[1]}, {$shortcut[2]}, {$shortcut[3]}, {$shortcut[4]}, '{$shortcut[0]}');", true); |
||
| 376 | } |
||
| 377 | } |
||
| 378 | } |
||
| 379 | |||
| 380 | upd_alter_table('users', 'DROP COLUMN `fleet_shortcut`'); |
||
| 381 | }; |
||
| 382 | |||
| 383 | upd_check_key('url_faq', '', !isset(classSupernova::$config->url_faq)); |
||
| 384 | |||
| 385 | upd_do_query('COMMIT;', true); |
||
| 386 | $new_version = 27; |
||
| 387 | |||
| 388 | case 27: |
||
| 389 | upd_log_version_update(); |
||
| 390 | |||
| 391 | upd_check_key('chat_highlight_moderator', '<font color=green>$1</font>', !isset(classSupernova::$config->chat_highlight_moderator)); |
||
| 392 | upd_check_key('chat_highlight_operator', '<font color=red>$1</font>', !isset(classSupernova::$config->chat_highlight_operator)); |
||
| 393 | upd_check_key('chat_highlight_admin', classSupernova::$config->chat_admin_highlight ? classSupernova::$config->chat_admin_highlight : '<font color=puple>$1</font>', !isset(classSupernova::$config->chat_highlight_admin)); |
||
| 394 | |||
| 395 | upd_do_query("DELETE FROM {{config}} WHERE `config_name` IN ('chat_admin_highlight');"); |
||
| 396 | |||
| 397 | upd_alter_table('banned', array( |
||
| 398 | "CHANGE COLUMN id ban_id bigint(20) unsigned NOT NULL AUTO_INCREMENT", |
||
| 399 | "CHANGE COLUMN `who` `ban_user_name` VARCHAR(64) NOT NULL DEFAULT ''", |
||
| 400 | "CHANGE COLUMN `theme` `ban_reason` VARCHAR(128) NOT NULL DEFAULT ''", |
||
| 401 | "CHANGE COLUMN `time` `ban_time` int(11) NOT NULL DEFAULT 0", |
||
| 402 | "CHANGE COLUMN `longer` `ban_until` int(11) NOT NULL DEFAULT 0", |
||
| 403 | "CHANGE COLUMN `author` `ban_issuer_name` VARCHAR(64) NOT NULL DEFAULT ''", |
||
| 404 | "CHANGE COLUMN `email` `ban_issuer_email` VARCHAR(64) NOT NULL DEFAULT ''", |
||
| 405 | "DROP COLUMN who2", |
||
| 406 | "ADD PRIMARY KEY (`ban_id`)" |
||
| 407 | ), !$update_tables['banned']['ban_id']); |
||
| 408 | |||
| 409 | upd_alter_table('alliance', array( |
||
| 410 | "MODIFY COLUMN `id` SERIAL", |
||
| 411 | "ADD CONSTRAINT UNIQUE KEY `i_ally_name` (`ally_name`)", |
||
| 412 | "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci", |
||
| 413 | "ENGINE=InnoDB" |
||
| 414 | ), !$update_indexes['alliance']['i_ally_name']); |
||
| 415 | |||
| 416 | $upd_relation_types = "'neutral', 'war', 'peace', 'confederation', 'federation', 'union', 'master', 'slave'"; |
||
| 417 | upd_create_table('alliance_diplomacy', |
||
| 418 | "( |
||
| 419 | `alliance_diplomacy_id` SERIAL, |
||
| 420 | `alliance_diplomacy_ally_id` bigint(11) UNSIGNED DEFAULT NULL, |
||
| 421 | `alliance_diplomacy_contr_ally_id` bigint(11) UNSIGNED DEFAULT NULL, |
||
| 422 | `alliance_diplomacy_contr_ally_name` varchar(32) DEFAULT '', |
||
| 423 | `alliance_diplomacy_relation` SET({$upd_relation_types}) NOT NULL default 'neutral', |
||
| 424 | `alliance_diplomacy_relation_last` SET({$upd_relation_types}) NOT NULL default 'neutral', |
||
| 425 | `alliance_diplomacy_time` INT(11) NOT NULL DEFAULT 0, |
||
| 426 | |||
| 427 | PRIMARY KEY (`alliance_diplomacy_id`), |
||
| 428 | KEY (`alliance_diplomacy_ally_id`, `alliance_diplomacy_contr_ally_id`, `alliance_diplomacy_time`), |
||
| 429 | KEY (`alliance_diplomacy_ally_id`, `alliance_diplomacy_time`), |
||
| 430 | |||
| 431 | CONSTRAINT `FK_diplomacy_ally_id` FOREIGN KEY (`alliance_diplomacy_ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 432 | ,CONSTRAINT `FK_diplomacy_contr_ally_id` FOREIGN KEY (`alliance_diplomacy_contr_ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 433 | ,CONSTRAINT `FK_diplomacy_contr_ally_name` FOREIGN KEY (`alliance_diplomacy_contr_ally_name`) REFERENCES `{{alliance}}` (`ally_name`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 434 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;" |
||
| 435 | ); |
||
| 436 | |||
| 437 | upd_create_table('alliance_negotiation', |
||
| 438 | "( |
||
| 439 | `alliance_negotiation_id` SERIAL, |
||
| 440 | `alliance_negotiation_ally_id` bigint(11) UNSIGNED DEFAULT NULL, |
||
| 441 | `alliance_negotiation_ally_name` varchar(32) DEFAULT '', |
||
| 442 | `alliance_negotiation_contr_ally_id` bigint(11) UNSIGNED DEFAULT NULL, |
||
| 443 | `alliance_negotiation_contr_ally_name` varchar(32) DEFAULT '', |
||
| 444 | `alliance_negotiation_relation` SET({$upd_relation_types}) NOT NULL default 'neutral', |
||
| 445 | `alliance_negotiation_time` INT(11) NOT NULL DEFAULT 0, |
||
| 446 | `alliance_negotiation_propose` TEXT, |
||
| 447 | `alliance_negotiation_response` TEXT, |
||
| 448 | `alliance_negotiation_status` SMALLINT NOT NULL DEFAULT 0, |
||
| 449 | |||
| 450 | PRIMARY KEY (`alliance_negotiation_id`), |
||
| 451 | KEY (`alliance_negotiation_ally_id`, `alliance_negotiation_contr_ally_id`, `alliance_negotiation_time`), |
||
| 452 | KEY (`alliance_negotiation_ally_id`, `alliance_negotiation_time`), |
||
| 453 | |||
| 454 | CONSTRAINT `FK_negotiation_ally_id` FOREIGN KEY (`alliance_negotiation_ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 455 | ,CONSTRAINT `FK_negotiation_ally_name` FOREIGN KEY (`alliance_negotiation_ally_name`) REFERENCES `{{alliance}}` (`ally_name`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 456 | ,CONSTRAINT `FK_negotiation_contr_ally_id` FOREIGN KEY (`alliance_negotiation_contr_ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 457 | ,CONSTRAINT `FK_negotiation_contr_ally_name` FOREIGN KEY (`alliance_negotiation_contr_ally_name`) REFERENCES `{{alliance}}` (`ally_name`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 458 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;" |
||
| 459 | ); |
||
| 460 | |||
| 461 | upd_alter_table('users', array("MODIFY COLUMN `id` SERIAL", "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"), true); |
||
| 462 | upd_alter_table('planets', array("MODIFY COLUMN `id` SERIAL", "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"), true); |
||
| 463 | |||
| 464 | upd_create_table('bashing', |
||
| 465 | "( |
||
| 466 | `bashing_id` SERIAL, |
||
| 467 | `bashing_user_id` bigint(11) UNSIGNED DEFAULT NULL, |
||
| 468 | `bashing_planet_id` bigint(11) UNSIGNED DEFAULT NULL, |
||
| 469 | `bashing_time` INT(11) NOT NULL DEFAULT 0, |
||
| 470 | |||
| 471 | PRIMARY KEY (`bashing_id`), |
||
| 472 | KEY (`bashing_user_id`, `bashing_planet_id`, `bashing_time`), |
||
| 473 | KEY (`bashing_planet_id`), |
||
| 474 | KEY (`bashing_time`), |
||
| 475 | |||
| 476 | CONSTRAINT `FK_bashing_user_id` FOREIGN KEY (`bashing_user_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 477 | ,CONSTRAINT `FK_bashing_planet_id` FOREIGN KEY (`bashing_planet_id`) REFERENCES `{{planets}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 478 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;" |
||
| 479 | ); |
||
| 480 | |||
| 481 | upd_check_key('fleet_bashing_war_delay', 12 * 60 * 60, !isset(classSupernova::$config->fleet_bashing_war_delay)); |
||
| 482 | upd_check_key('fleet_bashing_scope', 24 * 60 * 60, !isset(classSupernova::$config->fleet_bashing_scope)); |
||
| 483 | upd_check_key('fleet_bashing_interval', 30 * 60, !isset(classSupernova::$config->fleet_bashing_interval)); |
||
| 484 | upd_check_key('fleet_bashing_waves', 3, !isset(classSupernova::$config->fleet_bashing_waves)); |
||
| 485 | upd_check_key('fleet_bashing_attacks', 3, !isset(classSupernova::$config->fleet_bashing_attacks)); |
||
| 486 | |||
| 487 | upd_do_query('COMMIT;', true); |
||
| 488 | $new_version = 28; |
||
| 489 | |||
| 490 | case 28: |
||
| 491 | case 28.1: |
||
| 492 | upd_log_version_update(); |
||
| 493 | |||
| 494 | upd_create_table('quest', |
||
| 495 | "( |
||
| 496 | `quest_id` SERIAL, |
||
| 497 | `quest_name` VARCHAR(255) DEFAULT NULL, |
||
| 498 | `quest_description` TEXT, |
||
| 499 | `quest_conditions` TEXT, |
||
| 500 | `quest_rewards` TEXT, |
||
| 501 | `quest_type` TINYINT DEFAULT NULL, |
||
| 502 | `quest_order` INT NOT NULL DEFAULT 0, |
||
| 503 | |||
| 504 | PRIMARY KEY (`quest_id`) |
||
| 505 | ,KEY (`quest_type`, `quest_order`) |
||
| 506 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;" |
||
| 507 | ); |
||
| 508 | |||
| 509 | upd_create_table('quest_status', |
||
| 510 | "( |
||
| 511 | `quest_status_id` SERIAL, |
||
| 512 | `quest_status_quest_id` bigint(20) UNSIGNED DEFAULT NULL, |
||
| 513 | `quest_status_user_id` bigint(20) UNSIGNED NOT NULL DEFAULT '0', |
||
| 514 | `quest_status_progress` VARCHAR(255) NOT NULL DEFAULT '', |
||
| 515 | `quest_status_status` TINYINT NOT NULL DEFAULT 1, |
||
| 516 | |||
| 517 | PRIMARY KEY (`quest_status_id`) |
||
| 518 | ,KEY (`quest_status_user_id`, `quest_status_quest_id`, `quest_status_status`) |
||
| 519 | ,CONSTRAINT `FK_quest_status_quest_id` FOREIGN KEY (`quest_status_quest_id`) REFERENCES `{{quest}}` (`quest_id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 520 | ,CONSTRAINT `FK_quest_status_user_id` FOREIGN KEY (`quest_status_user_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 521 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;" |
||
| 522 | ); |
||
| 523 | |||
| 524 | upd_check_key('quest_total', 0, !isset(classSupernova::$config->quest_total)); |
||
| 525 | |||
| 526 | for($i = 0; $i < 25; $i++) { |
||
| 527 | upd_alter_table('alliance', array("DROP INDEX `id_{$i}`",), $update_indexes['alliance']["id_{$i}"]); |
||
| 528 | upd_alter_table('users', array("DROP INDEX `id_{$i}`",), $update_indexes['users']["id_{$i}"]); |
||
| 529 | upd_alter_table('planets', array("DROP INDEX `id_{$i}`",), $update_indexes['planets']["id_{$i}"]); |
||
| 530 | } |
||
| 531 | |||
| 532 | upd_alter_table('alliance', array('DROP INDEX `id`',), $update_indexes['alliance']['id']); |
||
| 533 | upd_alter_table('alliance', array('DROP INDEX `ally_name`',), $update_indexes['alliance']['ally_name']); |
||
| 534 | upd_alter_table('alliance', array('ADD UNIQUE INDEX `i_ally_tag` (`ally_tag`)',), !$update_indexes['alliance']['i_ally_tag']); |
||
| 535 | upd_alter_table('alliance', array('MODIFY COLUMN `ranklist` TEXT',), true); |
||
| 536 | |||
| 537 | upd_alter_table('users', array('DROP INDEX `id`',), $update_indexes['users']['id']); |
||
| 538 | upd_alter_table('users', "CHANGE COLUMN `rpg_points` `dark_matter` int(11) DEFAULT 0", $update_tables['users']['rpg_points']); |
||
| 539 | |||
| 540 | upd_alter_table('users', array( |
||
| 541 | 'DROP COLUMN `ally_request`', |
||
| 542 | 'DROP COLUMN `ally_request_text`', |
||
| 543 | ), $update_tables['users']['ally_request_text']); |
||
| 544 | |||
| 545 | upd_alter_table('users', array( |
||
| 546 | 'ADD INDEX `i_ally_id` (`ally_id`)', |
||
| 547 | 'ADD INDEX `i_ally_name` (`ally_name`)', |
||
| 548 | ), !$update_indexes['users']['i_ally_id']); |
||
| 549 | |||
| 550 | upd_alter_table('users', array( |
||
| 551 | "ADD `msg_admin` bigint(11) unsigned DEFAULT '0' AFTER mnl_buildlist" |
||
| 552 | ), !$update_tables['users']['msg_admin']); |
||
| 553 | |||
| 554 | if(!$update_foreigns['users']['FK_users_ally_id']) { |
||
| 555 | upd_alter_table('users', array( |
||
| 556 | 'MODIFY COLUMN `ally_name` VARCHAR(32) DEFAULT NULL', |
||
| 557 | 'MODIFY COLUMN `ally_id` BIGINT(20) UNSIGNED DEFAULT NULL', |
||
| 558 | ), strtoupper($update_tables['users']['ally_id']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 559 | |||
| 560 | upd_do_query('DELETE FROM {{alliance}} WHERE id NOT IN (SELECT ally_id FROM {{users}} GROUP BY ally_id);'); |
||
| 561 | upd_do_query("UPDATE {{users}} SET `ally_id` = NULL, ally_name = NULL, ally_register_time = 0, ally_rank_id = 0 WHERE `ally_id` NOT IN (SELECT id FROM {{alliance}});"); |
||
| 562 | upd_do_query("UPDATE {{users}} AS u LEFT JOIN {{alliance}} AS a ON u.ally_id = a.id SET u.ally_name = a.ally_name, u.ally_tag = a.ally_tag WHERE u.ally_id IS NOT NULL;"); |
||
| 563 | |||
| 564 | upd_alter_table('users', array( |
||
| 565 | "ADD CONSTRAINT `FK_users_ally_id` FOREIGN KEY (`ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE SET NULL ON UPDATE CASCADE", |
||
| 566 | "ADD CONSTRAINT `FK_users_ally_name` FOREIGN KEY (`ally_name`) REFERENCES `{{alliance}}` (`ally_name`) ON DELETE SET NULL ON UPDATE CASCADE", |
||
| 567 | ), !$update_foreigns['users']['FK_users_ally_id']); |
||
| 568 | } |
||
| 569 | |||
| 570 | upd_alter_table('planets', array( |
||
| 571 | "MODIFY COLUMN `debris_metal` BIGINT(20) UNSIGNED DEFAULT 0", |
||
| 572 | "MODIFY COLUMN `debris_crystal` BIGINT(20) UNSIGNED DEFAULT 0", |
||
| 573 | ), strtoupper($update_tables['planets']['debris_metal']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 574 | |||
| 575 | $illegal_moon_query = upd_do_query("SELECT id FROM `{{planets}}` WHERE `id_owner` <> 0 AND `planet_type` = 3 AND `parent_planet` <> 0 AND `parent_planet` NOT IN (SELECT `id` FROM {{planets}} WHERE `planet_type` = 1);"); |
||
| 576 | while($illegal_moon_row = db_fetch($illegal_moon_query)) { |
||
| 577 | upd_do_query("DELETE FROM {{planets}} WHERE id = {$illegal_moon_row['id']} LIMIT 1;", true); |
||
| 578 | } |
||
| 579 | |||
| 580 | upd_check_key('allow_buffing', isset(classSupernova::$config->fleet_buffing_check) ? !classSupernova::$config->fleet_buffing_check : 0, !isset(classSupernova::$config->allow_buffing)); |
||
| 581 | upd_check_key('ally_help_weak', 0, !isset(classSupernova::$config->ally_help_weak)); |
||
| 582 | |||
| 583 | upd_do_query('COMMIT;', true); |
||
| 584 | $new_version = 29; |
||
| 585 | |||
| 586 | case 29: |
||
| 587 | upd_log_version_update(); |
||
| 588 | |||
| 589 | upd_check_key('game_email_pm', 0, !isset(classSupernova::$config->game_email_pm)); |
||
| 590 | upd_check_key('player_vacation_time', 2 * 24 * 60 * 60, !isset(classSupernova::$config->player_vacation_time)); |
||
| 591 | upd_check_key('player_delete_time', 45 * 24 * 60 * 60, !isset(classSupernova::$config->player_delete_time)); |
||
| 592 | |||
| 593 | upd_create_table('log_dark_matter', |
||
| 594 | "( |
||
| 595 | `log_dark_matter_id` SERIAL, |
||
| 596 | `log_dark_matter_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Human-readable record timestamp', |
||
| 597 | `log_dark_matter_username` varchar(64) NOT NULL DEFAULT '' COMMENT 'Username', |
||
| 598 | `log_dark_matter_reason` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Reason ID for dark matter adjustment', |
||
| 599 | `log_dark_matter_amount` INT(10) NOT NULL DEFAULT 0 COMMENT 'Amount of dark matter change', |
||
| 600 | `log_dark_matter_comment` TEXT COMMENT 'Comments', |
||
| 601 | `log_dark_matter_page` varchar(512) NOT NULL DEFAULT '' COMMENT 'Page that makes entry to log', |
||
| 602 | `log_dark_matter_sender` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'User ID which make log record', |
||
| 603 | |||
| 604 | PRIMARY KEY (`log_dark_matter_id`), |
||
| 605 | KEY `i_log_dark_matter_sender_id` (`log_dark_matter_sender`, `log_dark_matter_id`), |
||
| 606 | KEY `i_log_dark_matter_reason_sender_id` (`log_dark_matter_reason`, `log_dark_matter_sender`, `log_dark_matter_id`), |
||
| 607 | KEY `i_log_dark_matter_amount` (`log_dark_matter_amount`) |
||
| 608 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;" |
||
| 609 | ); |
||
| 610 | upd_do_query('COMMIT;', true); |
||
| 611 | |||
| 612 | $records = 1; |
||
| 613 | while($records) { |
||
| 614 | upd_do_query('START TRANSACTION;', true); |
||
| 615 | $query = upd_do_query("SELECT * FROM {{LOGS}} WHERE log_code = 102 ORDER BY log_id LIMIT 1000;"); |
||
| 616 | $records = classSupernova::$db->db_num_rows($query); |
||
| 617 | while($row = db_fetch($query)) { |
||
| 618 | $result = preg_match('/^Player ID (\d+) Dark Matter was adjusted with (\-?\d+). Reason: (.+)$/', $row['log_text'], $matches); |
||
| 619 | |||
| 620 | $reason = RPG_NONE; |
||
| 621 | $comment = $matches[3]; |
||
| 622 | switch($matches[3]) { |
||
| 623 | case 'Level Up For Structure Building': |
||
| 624 | $reason = RPG_STRUCTURE; |
||
| 625 | break; |
||
| 626 | |||
| 627 | case 'Level Up For Raiding': |
||
| 628 | case 'Level Up For Raids': |
||
| 629 | $reason = RPG_RAID; |
||
| 630 | $comment = 'Level Up For Raiding'; |
||
| 631 | break; |
||
| 632 | |||
| 633 | case 'Expedition Bonus': |
||
| 634 | $reason = RPG_EXPEDITION; |
||
| 635 | break; |
||
| 636 | |||
| 637 | default: |
||
| 638 | if(preg_match('/^Using Black Market page (\d+)$/', $comment, $matches2)) { |
||
| 639 | $reason = RPG_MARKET; |
||
| 640 | } elseif(preg_match('/^Spent for officer (.+) ID (\d+)$/', $comment, $matches2)) { |
||
| 641 | $reason = RPG_MERCENARY; |
||
| 642 | $comment = "Spent for mercenary {$matches2[1]} GUID {$matches2[2]}"; |
||
| 643 | } elseif(preg_match('/^Incoming From Referral ID\ ?(\d+)$/', $comment, $matches2)) { |
||
| 644 | $reason = RPG_REFERRAL; |
||
| 645 | $comment = "Incoming from referral ID {$matches[1]}"; |
||
| 646 | } elseif(preg_match('/^Through admin interface for user .* ID \d+ (.*)$/', $comment, $matches2)) { |
||
| 647 | $reason = RPG_ADMIN; |
||
| 648 | $comment = $matches2[1]; |
||
| 649 | } |
||
| 650 | break; |
||
| 651 | } |
||
| 652 | |||
| 653 | if($matches[2]) { |
||
| 654 | $row['log_username'] = db_escape($row['log_username']); |
||
| 655 | $row['log_page'] = db_escape($row['log_page']); |
||
| 656 | $comment = db_escape($comment); |
||
| 657 | |||
| 658 | upd_do_query( |
||
| 659 | "INSERT INTO {{log_dark_matter}} (`log_dark_matter_timestamp`, `log_dark_matter_username`, `log_dark_matter_reason`, |
||
| 660 | `log_dark_matter_amount`, `log_dark_matter_comment`, `log_dark_matter_page`, `log_dark_matter_sender`) |
||
| 661 | VALUES ( |
||
| 662 | '{$row['log_timestamp']}', '{$row['log_username']}', {$reason}, |
||
| 663 | {$matches[2]}, '{$comment}', '{$row['log_page']}', {$row['log_sender']});" |
||
| 664 | , true); |
||
| 665 | } |
||
| 666 | } |
||
| 667 | |||
| 668 | upd_do_query("DELETE FROM {{LOGS}} WHERE log_code = 102 LIMIT 1000;", true); |
||
| 669 | upd_do_query('COMMIT;', true); |
||
| 670 | } |
||
| 671 | |||
| 672 | foreach($update_tables as $table_name => $cork) { |
||
| 673 | $row = db_fetch(upd_do_query("SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = '" . db_escape(classSupernova::$db_name) . "' AND TABLE_NAME = '" . classSupernova::$config->db_prefix . "{$table_name}';", true)); |
||
| 674 | if($row['ENGINE'] != 'InnoDB') { |
||
| 675 | upd_alter_table($table_name, 'ENGINE=InnoDB', true); |
||
| 676 | } |
||
| 677 | if($row['TABLE_COLLATION'] != 'utf8_general_ci') { |
||
| 678 | upd_alter_table($table_name, 'CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci', true); |
||
| 679 | } |
||
| 680 | } |
||
| 681 | |||
| 682 | upd_do_query('COMMIT;', true); |
||
| 683 | $new_version = 30; |
||
| 684 | |||
| 685 | case 30: |
||
| 686 | upd_log_version_update(); |
||
| 687 | |||
| 688 | upd_alter_table('users', array( |
||
| 689 | "ADD `player_que` TEXT" |
||
| 690 | ), !$update_tables['users']['player_que']); |
||
| 691 | |||
| 692 | upd_alter_table('planets', array( |
||
| 693 | "CHANGE COLUMN `governor` `PLANET_GOVERNOR_ID` SMALLINT(5) NOT NULL DEFAULT 0", |
||
| 694 | "CHANGE COLUMN `governor_level` `PLANET_GOVERNOR_LEVEL` SMALLINT(5) NOT NULL DEFAULT 0", |
||
| 695 | ), !$update_tables['planets']['PLANET_GOVERNOR_ID']); |
||
| 696 | |||
| 697 | if($update_tables['users']['rpg_geologue']) { |
||
| 698 | classSupernova::$db->doUpdate("UPDATE `{{users}}` SET `dark_matter` = `dark_matter` + (`rpg_geologue` + `rpg_ingenieur` + `rpg_constructeur` + `rpg_technocrate` + `rpg_scientifique` + `rpg_defenseur`) * 3;"); |
||
| 699 | |||
| 700 | upd_alter_table('users', array( |
||
| 701 | "DROP COLUMN `rpg_geologue`", |
||
| 702 | "DROP COLUMN `rpg_ingenieur`", |
||
| 703 | "DROP COLUMN `rpg_constructeur`", |
||
| 704 | "DROP COLUMN `rpg_technocrate`", |
||
| 705 | "DROP COLUMN `rpg_scientifique`", |
||
| 706 | "DROP COLUMN `rpg_defenseur`", |
||
| 707 | ), $update_tables['users']['rpg_geologue']); |
||
| 708 | } |
||
| 709 | |||
| 710 | View Code Duplication | if($update_tables['users']['rpg_bunker']) { |
|
|
0 ignored issues
–
show
|
|||
| 711 | classSupernova::$db->doUpdate("UPDATE {{users}} SET `dark_matter` = `dark_matter` + (`rpg_bunker`) * 3;"); |
||
| 712 | |||
| 713 | upd_alter_table('users', array( |
||
| 714 | "DROP COLUMN `rpg_bunker`", |
||
| 715 | ), $update_tables['users']['rpg_bunker']); |
||
| 716 | } |
||
| 717 | |||
| 718 | upd_alter_table('users', array( |
||
| 719 | "DROP COLUMN `p_infligees`", |
||
| 720 | "MODIFY COLUMN `dark_matter` BIGINT(20) DEFAULT '0' AFTER `lvl_raid`", |
||
| 721 | ), $update_tables['users']['p_infligees']); |
||
| 722 | |||
| 723 | upd_alter_table('users', array( |
||
| 724 | "ADD COLUMN `mrc_academic` SMALLINT(3) DEFAULT 0", |
||
| 725 | ), !$update_tables['users']['mrc_academic']); |
||
| 726 | |||
| 727 | upd_alter_table('users', array( |
||
| 728 | "DROP COLUMN `db_deaktjava`", |
||
| 729 | "DROP COLUMN `kolorminus`", |
||
| 730 | "DROP COLUMN `kolorplus`", |
||
| 731 | "DROP COLUMN `kolorpoziom`", |
||
| 732 | "DROP COLUMN `deleteme`", |
||
| 733 | |||
| 734 | "MODIFY COLUMN `xpraid` BIGINT(20) UNSIGNED DEFAULT '0'", |
||
| 735 | "MODIFY COLUMN `xpminier` BIGINT(20) UNSIGNED DEFAULT '0'", |
||
| 736 | "MODIFY COLUMN `raids` BIGINT(20) UNSIGNED DEFAULT '0'", |
||
| 737 | "MODIFY COLUMN `raidsloose` BIGINT(20) UNSIGNED DEFAULT '0'", |
||
| 738 | "MODIFY COLUMN `raidswin` BIGINT(20) UNSIGNED DEFAULT '0'", |
||
| 739 | |||
| 740 | "MODIFY COLUMN `register_time` INT(10) UNSIGNED DEFAULT '0'", |
||
| 741 | "MODIFY COLUMN `onlinetime` INT(10) UNSIGNED DEFAULT '0'", |
||
| 742 | "MODIFY COLUMN `news_lastread` INT(10) UNSIGNED DEFAULT '0'", |
||
| 743 | "MODIFY COLUMN `deltime` INT(10) UNSIGNED DEFAULT '0'", |
||
| 744 | "MODIFY COLUMN `banaday` INT(10) UNSIGNED DEFAULT '0'", |
||
| 745 | "MODIFY COLUMN `vacation` INT(10) UNSIGNED DEFAULT '0'", |
||
| 746 | ), strtoupper($update_tables['users']['xpraid']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 747 | |||
| 748 | upd_alter_table('users', array( |
||
| 749 | "ADD COLUMN `total_rank` INT(10) UNSIGNED NOT NULL DEFAULT 0", |
||
| 750 | "ADD COLUMN `total_points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0", |
||
| 751 | ), !isset($update_tables['users']['total_rank'])); |
||
| 752 | classSupernova::$db->doUpdate("UPDATE {{users}} AS u JOIN {{statpoints}} AS sp ON sp.id_owner = u.id AND sp.stat_code = 1 AND sp.stat_type = 1 SET u.total_rank = sp.total_rank, u.total_points = sp.total_points;"); |
||
| 753 | |||
| 754 | upd_alter_table('alliance', array( |
||
| 755 | "ADD COLUMN `total_rank` INT(10) UNSIGNED NOT NULL DEFAULT 0", |
||
| 756 | "ADD COLUMN `total_points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0", |
||
| 757 | ), !isset($update_tables['alliance']['total_rank'])); |
||
| 758 | classSupernova::$db->doUpdate("UPDATE {{alliance}} AS a JOIN {{statpoints}} AS sp ON sp.id_owner = a.id AND sp.stat_code = 1 AND sp.stat_type = 2 SET a.total_rank = sp.total_rank, a.total_points = sp.total_points;"); |
||
| 759 | |||
| 760 | if(!isset($update_tables['users']['ally_tag'])) { |
||
| 761 | upd_alter_table('users', array( |
||
| 762 | "ADD COLUMN `ally_tag` varchar(8) DEFAULT NULL AFTER `ally_id`", |
||
| 763 | ), !isset($update_tables['users']['ally_tag'])); |
||
| 764 | classSupernova::$db->doUpdate("UPDATE {{users}} AS u LEFT JOIN {{alliance}} AS a ON a.id = u.ally_id SET u.ally_tag = a.ally_tag, u.ally_name = a.ally_name;"); |
||
| 765 | classSupernova::$db->doUpdate("UPDATE {{users}} AS u LEFT JOIN {{alliance}} AS a ON a.id = u.ally_id SET u.ally_id = NULL, u.ally_tag = NULL, u.ally_name = NULL, u.ally_register_time = 0, ally_rank_id = 0 WHERE a.id IS NULL;"); |
||
| 766 | upd_alter_table('users', array( |
||
| 767 | "ADD CONSTRAINT `FK_users_ally_tag` FOREIGN KEY (`ally_tag`) REFERENCES `{{alliance}}` (`ally_tag`) ON DELETE SET NULL ON UPDATE CASCADE", |
||
| 768 | ), !$update_foreigns['users']['FK_users_ally_tag']); |
||
| 769 | } |
||
| 770 | |||
| 771 | upd_alter_table('users', array( |
||
| 772 | "ADD COLUMN `player_artifact_list` TEXT", |
||
| 773 | ), !isset($update_tables['users']['player_artifact_list'])); |
||
| 774 | |||
| 775 | if(!isset($update_tables['users']['player_rpg_tech_xp'])) { |
||
| 776 | upd_check_key('eco_scale_storage', 1, !isset(classSupernova::$config->eco_scale_storage)); |
||
| 777 | |||
| 778 | upd_alter_table('users', array( |
||
| 779 | "ADD COLUMN `player_rpg_tech_level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 AFTER `dark_matter`", |
||
| 780 | "ADD COLUMN `player_rpg_tech_xp` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 AFTER `dark_matter`", |
||
| 781 | ), !isset($update_tables['users']['player_rpg_tech_xp'])); |
||
| 782 | |||
| 783 | classSupernova::$db->doUpdate("UPDATE {{users}} AS u LEFT JOIN {{statpoints}} AS s ON s.id_owner = u.id AND s.stat_type = 1 AND s.stat_code = 1 SET u.player_rpg_tech_xp = s.tech_points;"); |
||
| 784 | } |
||
| 785 | |||
| 786 | upd_alter_table('planets', array( |
||
| 787 | "ADD COLUMN `planet_cargo_hyper` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 AFTER `big_ship_cargo`", |
||
| 788 | ), !isset($update_tables['planets']['planet_cargo_hyper'])); |
||
| 789 | |||
| 790 | upd_do_query('COMMIT;', true); |
||
| 791 | $new_version = 31; |
||
| 792 | |||
| 793 | case 31: |
||
| 794 | upd_log_version_update(); |
||
| 795 | |||
| 796 | upd_alter_table('aks', array( |
||
| 797 | "MODIFY COLUMN `planet_type` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0", |
||
| 798 | ), strtoupper($update_tables['aks']['planet_type']['Type']) != 'TINYINT(1) UNSIGNED'); |
||
| 799 | |||
| 800 | upd_alter_table('alliance', array( |
||
| 801 | "MODIFY COLUMN `ally_request_notallow` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0", |
||
| 802 | "MODIFY COLUMN `ally_owner` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 803 | ), strtoupper($update_tables['alliance']['ally_owner']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 804 | |||
| 805 | View Code Duplication | if(strtoupper($update_tables['alliance_diplomacy']['alliance_diplomacy_ally_id']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 806 | upd_alter_table('alliance_diplomacy', array( |
||
| 807 | "DROP FOREIGN KEY `FK_diplomacy_ally_id`", |
||
| 808 | "DROP FOREIGN KEY `FK_diplomacy_contr_ally_id`" |
||
| 809 | ), true); |
||
| 810 | |||
| 811 | upd_alter_table('alliance_diplomacy', array( |
||
| 812 | "MODIFY COLUMN `alliance_diplomacy_ally_id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 813 | "MODIFY COLUMN `alliance_diplomacy_contr_ally_id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 814 | |||
| 815 | "ADD CONSTRAINT `FK_diplomacy_ally_id` FOREIGN KEY (`alliance_diplomacy_ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 816 | "ADD CONSTRAINT `FK_diplomacy_contr_ally_id` FOREIGN KEY (`alliance_diplomacy_contr_ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 817 | ), true); |
||
| 818 | } |
||
| 819 | |||
| 820 | View Code Duplication | if(strtoupper($update_tables['alliance_negotiation']['alliance_negotiation_ally_id']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 821 | upd_alter_table('alliance_negotiation', array( |
||
| 822 | "DROP FOREIGN KEY `FK_negotiation_ally_id`", |
||
| 823 | "DROP FOREIGN KEY `FK_negotiation_contr_ally_id`" |
||
| 824 | ), true); |
||
| 825 | |||
| 826 | upd_alter_table('alliance_negotiation', array( |
||
| 827 | "MODIFY COLUMN `alliance_negotiation_status` TINYINT(1) NOT NULL DEFAULT 0", |
||
| 828 | "MODIFY COLUMN `alliance_negotiation_ally_id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 829 | "MODIFY COLUMN `alliance_negotiation_contr_ally_id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 830 | |||
| 831 | "ADD CONSTRAINT `FK_negotiation_ally_id` FOREIGN KEY (`alliance_negotiation_ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 832 | "ADD CONSTRAINT `FK_negotiation_contr_ally_id` FOREIGN KEY (`alliance_negotiation_contr_ally_id`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 833 | ), true); |
||
| 834 | } |
||
| 835 | |||
| 836 | View Code Duplication | if(strtoupper($update_tables['alliance_requests']['id_user']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 837 | upd_do_query('DELETE FROM {{alliance_requests}} WHERE id_user NOT IN (SELECT id FROM {{users}}) OR id_ally NOT IN (SELECT id FROM {{alliance}});', true); |
||
| 838 | |||
| 839 | upd_alter_table('alliance_requests', array( |
||
| 840 | "MODIFY COLUMN `id_user` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 841 | "MODIFY COLUMN `id_ally` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 842 | |||
| 843 | "ADD KEY `I_alliance_requests_id_ally` (`id_ally`, `id_user`)", |
||
| 844 | |||
| 845 | "ADD CONSTRAINT `FK_alliance_request_user_id` FOREIGN KEY (`id_user`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 846 | "ADD CONSTRAINT `FK_alliance_request_ally_id` FOREIGN KEY (`id_ally`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 847 | ), true); |
||
| 848 | } |
||
| 849 | |||
| 850 | View Code Duplication | if(strtoupper($update_tables['annonce']['id']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 851 | upd_do_query('DELETE FROM {{annonce}} WHERE USER NOT IN (SELECT username FROM {{users}});', true); |
||
| 852 | |||
| 853 | upd_alter_table('annonce', array( |
||
| 854 | "MODIFY COLUMN `id` SERIAL", |
||
| 855 | "MODIFY COLUMN `user` VARCHAR(64) DEFAULT NULL", |
||
| 856 | |||
| 857 | "ADD KEY `I_annonce_user` (`user`, `id`)", |
||
| 858 | |||
| 859 | "ADD CONSTRAINT `FK_annonce_user` FOREIGN KEY (`user`) REFERENCES `{{users}}` (`username`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 860 | ), true); |
||
| 861 | } |
||
| 862 | |||
| 863 | View Code Duplication | if(strtoupper($update_tables['bashing']['bashing_user_id']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 864 | upd_alter_table('bashing', array( |
||
| 865 | "DROP FOREIGN KEY `FK_bashing_user_id`", |
||
| 866 | "DROP FOREIGN KEY `FK_bashing_planet_id`", |
||
| 867 | ), true); |
||
| 868 | |||
| 869 | upd_alter_table('bashing', array( |
||
| 870 | "MODIFY COLUMN `bashing_user_id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 871 | "MODIFY COLUMN `bashing_planet_id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 872 | |||
| 873 | "ADD CONSTRAINT `FK_bashing_user_id` FOREIGN KEY (`bashing_user_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 874 | "ADD CONSTRAINT `FK_bashing_planet_id` FOREIGN KEY (`bashing_planet_id`) REFERENCES `{{planets}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 875 | ), true); |
||
| 876 | } |
||
| 877 | |||
| 878 | View Code Duplication | if(strtoupper($update_tables['buddy']['id']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 879 | upd_do_query('DELETE FROM {{buddy}} WHERE sender NOT IN (SELECT id FROM {{users}}) OR OWNER NOT IN (SELECT id FROM {{users}});', true); |
||
| 880 | |||
| 881 | upd_alter_table('buddy', array( |
||
| 882 | "MODIFY COLUMN `id` SERIAL", |
||
| 883 | "MODIFY COLUMN `sender` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 884 | "MODIFY COLUMN `owner` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 885 | "MODIFY COLUMN `active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0", |
||
| 886 | |||
| 887 | "ADD KEY `I_buddy_sender` (`sender`)", |
||
| 888 | "ADD KEY `I_buddy_owner` (`owner`)", |
||
| 889 | |||
| 890 | "ADD CONSTRAINT `FK_buddy_sender_id` FOREIGN KEY (`sender`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 891 | "ADD CONSTRAINT `FK_buddy_owner_id` FOREIGN KEY (`owner`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 892 | ), true); |
||
| 893 | } |
||
| 894 | |||
| 895 | upd_alter_table('chat', array( |
||
| 896 | "MODIFY COLUMN `messageid` SERIAL", |
||
| 897 | ), strtoupper($update_tables['chat']['messageid']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 898 | |||
| 899 | upd_alter_table('counter', array( |
||
| 900 | "CHANGE COLUMN `id` `counter_id` SERIAL", |
||
| 901 | |||
| 902 | "MODIFY COLUMN `user_id` BIGINT(20) UNSIGNED DEFAULT 0", |
||
| 903 | |||
| 904 | "ADD COLUMN `user_name` VARCHAR(64) DEFAULT '' AFTER `user_id`", |
||
| 905 | |||
| 906 | "ADD KEY `I_counter_user_name` (`user_name`)", |
||
| 907 | ), strtoupper($update_tables['counter']['counter_id']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 908 | |||
| 909 | upd_alter_table('fleets', array( |
||
| 910 | "MODIFY COLUMN `fleet_id` SERIAL", |
||
| 911 | "MODIFY COLUMN `fleet_resource_metal` DECIMAL(65,0) DEFAULT '0'", |
||
| 912 | "MODIFY COLUMN `fleet_resource_crystal` DECIMAL(65,0) DEFAULT '0'", |
||
| 913 | "MODIFY COLUMN `fleet_resource_deuterium` DECIMAL(65,0) DEFAULT '0'", |
||
| 914 | ), strtoupper($update_tables['fleets']['fleet_resource_metal']['Type']) != 'DECIMAL(65,0)'); |
||
| 915 | |||
| 916 | if(strtoupper($update_tables['iraks']['fleet_owner']['Type']) != 'BIGINT(20) UNSIGNED') { |
||
| 917 | upd_do_query('DELETE FROM {{iraks}} WHERE OWNER NOT IN (SELECT id FROM {{users}}) OR zielid NOT IN (SELECT id FROM {{users}});', true); |
||
| 918 | |||
| 919 | upd_alter_table('iraks', array( |
||
| 920 | "CHANGE COLUMN `zeit` `fleet_end_time` INT(11) UNSIGNED NOT NULL DEFAULT 0", |
||
| 921 | "CHANGE COLUMN `zielid` `fleet_target_owner` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 922 | "CHANGE COLUMN `owner` `fleet_owner` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 923 | "CHANGE COLUMN `anzahl` `fleet_amount` BIGINT(20) UNSIGNED DEFAULT 0", |
||
| 924 | "CHANGE COLUMN `galaxy_angreifer` `fleet_start_galaxy` INT(2) UNSIGNED DEFAULT 0", |
||
| 925 | "CHANGE COLUMN `system_angreifer` `fleet_start_system` INT(4) UNSIGNED DEFAULT 0", |
||
| 926 | "CHANGE COLUMN `planet_angreifer` `fleet_start_planet` INT(2) UNSIGNED DEFAULT 0", |
||
| 927 | |||
| 928 | "CHANGE COLUMN `galaxy` `fleet_end_galaxy` INT(2) UNSIGNED DEFAULT 0", |
||
| 929 | "CHANGE COLUMN `system` `fleet_end_system` INT(4) UNSIGNED DEFAULT 0", |
||
| 930 | "CHANGE COLUMN `planet` `fleet_end_planet` INT(2) UNSIGNED DEFAULT 0", |
||
| 931 | |||
| 932 | "ADD KEY `I_iraks_fleet_owner` (`fleet_owner`)", |
||
| 933 | "ADD KEY `I_iraks_fleet_target_owner` (`fleet_target_owner`)", |
||
| 934 | |||
| 935 | "ADD CONSTRAINT `FK_iraks_fleet_owner` FOREIGN KEY (`fleet_owner`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 936 | "ADD CONSTRAINT `FK_iraks_fleet_target_owner` FOREIGN KEY (`fleet_target_owner`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 937 | ), true); |
||
| 938 | } |
||
| 939 | |||
| 940 | View Code Duplication | if(strtoupper($update_tables['notes']['owner']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 941 | upd_do_query('DELETE FROM {{notes}} WHERE OWNER NOT IN (SELECT id FROM {{users}});', true); |
||
| 942 | |||
| 943 | upd_alter_table('notes', array( |
||
| 944 | "MODIFY COLUMN id SERIAL", |
||
| 945 | "MODIFY COLUMN `owner` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 946 | |||
| 947 | "ADD KEY `I_notes_owner` (`owner`)", |
||
| 948 | |||
| 949 | "ADD CONSTRAINT `FK_notes_owner` FOREIGN KEY (`owner`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 950 | ), true); |
||
| 951 | } |
||
| 952 | |||
| 953 | upd_alter_table('planets', array( |
||
| 954 | "MODIFY COLUMN `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT", |
||
| 955 | "MODIFY COLUMN `name` VARCHAR(64) DEFAULT 'Planet' NOT NULL", |
||
| 956 | "MODIFY COLUMN `id_owner` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 957 | "MODIFY COLUMN `galaxy` SMALLINT NOT NULL DEFAULT '0'", |
||
| 958 | "MODIFY COLUMN `system` SMALLINT NOT NULL DEFAULT '0'", |
||
| 959 | "MODIFY COLUMN `planet` SMALLINT NOT NULL DEFAULT '0'", |
||
| 960 | "MODIFY COLUMN `planet_type` TINYINT NOT NULL DEFAULT '1'", |
||
| 961 | |||
| 962 | "MODIFY COLUMN `metal` DECIMAL(65,5) NOT NULL DEFAULT '0'", |
||
| 963 | "MODIFY COLUMN `crystal` DECIMAL(65,5) NOT NULL DEFAULT '0' AFTER `metal`", |
||
| 964 | "MODIFY COLUMN `deuterium` DECIMAL(65,5) NOT NULL DEFAULT '0' AFTER `crystal`", |
||
| 965 | "MODIFY COLUMN `energy_max` DECIMAL(65,0) NOT NULL DEFAULT '0' AFTER `deuterium`", |
||
| 966 | "MODIFY COLUMN `energy_used` DECIMAL(65,0) NOT NULL DEFAULT '0' AFTER `energy_max`", |
||
| 967 | |||
| 968 | "MODIFY COLUMN `metal_mine` SMALLINT NOT NULL DEFAULT '0'", |
||
| 969 | "MODIFY COLUMN `crystal_mine` SMALLINT NOT NULL DEFAULT '0'", |
||
| 970 | "MODIFY COLUMN `deuterium_sintetizer` SMALLINT NOT NULL DEFAULT '0'", |
||
| 971 | "MODIFY COLUMN `solar_plant` SMALLINT NOT NULL DEFAULT '0'", |
||
| 972 | "MODIFY COLUMN `fusion_plant` SMALLINT NOT NULL DEFAULT '0'", |
||
| 973 | "MODIFY COLUMN `robot_factory` SMALLINT NOT NULL DEFAULT '0'", |
||
| 974 | "MODIFY COLUMN `nano_factory` SMALLINT NOT NULL DEFAULT '0'", |
||
| 975 | "MODIFY COLUMN `hangar` SMALLINT NOT NULL DEFAULT '0'", |
||
| 976 | "MODIFY COLUMN `metal_store` SMALLINT NOT NULL DEFAULT '0'", |
||
| 977 | "MODIFY COLUMN `crystal_store` SMALLINT NOT NULL DEFAULT '0'", |
||
| 978 | "MODIFY COLUMN `deuterium_store` SMALLINT NOT NULL DEFAULT '0'", |
||
| 979 | "MODIFY COLUMN `laboratory` SMALLINT NOT NULL DEFAULT '0'", |
||
| 980 | "MODIFY COLUMN `nano` SMALLINT DEFAULT '0' AFTER `laboratory`", |
||
| 981 | "MODIFY COLUMN `terraformer` SMALLINT NOT NULL DEFAULT '0'", |
||
| 982 | "MODIFY COLUMN `ally_deposit` SMALLINT NOT NULL DEFAULT '0'", |
||
| 983 | "MODIFY COLUMN `silo` SMALLINT NOT NULL DEFAULT '0'", |
||
| 984 | "MODIFY COLUMN `mondbasis` SMALLINT NOT NULL DEFAULT '0' AFTER `silo`", |
||
| 985 | "MODIFY COLUMN `phalanx` SMALLINT NOT NULL DEFAULT '0' AFTER `mondbasis`", |
||
| 986 | "MODIFY COLUMN `sprungtor` SMALLINT NOT NULL DEFAULT '0' AFTER `phalanx`", |
||
| 987 | "MODIFY COLUMN `last_jump_time` int(11) NOT NULL DEFAULT '0' AFTER `sprungtor`", |
||
| 988 | |||
| 989 | "MODIFY COLUMN `small_ship_cargo` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 990 | "MODIFY COLUMN `big_ship_cargo` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 991 | "MODIFY COLUMN `supercargo` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Supercargo ship count' AFTER `big_ship_cargo`", |
||
| 992 | "MODIFY COLUMN `planet_cargo_hyper` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' AFTER `supercargo`", |
||
| 993 | "MODIFY COLUMN `recycler` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' AFTER `planet_cargo_hyper`", |
||
| 994 | "MODIFY COLUMN `colonizer` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' AFTER `recycler`", |
||
| 995 | "MODIFY COLUMN `spy_sonde` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' AFTER `colonizer`", |
||
| 996 | "MODIFY COLUMN `solar_satelit` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' AFTER `spy_sonde`", |
||
| 997 | |||
| 998 | "MODIFY COLUMN `light_hunter` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 999 | "MODIFY COLUMN `heavy_hunter` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1000 | "MODIFY COLUMN `crusher` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1001 | "MODIFY COLUMN `battle_ship` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1002 | "MODIFY COLUMN `bomber_ship` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1003 | "MODIFY COLUMN `battleship` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' AFTER `bomber_ship`", |
||
| 1004 | "MODIFY COLUMN `destructor` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1005 | "MODIFY COLUMN `dearth_star` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1006 | "MODIFY COLUMN `supernova` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1007 | |||
| 1008 | "MODIFY COLUMN `misil_launcher` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1009 | "MODIFY COLUMN `small_laser` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1010 | "MODIFY COLUMN `big_laser` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1011 | "MODIFY COLUMN `gauss_canyon` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1012 | "MODIFY COLUMN `ionic_canyon` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1013 | "MODIFY COLUMN `buster_canyon` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1014 | |||
| 1015 | "MODIFY COLUMN `small_protection_shield` tinyint(1) NOT NULL DEFAULT '0'", |
||
| 1016 | "MODIFY COLUMN `big_protection_shield` tinyint(1) NOT NULL DEFAULT '0'", |
||
| 1017 | "MODIFY COLUMN `planet_protector` tinyint(1) NOT NULL DEFAULT '0'", |
||
| 1018 | |||
| 1019 | "MODIFY COLUMN `interceptor_misil` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1020 | "MODIFY COLUMN `interplanetary_misil` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1021 | |||
| 1022 | "MODIFY COLUMN `metal_perhour` INT NOT NULL DEFAULT '0' AFTER `interplanetary_misil`", |
||
| 1023 | "MODIFY COLUMN `crystal_perhour` INT NOT NULL DEFAULT '0' AFTER `metal_perhour`", |
||
| 1024 | "MODIFY COLUMN `deuterium_perhour` INT NOT NULL DEFAULT '0' AFTER `crystal_perhour`", |
||
| 1025 | |||
| 1026 | "MODIFY COLUMN `metal_mine_porcent` TINYINT UNSIGNED NOT NULL DEFAULT '10'", |
||
| 1027 | "MODIFY COLUMN `crystal_mine_porcent` TINYINT UNSIGNED NOT NULL DEFAULT '10'", |
||
| 1028 | "MODIFY COLUMN `deuterium_sintetizer_porcent` TINYINT UNSIGNED NOT NULL DEFAULT '10'", |
||
| 1029 | "MODIFY COLUMN `solar_plant_porcent` TINYINT UNSIGNED NOT NULL DEFAULT '10'", |
||
| 1030 | "MODIFY COLUMN `fusion_plant_porcent` TINYINT UNSIGNED NOT NULL DEFAULT '10'", |
||
| 1031 | "MODIFY COLUMN `solar_satelit_porcent` TINYINT UNSIGNED NOT NULL DEFAULT '10'", |
||
| 1032 | |||
| 1033 | "MODIFY COLUMN `que` TEXT COMMENT 'Planet que' AFTER `solar_satelit_porcent`", |
||
| 1034 | // "MODIFY COLUMN `b_tech` INT(11) NOT NULL DEFAULT 0 AFTER `que`", |
||
| 1035 | // "MODIFY COLUMN `b_tech_id` SMALLINT NOT NULL DEFAULT 0 AFTER `b_tech`", |
||
| 1036 | "MODIFY COLUMN `b_hangar` INT(11) NOT NULL DEFAULT '0' AFTER `que`", |
||
| 1037 | "MODIFY COLUMN `b_hangar_id` TEXT AFTER `b_hangar`", |
||
| 1038 | "MODIFY COLUMN `last_update` INT(11) DEFAULT NULL AFTER `b_hangar_id`", |
||
| 1039 | |||
| 1040 | "MODIFY COLUMN `image` varchar(64) NOT NULL DEFAULT 'normaltempplanet01' AFTER `last_update`", |
||
| 1041 | "MODIFY COLUMN `points` bigint(20) DEFAULT '0' AFTER `image`", |
||
| 1042 | "MODIFY COLUMN `ranks` bigint(20) DEFAULT '0' AFTER `points`", |
||
| 1043 | "MODIFY COLUMN `id_level` TINYINT NOT NULL DEFAULT '0' AFTER `ranks`", |
||
| 1044 | "MODIFY COLUMN `destruyed` int(11) NOT NULL DEFAULT '0' AFTER `id_level`", |
||
| 1045 | "MODIFY COLUMN `diameter` int(11) NOT NULL DEFAULT '12800' AFTER `destruyed`", |
||
| 1046 | "MODIFY COLUMN `field_max` SMALLINT UNSIGNED NOT NULL DEFAULT '163' AFTER `diameter`", |
||
| 1047 | "MODIFY COLUMN `field_current` SMALLINT UNSIGNED NOT NULL DEFAULT '0' AFTER `field_max`", |
||
| 1048 | "MODIFY COLUMN `temp_min` SMALLINT NOT NULL DEFAULT '0' AFTER `field_current`", |
||
| 1049 | "MODIFY COLUMN `temp_max` SMALLINT NOT NULL DEFAULT '40' AFTER `temp_min`", |
||
| 1050 | |||
| 1051 | "MODIFY COLUMN `metal_max` DECIMAL(65,0) DEFAULT '100000' AFTER `temp_max`", |
||
| 1052 | "MODIFY COLUMN `crystal_max` DECIMAL(65,0) DEFAULT '100000' AFTER `metal_max`", |
||
| 1053 | "MODIFY COLUMN `deuterium_max` DECIMAL(65,0) DEFAULT '100000' AFTER `crystal_max`", |
||
| 1054 | |||
| 1055 | "MODIFY COLUMN `debris_metal` bigint(20) unsigned DEFAULT '0'", |
||
| 1056 | "MODIFY COLUMN `debris_crystal` bigint(20) unsigned DEFAULT '0'", |
||
| 1057 | "MODIFY COLUMN `PLANET_GOVERNOR_ID` SMALLINT NOT NULL DEFAULT '0'", |
||
| 1058 | "MODIFY COLUMN `PLANET_GOVERNOR_LEVEL` SMALLINT NOT NULL DEFAULT '0'", |
||
| 1059 | |||
| 1060 | "MODIFY COLUMN `parent_planet` BIGINT(20) unsigned DEFAULT '0'", |
||
| 1061 | |||
| 1062 | "DROP COLUMN `b_hangar_plus`", |
||
| 1063 | ), isset($update_tables['planets']['b_hangar_plus'])); |
||
| 1064 | |||
| 1065 | View Code Duplication | if(strtoupper($update_tables['referrals']['id_partner']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 1066 | upd_do_query('DELETE FROM {{referrals}} WHERE id NOT IN (SELECT id FROM {{users}}) OR id_partner NOT IN (SELECT id FROM {{users}});', true); |
||
| 1067 | |||
| 1068 | upd_alter_table('referrals', array( |
||
| 1069 | "MODIFY COLUMN `id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 1070 | "MODIFY COLUMN `id_partner` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 1071 | "MODIFY COLUMN `dark_matter` DECIMAL(65,0) NOT NULL DEFAULT '0'", |
||
| 1072 | |||
| 1073 | "ADD CONSTRAINT `FK_referrals_id` FOREIGN KEY (`id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1074 | "ADD CONSTRAINT `FK_referrals_id_partner` FOREIGN KEY (`id_partner`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1075 | ), true); |
||
| 1076 | } |
||
| 1077 | |||
| 1078 | upd_alter_table('rw', array( |
||
| 1079 | "MODIFY COLUMN `report_id` SERIAL", |
||
| 1080 | "MODIFY COLUMN `id_owner1` BIGINT(20) UNSIGNED", |
||
| 1081 | "MODIFY COLUMN `id_owner2` BIGINT(20) UNSIGNED", |
||
| 1082 | ), strtoupper($update_tables['rw']['id_owner1']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 1083 | |||
| 1084 | View Code Duplication | if(strtoupper($update_tables['shortcut']['shortcut_user_id']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 1085 | upd_do_query('DELETE FROM {{shortcut}} WHERE shortcut_user_id NOT IN (SELECT id FROM {{users}}) OR shortcut_planet_id NOT IN (SELECT id FROM {{planets}});', true); |
||
| 1086 | |||
| 1087 | upd_alter_table('shortcut', array( |
||
| 1088 | "MODIFY COLUMN `shortcut_id` SERIAL", |
||
| 1089 | "MODIFY COLUMN `shortcut_user_id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 1090 | "MODIFY COLUMN `shortcut_planet_id` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 1091 | "MODIFY COLUMN `shortcut_galaxy` TINYINT UNSIGNED DEFAULT 0", |
||
| 1092 | "MODIFY COLUMN `shortcut_system` SMALLINT UNSIGNED DEFAULT 0", |
||
| 1093 | "MODIFY COLUMN `shortcut_planet` TINYINT UNSIGNED DEFAULT 0", |
||
| 1094 | |||
| 1095 | "ADD CONSTRAINT `FK_shortcut_planet_id` FOREIGN KEY (`shortcut_planet_id`) REFERENCES `{{planets}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1096 | ), true); |
||
| 1097 | } |
||
| 1098 | |||
| 1099 | if(strtoupper($update_tables['statpoints']['id_owner']['Type']) != 'BIGINT(20) UNSIGNED') { |
||
| 1100 | upd_do_query('DELETE FROM {{statpoints}} WHERE id_owner NOT IN (SELECT id FROM {{users}}) OR id_ally NOT IN (SELECT id FROM {{alliance}});', true); |
||
| 1101 | |||
| 1102 | upd_alter_table('statpoints', array( |
||
| 1103 | "MODIFY COLUMN `stat_date` int(11) NOT NULL DEFAULT '0' FIRST", |
||
| 1104 | "MODIFY COLUMN `id_owner` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 1105 | "MODIFY COLUMN `id_ally` BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 1106 | "MODIFY COLUMN `stat_type` TINYINT UNSIGNED DEFAULT 0", |
||
| 1107 | "MODIFY COLUMN `stat_code` TINYINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1108 | |||
| 1109 | "MODIFY COLUMN `tech_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1110 | "MODIFY COLUMN `tech_old_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1111 | "MODIFY COLUMN `tech_points` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1112 | "MODIFY COLUMN `tech_count` DECIMAL(65,0) UNSIGNED UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1113 | |||
| 1114 | "MODIFY COLUMN `build_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1115 | "MODIFY COLUMN `build_old_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1116 | "MODIFY COLUMN `build_points` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1117 | "MODIFY COLUMN `build_count` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1118 | |||
| 1119 | "MODIFY COLUMN `defs_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1120 | "MODIFY COLUMN `defs_old_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1121 | "MODIFY COLUMN `defs_points` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1122 | "MODIFY COLUMN `defs_count` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1123 | |||
| 1124 | "MODIFY COLUMN `fleet_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1125 | "MODIFY COLUMN `fleet_old_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1126 | "MODIFY COLUMN `fleet_points` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1127 | "MODIFY COLUMN `fleet_count` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1128 | |||
| 1129 | "MODIFY COLUMN `res_rank` INT(11) UNSIGNED DEFAULT '0' COMMENT 'Rank by resources' AFTER `fleet_count`", |
||
| 1130 | "MODIFY COLUMN `res_old_rank` INT(11) UNSIGNED DEFAULT '0' COMMENT 'Old rank by resources'AFTER `res_rank`", |
||
| 1131 | "MODIFY COLUMN `res_points` DECIMAL(65,0) UNSIGNED DEFAULT '0' COMMENT 'Resource stat points' AFTER `res_old_rank`", |
||
| 1132 | "MODIFY COLUMN `res_count` DECIMAL(65,0) UNSIGNED DEFAULT '0' COMMENT 'Resource count' AFTER `res_points`", |
||
| 1133 | |||
| 1134 | "MODIFY COLUMN `total_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1135 | "MODIFY COLUMN `total_old_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1136 | "MODIFY COLUMN `total_points` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1137 | "MODIFY COLUMN `total_count` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1138 | |||
| 1139 | "ADD KEY `I_stats_id_ally` (`id_ally`)", |
||
| 1140 | |||
| 1141 | "ADD CONSTRAINT `FK_stats_id_owner` FOREIGN KEY (`id_owner`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1142 | "ADD CONSTRAINT `FK_stats_id_ally` FOREIGN KEY (`id_ally`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1143 | ), true); |
||
| 1144 | } |
||
| 1145 | |||
| 1146 | upd_alter_table('users', array( |
||
| 1147 | "MODIFY COLUMN `authlevel` tinyint unsigned NOT NULL DEFAULT '0' AFTER `username`", |
||
| 1148 | "MODIFY COLUMN `vacation` int(11) unsigned DEFAULT '0' AFTER `authlevel`", |
||
| 1149 | "MODIFY COLUMN `banaday` int(11) unsigned DEFAULT '0' AFTER `vacation`", |
||
| 1150 | "MODIFY COLUMN `dark_matter` bigint(20) DEFAULT '0' AFTER `banaday`", |
||
| 1151 | "MODIFY COLUMN `spy_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1152 | "MODIFY COLUMN `computer_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1153 | "MODIFY COLUMN `military_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1154 | "MODIFY COLUMN `defence_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1155 | "MODIFY COLUMN `shield_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1156 | "MODIFY COLUMN `energy_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1157 | "MODIFY COLUMN `hyperspace_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1158 | "MODIFY COLUMN `combustion_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1159 | "MODIFY COLUMN `impulse_motor_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1160 | "MODIFY COLUMN `hyperspace_motor_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1161 | "MODIFY COLUMN `laser_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1162 | "MODIFY COLUMN `ionic_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1163 | "MODIFY COLUMN `buster_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1164 | "MODIFY COLUMN `intergalactic_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1165 | "MODIFY COLUMN `expedition_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1166 | "MODIFY COLUMN `colonisation_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1167 | "MODIFY COLUMN `graviton_tech` SMALLINT UNSIGNED NOT NULL DEFAULT '0'", |
||
| 1168 | "MODIFY COLUMN `player_artifact_list` text AFTER `graviton_tech`", |
||
| 1169 | "MODIFY COLUMN `ally_id` bigint(20) unsigned DEFAULT NULL AFTER `player_artifact_list`", |
||
| 1170 | "MODIFY COLUMN `ally_tag` varchar(8) DEFAULT NULL AFTER `ally_id`", |
||
| 1171 | "MODIFY COLUMN `ally_name` varchar(32) DEFAULT NULL AFTER `ally_tag`", |
||
| 1172 | "MODIFY COLUMN `ally_register_time` int(11) NOT NULL DEFAULT '0' AFTER `ally_name`", |
||
| 1173 | "MODIFY COLUMN `ally_rank_id` int(11) NOT NULL DEFAULT '0' AFTER `ally_register_time`", |
||
| 1174 | "MODIFY COLUMN `player_que` text AFTER `ally_rank_id`", |
||
| 1175 | "MODIFY COLUMN `lvl_minier` bigint(20) unsigned NOT NULL DEFAULT '1'", |
||
| 1176 | "MODIFY COLUMN `xpminier` bigint(20) unsigned DEFAULT '0' AFTER `lvl_minier`", |
||
| 1177 | "MODIFY COLUMN `player_rpg_tech_xp` bigint(20) unsigned NOT NULL DEFAULT '0'", |
||
| 1178 | "MODIFY COLUMN `player_rpg_tech_level` bigint(20) unsigned NOT NULL DEFAULT '0'", |
||
| 1179 | "MODIFY COLUMN `lvl_raid` bigint(20) unsigned NOT NULL DEFAULT '1' AFTER `player_rpg_tech_level`", |
||
| 1180 | "MODIFY COLUMN `xpraid` bigint(20) unsigned DEFAULT '0'", |
||
| 1181 | "MODIFY COLUMN `raids` bigint(20) unsigned DEFAULT '0'", |
||
| 1182 | "MODIFY COLUMN `raidsloose` bigint(20) unsigned DEFAULT '0'", |
||
| 1183 | "MODIFY COLUMN `raidswin` bigint(20) unsigned DEFAULT '0'", |
||
| 1184 | "MODIFY COLUMN `new_message` int(11) NOT NULL DEFAULT '0' AFTER `raidswin`", |
||
| 1185 | "MODIFY COLUMN `mnl_alliance` int(11) NOT NULL DEFAULT '0'", |
||
| 1186 | "MODIFY COLUMN `mnl_joueur` int(11) NOT NULL DEFAULT '0'", |
||
| 1187 | "MODIFY COLUMN `mnl_attaque` int(11) NOT NULL DEFAULT '0'", |
||
| 1188 | "MODIFY COLUMN `mnl_spy` int(11) NOT NULL DEFAULT '0'", |
||
| 1189 | "MODIFY COLUMN `mnl_exploit` int(11) NOT NULL DEFAULT '0'", |
||
| 1190 | "MODIFY COLUMN `mnl_transport` int(11) NOT NULL DEFAULT '0'", |
||
| 1191 | "MODIFY COLUMN `mnl_expedition` int(11) NOT NULL DEFAULT '0'", |
||
| 1192 | "MODIFY COLUMN `mnl_buildlist` int(11) NOT NULL DEFAULT '0'", |
||
| 1193 | "MODIFY COLUMN `msg_admin` bigint(11) unsigned DEFAULT '0'", |
||
| 1194 | // "MODIFY COLUMN `b_tech_planet` int(11) NOT NULL DEFAULT '0' AFTER `msg_admin`", |
||
| 1195 | "MODIFY COLUMN `deltime` int(10) unsigned DEFAULT '0'", |
||
| 1196 | "MODIFY COLUMN `news_lastread` int(10) unsigned DEFAULT '0'", |
||
| 1197 | "MODIFY COLUMN `total_rank` int(10) unsigned NOT NULL DEFAULT '0'", |
||
| 1198 | "MODIFY COLUMN `total_points` bigint(20) unsigned NOT NULL DEFAULT '0'", |
||
| 1199 | "MODIFY COLUMN `password` varchar(64) NOT NULL DEFAULT '' AFTER `total_points`", |
||
| 1200 | "MODIFY COLUMN `email` varchar(64) NOT NULL DEFAULT '' AFTER `password`", |
||
| 1201 | "MODIFY COLUMN `email_2` varchar(64) NOT NULL DEFAULT '' AFTER `email`", |
||
| 1202 | "MODIFY COLUMN `lang` varchar(8) NOT NULL DEFAULT 'ru' AFTER `email_2`", |
||
| 1203 | "MODIFY COLUMN `sex` char(1) DEFAULT NULL AFTER `lang`", |
||
| 1204 | "MODIFY COLUMN `avatar` varchar(255) NOT NULL DEFAULT '' AFTER `sex`", |
||
| 1205 | "MODIFY COLUMN `sign` mediumtext AFTER `avatar`", |
||
| 1206 | "MODIFY COLUMN `id_planet` int(11) NOT NULL DEFAULT '0' AFTER `sign`", |
||
| 1207 | "MODIFY COLUMN `galaxy` int(11) NOT NULL DEFAULT '0' AFTER `id_planet`", |
||
| 1208 | "MODIFY COLUMN `system` int(11) NOT NULL DEFAULT '0' AFTER `galaxy`", |
||
| 1209 | "MODIFY COLUMN `planet` int(11) NOT NULL DEFAULT '0' AFTER `system`", |
||
| 1210 | "MODIFY COLUMN `current_planet` int(11) NOT NULL DEFAULT '0' AFTER `planet`", |
||
| 1211 | "MODIFY COLUMN `user_agent` mediumtext NOT NULL AFTER `current_planet`", |
||
| 1212 | "MODIFY COLUMN `user_lastip` varchar(250) DEFAULT NULL COMMENT 'User last IP' AFTER `user_agent`", |
||
| 1213 | "MODIFY COLUMN `user_proxy` varchar(250) NOT NULL DEFAULT '' COMMENT 'User proxy (if any)' AFTER `user_lastip`", |
||
| 1214 | "MODIFY COLUMN `register_time` int(10) unsigned DEFAULT '0' AFTER `user_proxy`", |
||
| 1215 | "MODIFY COLUMN `onlinetime` int(10) unsigned DEFAULT '0' AFTER `register_time`", |
||
| 1216 | "MODIFY COLUMN `dpath` varchar(255) NOT NULL DEFAULT '' AFTER `onlinetime`", |
||
| 1217 | "MODIFY COLUMN `design` tinyint(4) unsigned NOT NULL DEFAULT '1' AFTER `dpath`", |
||
| 1218 | "MODIFY COLUMN `noipcheck` tinyint(4) unsigned NOT NULL DEFAULT '1' AFTER `design`", |
||
| 1219 | "MODIFY COLUMN `options` mediumtext COMMENT 'Packed user options' AFTER `noipcheck`", |
||
| 1220 | "MODIFY COLUMN `planet_sort` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `options`", |
||
| 1221 | "MODIFY COLUMN `planet_sort_order` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `planet_sort`", |
||
| 1222 | "MODIFY COLUMN `spio_anz` tinyint(1) unsigned NOT NULL DEFAULT '1' AFTER `planet_sort_order`", |
||
| 1223 | "MODIFY COLUMN `settings_tooltiptime` tinyint(1) unsigned NOT NULL DEFAULT '5' AFTER `spio_anz`", |
||
| 1224 | "MODIFY COLUMN `settings_fleetactions` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `settings_tooltiptime`", |
||
| 1225 | "MODIFY COLUMN `settings_esp` tinyint(1) unsigned NOT NULL DEFAULT '1' AFTER `settings_allylogo`", |
||
| 1226 | "MODIFY COLUMN `settings_wri` tinyint(1) unsigned NOT NULL DEFAULT '1' AFTER `settings_esp`", |
||
| 1227 | "MODIFY COLUMN `settings_bud` tinyint(1) unsigned NOT NULL DEFAULT '1' AFTER `settings_wri`", |
||
| 1228 | "MODIFY COLUMN `settings_mis` tinyint(1) unsigned NOT NULL DEFAULT '1' AFTER `settings_bud`", |
||
| 1229 | "MODIFY COLUMN `settings_rep` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `settings_mis`", |
||
| 1230 | ), strtoupper($update_tables['users']['id_owner']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 1231 | |||
| 1232 | upd_do_query('COMMIT;', true); |
||
| 1233 | $new_version = 32; |
||
| 1234 | |||
| 1235 | case 32: |
||
| 1236 | upd_log_version_update(); |
||
| 1237 | |||
| 1238 | upd_check_key('avatar_max_width', 128, !isset(classSupernova::$config->avatar_max_width)); |
||
| 1239 | upd_check_key('avatar_max_height', 128, !isset(classSupernova::$config->avatar_max_height)); |
||
| 1240 | |||
| 1241 | upd_alter_table('users', array( |
||
| 1242 | "MODIFY COLUMN `avatar` tinyint(1) unsigned NOT NULL DEFAULT '0'", |
||
| 1243 | ), strtoupper($update_tables['users']['avatar']['Type']) != 'TINYINT(1) UNSIGNED'); |
||
| 1244 | |||
| 1245 | upd_alter_table('alliance', array( |
||
| 1246 | "MODIFY COLUMN `ally_image` tinyint(1) unsigned NOT NULL DEFAULT '0'", |
||
| 1247 | ), strtoupper($update_tables['alliance']['ally_image']['Type']) != 'TINYINT(1) UNSIGNED'); |
||
| 1248 | |||
| 1249 | upd_alter_table('users', array( |
||
| 1250 | "DROP COLUMN `settings_allylogo`", |
||
| 1251 | ), isset($update_tables['users']['settings_allylogo'])); |
||
| 1252 | |||
| 1253 | if(!isset($update_tables['powerup'])) { |
||
| 1254 | upd_do_query("DROP TABLE IF EXISTS {{mercenaries}};"); |
||
| 1255 | |||
| 1256 | upd_create_table('powerup', |
||
| 1257 | "( |
||
| 1258 | `powerup_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, |
||
| 1259 | `powerup_user_id` bigint(20) UNSIGNED NULL DEFAULT NULL, |
||
| 1260 | `powerup_planet_id` bigint(20) UNSIGNED NULL DEFAULT NULL, |
||
| 1261 | `powerup_category` SMALLINT NOT NULL DEFAULT 0, |
||
| 1262 | `powerup_unit_id` MEDIUMINT UNSIGNED NOT NULL DEFAULT '0', |
||
| 1263 | `powerup_unit_level` SMALLINT UNSIGNED NOT NULL DEFAULT '0', |
||
| 1264 | `powerup_time_start` int(11) NOT NULL DEFAULT '0', |
||
| 1265 | `powerup_time_finish` int(11) NOT NULL DEFAULT '0', |
||
| 1266 | |||
| 1267 | PRIMARY KEY (`powerup_id`), |
||
| 1268 | KEY `I_powerup_user_id` (`powerup_user_id`), |
||
| 1269 | KEY `I_powerup_planet_id` (`powerup_planet_id`), |
||
| 1270 | KEY `I_user_powerup_time` (`powerup_user_id`, `powerup_unit_id`, `powerup_time_start`, `powerup_time_finish`), |
||
| 1271 | KEY `I_planet_powerup_time` (`powerup_planet_id`, `powerup_unit_id`, `powerup_time_start`, `powerup_time_finish`), |
||
| 1272 | |||
| 1273 | CONSTRAINT `FK_powerup_user_id` FOREIGN KEY (`powerup_user_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, |
||
| 1274 | CONSTRAINT `FK_powerup_planet_id` FOREIGN KEY (`powerup_planet_id`) REFERENCES `{{planets}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
||
| 1275 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1276 | ); |
||
| 1277 | |||
| 1278 | upd_check_key('empire_mercenary_temporary', 0, !isset(classSupernova::$config->empire_mercenary_temporary)); |
||
| 1279 | upd_check_key('empire_mercenary_base_period', PERIOD_MONTH, !isset(classSupernova::$config->empire_mercenary_base_period)); |
||
| 1280 | |||
| 1281 | $update_query_template = "UPDATE {{users}} SET id = id %s WHERE id = %d LIMIT 1;"; |
||
| 1282 | $user_list = upd_do_query("SELECT * FROM {{users}};"); |
||
| 1283 | while($user_row = db_fetch($user_list)) { |
||
| 1284 | $update_query_str = ''; |
||
| 1285 | foreach(sn_get_groups('mercenaries') as $mercenary_id) { |
||
| 1286 | $mercenary_data_name = get_unit_param($mercenary_id, P_NAME); |
||
| 1287 | if($mercenary_level = $user_row[$mercenary_data_name]) { |
||
| 1288 | $update_query_str = ", `{$mercenary_data_name}` = 0"; |
||
| 1289 | upd_do_query("DELETE FROM {{powerup}} WHERE powerup_user_id = {$user_row['id']} AND powerup_unit_id = {$mercenary_id} LIMIT 1;"); |
||
| 1290 | upd_do_query("INSERT {{powerup}} SET powerup_user_id = {$user_row['id']}, powerup_unit_id = {$mercenary_id}, powerup_unit_level = {$mercenary_level};"); |
||
| 1291 | } |
||
| 1292 | } |
||
| 1293 | |||
| 1294 | if($update_query_str) { |
||
| 1295 | upd_do_query(sprintf($update_query_template, $update_query_str, $user_row['id'])); |
||
| 1296 | } |
||
| 1297 | } |
||
| 1298 | } |
||
| 1299 | |||
| 1300 | if(!isset($update_tables['universe'])) { |
||
| 1301 | upd_create_table('universe', |
||
| 1302 | "( |
||
| 1303 | `universe_galaxy` SMALLINT UNSIGNED NOT NULL DEFAULT '0', |
||
| 1304 | `universe_system` SMALLINT UNSIGNED NOT NULL DEFAULT '0', |
||
| 1305 | `universe_name` varchar(32) NOT NULL DEFAULT '', |
||
| 1306 | `universe_price` bigint(20) NOT NULL DEFAULT 0, |
||
| 1307 | |||
| 1308 | PRIMARY KEY (`universe_galaxy`, `universe_system`) |
||
| 1309 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1310 | ); |
||
| 1311 | |||
| 1312 | upd_check_key('uni_price_galaxy', 10000, !isset(classSupernova::$config->uni_price_galaxy)); |
||
| 1313 | upd_check_key('uni_price_system', 1000, !isset(classSupernova::$config->uni_price_system)); |
||
| 1314 | } |
||
| 1315 | |||
| 1316 | // ======================================================================== |
||
| 1317 | // Ally player |
||
| 1318 | // Adding config variable |
||
| 1319 | upd_check_key('ali_bonus_members', 10, !isset(classSupernova::$config->ali_bonus_members)); |
||
| 1320 | |||
| 1321 | // ------------------------------------------------------------------------ |
||
| 1322 | // Modifying tables |
||
| 1323 | View Code Duplication | if(strtoupper($update_tables['users']['user_as_ally']['Type']) != 'BIGINT(20) UNSIGNED') { |
|
| 1324 | upd_alter_table('users', array( |
||
| 1325 | "ADD COLUMN user_as_ally BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 1326 | |||
| 1327 | "ADD KEY `I_user_user_as_ally` (`user_as_ally`)", |
||
| 1328 | |||
| 1329 | "ADD CONSTRAINT `FK_user_user_as_ally` FOREIGN KEY (`user_as_ally`) REFERENCES `{{alliance}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1330 | ), true); |
||
| 1331 | |||
| 1332 | upd_alter_table('alliance', array( |
||
| 1333 | "ADD COLUMN ally_user_id BIGINT(20) UNSIGNED DEFAULT NULL", |
||
| 1334 | |||
| 1335 | "ADD KEY `I_ally_user_id` (`ally_user_id`)", |
||
| 1336 | |||
| 1337 | "ADD CONSTRAINT `FK_ally_ally_user_id` FOREIGN KEY (`ally_user_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1338 | ), true); |
||
| 1339 | } |
||
| 1340 | |||
| 1341 | // ------------------------------------------------------------------------ |
||
| 1342 | // Creating players for allies |
||
| 1343 | $ally_row_list = classSupernova::$db->doSelect("SELECT `id`, `ally_tag` FROM {{alliance}} WHERE ally_user_id IS NULL;"); |
||
| 1344 | View Code Duplication | while($ally_row = db_fetch($ally_row_list)) { |
|
| 1345 | $ally_user_name = db_escape("[{$ally_row['ally_tag']}]"); |
||
| 1346 | classSupernova::$db->doInsert("INSERT INTO {{users}} SET `username` = '{$ally_user_name}', `register_time` = " . SN_TIME_NOW . ", `user_as_ally` = {$ally_row['id']};"); |
||
| 1347 | $ally_user_id = classSupernova::$db->db_insert_id(); |
||
| 1348 | classSupernova::$db->doUpdate("UPDATE {{alliance}} SET ally_user_id = {$ally_user_id} WHERE id = {$ally_row['id']} LIMIT 1;"); |
||
| 1349 | } |
||
| 1350 | // Renaming old ally players TODO: Remove on release |
||
| 1351 | upd_do_query("UPDATE {{users}} AS u LEFT JOIN {{alliance}} AS a ON u.user_as_ally = a.id SET u.username = CONCAT('[', a.ally_tag, ']') WHERE u.user_as_ally IS NOT NULL AND u.username = '';"); |
||
| 1352 | // Setting last online time to old ally players TODO: Remove on release |
||
| 1353 | upd_do_query("UPDATE {{users}} SET `onlinetime` = " . SN_TIME_NOW . " WHERE onlinetime = 0;"); |
||
| 1354 | |||
| 1355 | // ------------------------------------------------------------------------ |
||
| 1356 | // Creating planets for allies |
||
| 1357 | $ally_user_list = classSupernova::$db->doSelect("SELECT `id`, `username` FROM {{users}} WHERE `user_as_ally` IS NOT NULL AND `id_planet` = 0;"); |
||
| 1358 | View Code Duplication | while($ally_user_row = db_fetch($ally_user_list)) { |
|
| 1359 | $ally_planet_name = db_escape($ally_user_row['username']); |
||
| 1360 | classSupernova::$db->doInsert("INSERT INTO {{planets}} SET `name` = '{$ally_planet_name}', `last_update` = " . SN_TIME_NOW . ", `id_owner` = {$ally_user_row['id']};"); |
||
| 1361 | $ally_planet_id = classSupernova::$db->db_insert_id(); |
||
| 1362 | classSupernova::$db->doUpdate("UPDATE {{users}} SET `id_planet` = {$ally_planet_id} WHERE `id` = {$ally_user_row['id']} LIMIT 1;"); |
||
| 1363 | } |
||
| 1364 | |||
| 1365 | upd_do_query("UPDATE {{users}} AS u LEFT JOIN {{alliance}} AS a ON u.ally_id = a.id SET u.ally_name = a.ally_name, u.ally_tag = a.ally_tag WHERE u.ally_id IS NOT NULL;"); |
||
| 1366 | |||
| 1367 | upd_alter_table('users', array( |
||
| 1368 | "DROP COLUMN `rpg_amiral`", |
||
| 1369 | "DROP COLUMN `mrc_academic`", |
||
| 1370 | "DROP COLUMN `rpg_espion`", |
||
| 1371 | "DROP COLUMN `rpg_commandant`", |
||
| 1372 | "DROP COLUMN `rpg_stockeur`", |
||
| 1373 | "DROP COLUMN `rpg_destructeur`", |
||
| 1374 | "DROP COLUMN `rpg_general`", |
||
| 1375 | "DROP COLUMN `rpg_raideur`", |
||
| 1376 | "DROP COLUMN `rpg_empereur`", |
||
| 1377 | |||
| 1378 | "ADD COLUMN `metal` decimal(65,5) NOT NULL DEFAULT '0.00000'", |
||
| 1379 | "ADD COLUMN `crystal` decimal(65,5) NOT NULL DEFAULT '0.00000'", |
||
| 1380 | "ADD COLUMN `deuterium` decimal(65,5) NOT NULL DEFAULT '0.00000'", |
||
| 1381 | ), $update_tables['users']['rpg_amiral']); |
||
| 1382 | |||
| 1383 | |||
| 1384 | // ======================================================================== |
||
| 1385 | // User que |
||
| 1386 | // Adding db field |
||
| 1387 | upd_alter_table('users', "ADD `que` varchar(4096) NOT NULL DEFAULT '' COMMENT 'User que'", !$update_tables['users']['que']); |
||
| 1388 | // Converting old data to new one and dropping old fields |
||
| 1389 | if($update_tables['users']['b_tech_planet']) { |
||
| 1390 | $query = classSupernova::$db->doSelect("SELECT * FROM `{{planets}}` WHERE `b_tech_id` <> 0;"); |
||
| 1391 | while($planet_row = db_fetch($query)) { |
||
| 1392 | $que_item_string = "{$planet_row['b_tech_id']},1," . max(0, $planet_row['b_tech'] - SN_TIME_NOW) . "," . BUILD_CREATE . "," . QUE_RESEARCH; |
||
| 1393 | classSupernova::$db->doUpdate("UPDATE {{users}} SET `que` = '{$que_item_string}' WHERE `id` = {$planet_row['id_owner']} LIMIT 1;"); |
||
| 1394 | } |
||
| 1395 | |||
| 1396 | upd_alter_table('planets', array( |
||
| 1397 | "DROP COLUMN `b_tech`", |
||
| 1398 | "DROP COLUMN `b_tech_id`", |
||
| 1399 | ), $update_tables['planets']['b_tech']); |
||
| 1400 | |||
| 1401 | upd_alter_table('users', "DROP COLUMN `b_tech_planet`", $update_tables['users']['b_tech_planet']); |
||
| 1402 | } |
||
| 1403 | |||
| 1404 | View Code Duplication | if(!$update_tables['powerup']['powerup_category']) { |
|
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. Loading history...
|
|||
| 1405 | upd_alter_table('powerup', "ADD COLUMN `powerup_category` SMALLINT NOT NULL DEFAULT 0 AFTER `powerup_planet_id`", !$update_tables['powerup']['powerup_category']); |
||
| 1406 | |||
| 1407 | classSupernova::$db->doUpdate("UPDATE {{powerup}} SET powerup_category = " . BONUS_MERCENARY); |
||
| 1408 | } |
||
| 1409 | |||
| 1410 | upd_check_key('rpg_cost_info', 10000, !isset(classSupernova::$config->rpg_cost_info)); |
||
| 1411 | upd_check_key('tpl_minifier', 0, !isset(classSupernova::$config->tpl_minifier)); |
||
| 1412 | |||
| 1413 | upd_check_key('server_updater_check_auto', 0, !isset(classSupernova::$config->server_updater_check_auto)); |
||
| 1414 | upd_check_key('server_updater_check_period', PERIOD_DAY, !isset(classSupernova::$config->server_updater_check_period)); |
||
| 1415 | upd_check_key('server_updater_check_last', 0, !isset(classSupernova::$config->server_updater_check_last)); |
||
| 1416 | upd_check_key('server_updater_check_result', SNC_VER_NEVER, !isset(classSupernova::$config->server_updater_check_result)); |
||
| 1417 | upd_check_key('server_updater_key', '', !isset(classSupernova::$config->server_updater_key)); |
||
| 1418 | upd_check_key('server_updater_id', 0, !isset(classSupernova::$config->server_updater_id)); |
||
| 1419 | |||
| 1420 | upd_check_key('ali_bonus_algorithm', 0, !isset(classSupernova::$config->ali_bonus_algorithm)); |
||
| 1421 | upd_check_key('ali_bonus_divisor', 10000000, !isset(classSupernova::$config->ali_bonus_divisor)); |
||
| 1422 | upd_check_key('ali_bonus_brackets', 10, !isset(classSupernova::$config->ali_bonus_brackets)); |
||
| 1423 | upd_check_key('ali_bonus_brackets_divisor', 50, !isset(classSupernova::$config->ali_bonus_brackets_divisor)); |
||
| 1424 | |||
| 1425 | if(!classSupernova::$config->db_loadItem('rpg_flt_explore')) { |
||
| 1426 | $inflation_rate = 1000; |
||
| 1427 | |||
| 1428 | classSupernova::$config->db_saveItem('rpg_cost_banker', classSupernova::$config->rpg_cost_banker * $inflation_rate); |
||
| 1429 | classSupernova::$config->db_saveItem('rpg_cost_exchange', classSupernova::$config->rpg_cost_exchange * $inflation_rate); |
||
| 1430 | classSupernova::$config->db_saveItem('rpg_cost_pawnshop', classSupernova::$config->rpg_cost_pawnshop * $inflation_rate); |
||
| 1431 | classSupernova::$config->db_saveItem('rpg_cost_scraper', classSupernova::$config->rpg_cost_scraper * $inflation_rate); |
||
| 1432 | classSupernova::$config->db_saveItem('rpg_cost_stockman', classSupernova::$config->rpg_cost_stockman * $inflation_rate); |
||
| 1433 | classSupernova::$config->db_saveItem('rpg_cost_trader', classSupernova::$config->rpg_cost_trader * $inflation_rate); |
||
| 1434 | |||
| 1435 | classSupernova::$config->db_saveItem('rpg_exchange_darkMatter', classSupernova::$config->rpg_exchange_darkMatter / $inflation_rate * 4); |
||
| 1436 | |||
| 1437 | classSupernova::$config->db_saveItem('rpg_flt_explore', $inflation_rate); |
||
| 1438 | |||
| 1439 | classSupernova::$db->doUpdate("UPDATE {{users}} SET `dark_matter` = `dark_matter` * {$inflation_rate};"); |
||
| 1440 | |||
| 1441 | $query = classSupernova::$db->doSelect("SELECT * FROM `{{quest}}`"); |
||
| 1442 | while($row = db_fetch($query)) { |
||
| 1443 | $query_add = ''; |
||
| 1444 | $quest_reward_list = explode(';', $row['quest_rewards']); |
||
| 1445 | foreach($quest_reward_list as &$quest_reward) { |
||
| 1446 | list($reward_resource, $reward_amount) = explode(',', $quest_reward); |
||
| 1447 | if($reward_resource == RES_DARK_MATTER) { |
||
| 1448 | $quest_reward = "{$reward_resource}," . $reward_amount * 1000; |
||
| 1449 | } |
||
| 1450 | } |
||
| 1451 | $new_rewards = implode(';', $quest_reward_list); |
||
| 1452 | if($new_rewards != $row['quest_rewards']) { |
||
| 1453 | classSupernova::$db->doUpdate("UPDATE {{quest}} SET `quest_rewards` = '{$new_rewards}' WHERE quest_id = {$row['quest_id']} LIMIT 1;"); |
||
| 1454 | } |
||
| 1455 | } |
||
| 1456 | } |
||
| 1457 | |||
| 1458 | upd_check_key('rpg_bonus_minimum', 10000, !isset(classSupernova::$config->rpg_bonus_minimum)); |
||
| 1459 | upd_check_key('rpg_bonus_divisor', |
||
| 1460 | !isset(classSupernova::$config->rpg_bonus_divisor) ? 10 : (classSupernova::$config->rpg_bonus_divisor >= 1000 ? floor(classSupernova::$config->rpg_bonus_divisor / 1000) : classSupernova::$config->rpg_bonus_divisor), |
||
| 1461 | !isset(classSupernova::$config->rpg_bonus_divisor) || classSupernova::$config->rpg_bonus_divisor >= 1000); |
||
| 1462 | |||
| 1463 | upd_check_key('var_news_last', 0, !isset(classSupernova::$config->var_news_last)); |
||
| 1464 | |||
| 1465 | upd_do_query('COMMIT;', true); |
||
| 1466 | $new_version = 33; |
||
| 1467 | |||
| 1468 | case 33: |
||
| 1469 | upd_log_version_update(); |
||
| 1470 | |||
| 1471 | upd_alter_table('users', array( |
||
| 1472 | "ADD `user_birthday` DATE DEFAULT NULL COMMENT 'User birthday'", |
||
| 1473 | "ADD `user_birthday_celebrated` DATE DEFAULT NULL COMMENT 'Last time where user got birthday gift'", |
||
| 1474 | |||
| 1475 | "ADD KEY `I_user_birthday` (`user_birthday`, `user_birthday_celebrated`)", |
||
| 1476 | ), !$update_tables['users']['user_birthday']); |
||
| 1477 | |||
| 1478 | upd_check_key('user_birthday_gift', 0, !isset(classSupernova::$config->user_birthday_gift)); |
||
| 1479 | upd_check_key('user_birthday_range', 30, !isset(classSupernova::$config->user_birthday_range)); |
||
| 1480 | upd_check_key('user_birthday_celebrate', 0, !isset(classSupernova::$config->user_birthday_celebrate)); |
||
| 1481 | |||
| 1482 | if(!isset($update_tables['payment'])) { |
||
| 1483 | upd_alter_table('users', array( |
||
| 1484 | "ADD KEY `I_user_id_name` (`id`, `username`)", |
||
| 1485 | ), !$update_indexes['users']['I_user_id_name']); |
||
| 1486 | |||
| 1487 | upd_create_table('payment', |
||
| 1488 | "( |
||
| 1489 | `payment_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Internal payment ID', |
||
| 1490 | `payment_user_id` BIGINT(20) UNSIGNED DEFAULT NULL, |
||
| 1491 | `payment_user_name` VARCHAR(64) DEFAULT NULL, |
||
| 1492 | `payment_amount` DECIMAL(60,5) DEFAULT 0 COMMENT 'Amount paid', |
||
| 1493 | `payment_currency` VARCHAR(3) DEFAULT '' COMMENT 'Payment currency', |
||
| 1494 | `payment_dm` DECIMAL(65,0) DEFAULT 0 COMMENT 'DM gained', |
||
| 1495 | `payment_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'Payment server timestamp', |
||
| 1496 | `payment_comment` TEXT COMMENT 'Payment comment', |
||
| 1497 | |||
| 1498 | `payment_module_name` VARCHAR(255) DEFAULT '' COMMENT 'Payment module name', |
||
| 1499 | `payment_internal_id` VARCHAR(255) DEFAULT '' COMMENT 'Internal payment ID in payment system', |
||
| 1500 | `payment_internal_date` DATETIME COMMENT 'Internal payment timestamp in payment system', |
||
| 1501 | |||
| 1502 | PRIMARY KEY (`payment_id`), |
||
| 1503 | KEY `I_payment_user` (`payment_user_id`, `payment_user_name`), |
||
| 1504 | KEY `I_payment_module_internal_id` (`payment_module_name`, `payment_internal_id`), |
||
| 1505 | |||
| 1506 | CONSTRAINT `FK_payment_user` FOREIGN KEY (`payment_user_id`, `payment_user_name`) REFERENCES `{{users}}` (`id`, `username`) ON UPDATE CASCADE ON DELETE NO ACTION |
||
| 1507 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1508 | ); |
||
| 1509 | |||
| 1510 | upd_check_key('payment_currency_default', 'UAH', !isset(classSupernova::$config->payment_currency_default)); |
||
| 1511 | } |
||
| 1512 | upd_check_key('payment_lot_size', 1000, !isset(classSupernova::$config->payment_lot_size)); |
||
| 1513 | upd_check_key('payment_lot_price', 1, !isset(classSupernova::$config->payment_lot_price)); |
||
| 1514 | |||
| 1515 | // Updating category for Mercenaries |
||
| 1516 | upd_do_query("UPDATE {{powerup}} SET powerup_category = " . UNIT_MERCENARIES . " WHERE powerup_unit_id > 600 AND powerup_unit_id < 700;"); |
||
| 1517 | |||
| 1518 | // Convert Destructor to Death Star schematic |
||
| 1519 | upd_do_query("UPDATE {{powerup}} |
||
| 1520 | SET powerup_time_start = 0, powerup_time_finish = 0, powerup_category = " . UNIT_PLANS . ", powerup_unit_id = " . UNIT_PLAN_SHIP_DEATH_STAR . " |
||
| 1521 | WHERE (powerup_time_start = 0 OR powerup_time_finish >= UNIX_TIMESTAMP()) AND powerup_unit_id = 612;"); |
||
| 1522 | // Convert Assasin to SuperNova schematic |
||
| 1523 | upd_do_query("UPDATE {{powerup}} |
||
| 1524 | SET powerup_time_start = 0, powerup_time_finish = 0, powerup_category = " . UNIT_PLANS . ", powerup_unit_id = " . UNIT_PLAN_SHIP_SUPERNOVA . " |
||
| 1525 | WHERE (powerup_time_start = 0 OR powerup_time_finish >= UNIX_TIMESTAMP()) AND powerup_unit_id = 614;"); |
||
| 1526 | |||
| 1527 | upd_alter_table('iraks', array( |
||
| 1528 | "ADD `fleet_start_type` SMALLINT NOT NULL DEFAULT 1", |
||
| 1529 | "ADD `fleet_end_type` SMALLINT NOT NULL DEFAULT 1", |
||
| 1530 | ), !$update_tables['iraks']['fleet_start_type']); |
||
| 1531 | |||
| 1532 | |||
| 1533 | View Code Duplication | if(!$update_tables['payment']['payment_status']) { |
|
| 1534 | upd_alter_table('payment', array( |
||
| 1535 | "ADD COLUMN `payment_status` INT DEFAULT 0 COMMENT 'Payment status' AFTER `payment_id`", |
||
| 1536 | |||
| 1537 | "CHANGE COLUMN `payment_dm` `payment_dark_matter_paid` DECIMAL(65,0) DEFAULT 0 COMMENT 'Real DM paid for'", |
||
| 1538 | "ADD COLUMN `payment_dark_matter_gained` DECIMAL(65,0) DEFAULT 0 COMMENT 'DM gained by player (with bonuses)' AFTER `payment_dark_matter_paid`", |
||
| 1539 | |||
| 1540 | "CHANGE COLUMN `payment_internal_id` `payment_external_id` VARCHAR(255) DEFAULT '' COMMENT 'External payment ID in payment system'", |
||
| 1541 | "CHANGE COLUMN `payment_internal_date` `payment_external_date` DATETIME COMMENT 'External payment timestamp in payment system'", |
||
| 1542 | "ADD COLUMN `payment_external_lots` decimal(65,5) NOT NULL DEFAULT '0.00000' COMMENT 'Payment system lot amount'", |
||
| 1543 | "ADD COLUMN `payment_external_amount` decimal(65,5) NOT NULL DEFAULT '0.00000' COMMENT 'Money incoming from payment system'", |
||
| 1544 | "ADD COLUMN `payment_external_currency` VARCHAR(3) NOT NULL DEFAULT '' COMMENT 'Payment system currency'", |
||
| 1545 | ), !$update_tables['payment']['payment_status']); |
||
| 1546 | } |
||
| 1547 | |||
| 1548 | upd_do_query("UPDATE {{powerup}} SET powerup_time_start = 0, powerup_time_finish = 0 WHERE powerup_category = " . UNIT_PLANS . ";"); |
||
| 1549 | |||
| 1550 | upd_check_key('server_start_date', date('d.m.Y', SN_TIME_NOW), !isset(classSupernova::$config->server_start_date)); |
||
| 1551 | upd_check_key('server_que_length_structures', 5, !isset(classSupernova::$config->server_que_length_structures)); |
||
| 1552 | upd_check_key('server_que_length_hangar', 5, !isset(classSupernova::$config->server_que_length_hangar)); |
||
| 1553 | |||
| 1554 | upd_check_key('chat_highlight_moderator', '<span class="nick_moderator">$1</span>', classSupernova::$config->chat_highlight_admin == '<font color=green>$1</font>'); |
||
| 1555 | upd_check_key('chat_highlight_operator', '<span class="nick_operator">$1</span>', classSupernova::$config->chat_highlight_admin == '<font color=red>$1</font>'); |
||
| 1556 | upd_check_key('chat_highlight_admin', '<span class="nick_admin">$1</span>', classSupernova::$config->chat_highlight_admin == '<font color=purple>$1</font>'); |
||
| 1557 | |||
| 1558 | upd_check_key('chat_highlight_premium', '<span class="nick_premium">$1</span>', !isset(classSupernova::$config->chat_highlight_premium)); |
||
| 1559 | |||
| 1560 | upd_do_query("UPDATE {{planets}} SET `PLANET_GOVERNOR_LEVEL` = CEILING(`PLANET_GOVERNOR_LEVEL`/2) WHERE PLANET_GOVERNOR_ID = " . MRC_ENGINEER . " AND `PLANET_GOVERNOR_LEVEL` > 8;"); |
||
| 1561 | |||
| 1562 | |||
| 1563 | upd_do_query('COMMIT;', true); |
||
| 1564 | $new_version = 34; |
||
| 1565 | |||
| 1566 | case 34: |
||
| 1567 | upd_log_version_update(); |
||
| 1568 | |||
| 1569 | upd_alter_table('planets', array( |
||
| 1570 | "ADD COLUMN `planet_teleport_next` INT(11) NOT NULL DEFAULT 0 COMMENT 'Next teleport time'", |
||
| 1571 | ), !$update_tables['planets']['planet_teleport_next']); |
||
| 1572 | |||
| 1573 | upd_check_key('planet_teleport_cost', 50000, !isset(classSupernova::$config->planet_teleport_cost)); |
||
| 1574 | upd_check_key('planet_teleport_timeout', PERIOD_DAY * 1, !isset(classSupernova::$config->planet_teleport_timeout)); |
||
| 1575 | |||
| 1576 | upd_check_key('planet_capital_cost', 25000, !isset(classSupernova::$config->planet_capital_cost)); |
||
| 1577 | |||
| 1578 | upd_alter_table('users', array( |
||
| 1579 | "ADD COLUMN `player_race` INT(11) NOT NULL DEFAULT 0 COMMENT 'Player\'s race'", |
||
| 1580 | ), !$update_tables['users']['player_race']); |
||
| 1581 | |||
| 1582 | upd_alter_table('chat', array( |
||
| 1583 | "MODIFY COLUMN `user` TEXT COMMENT 'Chat message user name'", |
||
| 1584 | ), strtoupper($update_tables['chat']['user']['Type']) != 'TEXT'); |
||
| 1585 | |||
| 1586 | upd_alter_table('planets', array( |
||
| 1587 | "ADD `ship_sattelite_sloth` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Terran Sloth'", |
||
| 1588 | "ADD `ship_bomber_envy` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Lunar Envy'", |
||
| 1589 | "ADD `ship_recycler_gluttony` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Mercurian Gluttony'", |
||
| 1590 | "ADD `ship_fighter_wrath` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Venerian Wrath'", |
||
| 1591 | "ADD `ship_battleship_pride` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Martian Pride'", |
||
| 1592 | "ADD `ship_cargo_greed` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Republican Greed'", |
||
| 1593 | ), !$update_tables['planets']['ship_sattelite_sloth']); |
||
| 1594 | |||
| 1595 | upd_alter_table('planets', array( |
||
| 1596 | "ADD `ship_sattelite_sloth_porcent` TINYINT(3) UNSIGNED NOT NULL DEFAULT '10' COMMENT 'Terran Sloth production'", |
||
| 1597 | "ADD KEY `I_ship_sattelite_sloth` (`ship_sattelite_sloth`, `id_level`)", |
||
| 1598 | "ADD KEY `I_ship_bomber_envy` (`ship_bomber_envy`, `id_level`)", |
||
| 1599 | "ADD KEY `I_ship_recycler_gluttony` (`ship_recycler_gluttony`, `id_level`)", |
||
| 1600 | "ADD KEY `I_ship_fighter_wrath` (`ship_fighter_wrath`, `id_level`)", |
||
| 1601 | "ADD KEY `I_ship_battleship_pride` (`ship_battleship_pride`, `id_level`)", |
||
| 1602 | "ADD KEY `I_ship_cargo_greed` (`ship_cargo_greed`, `id_level`)", |
||
| 1603 | ), !$update_tables['planets']['ship_sattelite_sloth_porcent']); |
||
| 1604 | |||
| 1605 | upd_check_key('stats_hide_admins', 1, !isset(classSupernova::$config->stats_hide_admins)); |
||
| 1606 | upd_check_key('stats_hide_player_list', '', !isset(classSupernova::$config->stats_hide_player_list)); |
||
| 1607 | |||
| 1608 | upd_check_key('adv_seo_meta_description', '', !isset(classSupernova::$config->adv_seo_meta_description)); |
||
| 1609 | upd_check_key('adv_seo_meta_keywords', '', !isset(classSupernova::$config->adv_seo_meta_keywords)); |
||
| 1610 | |||
| 1611 | upd_check_key('stats_hide_pm_link', '0', !isset(classSupernova::$config->stats_hide_pm_link)); |
||
| 1612 | |||
| 1613 | upd_alter_table('notes', array( |
||
| 1614 | "ADD INDEX `I_owner_priority_time` (`owner`, `priority`, `time`)", |
||
| 1615 | ), !$update_indexes['notes']['I_owner_priority_time']); |
||
| 1616 | |||
| 1617 | if(!$update_tables['buddy']['BUDDY_ID']) { |
||
| 1618 | upd_alter_table('buddy', array( |
||
| 1619 | "CHANGE COLUMN `id` `BUDDY_ID` SERIAL COMMENT 'Buddy\Buddy table row ID'", |
||
| 1620 | "CHANGE COLUMN `active` `BUDDY_STATUS` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Buddy\Buddy request status'", |
||
| 1621 | "CHANGE COLUMN `text` `BUDDY_REQUEST` TINYTEXT DEFAULT '' COMMENT 'Buddy\Buddy request text'", // 255 chars |
||
| 1622 | |||
| 1623 | "DROP INDEX `id`", |
||
| 1624 | |||
| 1625 | "DROP FOREIGN KEY `FK_buddy_sender_id`", |
||
| 1626 | "DROP FOREIGN KEY `FK_buddy_owner_id`", |
||
| 1627 | "DROP INDEX `I_buddy_sender`", |
||
| 1628 | "DROP INDEX `I_buddy_owner`", |
||
| 1629 | ), !$update_tables['buddy']['BUDDY_ID']); |
||
| 1630 | |||
| 1631 | upd_alter_table('buddy', array( |
||
| 1632 | "CHANGE COLUMN `sender` `BUDDY_SENDER_ID` BIGINT(20) UNSIGNED NULL DEFAULT NULL COMMENT 'Buddy\Buddy request sender ID'", |
||
| 1633 | "CHANGE COLUMN `owner` `BUDDY_OWNER_ID` BIGINT(20) UNSIGNED NULL DEFAULT NULL COMMENT 'Buddy\Buddy request recipient ID'", |
||
| 1634 | ), !$update_tables['buddy']['BUDDY_SENDER']); |
||
| 1635 | |||
| 1636 | $query = upd_do_query("SELECT `BUDDY_ID`, `BUDDY_SENDER_ID`, `BUDDY_OWNER_ID` FROM {{buddy}} ORDER BY `BUDDY_ID`;"); |
||
| 1637 | $found = $lost = array(); |
||
| 1638 | while($row = db_fetch($query)) { |
||
| 1639 | $index = min($row['BUDDY_SENDER_ID'], $row['BUDDY_OWNER_ID']) . ';' . max($row['BUDDY_SENDER_ID'], $row['BUDDY_OWNER_ID']); |
||
| 1640 | if(!isset($found[$index])) { |
||
| 1641 | $found[$index] = $row['BUDDY_ID']; |
||
| 1642 | } else { |
||
| 1643 | $lost[] = $row['BUDDY_ID']; |
||
| 1644 | } |
||
| 1645 | } |
||
| 1646 | $lost = implode(',', $lost); |
||
| 1647 | if($lost) { |
||
| 1648 | upd_do_query("DELETE FROM {{buddy}} WHERE `BUDDY_ID` IN ({$lost})"); |
||
| 1649 | } |
||
| 1650 | |||
| 1651 | upd_alter_table('buddy', array( |
||
| 1652 | "ADD KEY `I_BUDDY_SENDER_ID` (`BUDDY_SENDER_ID`, `BUDDY_OWNER_ID`)", |
||
| 1653 | "ADD KEY `I_BUDDY_OWNER_ID` (`BUDDY_OWNER_ID`, `BUDDY_SENDER_ID`)", |
||
| 1654 | |||
| 1655 | "ADD CONSTRAINT `FK_BUDDY_SENDER_ID` FOREIGN KEY (`BUDDY_SENDER_ID`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1656 | "ADD CONSTRAINT `FK_BUDDY_OWNER_ID` FOREIGN KEY (`BUDDY_OWNER_ID`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1657 | ), !$update_indexes['buddy']['I_BUDDY_SENDER_ID']); |
||
| 1658 | } |
||
| 1659 | |||
| 1660 | upd_do_query('COMMIT;', true); |
||
| 1661 | $new_version = 35; |
||
| 1662 | |||
| 1663 | case 35: |
||
| 1664 | upd_log_version_update(); |
||
| 1665 | |||
| 1666 | upd_do_query("UPDATE {{users}} SET `ally_name` = NULL, `ally_tag` = NULL, ally_register_time = 0, ally_rank_id = 0 WHERE `ally_id` IS NULL"); |
||
| 1667 | |||
| 1668 | if(!$update_tables['ube_report']) { |
||
| 1669 | upd_create_table('ube_report', |
||
| 1670 | "( |
||
| 1671 | `ube_report_id` SERIAL COMMENT 'Report ID', |
||
| 1672 | |||
| 1673 | `ube_report_cypher` CHAR(32) NOT NULL DEFAULT '' COMMENT '16 char secret report ID', |
||
| 1674 | |||
| 1675 | `ube_report_time_combat` DATETIME NOT NULL COMMENT 'Combat time', |
||
| 1676 | `ube_report_time_process` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Time when combat was processed', |
||
| 1677 | `ube_report_time_spent` DECIMAL(11,8) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Time in seconds spent for combat calculations', |
||
| 1678 | |||
| 1679 | `ube_report_mission_type` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Mission type', |
||
| 1680 | `ube_report_combat_admin` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Does admin participates in combat?', |
||
| 1681 | |||
| 1682 | `ube_report_combat_result` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Combat outcome', |
||
| 1683 | `ube_report_combat_sfr` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Small Fleet Reconnaissance', |
||
| 1684 | |||
| 1685 | `ube_report_planet_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player planet ID', |
||
| 1686 | `ube_report_planet_name` VARCHAR(64) NOT NULL DEFAULT 'Planet' COMMENT 'Player planet name', |
||
| 1687 | `ube_report_planet_size` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player diameter', |
||
| 1688 | `ube_report_planet_galaxy` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player planet coordinate galaxy', |
||
| 1689 | `ube_report_planet_system` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player planet coordinate system', |
||
| 1690 | `ube_report_planet_planet` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player planet coordinate planet', |
||
| 1691 | `ube_report_planet_planet_type` TINYINT NOT NULL DEFAULT 1 COMMENT 'Player planet type', |
||
| 1692 | |||
| 1693 | `ube_report_moon` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Moon result: was, none, failed, created, destroyed', |
||
| 1694 | `ube_report_moon_chance` DECIMAL(9,6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Moon creation chance', |
||
| 1695 | `ube_report_moon_size` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Moon size', |
||
| 1696 | `ube_report_moon_reapers` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Moon reapers result: none, died, survived', |
||
| 1697 | `ube_report_moon_destroy_chance` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Moon destroy chance', |
||
| 1698 | `ube_report_moon_reapers_die_chance` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Moon reapers die chance', |
||
| 1699 | |||
| 1700 | `ube_report_debris_metal` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Metal debris', |
||
| 1701 | `ube_report_debris_crystal` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Crystal debris', |
||
| 1702 | |||
| 1703 | PRIMARY KEY (`ube_report_id`), |
||
| 1704 | KEY `I_ube_report_cypher` (`ube_report_cypher`) |
||
| 1705 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1706 | ); |
||
| 1707 | } |
||
| 1708 | |||
| 1709 | if(!$update_tables['ube_report_player']) { |
||
| 1710 | upd_create_table('ube_report_player', |
||
| 1711 | "( |
||
| 1712 | `ube_report_player_id` SERIAL COMMENT 'Record ID', |
||
| 1713 | `ube_report_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Report ID', |
||
| 1714 | `ube_report_player_player_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player ID', |
||
| 1715 | |||
| 1716 | `ube_report_player_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT 'Player name', |
||
| 1717 | `ube_report_player_attacker` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Is player an attacker?', |
||
| 1718 | |||
| 1719 | `ube_report_player_bonus_attack` DECIMAL(11,2) NOT NULL DEFAULT 0 COMMENT 'Player attack bonus', -- Only for statistics |
||
| 1720 | `ube_report_player_bonus_shield` DECIMAL(11,2) NOT NULL DEFAULT 0 COMMENT 'Player shield bonus', -- Only for statistics |
||
| 1721 | `ube_report_player_bonus_armor` DECIMAL(11,2) NOT NULL DEFAULT 0 COMMENT 'Player armor bonus', -- Only for statistics |
||
| 1722 | |||
| 1723 | PRIMARY KEY (`ube_report_player_id`), |
||
| 1724 | KEY `I_ube_report_player_player_id` (`ube_report_player_player_id`), |
||
| 1725 | CONSTRAINT `FK_ube_report_player_ube_report` FOREIGN KEY (`ube_report_id`) REFERENCES `{{ube_report}}` (`ube_report_id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 1726 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1727 | ); |
||
| 1728 | } |
||
| 1729 | |||
| 1730 | if(!$update_tables['ube_report_fleet']) { |
||
| 1731 | upd_create_table('ube_report_fleet', |
||
| 1732 | "( |
||
| 1733 | `ube_report_fleet_id` SERIAL COMMENT 'Record DB ID', |
||
| 1734 | |||
| 1735 | `ube_report_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Report ID', |
||
| 1736 | `ube_report_fleet_player_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Owner ID', |
||
| 1737 | `ube_report_fleet_fleet_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Fleet ID', |
||
| 1738 | |||
| 1739 | `ube_report_fleet_planet_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player attack bonus', |
||
| 1740 | `ube_report_fleet_planet_name` VARCHAR(64) NOT NULL DEFAULT 'Planet' COMMENT 'Player planet name', |
||
| 1741 | `ube_report_fleet_planet_galaxy` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player planet coordinate galaxy', |
||
| 1742 | `ube_report_fleet_planet_system` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player planet coordinate system', |
||
| 1743 | `ube_report_fleet_planet_planet` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Player planet coordinate planet', |
||
| 1744 | `ube_report_fleet_planet_planet_type` TINYINT NOT NULL DEFAULT 1 COMMENT 'Player planet type', |
||
| 1745 | |||
| 1746 | `ube_report_fleet_bonus_attack` DECIMAL(11,2) NOT NULL DEFAULT 0 COMMENT 'Fleet attack bonus', -- Only for statistics |
||
| 1747 | `ube_report_fleet_bonus_shield` DECIMAL(11,2) NOT NULL DEFAULT 0 COMMENT 'Fleet shield bonus', -- Only for statistics |
||
| 1748 | `ube_report_fleet_bonus_armor` DECIMAL(11,2) NOT NULL DEFAULT 0 COMMENT 'Fleet armor bonus', -- Only for statistics |
||
| 1749 | |||
| 1750 | `ube_report_fleet_resource_metal` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Fleet metal amount', |
||
| 1751 | `ube_report_fleet_resource_crystal` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Fleet crystal amount', |
||
| 1752 | `ube_report_fleet_resource_deuterium` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Fleet deuterium amount', |
||
| 1753 | |||
| 1754 | PRIMARY KEY (`ube_report_fleet_id`), |
||
| 1755 | CONSTRAINT `FK_ube_report_fleet_ube_report` FOREIGN KEY (`ube_report_id`) REFERENCES `{{ube_report}}` (`ube_report_id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 1756 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1757 | ); |
||
| 1758 | } |
||
| 1759 | |||
| 1760 | if(!$update_tables['ube_report_unit']) { |
||
| 1761 | // TODO: Сохранять так же имя корабля - на случай конструкторов - не, хуйня. Конструктор может давать имена разные на разных языках |
||
| 1762 | // Может сохранять имена удаленных кораблей долго? |
||
| 1763 | |||
| 1764 | // round SIGNED!!! -1 например - для ауткома |
||
| 1765 | upd_create_table('ube_report_unit', |
||
| 1766 | "( |
||
| 1767 | `ube_report_unit_id` SERIAL COMMENT 'Record DB ID', |
||
| 1768 | |||
| 1769 | `ube_report_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Report ID', |
||
| 1770 | `ube_report_unit_player_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Owner ID', |
||
| 1771 | `ube_report_unit_fleet_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Fleet ID', |
||
| 1772 | `ube_report_unit_round` TINYINT NOT NULL DEFAULT 0 COMMENT 'Round number', |
||
| 1773 | |||
| 1774 | `ube_report_unit_unit_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit ID', |
||
| 1775 | `ube_report_unit_count` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit count', |
||
| 1776 | `ube_report_unit_boom` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit booms', |
||
| 1777 | |||
| 1778 | `ube_report_unit_attack` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit attack', |
||
| 1779 | `ube_report_unit_shield` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit shield', |
||
| 1780 | `ube_report_unit_armor` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit armor', |
||
| 1781 | |||
| 1782 | `ube_report_unit_attack_base` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit base attack', |
||
| 1783 | `ube_report_unit_shield_base` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit base shield', |
||
| 1784 | `ube_report_unit_armor_base` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit base armor', |
||
| 1785 | |||
| 1786 | `ube_report_unit_sort_order` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit pass-through sort order to maintain same output', |
||
| 1787 | |||
| 1788 | PRIMARY KEY (`ube_report_unit_id`), |
||
| 1789 | KEY `I_ube_report_unit_report_round_fleet_order` (`ube_report_id`, `ube_report_unit_round`, `ube_report_unit_fleet_id`, `ube_report_unit_sort_order`), |
||
| 1790 | KEY `I_ube_report_unit_report_unit_order` (`ube_report_id`, `ube_report_unit_sort_order`), |
||
| 1791 | KEY `I_ube_report_unit_order` (`ube_report_unit_sort_order`), |
||
| 1792 | CONSTRAINT `FK_ube_report_unit_ube_report` FOREIGN KEY (`ube_report_id`) REFERENCES `{{ube_report}}` (`ube_report_id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 1793 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1794 | ); |
||
| 1795 | } |
||
| 1796 | |||
| 1797 | if(!$update_tables['ube_report_outcome_fleet']) { |
||
| 1798 | upd_create_table('ube_report_outcome_fleet', |
||
| 1799 | "( |
||
| 1800 | `ube_report_outcome_fleet_id` SERIAL COMMENT 'Record DB ID', |
||
| 1801 | |||
| 1802 | `ube_report_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Report ID', |
||
| 1803 | `ube_report_outcome_fleet_fleet_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Fleet ID', |
||
| 1804 | |||
| 1805 | `ube_report_outcome_fleet_resource_lost_metal` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Fleet metal loss from units', |
||
| 1806 | `ube_report_outcome_fleet_resource_lost_crystal` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Fleet crystal loss from units', |
||
| 1807 | `ube_report_outcome_fleet_resource_lost_deuterium` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Fleet deuterium loss from units', |
||
| 1808 | |||
| 1809 | `ube_report_outcome_fleet_resource_dropped_metal` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Fleet metal dropped due reduced cargo', |
||
| 1810 | `ube_report_outcome_fleet_resource_dropped_crystal` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Fleet crystal dropped due reduced cargo', |
||
| 1811 | `ube_report_outcome_fleet_resource_dropped_deuterium` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Fleet deuterium dropped due reduced cargo', |
||
| 1812 | |||
| 1813 | `ube_report_outcome_fleet_resource_loot_metal` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Looted/Lost from loot metal', |
||
| 1814 | `ube_report_outcome_fleet_resource_loot_crystal` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Looted/Lost from loot crystal', |
||
| 1815 | `ube_report_outcome_fleet_resource_loot_deuterium` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Looted/Lost from loot deuterium', |
||
| 1816 | |||
| 1817 | `ube_report_outcome_fleet_resource_lost_in_metal` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Fleet total resource loss in metal', |
||
| 1818 | |||
| 1819 | PRIMARY KEY (`ube_report_outcome_fleet_id`), |
||
| 1820 | KEY `I_ube_report_outcome_fleet_report_fleet` (`ube_report_id`, `ube_report_outcome_fleet_fleet_id`), |
||
| 1821 | CONSTRAINT `FK_ube_report_outcome_fleet_ube_report` FOREIGN KEY (`ube_report_id`) REFERENCES `{{ube_report}}` (`ube_report_id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 1822 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1823 | ); |
||
| 1824 | } |
||
| 1825 | |||
| 1826 | if(!$update_tables['ube_report_outcome_unit']) { |
||
| 1827 | upd_create_table('ube_report_outcome_unit', |
||
| 1828 | "( |
||
| 1829 | `ube_report_outcome_unit_id` SERIAL COMMENT 'Record DB ID', |
||
| 1830 | |||
| 1831 | `ube_report_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Report ID', |
||
| 1832 | `ube_report_outcome_unit_fleet_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Fleet ID', |
||
| 1833 | |||
| 1834 | `ube_report_outcome_unit_unit_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit ID', |
||
| 1835 | `ube_report_outcome_unit_restored` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Unit restored', |
||
| 1836 | `ube_report_outcome_unit_lost` DECIMAL(65,0) NOT NULL DEFAULT 0 COMMENT 'Unit lost', |
||
| 1837 | |||
| 1838 | `ube_report_outcome_unit_sort_order` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit pass-through sort order to maintain same output', |
||
| 1839 | |||
| 1840 | PRIMARY KEY (`ube_report_outcome_unit_id`), |
||
| 1841 | KEY `I_ube_report_outcome_unit_report_order` (`ube_report_id`, `ube_report_outcome_unit_sort_order`), |
||
| 1842 | CONSTRAINT `FK_ube_report_outcome_unit_ube_report` FOREIGN KEY (`ube_report_id`) REFERENCES `{{ube_report}}` (`ube_report_id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 1843 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1844 | ); |
||
| 1845 | } |
||
| 1846 | |||
| 1847 | if(!$update_tables['unit']) { |
||
| 1848 | upd_create_table('unit', |
||
| 1849 | "( |
||
| 1850 | `unit_id` SERIAL COMMENT 'Record ID', |
||
| 1851 | |||
| 1852 | `unit_player_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Unit owner', |
||
| 1853 | `unit_location_type` TINYINT NOT NULL DEFAULT 0 COMMENT 'Location type: universe, user, planet (moon?), fleet', |
||
| 1854 | `unit_location_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Location ID', |
||
| 1855 | `unit_type` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit type', |
||
| 1856 | `unit_snid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit SuperNova ID', |
||
| 1857 | `unit_level` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit level or count - dependent of unit_type', |
||
| 1858 | |||
| 1859 | PRIMARY KEY (`unit_id`), |
||
| 1860 | KEY `I_unit_player_location_snid` (`unit_player_id`, `unit_location_type`, `unit_location_id`, `unit_snid`), |
||
| 1861 | CONSTRAINT `FK_unit_player_id` FOREIGN KEY (`unit_player_id`) REFERENCES `{{users}}` (`id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 1862 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1863 | ); |
||
| 1864 | } |
||
| 1865 | |||
| 1866 | if(!$update_tables['captain']) { |
||
| 1867 | upd_create_table('captain', |
||
| 1868 | "( |
||
| 1869 | `captain_id` SERIAL COMMENT 'Record ID', |
||
| 1870 | `captain_unit_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Link to `unit` record', |
||
| 1871 | |||
| 1872 | `captain_xp` DECIMAL(65,0) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Captain expirience', |
||
| 1873 | `captain_level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Captain level so far', -- Дублирует запись в unit |
||
| 1874 | |||
| 1875 | `captain_shield` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Captain shield bonus level', |
||
| 1876 | `captain_armor` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Captain armor bonus level', |
||
| 1877 | `captain_attack` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Captain defense bonus level', |
||
| 1878 | |||
| 1879 | PRIMARY KEY (`captain_id`), |
||
| 1880 | KEY `I_captain_unit_id` (`captain_unit_id`), |
||
| 1881 | CONSTRAINT `FK_captain_unit_id` FOREIGN KEY (`captain_unit_id`) REFERENCES `{{unit}}` (`unit_id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 1882 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1883 | ); |
||
| 1884 | } |
||
| 1885 | |||
| 1886 | View Code Duplication | if(!$update_tables['fleets']['fleet_start_planet_id']) { |
|
| 1887 | upd_alter_table('fleets', array( |
||
| 1888 | "ADD `fleet_start_planet_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Fleet start planet ID' AFTER `fleet_start_time`", |
||
| 1889 | "ADD `fleet_end_planet_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Fleet end planet ID' AFTER `fleet_end_stay`", |
||
| 1890 | |||
| 1891 | "ADD KEY `I_fleet_start_planet_id` (`fleet_start_planet_id`)", |
||
| 1892 | "ADD KEY `I_fleet_end_planet_id` (`fleet_end_planet_id`)", |
||
| 1893 | |||
| 1894 | "ADD CONSTRAINT `FK_fleet_planet_start` FOREIGN KEY (`fleet_start_planet_id`) REFERENCES `{{planets}}` (`id`) ON DELETE SET NULL ON UPDATE CASCADE", |
||
| 1895 | "ADD CONSTRAINT `FK_fleet_planet_end` FOREIGN KEY (`fleet_end_planet_id`) REFERENCES `{{planets}}` (`id`) ON DELETE SET NULL ON UPDATE CASCADE", |
||
| 1896 | ), !$update_tables['fleets']['fleet_start_planet_id']); |
||
| 1897 | |||
| 1898 | upd_do_query(" |
||
| 1899 | UPDATE {{fleets}} AS f |
||
| 1900 | LEFT JOIN {{planets}} AS p_s ON p_s.galaxy = f.fleet_start_galaxy AND p_s.system = f.fleet_start_system AND p_s.planet = f.fleet_start_planet AND p_s.planet_type = f.fleet_start_type |
||
| 1901 | LEFT JOIN {{planets}} AS p_e ON p_e.galaxy = f.fleet_end_galaxy AND p_e.system = f.fleet_end_system AND p_e.planet = f.fleet_end_planet AND p_e.planet_type = f.fleet_end_type |
||
| 1902 | SET f.fleet_start_planet_id = p_s.id, f.fleet_end_planet_id = p_e.id |
||
| 1903 | "); |
||
| 1904 | } |
||
| 1905 | |||
| 1906 | upd_alter_table('fleets', array("DROP COLUMN `processing_start`"), $update_tables['fleets']['processing_start']); |
||
| 1907 | |||
| 1908 | if(!$update_tables['chat_player']) { |
||
| 1909 | upd_create_table('chat_player', |
||
| 1910 | "( |
||
| 1911 | `chat_player_id` SERIAL COMMENT 'Record ID', |
||
| 1912 | |||
| 1913 | `chat_player_player_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Chat player record owner', |
||
| 1914 | `chat_player_activity` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Last player activity in chat', |
||
| 1915 | `chat_player_invisible` TINYINT NOT NULL DEFAULT 0 COMMENT 'Player invisibility', |
||
| 1916 | `chat_player_muted` INT(11) NOT NULL DEFAULT 0 COMMENT 'Player is muted', |
||
| 1917 | `chat_player_mute_reason` VARCHAR(256) NOT NULL DEFAULT '' COMMENT 'Player mute reason', |
||
| 1918 | |||
| 1919 | PRIMARY KEY (`chat_player_id`), |
||
| 1920 | |||
| 1921 | KEY `I_chat_player_id` (`chat_player_player_id`), |
||
| 1922 | |||
| 1923 | CONSTRAINT `FK_chat_player_id` FOREIGN KEY (`chat_player_player_id`) REFERENCES `{{users}}` (`id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 1924 | |||
| 1925 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 1926 | ); |
||
| 1927 | } |
||
| 1928 | |||
| 1929 | upd_alter_table('chat', array( |
||
| 1930 | "ADD `chat_message_sender_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Message sender ID' AFTER `messageid`", |
||
| 1931 | "ADD `chat_message_recipient_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Message recipient ID' AFTER `user`", |
||
| 1932 | |||
| 1933 | "ADD KEY `I_chat_message_sender_id` (`chat_message_sender_id`)", |
||
| 1934 | "ADD KEY `I_chat_message_recipient_id` (`chat_message_recipient_id`)", |
||
| 1935 | |||
| 1936 | "ADD CONSTRAINT `FK_chat_message_sender_user_id` FOREIGN KEY (`chat_message_sender_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1937 | "ADD CONSTRAINT `FK_chat_message_sender_recipient_id` FOREIGN KEY (`chat_message_recipient_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1938 | ), !$update_tables['chat']['chat_message_sender_id']); |
||
| 1939 | |||
| 1940 | upd_alter_table('chat', array( |
||
| 1941 | "ADD `chat_message_sender_name` VARCHAR(64) DEFAULT '' COMMENT 'Message sender name' AFTER `chat_message_sender_id`", |
||
| 1942 | "ADD `chat_message_recipient_name` VARCHAR(64) DEFAULT '' COMMENT 'Message sender name' AFTER `chat_message_recipient_id`", |
||
| 1943 | ), !$update_tables['chat']['chat_message_sender_name']); |
||
| 1944 | |||
| 1945 | upd_alter_table('users', array( |
||
| 1946 | "MODIFY COLUMN `banaday` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'User ban status'", |
||
| 1947 | ), strtoupper($update_tables['users']['banaday']['Null']) == 'YES'); |
||
| 1948 | |||
| 1949 | upd_alter_table('banned', array( |
||
| 1950 | "ADD `ban_user_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Banned user ID' AFTER `ban_id`", |
||
| 1951 | "ADD `ban_issuer_id` BIGINT(20) UNSIGNED DEFAULT NULL COMMENT 'Banner ID' AFTER `ban_until`", |
||
| 1952 | |||
| 1953 | "ADD KEY `I_ban_user_id` (`ban_user_id`)", |
||
| 1954 | "ADD KEY `I_ban_issuer_id` (`ban_issuer_id`)", |
||
| 1955 | |||
| 1956 | "ADD CONSTRAINT `FK_ban_user_id` FOREIGN KEY (`ban_user_id`) REFERENCES `{{users}}` (`id`) ON DELETE SET NULL ON UPDATE CASCADE", |
||
| 1957 | "ADD CONSTRAINT `FK_ban_issuer_id` FOREIGN KEY (`ban_issuer_id`) REFERENCES `{{users}}` (`id`) ON DELETE SET NULL ON UPDATE CASCADE", |
||
| 1958 | ), !$update_tables['banned']['ban_user_id']); |
||
| 1959 | |||
| 1960 | upd_do_query('COMMIT;', true); |
||
| 1961 | $new_version = 36; |
||
| 1962 | |||
| 1963 | case 36: |
||
| 1964 | upd_log_version_update(); |
||
| 1965 | |||
| 1966 | upd_alter_table('payment', array( |
||
| 1967 | "DROP FOREIGN KEY `FK_payment_user`", |
||
| 1968 | ), $update_foreigns['payment']['FK_payment_user']); |
||
| 1969 | |||
| 1970 | if($update_foreigns['chat']['FK_chat_message_sender_user_id'] != 'chat_message_sender_id,users,id;') { |
||
| 1971 | upd_alter_table('chat', array( |
||
| 1972 | "DROP FOREIGN KEY `FK_chat_message_sender_user_id`", |
||
| 1973 | "DROP FOREIGN KEY `FK_chat_message_sender_recipient_id`", |
||
| 1974 | ), true); |
||
| 1975 | |||
| 1976 | upd_alter_table('chat', array( |
||
| 1977 | "ADD CONSTRAINT `FK_chat_message_sender_user_id` FOREIGN KEY (`chat_message_sender_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1978 | "ADD CONSTRAINT `FK_chat_message_sender_recipient_id` FOREIGN KEY (`chat_message_recipient_id`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 1979 | ), true); |
||
| 1980 | } |
||
| 1981 | |||
| 1982 | upd_alter_table('users', array( |
||
| 1983 | "ADD `user_time_diff` INT(11) DEFAULT NULL COMMENT 'User time difference with server time' AFTER `onlinetime`", |
||
| 1984 | "ADD `user_time_diff_forced` TINYINT(1) DEFAULT 0 COMMENT 'User time difference forced with time zone selection flag' AFTER `user_time_diff`", |
||
| 1985 | ), !$update_tables['users']['user_time_diff']); |
||
| 1986 | |||
| 1987 | upd_alter_table('planets', array( |
||
| 1988 | "ADD `ship_orbital_heavy` bigint(20) NOT NULL DEFAULT '0' COMMENT 'HOPe - Heavy Orbital Platform'", |
||
| 1989 | ), !$update_tables['planets']['ship_orbital_heavy']); |
||
| 1990 | |||
| 1991 | upd_check_key('chat_refresh_rate', 5, !isset(classSupernova::$config->chat_refresh_rate)); |
||
| 1992 | |||
| 1993 | upd_alter_table('chat_player', array( |
||
| 1994 | "ADD `chat_player_refresh_last` INT(11) NOT NULL DEFAULT 0 COMMENT 'Player last refresh time'", |
||
| 1995 | |||
| 1996 | "ADD KEY `I_chat_player_refresh_last` (`chat_player_refresh_last`)", |
||
| 1997 | ), !$update_tables['chat_player']['chat_player_refresh_last']); |
||
| 1998 | |||
| 1999 | upd_alter_table('ube_report', array( |
||
| 2000 | "ADD KEY `I_ube_report_time_combat` (`ube_report_time_combat`)", |
||
| 2001 | ), !$update_indexes['ube_report']['I_ube_report_time_combat']); |
||
| 2002 | |||
| 2003 | if(!$update_tables['unit']['unit_time_start']) { |
||
| 2004 | upd_alter_table('unit', array( |
||
| 2005 | "ADD COLUMN `unit_time_start` DATETIME NULL DEFAULT NULL COMMENT 'Unit activation start time'", |
||
| 2006 | "ADD COLUMN `unit_time_finish` DATETIME NULL DEFAULT NULL COMMENT 'Unit activation end time'", |
||
| 2007 | ), !$update_tables['unit']['unit_time_start']); |
||
| 2008 | |||
| 2009 | upd_do_query( |
||
| 2010 | "INSERT INTO {{unit}} |
||
| 2011 | (unit_player_id, unit_location_type, unit_location_id, unit_type, unit_snid, unit_level, unit_time_start, unit_time_finish) |
||
| 2012 | SELECT |
||
| 2013 | `powerup_user_id`, " . LOC_USER . ", `powerup_user_id`, `powerup_category`, `powerup_unit_id`, `powerup_unit_level` |
||
| 2014 | , IF(`powerup_time_start`, FROM_UNIXTIME(`powerup_time_start`), NULL), IF(`powerup_time_finish`, FROM_UNIXTIME(`powerup_time_finish`), NULL) |
||
| 2015 | FROM {{powerup}}" |
||
| 2016 | ); |
||
| 2017 | } |
||
| 2018 | |||
| 2019 | if(!$update_tables['que']) { |
||
| 2020 | upd_create_table('que', |
||
| 2021 | "( |
||
| 2022 | `que_id` SERIAL COMMENT 'Internal que id', |
||
| 2023 | |||
| 2024 | `que_player_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL COMMENT 'Que owner ID', |
||
| 2025 | `que_planet_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL COMMENT 'Which planet this que item belongs', |
||
| 2026 | `que_planet_id_origin` BIGINT(20) UNSIGNED NULL DEFAULT NULL COMMENT 'Planet spawner ID', |
||
| 2027 | `que_type` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Que type', |
||
| 2028 | `que_time_left` DECIMAL(20,5) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Build time left from last activity', |
||
| 2029 | |||
| 2030 | `que_unit_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit ID', |
||
| 2031 | `que_unit_amount` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Amount left to build', |
||
| 2032 | `que_unit_mode` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Build/Destroy', |
||
| 2033 | |||
| 2034 | `que_unit_level` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Unit level. Informational field', |
||
| 2035 | `que_unit_time` DECIMAL(20,5) NOT NULL DEFAULT 0 COMMENT 'Time to build one unit. Informational field', |
||
| 2036 | `que_unit_price` VARCHAR(128) NOT NULL DEFAULT '' COMMENT 'Price per unit - for correct trim/clear in case of global price events', |
||
| 2037 | |||
| 2038 | PRIMARY KEY (`que_id`), |
||
| 2039 | KEY `I_que_player_type_planet` (`que_player_id`, `que_type`, `que_planet_id`, `que_id`), -- For main search |
||
| 2040 | KEY `I_que_player_type` (`que_player_id`, `que_type`, `que_id`), -- For main search |
||
| 2041 | KEY `I_que_planet_id` (`que_planet_id`), -- For constraint |
||
| 2042 | |||
| 2043 | CONSTRAINT `FK_que_player_id` FOREIGN KEY (`que_player_id`) REFERENCES `{{users}}` (`id`) ON UPDATE CASCADE ON DELETE CASCADE, |
||
| 2044 | CONSTRAINT `FK_que_planet_id` FOREIGN KEY (`que_planet_id`) REFERENCES `{{planets}}` (`id`) ON UPDATE CASCADE ON DELETE CASCADE, |
||
| 2045 | CONSTRAINT `FK_que_planet_id_origin` FOREIGN KEY (`que_planet_id_origin`) REFERENCES `{{planets}}` (`id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 2046 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 2047 | ); |
||
| 2048 | } |
||
| 2049 | |||
| 2050 | // Конвертирум очередь исследований |
||
| 2051 | if($update_tables['users']['que']) { |
||
| 2052 | $que_lines = array(); |
||
| 2053 | $que_query = upd_do_query("SELECT * FROM {{users}} WHERE `que`"); |
||
| 2054 | while($que_row = db_fetch($que_query)) { |
||
| 2055 | $que_data = explode(',', $que_row['que']); |
||
| 2056 | |||
| 2057 | if(!in_array($que_data[QI_UNIT_ID], sn_get_groups('tech'))) { |
||
| 2058 | continue; |
||
| 2059 | } |
||
| 2060 | |||
| 2061 | $que_data[QI_TIME] = $que_data[QI_TIME] >= 0 ? $que_data[QI_TIME] : 0; |
||
| 2062 | // Если планета пустая - ставим главку |
||
| 2063 | $que_data[QI_PLANET_ID] = $que_data[QI_PLANET_ID] ? $que_data[QI_PLANET_ID] : $que_row['id_planet']; |
||
| 2064 | if($que_data[QI_PLANET_ID]) { |
||
| 2065 | $que_planet_check = db_fetch(upd_do_query("SELECT `id` FROM {{planets}} WHERE `id` = {$que_data[QI_PLANET_ID]}")); |
||
| 2066 | if(!$que_planet_check['id']) { |
||
| 2067 | $que_data[QI_PLANET_ID] = $que_row['id_planet']; |
||
| 2068 | $que_planet_check = db_fetch(upd_do_query("SELECT `id` FROM {{planets}} WHERE `id` = {$que_data[QI_PLANET_ID]}")); |
||
| 2069 | if(!$que_planet_check['id']) { |
||
| 2070 | $que_data[QI_PLANET_ID] = 'NULL'; |
||
| 2071 | } |
||
| 2072 | } |
||
| 2073 | } else { |
||
| 2074 | $que_data[QI_PLANET_ID] = 'NULL'; |
||
| 2075 | } |
||
| 2076 | |||
| 2077 | $unit_info = get_unit_param($que_data[QI_UNIT_ID]); |
||
| 2078 | $unit_level = $que_row[$unit_info[P_NAME]]; |
||
| 2079 | $unit_factor = $unit_info[P_COST][P_FACTOR] ? $unit_info[P_COST][P_FACTOR] : 1; |
||
| 2080 | $price_increase = pow($unit_factor, $unit_level); |
||
| 2081 | $unit_level++; |
||
| 2082 | $unit_cost = array(); |
||
| 2083 | foreach($unit_info[P_COST] as $resource_id => $resource_amount) { |
||
| 2084 | if($resource_id === P_FACTOR || $resource_id == RES_ENERGY || !($resource_cost = $resource_amount * $price_increase)) { |
||
| 2085 | continue; |
||
| 2086 | } |
||
| 2087 | $unit_cost[] = $resource_id . ',' . floor($resource_cost); |
||
| 2088 | } |
||
| 2089 | $unit_cost = implode(';', $unit_cost); |
||
| 2090 | |||
| 2091 | $que_lines[] = "({$que_row['id']},{$que_data[QI_PLANET_ID]}," . QUE_RESEARCH . ",{$que_data[QI_TIME]},{$que_data[QI_UNIT_ID]},1," . |
||
| 2092 | BUILD_CREATE . ",{$unit_level},{$que_data[QI_TIME]},'{$unit_cost}')"; |
||
| 2093 | } |
||
| 2094 | |||
| 2095 | if(!empty($que_lines)) { |
||
| 2096 | upd_do_query('INSERT INTO `{{que}}` (`que_player_id`,`que_planet_id_origin`,`que_type`,`que_time_left`,`que_unit_id`,`que_unit_amount`,`que_unit_mode`,`que_unit_level`,`que_unit_time`,`que_unit_price`) VALUES ' . implode(',', $que_lines)); |
||
| 2097 | } |
||
| 2098 | |||
| 2099 | upd_alter_table('users', array( |
||
| 2100 | "DROP COLUMN `que`", |
||
| 2101 | ), $update_tables['users']['que']); |
||
| 2102 | } |
||
| 2103 | |||
| 2104 | |||
| 2105 | upd_check_key('server_que_length_research', 1, !isset(classSupernova::$config->server_que_length_research)); |
||
| 2106 | |||
| 2107 | |||
| 2108 | // Ковертируем технологии в таблицы |
||
| 2109 | if($update_tables['users']['graviton_tech']) { |
||
| 2110 | upd_do_query("DELETE FROM {{unit}} WHERE unit_type = " . UNIT_TECHNOLOGIES); |
||
| 2111 | |||
| 2112 | $que_lines = array(); |
||
| 2113 | $user_query = upd_do_query("SELECT * FROM {{users}}"); |
||
| 2114 | upd_add_more_time(300); |
||
| 2115 | $sn_group_tech = sn_get_groups('tech'); |
||
| 2116 | while($user_row = db_fetch($user_query)) { |
||
| 2117 | foreach($sn_group_tech as $tech_id) { |
||
| 2118 | if($tech_level = intval($user_row[get_unit_param($tech_id, P_NAME)])) { |
||
| 2119 | $que_lines[] = "({$user_row['id']}," . LOC_USER . ",{$user_row['id']}," . UNIT_TECHNOLOGIES . ",{$tech_id},{$tech_level})"; |
||
| 2120 | } |
||
| 2121 | } |
||
| 2122 | } |
||
| 2123 | |||
| 2124 | if(!empty($que_lines)) { |
||
| 2125 | upd_do_query("INSERT INTO {{unit}} (unit_player_id, unit_location_type, unit_location_id, unit_type, unit_snid, unit_level) VALUES " . implode(',', $que_lines)); |
||
| 2126 | } |
||
| 2127 | |||
| 2128 | upd_alter_table('users', array( |
||
| 2129 | "DROP COLUMN `graviton_tech`", |
||
| 2130 | ), $update_tables['users']['graviton_tech']); |
||
| 2131 | } |
||
| 2132 | |||
| 2133 | if(!$update_indexes['unit']['I_unit_record_search']) { |
||
| 2134 | upd_alter_table('unit', array( |
||
| 2135 | "ADD KEY `I_unit_record_search` (`unit_snid`,`unit_player_id`,`unit_level` DESC,`unit_id`)", |
||
| 2136 | ), !$update_indexes['unit']['I_unit_record_search']); |
||
| 2137 | |||
| 2138 | foreach(sn_get_groups(array('structures', 'fleet', 'defense')) as $unit_id) { |
||
| 2139 | $planet_units[get_unit_param($unit_id, P_NAME)] = 1; |
||
| 2140 | } |
||
| 2141 | $drop_index = array(); |
||
| 2142 | $create_index = &$drop_index; // array(); |
||
| 2143 | foreach($planet_units as $unit_name => $unit_create) { |
||
| 2144 | if($update_indexes['planets']['I_' . $unit_name]) { |
||
| 2145 | $drop_index[] = "DROP KEY I_{$unit_name}"; |
||
| 2146 | } |
||
| 2147 | if($update_indexes['planets']['i_' . $unit_name]) { |
||
| 2148 | $drop_index[] = "DROP KEY i_{$unit_name}"; |
||
| 2149 | } |
||
| 2150 | |||
| 2151 | if($unit_create) { |
||
| 2152 | $create_index[] = "ADD KEY `I_{$unit_name}` (`id_owner`, {$unit_name} DESC)"; |
||
| 2153 | } |
||
| 2154 | } |
||
| 2155 | upd_alter_table('planets', $drop_index, true); |
||
| 2156 | } |
||
| 2157 | |||
| 2158 | upd_alter_table('users', array( |
||
| 2159 | "ADD `user_time_utc_offset` INT(11) DEFAULT NULL COMMENT 'User time difference with server time' AFTER `user_time_diff`", |
||
| 2160 | ), !$update_tables['users']['user_time_utc_offset']); |
||
| 2161 | |||
| 2162 | if(!$update_foreigns['alliance']['FK_alliance_owner']) { |
||
| 2163 | upd_do_query("UPDATE {{alliance}} SET ally_owner = NULL WHERE ally_owner NOT IN (SELECT id FROM {{users}})"); |
||
| 2164 | |||
| 2165 | upd_alter_table('alliance', array( |
||
| 2166 | "ADD CONSTRAINT `FK_alliance_owner` FOREIGN KEY (`ally_owner`) REFERENCES `{{users}}` (`id`) ON DELETE SET NULL ON UPDATE CASCADE", |
||
| 2167 | ), !$update_foreigns['alliance']['FK_alliance_owner']); |
||
| 2168 | |||
| 2169 | upd_do_query("DELETE FROM {{alliance_negotiation}} WHERE alliance_negotiation_ally_id NOT IN (SELECT id FROM {{alliance}}) OR alliance_negotiation_contr_ally_id NOT IN (SELECT id FROM {{alliance}})"); |
||
| 2170 | |||
| 2171 | upd_do_query("DELETE FROM {{alliance_negotiation}} WHERE alliance_negotiation_ally_id = alliance_negotiation_contr_ally_id"); |
||
| 2172 | upd_do_query("DELETE FROM {{alliance_diplomacy}} WHERE alliance_diplomacy_ally_id = alliance_diplomacy_contr_ally_id"); |
||
| 2173 | } |
||
| 2174 | |||
| 2175 | upd_alter_table('fleets', array( |
||
| 2176 | 'MODIFY COLUMN `fleet_owner` BIGINT(20) UNSIGNED DEFAULT NULL', |
||
| 2177 | "ADD CONSTRAINT `FK_fleet_owner` FOREIGN KEY (`fleet_owner`) REFERENCES `{{users}}` (`id`) ON DELETE CASCADE ON UPDATE CASCADE", |
||
| 2178 | ), strtoupper($update_tables['fleets']['fleet_owner']['Type']) != 'BIGINT(20) UNSIGNED'); |
||
| 2179 | |||
| 2180 | upd_check_key('chat_highlight_developer', '<span class="nick_developer">$1</span>', !classSupernova::$config->chat_highlight_developer); |
||
| 2181 | |||
| 2182 | if(!$update_tables['player_name_history']) { |
||
| 2183 | upd_check_key('game_user_changename_cost', 100000, !classSupernova::$config->game_user_changename_cost); |
||
| 2184 | upd_check_key('game_user_changename', SERVER_PLAYER_NAME_CHANGE_PAY, classSupernova::$config->game_user_changename != SERVER_PLAYER_NAME_CHANGE_PAY); |
||
| 2185 | |||
| 2186 | upd_alter_table('users', array( |
||
| 2187 | "CHANGE COLUMN `username` `username` VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'Player name'", |
||
| 2188 | )); |
||
| 2189 | |||
| 2190 | upd_create_table('player_name_history', |
||
| 2191 | "( |
||
| 2192 | `player_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL COMMENT 'Player ID', |
||
| 2193 | `player_name` VARCHAR(32) NOT NULL COMMENT 'Historical player name', |
||
| 2194 | `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'When player changed name', |
||
| 2195 | |||
| 2196 | PRIMARY KEY (`player_name`), |
||
| 2197 | KEY `I_player_name_history_id_name` (`player_id`, `player_name`), |
||
| 2198 | |||
| 2199 | CONSTRAINT `FK_player_name_history_id` FOREIGN KEY (`player_id`) REFERENCES `{{users}}` (`id`) ON UPDATE CASCADE ON DELETE CASCADE |
||
| 2200 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
||
| 2201 | ); |
||
| 2202 | |||
| 2203 | upd_do_query("REPLACE INTO {{player_name_history}} (`player_id`, `player_name`) SELECT `id`, `username` FROM {{users}} WHERE `user_as_ally` IS NULL;"); |
||
| 2204 | } |
||
| 2205 | |||
| 2206 | upd_alter_table('planets', array( |
||
| 2207 | "ADD `density` SMALLINT NOT NULL DEFAULT 5500 COMMENT 'Planet average density kg/m3'", |
||
| 2208 | "ADD `density_index` TINYINT NOT NULL DEFAULT " . PLANET_DENSITY_STANDARD . " COMMENT 'Planet cached density index'", |
||
| 2209 | ), !$update_tables['planets']['density_index']); |
||
| 2210 | |||
| 2211 | if($update_tables['users']['player_artifact_list']) { |
||
| 2212 | upd_alter_table('unit', "DROP KEY `unit_id`", $update_indexes['unit']['unit_id']); |
||
| 2213 | |||
| 2214 | upd_alter_table('unit', "ADD KEY `I_unit_player_location_snid` (`unit_player_id`, `unit_location_type`, `unit_location_id`, `unit_snid`)", !$update_indexes['unit']['I_unit_player_location_snid']); |
||
| 2215 | upd_alter_table('unit', "DROP KEY `I_unit_player_id_temporary`", $update_indexes['unit']['I_unit_player_id_temporary']); |
||
| 2216 | |||
| 2217 | $sn_data_artifacts = sn_get_groups('artifacts'); |
||
| 2218 | $db_changeset = array(); |
||
| 2219 | |||
| 2220 | $query = upd_do_query("SELECT `id`, `player_artifact_list` FROM {{users}} WHERE `player_artifact_list` IS NOT NULL AND `player_artifact_list` != '' FOR UPDATE"); |
||
| 2221 | while($row = db_fetch($query)) { |
||
| 2222 | $artifact_list = explode(';', $row['player_artifact_list']); |
||
| 2223 | if(!$row['player_artifact_list'] || empty($artifact_list)) { |
||
| 2224 | continue; |
||
| 2225 | } |
||
| 2226 | foreach($artifact_list as $key => &$value) { |
||
| 2227 | $value = explode(',', $value); |
||
| 2228 | if(!isset($value[1]) || $value[1] <= 0 || !isset($sn_data_artifacts[$value[0]])) { |
||
| 2229 | unset($artifact_list[$key]); |
||
| 2230 | continue; |
||
| 2231 | } |
||
| 2232 | $db_changeset['unit'][] = upd_db_unit_changeset_prepare($value[0], $value[1], $row); |
||
| 2233 | } |
||
| 2234 | } |
||
| 2235 | upd_db_changeset_apply($db_changeset); |
||
| 2236 | |||
| 2237 | upd_alter_table('users', "DROP COLUMN `player_artifact_list`", $update_tables['users']['player_artifact_list']); |
||
| 2238 | } |
||
| 2239 | |||
| 2240 | upd_alter_table('users', array( |
||
| 2241 | "DROP COLUMN `spy_tech`", |
||
| 2242 | "DROP COLUMN `computer_tech`", |
||
| 2243 | "DROP COLUMN `military_tech`", |
||
| 2244 | "DROP COLUMN `defence_tech`", |
||
| 2245 | "DROP COLUMN `shield_tech`", |
||
| 2246 | "DROP COLUMN `energy_tech`", |
||
| 2247 | "DROP COLUMN `hyperspace_tech`", |
||
| 2248 | "DROP COLUMN `combustion_tech`", |
||
| 2249 | "DROP COLUMN `impulse_motor_tech`", |
||
| 2250 | "DROP COLUMN `hyperspace_motor_tech`", |
||
| 2251 | "DROP COLUMN `laser_tech`", |
||
| 2252 | "DROP COLUMN `ionic_tech`", |
||
| 2253 | "DROP COLUMN `buster_tech`", |
||
| 2254 | "DROP COLUMN `intergalactic_tech`", |
||
| 2255 | "DROP COLUMN `expedition_tech`", |
||
| 2256 | "DROP COLUMN `colonisation_tech`", |
||
| 2257 | ), $update_tables['users']['spy_tech']); |
||
| 2258 | |||
| 2259 | upd_check_key('payment_currency_exchange_dm_', 2500, !classSupernova::$config->payment_currency_exchange_dm_ || classSupernova::$config->payment_currency_exchange_dm_ == 1000); |
||
| 2260 | upd_check_key('payment_currency_exchange_eur', 0.09259259259259, !classSupernova::$config->payment_currency_exchange_eur); |
||
| 2261 | upd_check_key('payment_currency_exchange_rub', 4.0, !classSupernova::$config->payment_currency_exchange_rub); |
||
| 2262 | upd_check_key('payment_currency_exchange_usd', 0.125, !classSupernova::$config->payment_currency_exchange_usd); |
||
| 2263 | upd_check_key('payment_currency_exchange_wme', 0.0952380952381, !classSupernova::$config->payment_currency_exchange_usd); |
||
| 2264 | upd_check_key('payment_currency_exchange_wmr', 4.1, !classSupernova::$config->payment_currency_exchange_wmr); |
||
| 2265 | upd_check_key('payment_currency_exchange_wmu', 1.05, !classSupernova::$config->payment_currency_exchange_wmu); |
||
| 2266 | upd_check_key('payment_currency_exchange_wmz', 0.126582278481, !classSupernova::$config->payment_currency_exchange_wmz); |
||
| 2267 | |||
| 2268 | upd_do_query('COMMIT;', true); |
||
| 2269 | $new_version = 37; |
||
| 2270 | |||
| 2271 | } |
||
| 2272 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.