supernova-ws /
SuperNova
| 1 | <?php |
||||
| 2 | |||||
| 3 | use \DBAL\DbQuery; |
||||
|
0 ignored issues
–
show
|
|||||
| 4 | use DBAL\OldDbChangeSet; |
||||
| 5 | |||||
| 6 | function roughQuestRenderWrapper() { |
||||
| 7 | global $lang, $user; |
||||
| 8 | lng_include('quest'); |
||||
| 9 | |||||
| 10 | $template = SnTemplate::gettemplate('quest', true); |
||||
|
0 ignored issues
–
show
true of type true is incompatible with the type null|template expected by parameter $template of SnTemplate::gettemplate().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 11 | qst_render_page($lang, $user, $template); |
||||
| 12 | |||||
| 13 | SnTemplate::display($template, $lang['qst_quests']); |
||||
| 14 | } |
||||
| 15 | |||||
| 16 | /** |
||||
| 17 | * @param classLocale $lang |
||||
| 18 | * @param array $user |
||||
| 19 | * @param template $template |
||||
| 20 | */ |
||||
| 21 | function qst_render_page(classLocale $lang, array $user, template $template) { |
||||
| 22 | $questCurrentManaged = null; |
||||
| 23 | $in_admin = defined('IN_ADMIN') && IN_ADMIN === true; |
||||
| 24 | |||||
| 25 | $user_id = sys_get_param_id('user_id', false); |
||||
|
0 ignored issues
–
show
false of type false is incompatible with the type double|integer|string expected by parameter $default of sys_get_param_id().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 26 | $currentMode = sys_get_param_str('mode'); |
||||
| 27 | |||||
| 28 | if ($in_admin) { |
||||
| 29 | $questCurrentManaged = questPageModelManage($lang, $template, $currentMode); |
||||
| 30 | } elseif (!$user_id) { |
||||
| 31 | $user_id = $user['id']; |
||||
| 32 | } |
||||
| 33 | |||||
| 34 | $quest_list = qst_get_quests($user_id, SN::$user_options[PLAYER_OPTION_QUEST_LIST_FILTER]); |
||||
| 35 | $template->assign_vars(array( |
||||
| 36 | 'AUTHLEVEL' => $user['authlevel'], |
||||
| 37 | 'TOTAL' => count($quest_list), |
||||
| 38 | 'mode' => $currentMode, |
||||
| 39 | 'USER_ID' => $user_id, |
||||
| 40 | 'IN_ADMIN' => $in_admin, |
||||
| 41 | |||||
| 42 | 'QUEST_STATUS_NOT_STARTED' => QUEST_STATUS_NOT_STARTED, |
||||
| 43 | 'QUEST_STATUS_STARTED' => QUEST_STATUS_STARTED, |
||||
| 44 | 'QUEST_STATUS_COMPLETE' => QUEST_STATUS_COMPLETE, |
||||
| 45 | |||||
| 46 | 'PLAYER_OPTION_QUEST_LIST_FILTER' => SN::$user_options[PLAYER_OPTION_QUEST_LIST_FILTER], |
||||
| 47 | )); |
||||
| 48 | |||||
| 49 | foreach ($lang['qst_status_list'] as $statusId => $statusName) { |
||||
| 50 | $template->assign_block_vars('status', array( |
||||
| 51 | 'ID' => $statusId, |
||||
| 52 | 'NAME' => $statusName, |
||||
| 53 | )); |
||||
| 54 | } |
||||
| 55 | |||||
| 56 | if (!empty($questCurrentManaged)) { |
||||
| 57 | $quest_templatized = qst_templatize(qst_quest_parse($questCurrentManaged)); |
||||
| 58 | } else { |
||||
| 59 | $quest_templatized['quest_rewards_list'] = []; |
||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||
| 60 | } |
||||
| 61 | |||||
| 62 | questTemplatizeReward($quest_templatized, $lang); |
||||
| 63 | |||||
| 64 | qst_assign_to_template($template, $quest_templatized); |
||||
| 65 | |||||
| 66 | foreach ($quest_list as $quest_data) { |
||||
| 67 | qst_assign_to_template($template, qst_templatize($quest_data, true), 'quest'); |
||||
| 68 | } |
||||
| 69 | |||||
| 70 | foreach (questUnitsAllowed() as $unit_id) { |
||||
| 71 | $template->assign_block_vars('allowed_unit', array( |
||||
| 72 | 'ID' => $unit_id, |
||||
| 73 | 'NAME' => $lang['tech'][$unit_id], |
||||
| 74 | )); |
||||
| 75 | } |
||||
| 76 | } |
||||
| 77 | |||||
| 78 | /** |
||||
| 79 | * @param classLocale $lang |
||||
| 80 | * @param template $template |
||||
| 81 | * @param string $mode |
||||
| 82 | */ |
||||
| 83 | function questPageModelManage(classLocale $lang, template $template, &$mode) { |
||||
| 84 | $questManaged = null; |
||||
| 85 | |||||
| 86 | $quest_id = sys_get_param_id('id'); |
||||
| 87 | $quest_name = sys_get_param_str_unsafe('QUEST_NAME'); |
||||
| 88 | if (!empty($quest_name)) { |
||||
| 89 | try { |
||||
| 90 | // TODO: Change quest type |
||||
| 91 | $quest_type = 0; |
||||
| 92 | $theQuery = DbQuery::build() |
||||
| 93 | ->setTable('quest') |
||||
| 94 | ->setValues([ |
||||
| 95 | 'quest_type' => $quest_type, |
||||
| 96 | 'quest_name' => $quest_name, |
||||
| 97 | 'quest_description' => sys_get_param_str_unsafe('QUEST_DESCRIPTION'), |
||||
| 98 | 'quest_conditions' => questGetConditionFromParams($lang), |
||||
| 99 | 'quest_rewards' => questGetRewardsStringFromParams($lang), |
||||
| 100 | ]); |
||||
| 101 | |||||
| 102 | if ($mode == 'edit') { |
||||
| 103 | $theQuery |
||||
| 104 | ->setWhereArray(['quest_id' => $quest_id]) |
||||
| 105 | ->setOneRow() |
||||
| 106 | ->doUpdate(); |
||||
| 107 | } else { |
||||
| 108 | $theQuery->doInsert(); |
||||
| 109 | } |
||||
| 110 | |||||
| 111 | // TODO: Add mass mail for new quests |
||||
| 112 | /* |
||||
| 113 | if(sys_get_param_int('news_mass_mail')) { |
||||
| 114 | msg_send_simple_message('*', 0, 0, MSG_TYPE_PLAYER, $lang['sys_administration'], $lang['news_title'], $text); |
||||
| 115 | } |
||||
| 116 | */ |
||||
| 117 | } catch (Exception $e) { |
||||
| 118 | SnTemplate::messageBox($e->getMessage(), $lang['sys_error']); |
||||
| 119 | } |
||||
| 120 | |||||
| 121 | $mode = ''; |
||||
| 122 | } |
||||
| 123 | |||||
| 124 | switch ($mode) { |
||||
| 125 | case 'del': |
||||
| 126 | doquery("DELETE FROM `{{quest}}` WHERE `quest_id` = {$quest_id} LIMIT 1;"); |
||||
|
0 ignored issues
–
show
The function
doquery() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 127 | $mode = ''; |
||||
| 128 | break; |
||||
| 129 | |||||
| 130 | /** @noinspection PhpMissingBreakStatementInspection */ |
||||
| 131 | case 'edit': |
||||
| 132 | $template->assign_var('QUEST_ID', $quest_id); |
||||
|
0 ignored issues
–
show
Coding Style
Comprehensibility
introduced
by
|
|||||
| 133 | |||||
| 134 | case 'copy': |
||||
| 135 | $questManaged = doquery("SELECT * FROM `{{quest}}` WHERE `quest_id` = {$quest_id} LIMIT 1;", '', true); |
||||
|
0 ignored issues
–
show
The function
doquery() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 136 | break; |
||||
| 137 | } |
||||
| 138 | |||||
| 139 | $query = doquery("SELECT count(*) AS count FROM `{{quest}}`;", '', true); |
||||
|
0 ignored issues
–
show
The function
doquery() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 140 | SN::$config->pass()->quest_total = $query['count']; |
||||
| 141 | |||||
| 142 | return $questManaged; |
||||
| 143 | } |
||||
| 144 | |||||
| 145 | /** |
||||
| 146 | * @param array $quest_templatized |
||||
| 147 | * @param classLocale $lang |
||||
| 148 | */ |
||||
| 149 | function questTemplatizeReward(&$quest_templatized, $lang) { |
||||
| 150 | foreach (questAllowedRewardsList() as $unit_id) { |
||||
| 151 | $found = false; |
||||
| 152 | foreach ($quest_templatized['quest_rewards_list'] as $quest_templatized_reward) { |
||||
| 153 | if ($quest_templatized_reward['ID'] == $unit_id) { |
||||
| 154 | $found = true; |
||||
| 155 | break; |
||||
| 156 | } |
||||
| 157 | } |
||||
| 158 | |||||
| 159 | if (!$found) { |
||||
| 160 | $quest_templatized['quest_rewards_list'][$unit_id] = array( |
||||
| 161 | 'ID' => $unit_id, |
||||
| 162 | 'NAME' => $lang['tech'][$unit_id], |
||||
| 163 | 'AMOUNT' => 0, |
||||
| 164 | ); |
||||
| 165 | } |
||||
| 166 | } |
||||
| 167 | } |
||||
| 168 | |||||
| 169 | /** |
||||
| 170 | * @param $lang |
||||
| 171 | * |
||||
| 172 | * @return string |
||||
| 173 | * @throws Exception |
||||
| 174 | */ |
||||
| 175 | function questGetRewardsStringFromParams($lang) { |
||||
| 176 | $quest_reward_allowed = questAllowedRewardsList(); |
||||
| 177 | $quest_rewards = []; |
||||
| 178 | foreach (sys_get_param('QUEST_REWARDS_LIST') as $quest_rewards_id => $quest_rewards_amount) { |
||||
| 179 | if (!in_array($quest_rewards_id, $quest_reward_allowed)) { |
||||
| 180 | throw new Exception($lang['qst_adm_err_reward_type']); |
||||
| 181 | } |
||||
| 182 | |||||
| 183 | $quest_rewards_amount = round($quest_rewards_amount); |
||||
| 184 | if ($quest_rewards_amount < 0) { |
||||
| 185 | throw new Exception($lang['qst_adm_err_reward_amount']); |
||||
| 186 | } elseif ($quest_rewards_amount > 0) { |
||||
| 187 | $quest_rewards[intval($quest_rewards_id)] = $quest_rewards_amount; |
||||
| 188 | } |
||||
| 189 | } |
||||
| 190 | if (empty($quest_rewards)) { |
||||
| 191 | throw new Exception($lang['qst_adm_err_reward_empty']); |
||||
| 192 | } |
||||
| 193 | $quest_rewards_string = sys_unit_arr2str($quest_rewards); |
||||
| 194 | |||||
| 195 | return $quest_rewards_string; |
||||
| 196 | } |
||||
| 197 | |||||
| 198 | /** |
||||
| 199 | * @param $lang |
||||
| 200 | * |
||||
| 201 | * @return string |
||||
| 202 | * @throws Exception |
||||
| 203 | */ |
||||
| 204 | function questGetConditionFromParams($lang) { |
||||
| 205 | $quest_unit_id = sys_get_param_int('QUEST_UNIT_ID'); |
||||
| 206 | if (!in_array($quest_unit_id, questUnitsAllowed())) { |
||||
| 207 | throw new Exception($lang['qst_adm_err_unit_id']); |
||||
| 208 | } |
||||
| 209 | $quest_unit_amount = sys_get_param_float('QUEST_UNIT_AMOUNT'); |
||||
| 210 | if ($quest_unit_amount <= 0) { |
||||
| 211 | throw new Exception($lang['qst_adm_err_unit_amount']); |
||||
| 212 | } |
||||
| 213 | $quest_conditions = "{$quest_unit_id},{$quest_unit_amount}"; |
||||
| 214 | |||||
| 215 | return $quest_conditions; |
||||
| 216 | } |
||||
| 217 | |||||
| 218 | /** |
||||
| 219 | * @return array |
||||
| 220 | */ |
||||
| 221 | function questAllowedRewardsList() { |
||||
| 222 | return sn_get_groups('quest_rewards'); |
||||
| 223 | } |
||||
| 224 | |||||
| 225 | /** |
||||
| 226 | * @return array |
||||
| 227 | */ |
||||
| 228 | function questUnitsAllowed() { |
||||
| 229 | return sn_get_groups(['structures', 'tech', 'fleet', 'defense']); |
||||
| 230 | } |
||||
| 231 | |||||
| 232 | function qst_get_quests($user_id = false, $status = QUEST_STATUS_ALL) { |
||||
| 233 | $quest_list = array(); |
||||
| 234 | |||||
| 235 | if ($user_id) { |
||||
| 236 | if ($status !== QUEST_STATUS_ALL) { |
||||
| 237 | $query_add_where = ""; |
||||
| 238 | if ($status == null || $status == QUEST_STATUS_NOT_STARTED) { |
||||
| 239 | $query_add_where .= "AND qs.quest_status_status IS NULL"; |
||||
| 240 | } elseif ($status == QUEST_STATUS_EXCEPT_COMPLETE) { |
||||
| 241 | $query_add_where .= "AND (qs.quest_status_status IS NULL OR qs.quest_status_status = " . QUEST_STATUS_STARTED . ")"; |
||||
| 242 | } else { |
||||
| 243 | $query_add_where .= "AND qs.quest_status_status = {$status}"; |
||||
| 244 | } |
||||
| 245 | } |
||||
| 246 | $query_add_select = ", qs.quest_status_progress, qs.quest_status_status"; |
||||
| 247 | $query_add_from = "LEFT JOIN {{quest_status}} AS qs ON qs.quest_status_quest_id = q.quest_id AND qs.quest_status_user_id = {$user_id}"; |
||||
| 248 | } |
||||
| 249 | |||||
| 250 | $query = doquery( |
||||
|
0 ignored issues
–
show
The function
doquery() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 251 | "SELECT q.* {$query_add_select} |
||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||
| 252 | FROM `{{quest}}` AS q {$query_add_from} |
||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||
| 253 | WHERE 1 {$query_add_where} |
||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||
| 254 | ;" |
||||
| 255 | ); |
||||
| 256 | |||||
| 257 | while ($quest = db_fetch($query)) { |
||||
|
0 ignored issues
–
show
The function
db_fetch() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 258 | $quest_list[$quest['quest_id']] = qst_quest_parse($quest); |
||||
| 259 | } |
||||
| 260 | |||||
| 261 | return $quest_list; |
||||
| 262 | } |
||||
| 263 | |||||
| 264 | /** |
||||
| 265 | * @param template $template |
||||
| 266 | * @param array $quest_templatized |
||||
| 267 | * @param string|bool $block_name |
||||
| 268 | */ |
||||
| 269 | function qst_assign_to_template(&$template, $quest_templatized, $block_name = false) { |
||||
| 270 | if ($block_name) { |
||||
| 271 | $template->assign_block_vars($block_name, $quest_templatized); |
||||
| 272 | } else { |
||||
| 273 | $template->assign_vars($quest_templatized); |
||||
| 274 | if (!empty($quest_templatized['quest_rewards_list'])) { |
||||
| 275 | foreach ($quest_templatized['quest_rewards_list'] as $quest_reward) { |
||||
| 276 | $template->assign_block_vars(($block_name ? $block_name . '.' : '') . 'quest_rewards_list', $quest_reward); |
||||
| 277 | } |
||||
| 278 | } |
||||
| 279 | } |
||||
| 280 | } |
||||
| 281 | |||||
| 282 | function qst_quest_parse($quest) { |
||||
| 283 | list($quest['quest_unit_id'], $quest['quest_unit_amount']) = explode(',', $quest['quest_conditions']); |
||||
| 284 | |||||
| 285 | $quest['quest_rewards_list'] = sys_unit_str2arr($quest['quest_rewards']); |
||||
| 286 | |||||
| 287 | return $quest; |
||||
| 288 | } |
||||
| 289 | |||||
| 290 | function qst_templatize($quest, $for_display = true) { |
||||
| 291 | global $lang; |
||||
| 292 | |||||
| 293 | $tmp = array(); |
||||
| 294 | foreach ($quest['quest_rewards_list'] as $quest_reward_id => $quest_reward_amount) { |
||||
| 295 | $tmp[] = array( |
||||
| 296 | 'ID' => $quest_reward_id, |
||||
| 297 | 'NAME' => $for_display ? str_replace(' ', ' ', $lang['tech'][$quest_reward_id]) : $lang['tech'][$quest_reward_id], |
||||
| 298 | 'AMOUNT' => $quest_reward_amount, |
||||
| 299 | ); |
||||
| 300 | } |
||||
| 301 | |||||
| 302 | return array( |
||||
| 303 | 'QUEST_ID' => $quest['quest_id'], |
||||
| 304 | 'QUEST_NAME' => $quest['quest_name'], |
||||
| 305 | 'QUEST_TYPE' => $quest['quest_type'], |
||||
| 306 | 'QUEST_DESCRIPTION' => $for_display ? HelperString::nl2br($quest['quest_description']) : $quest['quest_description'], |
||||
| 307 | 'QUEST_CONDITIONS' => $quest['quest_condition'], |
||||
| 308 | 'QUEST_UNIT_ID' => $quest['quest_unit_id'], |
||||
| 309 | 'QUEST_UNIT_NAME' => $lang['tech'][$quest['quest_unit_id']], |
||||
| 310 | 'QUEST_UNIT_AMOUNT' => $quest['quest_unit_amount'], |
||||
| 311 | 'QUEST_STATUS' => intval($quest['quest_status_status']), |
||||
| 312 | 'QUEST_STATUS_NAME' => $lang['qst_status_list'][intval($quest['quest_status_status'])], |
||||
| 313 | 'quest_rewards_list' => $tmp, |
||||
| 314 | ); |
||||
| 315 | } |
||||
| 316 | |||||
| 317 | function qst_active_triggers($quest_list) { |
||||
| 318 | $quest_triggers = array(); |
||||
| 319 | foreach ($quest_list as $quest_id => $quest) { |
||||
| 320 | if ($quest['quest_status_status'] != QUEST_STATUS_COMPLETE) { |
||||
| 321 | list($quest_unit_id, $quest_unit_amount) = explode(',', $quest['quest_conditions']); |
||||
| 322 | $quest_triggers[$quest_id] = $quest_unit_id; |
||||
| 323 | } |
||||
| 324 | } |
||||
| 325 | |||||
| 326 | return $quest_triggers; |
||||
| 327 | } |
||||
| 328 | |||||
| 329 | /** |
||||
| 330 | * @param $user |
||||
| 331 | * @param $rewards |
||||
| 332 | * @param $quest_list |
||||
| 333 | * @param integer[] $quest_statuses |
||||
| 334 | */ |
||||
| 335 | function qst_reward(&$user, &$rewards, &$quest_list, &$quest_statuses) { |
||||
| 336 | if (empty($quest_statuses)) { |
||||
| 337 | return; |
||||
| 338 | } |
||||
| 339 | |||||
| 340 | global $lang; |
||||
| 341 | |||||
| 342 | foreach ($quest_statuses as $quest_id => $quest_status) { |
||||
| 343 | $quest_list[$quest_id]['quest_status_status'] = $quest_status; |
||||
| 344 | |||||
| 345 | $questStatus = DbQuery::build() |
||||
| 346 | ->setTable('quest_status') |
||||
| 347 | ->setWhereArray(array( |
||||
| 348 | 'quest_status_quest_id' => $quest_id, |
||||
| 349 | 'quest_status_user_id' => $user['id'], |
||||
| 350 | )) |
||||
| 351 | ->doSelectFetch(); |
||||
| 352 | |||||
| 353 | if (empty($questStatus)) { |
||||
| 354 | DbQuery::build() |
||||
| 355 | ->setTable('quest_status') |
||||
| 356 | ->setValues(array( |
||||
| 357 | 'quest_status_quest_id' => $quest_id, |
||||
| 358 | 'quest_status_user_id' => $user['id'], |
||||
| 359 | 'quest_status_status' => $quest_status |
||||
| 360 | )) |
||||
| 361 | ->doInsert(); |
||||
| 362 | } elseif ($questStatus['quest_status_status'] != $quest_status) { |
||||
| 363 | DbQuery::build() |
||||
| 364 | ->setTable('quest_status') |
||||
| 365 | ->setWhereArray(array( |
||||
| 366 | 'quest_status_quest_id' => $quest_id, |
||||
| 367 | 'quest_status_user_id' => $user['id'], |
||||
| 368 | )) |
||||
| 369 | ->setValues(array( |
||||
| 370 | 'quest_status_status' => $quest_status |
||||
| 371 | )) |
||||
| 372 | ->doUpdate(); |
||||
| 373 | } |
||||
| 374 | } |
||||
| 375 | |||||
| 376 | if (empty($rewards)) { |
||||
| 377 | return; |
||||
| 378 | } |
||||
| 379 | |||||
| 380 | $db_changeset = array(); |
||||
| 381 | $total_rewards = array(); |
||||
| 382 | $comment_dm = ''; |
||||
| 383 | |||||
| 384 | foreach ($rewards as $quest_id => $user_data) { |
||||
| 385 | foreach ($user_data as $user_id => $planet_data) { |
||||
| 386 | foreach ($planet_data as $planet_id => $reward_list) { |
||||
| 387 | $comment = sprintf($lang['qst_msg_complete_body'], $quest_list[$quest_id]['quest_name']); |
||||
| 388 | $comment_dm .= isset($reward_list[RES_DARK_MATTER]) ? $comment : ''; |
||||
| 389 | |||||
| 390 | $comment_reward = array(); |
||||
| 391 | foreach ($reward_list as $unit_id => $unit_amount) { |
||||
| 392 | $comment_reward[] = $unit_amount . ' ' . $lang['tech'][$unit_id]; |
||||
| 393 | $total_rewards[$user_id][$planet_id][$unit_id] += $unit_amount; |
||||
| 394 | } |
||||
| 395 | $comment .= " {$lang['qst_msg_your_reward']} " . implode(',', $comment_reward); |
||||
| 396 | |||||
| 397 | msg_send_simple_message($user['id'], 0, SN_TIME_NOW, MSG_TYPE_ADMIN, $lang['msg_from_admin'], $lang['qst_msg_complete_subject'], $comment); |
||||
| 398 | |||||
| 399 | DbQuery::build() |
||||
| 400 | ->setTable('quest_status') |
||||
| 401 | ->setValues(array( |
||||
| 402 | 'quest_status_quest_id' => $quest_id, |
||||
| 403 | 'quest_status_user_id' => $user_id, |
||||
| 404 | 'quest_status_status' => QUEST_STATUS_COMPLETE |
||||
| 405 | )) |
||||
| 406 | ->doInsert(); |
||||
| 407 | } |
||||
| 408 | } |
||||
| 409 | } |
||||
| 410 | |||||
| 411 | $group_resources = sn_get_groups('resources_loot'); |
||||
| 412 | $quest_rewards_allowed = questAllowedRewardsList(); |
||||
| 413 | if (!empty($total_rewards)) { |
||||
| 414 | foreach ($total_rewards as $user_id => $planet_data) { |
||||
| 415 | $user_row = db_user_by_id($user_id); |
||||
|
0 ignored issues
–
show
The function
db_user_by_id() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 416 | foreach ($planet_data as $planet_id => $unit_data) { |
||||
| 417 | $local_changeset = array(); |
||||
| 418 | foreach ($unit_data as $unit_id => $unit_amount) { |
||||
| 419 | if (!isset($quest_rewards_allowed[$unit_id])) { |
||||
| 420 | continue; |
||||
| 421 | } |
||||
| 422 | |||||
| 423 | if ($unit_id == RES_DARK_MATTER) { |
||||
| 424 | rpg_points_change($user['id'], RPG_QUEST, $unit_amount, $comment_dm); |
||||
| 425 | } elseif (isset($group_resources[$unit_id])) { |
||||
| 426 | $local_changeset[pname_resource_name($unit_id)] = array('delta' => $unit_amount); |
||||
| 427 | } else // Проверим на юниты |
||||
| 428 | { |
||||
| 429 | $db_changeset['unit'][] = OldDbChangeSet::db_changeset_prepare_unit($unit_id, $unit_amount, $user_row, $planet_id); |
||||
| 430 | } |
||||
| 431 | } |
||||
| 432 | |||||
| 433 | if (!empty($local_changeset)) { |
||||
| 434 | $planet_id = $planet_id == 0 && isset($user_row['id_planet']) ? $user_row['id_planet'] : $planet_id; |
||||
| 435 | $db_changeset[$planet_id ? 'planets' : 'users'][] = array( |
||||
| 436 | 'action' => SQL_OP_UPDATE, |
||||
| 437 | P_VERSION => 1, |
||||
| 438 | 'where' => array( |
||||
| 439 | "id" => $planet_id ? $planet_id : $user_id, |
||||
| 440 | ), |
||||
| 441 | 'fields' => $local_changeset, |
||||
| 442 | ); |
||||
| 443 | } |
||||
| 444 | } |
||||
| 445 | } |
||||
| 446 | |||||
| 447 | OldDbChangeSet::db_changeset_apply($db_changeset); |
||||
|
0 ignored issues
–
show
The function
DBAL\OldDbChangeSet::db_changeset_apply() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 448 | } |
||||
| 449 | } |
||||
| 450 | |||||
| 451 | function get_quest_amount_complete($user_id) { |
||||
| 452 | return count(qst_get_quests($user_id, QUEST_STATUS_COMPLETE)); |
||||
| 453 | } |
||||
| 454 | |||||
| 455 | function get_quest_amount_in_progress($user_id) { |
||||
| 456 | return count(qst_get_quests($user_id, QUEST_STATUS_STARTED)); |
||||
| 457 | } |
||||
| 458 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths