function
MissionCaseAttack (
$FleetRow
)
{
global
$user
,
$phpEx
,
$xnova_root_path
,
$pricelist
,
$lang
,
$resource
,
$CombatCaps
;
if
(
$FleetRow
[
'fleet_start_time'
] <= time()) {
if
(
$FleetRow
[
'fleet_mess'
] == 0) {
if
(!isset(
$CombatCaps
[202][
'sd'
])) {
message(
"<span style="
FONT-FAMILY:
">"
.
$lang
[
'sys_no_vars'
] .
"</span>"
,
$lang
[
'sys_error'
],
"fleet."
.
$phpEx
, 2);
}
$QryTargetPlanet
=
"SELECT * FROM {{table}} "
;
$QryTargetPlanet
.=
"WHERE "
;
$QryTargetPlanet
.=
"`galaxy` = '"
.
$FleetRow
['fleet_end_galaxy
'] . "'
AND ";
$QryTargetPlanet
.=
"`system` = '"
.
$FleetRow
['fleet_end_system
'] . "'
AND ";
$QryTargetPlanet
.=
"`planet` = '"
.
$FleetRow
['fleet_end_planet
'] . "'
AND ";
$QryTargetPlanet
.=
"`planet_type` = '"
.
$FleetRow
['fleet_end_type
'] . "'
;";
$TargetPlanet
= doquery(
$QryTargetPlanet
,
'planets'
, true);
$TargetUserID
=
$TargetPlanet
[
'id_owner'
];
$QryCurrentUser
=
"SELECT * FROM {{table}} "
;
$QryCurrentUser
.=
"WHERE "
;
$QryCurrentUser
.=
"`id` = '"
.
$FleetRow
['fleet_owner
'] . "'
;";
$CurrentUser
= doquery(
$QryCurrentUser
,
'users'
, true);
$CurrentUserID
=
$CurrentUser
[
'id'
];
$QryTargetUser
=
"SELECT * FROM {{table}} "
;
$QryTargetUser
.=
"WHERE "
;
$QryTargetUser
.=
"`id` = '"
.
$TargetUserID
.
"';"
;
$TargetUser
= doquery(
$QryTargetUser
,
'users'
, true);
$QryTargetTech
=
"SELECT "
;
$QryTargetTech
.=
"`military_tech`, `defence_tech`, `shield_tech` "
;
$QryTargetTech
.=
"FROM {{table}} "
;
$QryTargetTech
.=
"WHERE "
;
$QryTargetTech
.=
"`id` = '"
.
$TargetUserID
.
"';"
;
$TargetTechno
= doquery(
$QryTargetTech
,
'users'
, true);
$QryCurrentTech
=
"SELECT "
;
$QryCurrentTech
.=
"`military_tech`, `defence_tech`, `shield_tech` "
;
$QryCurrentTech
.=
"FROM {{table}} "
;
$QryCurrentTech
.=
"WHERE "
;
$QryCurrentTech
.=
"`id` = '"
.
$CurrentUserID
.
"';"
;
$CurrentTechno
= doquery(
$QryCurrentTech
,
'users'
, true);
for
(
$SetItem
= 200;
$SetItem
0) {
$TargetSet
[
$SetItem
][
'count'
] =
$TargetPlanet
[
$resource
[
$SetItem
]];
}
}
$TheFleet
=
explode
(
";"
,
$FleetRow
[
'fleet_array'
]);
foreach
(
$TheFleet
as
$a
=>
$b
) {
if
(
$b
!=
''
) {
$a
=
explode
(
","
,
$b
);
$CurrentSet
[
$a
[0]][
'count'
] =
$a
[1];
}
}
include_once
(
$xnova_root_path
.
'includes/ataki.'
.
$phpEx
);
$mtime
= microtime();
$mtime
=
explode
(
" "
,
$mtime
);
$mtime
=
$mtime
[1] +
$mtime
[0];
$starttime
=
$mtime
;
$walka
= walka(
$CurrentSet
,
$TargetSet
,
$CurrentTechno
,
$TargetTechno
);
$mtime
= microtime();
$mtime
=
explode
(
" "
,
$mtime
);
$mtime
=
$mtime
[1] +
$mtime
[0];
$endtime
=
$mtime
;
$totaltime
= (
$endtime
-
$starttime
);
$CurrentSet
=
$walka
[
"atakujacy"
];
$TargetSet
=
$walka
[
"wrog"
];
$FleetResult
=
$walka
[
"wygrana"
];
$dane_do_rw
=
$walka
[
"dane_do_rw"
];
$zlom
=
$walka
[
"zlom"
];
$FleetArray
=
""
;
$FleetAmount
= 0;
$FleetStorage
= 0;
foreach
(
$CurrentSet
as
$Ship
=>
$Count
) {
$FleetStorage
+=
$pricelist
[
$Ship
][
"capacity"
] *
$Count
[
'count'
];
$FleetArray
.=
$Ship
.
","
.
$Count
[
'count'
] .
";"
;
$FleetAmount
+=
$Count
[
'count'
];
}
$FleetStorage
-=
$FleetRow
[
"fleet_resource_metal"
];
$FleetStorage
-=
$FleetRow
[
"fleet_resource_crystal"
];
$FleetStorage
-=
$FleetRow
[
"fleet_resource_deuterium"
];
$TargetPlanetUpd
=
""
;
if
(!
is_null
(
$TargetSet
)) {
foreach
(
$TargetSet
as
$Ship
=>
$Count
) {
$TargetPlanetUpd
.=
"`"
.
$resource
[
$Ship
] .
"` = '"
.
$Count
['
count
'] . "'
, ";
}
}
$Mining
[
'metal'
] = 0;
$Mining
[
'crystal'
] = 0;
$Mining
[
'deuter'
] = 0;
if
(
$FleetResult
==
"a"
) {
if
(
$FleetStorage
> 0) {
$metal
=
$TargetPlanet
[
'metal'
] / 2;
$crystal
=
$TargetPlanet
[
'crystal'
] / 2;
$deuter
=
$TargetPlanet
[
"deuterium"
] / 2;
if
((
$metal
) >
$FleetStorage
/ 3) {
$Mining
[
'metal'
] =
$FleetStorage
/ 3;
$FleetStorage
=
$FleetStorage
-
$Mining
[
'metal'
];
}
else
{
$Mining
[
'metal'
] =
$metal
;
$FleetStorage
=
$FleetStorage
-
$Mining
[
'metal'
];
}
if
((
$crystal
) >
$FleetStorage
/ 2) {
$Mining
[
'crystal'
] =
$FleetStorage
/ 2;
$FleetStorage
=
$FleetStorage
-
$Mining
[
'crystal'
];
}
else
{
$Mining
[
'crystal'
] =
$crystal
;
$FleetStorage
=
$FleetStorage
-
$Mining
[
'crystal'
];
}
if
((
$deuter
) >
$FleetStorage
) {
$Mining
[
'deuter'
] =
$FleetStorage
;
$FleetStorage
=
$FleetStorage
-
$Mining
[
'deuter'
];
}
else
{
$Mining
[
'deuter'
] =
$deuter
;
$FleetStorage
=
$FleetStorage
-
$Mining
[
'deuter'
];
}
}
}
$Mining
[
'metal'
] =
round
(
$Mining
[
'metal'
]);
$Mining
[
'crystal'
] =
round
(
$Mining
[
'crystal'
]);
$Mining
[
'deuter'
] =
round
(
$Mining
[
'deuter'
]);
$QryUpdateTarget
=
"UPDATE {{table}} SET "
;
$QryUpdateTarget
.=
$TargetPlanetUpd
;
$QryUpdateTarget
.=
"`metal` = `metal` - '"
.
$Mining
['metal
'] . "'
, ";
$QryUpdateTarget
.=
"`crystal` = `crystal` - '"
.
$Mining
['crystal
'] . "'
, ";
$QryUpdateTarget
.=
"`deuterium` = `deuterium` - '"
.
$Mining
['deuter
'] . "'
";
$QryUpdateTarget
.=
"WHERE "
;
$QryUpdateTarget
.=
"`galaxy` = '"
.
$FleetRow
['fleet_end_galaxy
'] . "'
AND ";
$QryUpdateTarget
.=
"`system` = '"
.
$FleetRow
['fleet_end_system
'] . "'
AND ";
$QryUpdateTarget
.=
"`planet` = '"
.
$FleetRow
['fleet_end_planet
'] . "'
AND ";
$QryUpdateTarget
.=
"`planet_type` = '"
.
$FleetRow
['fleet_end_type
'] . "'
";
$QryUpdateTarget
.=
"LIMIT 1;"
;
doquery(
$QryUpdateTarget
,
'planets'
);
$QryUpdateGalaxy
=
"UPDATE {{table}} SET "
;
$QryUpdateGalaxy
.=
"`metal` = `metal` + '"
.
$zlom
['metal
'] . "'
, ";
$QryUpdateGalaxy
.=
"`crystal` = `crystal` + '"
.
$zlom
['crystal
'] . "'
";
$QryUpdateGalaxy
.=
"WHERE "
;
$QryUpdateGalaxy
.=
"`galaxy` = '"
.
$FleetRow
['fleet_end_galaxy
'] . "'
AND ";
$QryUpdateGalaxy
.=
"`system` = '"
.
$FleetRow
['fleet_end_system
'] . "'
AND ";
$QryUpdateGalaxy
.=
"`planet` = '"
.
$FleetRow
['fleet_end_planet
'] . "'
";
$QryUpdateGalaxy
.=
"LIMIT 1;"
;
doquery(
$QryUpdateGalaxy
,
'galaxy'
);
$FleetDebris
=
$zlom
[
'metal'
] +
$zlom
[
'crystal'
];
$StrAttackerUnits
= sprintf (
$lang
[
'sys_attacker_lostunits'
], pretty_number (
$zlom
[
"atakujacy"
]));
$StrDefenderUnits
= sprintf (
$lang
[
'sys_defender_lostunits'
], pretty_number (
$zlom
[
"wrog"
]));
$StrRuins
= sprintf (
$lang
[
'sys_gcdrunits'
], pretty_number (
$zlom
[
"metal"
]),
$lang
[
'Metal'
], pretty_number (
$zlom
[
'crystal'
]),
$lang
[
'Crystal'
]);
$DebrisField
=
$StrAttackerUnits
.
""
.
$StrDefenderUnits
.
""
.
$StrRuins
;
$MoonChance
=
$FleetDebris
/ 100000;
if
(
$FleetDebris
> 2000000) {
$MoonChance
= 20;
}
if
(
$FleetDebris
= 100000) {
$UserChance
= mt_rand(1, 100);
$ChanceMoon
= sprintf (
$lang
[
'sys_moonproba'
],
$MoonChance
);
}
if
((
$UserChance
> 0)
and
(
$UserChance
$MoonChance
) {
……
}
$AttackDate
=
date
(
"r"
,
$FleetRow
[
"fleet_start_time"
]);
$title
= sprintf (
$lang
[
'sys_attack_title'
],
$AttackDate
);
$raport
=
""
.
$title
.
""
;
$zniszczony
= false;
$a_zestrzelona
= 0;
$AttackTechon
[
'A'
] =
$CurrentTechno
[
"military_tech"
] * 10;
$AttackTechon
[
'B'
] =
$CurrentTechno
[
"defence_tech"
] * 10;
$AttackTechon
[
'C'
] =
$CurrentTechno
[
"shield_tech"
] * 10;
$AttackerData
= sprintf (
$lang
[
'sys_attack_attacker_pos'
],
$CurrentUser
[
"username"
],
$FleetRow
[
'fleet_start_galaxy'
],
$FleetRow
[
'fleet_start_system'
],
$FleetRow
[
'fleet_start_planet'
]);
$AttackerTech
= sprintf (
$lang
[
'sys_attack_techologies'
],
$AttackTechon
[
'A'
],
$AttackTechon
[
'B'
],
$AttackTechon
[
'C'
]);
$DefendTechon
[
'A'
] =
$TargetTechno
[
"military_tech"
] * 10;
$DefendTechon
[
'B'
] =
$TargetTechno
[
"defence_tech"
] * 10;
$DefendTechon
[
'C'
] =
$TargetTechno
[
"shield_tech"
] * 10;
$DefenderData
= sprintf (
$lang
[
'sys_attack_defender_pos'
],
$TargetUser
[
"username"
],
$FleetRow
[
'fleet_end_galaxy'
],
$FleetRow
[
'fleet_end_system'
],
$FleetRow
[
'fleet_end_planet'
]);
$DefenderTech
= sprintf (
$lang
[
'sys_attack_techologies'
],
$DefendTechon
[
'A'
],
$DefendTechon
[
'B'
],
$DefendTechon
[
'C'
]);
foreach
(
$dane_do_rw
as
$a
=>
$b
) {
……
}
switch
(
$FleetResult
) {
……
}
$SimMessage
= sprintf (
$lang
[
'sys_rapport_build_time'
],
$totaltime
);
$raport
.=
$SimMessage
.
""
;
$dpath
= (!
$user
[
"dpath"
]) ? DEFAULT_SKINPATH :
$user
[
"dpath"
];
$rid
= md5(
$raport
);
$QryInsertRapport
=
"INSERT INTO {{table}} SET "
;
$QryInsertRapport
.=
"`time` = UNIX_TIMESTAMP(), "
;
$QryInsertRapport
.=
"`id_owner1` = '"
.
$FleetRow
['fleet_owner
'] . "'
, ";
$QryInsertRapport
.=
"`id_owner2` = '"
.
$TargetUserID
.
"', "
;
$QryInsertRapport
.=
"`rid` = '"
.
$rid
.
"', "
;
$QryInsertRapport
.=
"`a_zestrzelona` = '"
.
$a_zestrzelona
.
"', "
;
$QryInsertRapport
.=
"`raport` = '"
.
addslashes
(
$raport
) .
"';"
;
doquery(
$QryInsertRapport
,
'rw'
);
$raport
=
""
;
$raport
.=
""
;
if
(
$FleetResult
==
"a"
) {
$raport
.=
""
;
}
elseif
(
$FleetResult
==
"r"
) {
$raport
.=
""
;
}
elseif
(
$FleetResult
==
"w"
) {
$raport
.=
""
;
}
$raport
.= ……
$Mining
[
'metal'
] =
$Mining
[
'metal'
] +
$FleetRow
[
"fleet_resource_metal"
];
$Mining
[
'crystal'
] =
$Mining
[
'crystal'
] +
$FleetRow
[
"fleet_resource_crystal"
];
$Mining
[
'deuter'
] =
$Mining
[
'deuter'
] +
$FleetRow
[
"fleet_resource_deuterium"
];
$QryUpdateFleet
=
"UPDATE {{table}} SET "
;
$QryUpdateFleet
.=
"`fleet_amount` = '"
.
$FleetAmount
.
"', "
;
$QryUpdateFleet
.=
"`fleet_array` = '"
.
$FleetArray
.
"', "
;
$QryUpdateFleet
.=
"`fleet_mess` = '1', "
;
$QryUpdateFleet
.=
"`fleet_resource_metal` = '"
.
$Mining
['metal
'] . "'
, ";
$QryUpdateFleet
.=
"`fleet_resource_crystal` = '"
.
$Mining
['crystal
'] . "'
, ";
$QryUpdateFleet
.=
"`fleet_resource_deuterium` = '"
.
$Mining
['deuter
'] . "'
";
$QryUpdateFleet
.=
"WHERE fleet_id = '"
.
$FleetRow
['fleet_id
'] . "'
";
$QryUpdateFleet
.=
"LIMIT 1 ;"
;
doquery(
$QryUpdateFleet
,
'fleets'
);
SendSimpleMessage (
$CurrentUserID
,
''
,
$FleetRow
[
'fleet_start_time'
], 3,
$lang
[
'sys_mess_tower'
],
$lang
[
'sys_mess_attack_report'
],
$raport
);
$AddPoint
=
$CurrentUser
[
'xpraid'
] + 1;
$QryUpdateOfficier
=
"UPDATE {{table}} SET "
;
$QryUpdateOfficier
.=
"`xpraid` = '"
.
$AddPoint
.
"' "
;
$QryUpdateOfficier
.=
"WHERE id = '"
.
$CurrentUserID
.
"' "
;
$QryUpdateOfficier
.=
"LIMIT 1 ;"
;
doquery(
$QryUpdateOfficier
,
'users'
);
$RaidsTotal
=
$CurrentUser
[
'raids'
] + 1;
if
(
$FleetResult
==
"a"
) {
$RaidsWin
=
$CurrentUser
[
'raidswin'
] + 1;
$QryUpdateRaidsCompteur
=
"UPDATE {{table}} SET "
;
$QryUpdateRaidsCompteur
.=
"`raidswin` ='"
.
$RaidsWin
.
"', "
;
$QryUpdateRaidsCompteur
.=
"`raids` ='"
.
$RaidsTotal
.
"' "
;
$QryUpdateRaidsCompteur
.=
"WHERE id = '"
.
$CurrentUserID
.
"' "
;
$QryUpdateRaidsCompteur
.=
"LIMIT 1 ;"
;
doquery(
$QryUpdateRaidsCompteur
,
'users'
);
}
elseif
(
$FleetResult
==
"r"
||
$FleetResult
==
"w"
) {
$RaidsLoose
=
$CurrentUser
[
'raidsloose'
] + 1;
$QryUpdateRaidsCompteur
=
"UPDATE {{table}} SET "
;
$QryUpdateRaidsCompteur
.=
"`raidswin` ='"
.
$RaidsLoose
.
"', "
;
$QryUpdateRaidsCompteur
.=
"`raids` ='"
.
$RaidsTotal
.
"' "
;
$QryUpdateRaidsCompteur
.=
"WHERE id = '"
.
$CurrentUserID
.
"' "
;
$QryUpdateRaidsCompteur
.=
"LIMIT 1 ;"
;
doquery(
$QryUpdateRaidsCompteur
,
'users'
);
}
$raport2
=
""
;
$raport2
.=
""
;
if
(
$FleetResult
==
"a"
) {
$raport2
.=
""
;
}
elseif
(
$FleetResult
==
"r"
) {
$raport2
.=
""
;
}
elseif
(
$FleetResult
==
"w"
) {
$raport2
.=
""
;
}
$raport2
.=
$lang
[
'sys_mess_attack_report'
] .
" ["
.
$FleetRow
[
'fleet_end_galaxy'
] .
":"
.
$FleetRow
[
'fleet_end_system'
] .
":"
.
$FleetRow
[
'fleet_end_planet'
] .
"]"
;
SendSimpleMessage (
$TargetUserID
,
''
,
$FleetRow
[
'fleet_start_time'
], 3,
$lang
[
'sys_mess_tower'
],
$lang
[
'sys_mess_attack_report'
],
$raport2
);
}
$fquery
=
""
;
if
(
$FleetRow
[
'fleet_end_time'
]
$Count
) {
$fquery
.=
"`"
.
$resource
[
$Ship
] .
"` = `"
.
$resource
[
$Ship
] .
"` + '"
.
$Count
['
count
'] . "'
, ";
}
}
else
{
$fleet
=
explode
(
";"
,
$FleetRow
[
'fleet_array'
]);
foreach
(
$fleet
as
$a
=>
$b
) {
if
(
$b
!=
''
) {
$a
=
explode
(
","
,
$b
);
$fquery
.=
"{$resource[$a[0]]}={$resource[$a[0]]} + {$a[1]}, \n"
;
}
}
}
doquery (
"DELETE FROM {{table}} WHERE `fleet_id` = "
.
$FleetRow
[
"fleet_id"
],
'fleets'
);
if
(!(
$FleetResult
==
"w"
)) {
$QryUpdatePlanet
=
"UPDATE {{table}} SET "
;
$QryUpdatePlanet
.=
$fquery
;
$QryUpdatePlanet
.=
"`metal` = `metal` + "
.
$FleetRow
[
'fleet_resource_metal'
] .
", "
;
$QryUpdatePlanet
.=
"`crystal` = `crystal` + "
.
$FleetRow
[
'fleet_resource_crystal'
] .
", "
;
$QryUpdatePlanet
.=
"`deuterium` = `deuterium` + "
.
$FleetRow
[
'fleet_resource_deuterium'
] .
" "
;
$QryUpdatePlanet
.=
"WHERE "
;
$QryUpdatePlanet
.=
"`galaxy` = "
.
$FleetRow
[
'fleet_start_galaxy'
] .
" AND "
;
$QryUpdatePlanet
.=
"`system` = "
.
$FleetRow
[
'fleet_start_system'
] .
" AND "
;
$QryUpdatePlanet
.=
"`planet` = "
.
$FleetRow
[
'fleet_start_planet'
] .
" AND "
;
$QryUpdatePlanet
.=
"`planet_type` = "
.
$FleetRow
[
'fleet_start_type'
] .
" LIMIT 1 ;"
;
doquery(
$QryUpdatePlanet
,
'planets'
);
}
}
}
}