1 | <?php |
||||
2 | /** |
||||
3 | * Created by Gorlum 15.06.2017 4:32 |
||||
4 | */ |
||||
5 | |||||
6 | // ------------------------------------------------------------------ |
||||
7 | use DBAL\db_mysql; |
||||
8 | use DBAL\OldDbChangeSet; |
||||
9 | use Fleet\DbFleetStatic; |
||||
10 | use Planet\DBStaticPlanet; |
||||
11 | |||||
12 | /** |
||||
13 | * @param array $fleet_row |
||||
14 | * @param bool $start |
||||
15 | * @param bool $only_resources |
||||
16 | * @param bool $safe_fleet |
||||
17 | * |
||||
18 | * @return mixed |
||||
19 | * @deprecated |
||||
20 | */ |
||||
21 | function RestoreFleetToPlanet(&$fleet_row, $start = true, $only_resources = false, $safe_fleet = false) { |
||||
22 | /** @see sn_RestoreFleetToPlanet() Default function */ |
||||
23 | return sn_function_call('RestoreFleetToPlanet', array(&$fleet_row, $start, $only_resources, $safe_fleet, &$result)); |
||||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
![]() |
|||||
24 | } |
||||
25 | |||||
26 | /** |
||||
27 | * @param array $fleet_row |
||||
28 | * @param bool $start |
||||
29 | * @param bool $only_resources |
||||
30 | * @param bool $safe_fleet |
||||
31 | * @param mixed $result |
||||
32 | * |
||||
33 | * @return int |
||||
34 | * @deprecated |
||||
35 | */ |
||||
36 | function sn_RestoreFleetToPlanet(&$fleet_row, $start = true, $only_resources = false, $safe_fleet = false, &$result) { |
||||
0 ignored issues
–
show
The parameter
$safe_fleet is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. ![]() |
|||||
37 | db_mysql::db_transaction_check(true); |
||||
38 | |||||
39 | $result = CACHE_NOTHING; |
||||
40 | if (!is_array($fleet_row)) { |
||||
41 | return $result; |
||||
42 | } |
||||
43 | |||||
44 | $prefix = $start ? 'start' : 'end'; |
||||
45 | |||||
46 | // Поскольку эта функция может быть вызвана не из обработчика флотов - нам надо всё заблокировать вроде бы НЕ МОЖЕТ!!! |
||||
47 | // TODO Проеверить от многократного срабатывания !!! |
||||
48 | // Тут не блокируем пока - сначала надо заблокировать пользователя, что бы не было дедлока |
||||
49 | // $fleet_row = doquery("SELECT * FROM {{fleets}} WHERE `fleet_id`='{$fleet_row['fleet_id']}' LIMIT 1", true); |
||||
50 | // Узнаем ИД владельца планеты - без блокировки |
||||
51 | // TODO поменять на владельца планеты - когда его будут возвращать всегда !!! |
||||
52 | $user_id = DBStaticPlanet::db_planet_by_vector($fleet_row, "fleet_{$prefix}_"); |
||||
53 | $user_id = $user_id['id_owner']; |
||||
54 | // Блокируем пользователя |
||||
55 | $user = db_user_by_id($user_id, true); |
||||
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
![]() |
|||||
56 | // Блокируем планету |
||||
57 | $planet_arrival = DBStaticPlanet::db_planet_by_vector($fleet_row, "fleet_{$prefix}_"); |
||||
58 | // Блокируем флот |
||||
59 | // $fleet_row = doquery("SELECT * FROM {{fleets}} WHERE `fleet_id`='{$fleet_row['fleet_id']}' LIMIT 1 FOR UPDATE;", true); |
||||
60 | |||||
61 | // Если флот уже обработан - не существует или возращается - тогда ничего не делаем |
||||
62 | if (!$fleet_row || !is_array($fleet_row) || ($fleet_row['fleet_mess'] == 1 && $only_resources)) { |
||||
63 | return $result; |
||||
64 | } |
||||
65 | |||||
66 | // Флот, который возвращается на захваченную планету, пропадает |
||||
67 | if ($start && $fleet_row['fleet_mess'] == 1 && $planet_arrival['id_owner'] != $fleet_row['fleet_owner']) { |
||||
68 | DbFleetStatic::db_fleet_delete($fleet_row['fleet_id']); |
||||
69 | |||||
70 | return $result; |
||||
71 | } |
||||
72 | |||||
73 | $db_changeset = array(); |
||||
74 | if (!$only_resources) { |
||||
75 | DbFleetStatic::db_fleet_delete($fleet_row['fleet_id']); |
||||
76 | |||||
77 | if ($fleet_row['fleet_owner'] == $planet_arrival['id_owner']) { |
||||
78 | $fleet_array = sys_unit_str2arr($fleet_row['fleet_array']); |
||||
79 | foreach ($fleet_array as $ship_id => $ship_count) { |
||||
80 | if ($ship_count) { |
||||
81 | $db_changeset['unit'][] = OldDbChangeSet::db_changeset_prepare_unit($ship_id, $ship_count, $user, $planet_arrival['id']); |
||||
82 | } |
||||
83 | } |
||||
84 | } else { |
||||
85 | return CACHE_NOTHING; |
||||
86 | } |
||||
87 | } else { |
||||
88 | $fleet_set = array( |
||||
89 | 'fleet_resource_metal' => 0, |
||||
90 | 'fleet_resource_crystal' => 0, |
||||
91 | 'fleet_resource_deuterium' => 0, |
||||
92 | 'fleet_mess' => 1, |
||||
93 | ); |
||||
94 | DbFleetStatic::fleet_update_set($fleet_row['fleet_id'], $fleet_set); |
||||
95 | } |
||||
96 | |||||
97 | if (!empty($db_changeset)) { |
||||
98 | OldDbChangeSet::db_changeset_apply($db_changeset); |
||||
99 | } |
||||
100 | |||||
101 | DBStaticPlanet::db_planet_set_by_id($planet_arrival['id'], |
||||
102 | "`metal` = `metal` + '{$fleet_row['fleet_resource_metal']}', `crystal` = `crystal` + '{$fleet_row['fleet_resource_crystal']}', `deuterium` = `deuterium` + '{$fleet_row['fleet_resource_deuterium']}'"); |
||||
103 | $result = CACHE_FLEET | ($start ? CACHE_PLANET_SRC : CACHE_PLANET_DST); |
||||
104 | |||||
105 | return $result; |
||||
106 | } |
||||
107 |