der Planet wird Trotzdem über Allianz ID an den Leader gegeben und seine Position nicht als $owner_ID und dann hat der Leader halt Pech oder die Admins müssen endlich mal die Regel klarer Definieren wo ist das Problem?
und ihr solltet mal aufhören wahllos allen den krieg zu erklären sonst machen wir das mal mit Allianz Kampf System dann wird der eine Flug immer wieder resettet und fliegt 5 stunden Fliegt aber nach den 20 tagen noch mal 20 Tage zurück.
Wir können euch die Planeten dauer Ankleben Fliegt ohne Phalanx Bazillu und Agressor sind die einzigen die ohne Spielen können der rest braucht das Drecks tool um überhaupt was zu können.
Механика начисления очков межальянсового турнира (Classic)
#21
Отправлено 27 Ноябрь 2025 - 16:44
#22
Отправлено 27 Ноябрь 2025 - 16:51
А по поводу войн ничего плохого не вижу. Такая же игровая механика, как и все остальные. А вопросы морали и соответствия реальности лучше оставить за бортом - мы все-таки в игру играем
#23
Отправлено 27 Ноябрь 2025 - 17:31
Doch ich verstehe das ganz genau.
Ich wiederhole nochmal die Regeln sind eventuell nur auf Russisch klar definiert aber in Sämtlichen anderen Sprachen nicht und wenn ich die russischen übersetze ins deutsche mit einem Tool machen die gar kein sinn denn wir haben eine andere Grammatik und ein anderes Verständnis von Sprache als ihr.
Sehe ich nicht weiter schlimm ich würde nochmal anbieten alles zu Optimieren für die Deutsche Sprache aber naja dann gibs wieder Kopie und einfügen und die Admins überschreiben wieder alles wie letztes mal.
zufälligerweise habe ich die Sprach Dateien noch und odiable hat auch immer zugriff auf den git.
Aber ich bin mir nicht bewusst in wie weit er hier noch im Projekt mitarbeitet er scheint nur noch am Handy game und WOA zu arbeiten.
Gibt ja auch kaum noch support denn CtA bekommt ja nicht mal den Allinazplaneten Bug behoben denn die Haben 3 Planeten laut Datenbank aber der Leader hat keine Planeten genau so wie es 2 Allianzen gibt die jeweils 4 Allianzplaneten haben.
Interessiert ja anscheinend keinen.
Ich Fummel weiter an meinem Xterium Clone herum und werde hier keine hilfe mehr anbieten das umbauen der alten 2moons engie zu was neuen nervt eh ganzschön und dann mich noch hier beteiligen und neben bei noch den ganzen Tag und nacht LKW fahren oweia irgendwie bekomme ich das alles hin ;-)
#24
Отправлено 27 Ноябрь 2025 - 17:50
Jeder Spieler der Allianz mit dem passenden rechten kann den Planet versetzen und in der Datenbank ist der Planet auch nicht über Spieler ID gebunden sondern über Allianz ID an den Allianz Leader und nicht über $owner_id
Somit gehört er definitiv Niemanden und ist Allianzeigentum. Somit kann auch keiner Spieler zustimmen und die Regel ist hinfällig. Denn eine Zustimmung für Strategische angriffe wurde mit einer Kriegserklärung gegeben.
Und mit Allianz Kampfsystem kann ich dir den Hauptanflug auf 99% strecke setzen und dann immer wieder auf 100 Std + zurückziehen und ihr habt selber schuld erklärt nicht immer allen den Krieg und versucht das Universum zu vernichten.
Ich gönne euch den Angriffsbalken allen, denn ihr übertreibt es wirklich mit den Kriegen das soll ein Diplomatie Mittel sein aber ihr seid Alle einfach nur Gierig und verderbt allen anderen den Spaß am Spiel,
Weshalb ich das hier jetzt auch eiskalt Kopiere und dann Klare regeln setzen werde.
а как же твой друг Nighthawk2 который тоже кидает войну всем альянсам подряд? или ему можно?
#25
Отправлено 27 Ноябрь 2025 - 19:19
а как же твой друг Nighthawk2 который тоже кидает войну всем альянсам подряд? или ему можно?
Warte Stop er macht nur Kpuk_ nach, zur Info mit genau der Taktik habt ihr angefangen. Und Nighthawk ist genau so ein Dussel wie undertaker11 ohne die beiden hättet ihr nie So viele Ressourcen zusammen bekommen so wie Kampf Erfahrung.
Die beiden Verstehen es einfach nicht was sie damit im Universum anrichten, da kann ich eher mit einer Betonwand sprechen die versteht das eher, denn die beiden sind Schuld daran das Soloway so in die Bredouille kommt und sie verstehen es einfach nicht,
genau so wie die beiden daran schuld sind das Mikiee und umkapass von euch angeflogen werden konnten, CHAOS hoch 10 verursachen die beiden. Weshalb ich den Kontakt zu denen auf das nötigste Minimiert habe.
aber gut er kopiert halt nur Kpuk_ und ich habe da keine Aktien drin wir haben vereinbart das er die 2te Grabator Komplett bekommt nach unserem Streit und nun ist er nur noch Geduldet sobald er einen fehlermacht wird er von mir Persönlich aus dem Spiel genommen und 24/7 angegeriffen von allen Ogamern die wir sind alle nicht mehr so gut auf die beiden zu Sprechen.
Und nochmal ihr habt angefangen mit dem Allianz rein raus kram.
#26
Отправлено 28 Ноябрь 2025 - 08:29
Я считаю, что ничего плохого в войне альянса нет.
Из за того, что невозможно уничтожить луны, это остаётся единственным способом активно играть за атакующего грабтора. И в тоже время в войне есть перемирие, ограничения по уровню вооружения, а так же отмеренные миссии не видны на сенсоре. Поэтому баланс есть.
При баланса в игре, активный игрок всегда будет играть лучше и эффективнее менее активного, и не важно с какой стороны войны он находится.
В переговорах с каменной стеной ты будешь конечно прав, но настоящая истина рождается в споре)
По поводу времени полета. Мы наблюдаем множество автоматических ограничений во времени полета, например в миссиях защиты планет во второй галактике или атаке шпионским зондом, а по поводу атаки более 5 часов у нас есть только устный пункт из правил. Почему бы программно не ограничить миссии атаки 5ю часами?!
#27
Отправлено 28 Ноябрь 2025 - 09:31
Warte Stop er macht nur Kpuk_ nach, zur Info mit genau der Taktik habt ihr angefangen. Und Nighthawk ist genau so ein Dussel wie undertaker11 ohne die beiden hättet ihr nie So viele Ressourcen zusammen bekommen so wie Kampf Erfahrung.
Die beiden Verstehen es einfach nicht was sie damit im Universum anrichten, da kann ich eher mit einer Betonwand sprechen die versteht das eher, denn die beiden sind Schuld daran das Soloway so in die Bredouille kommt und sie verstehen es einfach nicht,
genau so wie die beiden daran schuld sind das Mikiee und umkapass von euch angeflogen werden konnten, CHAOS hoch 10 verursachen die beiden. Weshalb ich den Kontakt zu denen auf das nötigste Minimiert habe.
aber gut er kopiert halt nur Kpuk_ und ich habe da keine Aktien drin wir haben vereinbart das er die 2te Grabator Komplett bekommt nach unserem Streit und nun ist er nur noch Geduldet sobald er einen fehlermacht wird er von mir Persönlich aus dem Spiel genommen und 24/7 angegeriffen von allen Ogamern die wir sind alle nicht mehr so gut auf die beiden zu Sprechen.
Und nochmal ihr habt angefangen mit dem Allianz rein raus kram.
Опять я тебе чем-то насолил
Я уже как месяц не летаю активно, лишь по наводкам друзей.
Скоро все атакеры переведутся в шахтеры, и будет игра про то, у кого песочек лучше растет
Война - тактическая штука, которая говорит твоим врагам:
ты либо находишься в альянсе, дальше добываешь быстро ресурсы, но увеличивается шанс поимки твоего флота и ресурсов;
либо сидишь без альянса, но копаешь по копейке в день.
#28
Отправлено 28 Ноябрь 2025 - 09:41
Маленькая попытка сдержать перебежчиков.
Есть проблема более существенная, её уже подымали, но безрезультатно.
Ситуация про перебежчиков для объявления войны. Альянс формируется, чтобы количества очей вооружения хватило для объявления войны. Потом эти игроки уходят, а война продолжается. Количество очей падает, что даже нельзя атаковать ПА, и флотов уже не видно. В том же альянсе оставшийся один игрок может сканировать галактику на наличие флотов, переставлять ПА и передавать данные для ушедших игроков.
Бороться с этим легко -- объявляется перемирие на 7 дней как только количество очей не соответствует. Но с этим так никто ничего не сделал.
Твоя проблема в том, что ты ленивый кусок мульта, который может только ныть и говорить что грабторам легче. И искать проблемы там, где их нет.
Вот тебе и пример как грабторам легче:
1) Шама - уже обогнал всех кого смог, активно играя, без доната и на чистой тактике. Топ 5. Имеет нехилую добычу в сутки, а при акции думаю там счет идет на квадраты дейта. Имеет оборону, которую попробуй пробей без потерь.
2) Крик - который начал раньше шамы, хабба и дестени, но остался грабтором - застрял на уровне начинающих, которого уже все обогнали, что по постройкам, что по исследованиям. Хорошо если повезет хотябы 100 трилей дейта добыть.
Шама в обороне нанес столько же урона как и крик в атаке. Единственное где 2-й сделал больше - это в количестве атак, которые судя по всему не сильно окупаются.
Но я не ною, это лишь вопрос в цифрах, вопрос в игре, которую ленивые мультоводы портят.
Я хочу сказать спасибо ребятам с Германии (по флагу), они нормально так разбавили игру, с ними интересно играть, так как они активные и огрызаются. Чего только стоит снос меня, и уничтожение моих запасов в размере 30+ квадриков дейтерия.
#29
Отправлено 28 Ноябрь 2025 - 09:59
Не забудь рассказать про 6 атак в течении 3 дней на все твои планеты, которые обнулили твою оборону в хлам.
Будь ты был адекватным, я бы не делал это с целью снести оборону, а лишь с целью забрать твои ресурсы.
Но ты отправляешь атаки на ПА более чем на сутки, а потом еще с мульта за 200+ часов.
Вроде ГМ а сам же нарушаешь правила за правилами) И пытаешься объяснить придуманным бредом про нечестность игры. Клоун
d9860d72-d653-49d7-971c-2fc6cda395ee.jpg 91,96К
0 Количество загрузок:
Для тех кто подумает, что он отменил атаки - вот ответ.
Screenshot_1.png 217,92К
0 Количество загрузок:
Сообщение отредактировал Kpuk_: 28 Ноябрь 2025 - 09:57
#30
Отправлено 28 Ноябрь 2025 - 10:22
5 копеек:
Я считаю, что ничего плохого в войне альянса нет.
Из за того, что невозможно уничтожить луны, это остаётся единственным способом активно играть за атакующего грабтора. И в тоже время в войне есть перемирие, ограничения по уровню вооружения, а так же отмеренные миссии не видны на сенсоре. Поэтому баланс есть.
При баланса в игре, активный игрок всегда будет играть лучше и эффективнее менее активного, и не важно с какой стороны войны он находится.
В переговорах с каменной стеной ты будешь конечно прав, но настоящая истина рождается в споре)
По поводу времени полета. Мы наблюдаем множество автоматических ограничений во времени полета, например в миссиях защиты планет во второй галактике или атаке шпионским зондом, а по поводу атаки более 5 часов у нас есть только устный пункт из правил. Почему бы программно не ограничить миссии атаки 5ю часами?!
#31
Отправлено 28 Ноябрь 2025 - 18:36
Zu dem Thema Unfair muss ich euch leider Mitteilen das es das wenn man den code der calculate Attack nicht versteht definitiv der fall ist. Ich zeig euch mal die Alte Version der calculateattack.php
Aber achtung da ist ein Bug drin der wirklich einen Großennachteil für verteidiger gibt
<?php
function calculateAttack(&$attackers, &$defenders, $FleetTF, $DefTF)
{
global $pricelist, $CombatCaps, $resource;
$TRES = array('attacker' => 0, 'defender' => 0);
$ARES = $DRES = array('metal' => 0, 'crystal' => 0);
$ROUND = array();
$RF = array();
// PHP 8.x: sauber initialisieren, sonst Notices
$STARTDEF = array();
$attackAmount = array('total' => 0);
$defenseAmount = array('total' => 0);
foreach ($attackers as $fleetID => $attacker)
{
foreach ($attacker['unit'] as $element => $amount)
{
$ARES['metal'] += $pricelist[$element]['cost'][901] * $amount;
$ARES['crystal'] += $pricelist[$element]['cost'][902] * $amount;
}
}
foreach($CombatCaps as $e => $arr) {
if(!isset($arr['sd'])) continue;
foreach($arr['sd'] as $t => $sd) {
if($sd == 0) continue;
$RF[$t][$e] = $sd;
}
}
$TRES['attacker'] = $ARES['metal'] + $ARES['crystal'];
foreach ($defenders as $fleetID => $defender)
{
foreach ($defender['unit'] as $element => $amount)
{
if ($element < 300) {
$DRES['metal'] += $pricelist[$element]['cost'][901] * $amount;
$DRES['crystal'] += $pricelist[$element]['cost'][902] * $amount ;
$TRES['defender'] += $pricelist[$element]['cost'][901] * $amount;
$TRES['defender'] += $pricelist[$element]['cost'][902] * $amount;
} else {
if (!isset($STARTDEF[$element]))
$STARTDEF[$element] = 0;
$STARTDEF[$element] += $amount;
$TRES['defender'] += $pricelist[$element]['cost'][901] * $amount;
$TRES['defender'] += $pricelist[$element]['cost'][902] * $amount;
}
}
}
for ($ROUNDC = 0; $ROUNDC <= MAX_ATTACK_ROUNDS; $ROUNDC++)
{
$attackDamage = array('total' => 0);
$attackShield = array('total' => 0);
$attackAmount = array('total' => 0);
$defenseDamage = array('total' => 0);
$defenseShield = array('total' => 0);
$defenseAmount = array('total' => 0);
$attArray = array();
$defArray = array();
$KritAttacker = array();
$KritDefender = array();
$attackShoting = array('light' => 0, 'medium' => 0, 'heavy' => 0);
$defenseShoting = array('light' => 0, 'medium' => 0, 'heavy' => 0);
foreach ($attackers as $fleetID => $attacker) {
$attackDamage[$fleetID] = 0;
$attackShield[$fleetID] = 0;
$attackAmount[$fleetID] = 0;
$KritAttacker['DK'][$fleetID] = 0;
$KritAttacker['SK'][$fleetID] = 0;
$attTech = getbonusOneBis(1101,$attacker['player']['academy_1101']) + getbonusOneBis(1102,$attacker['player']['academy_1102']) + $attacker['player']['factor']['Attack'] * 100; //attaque
$defTech = getbonusOneBis(1301,$attacker['player']['academy_1301']) + getbonusOneBis(1302,$attacker['player']['academy_1302']) + $attacker['player']['factor']['Defensive']* 100; //bouclier
$shieldTech = getbonusOneBis(1301,$attacker['player']['academy_1301']) + getbonusOneBis(1302,$attacker['player']['academy_1302']) + $attacker['player']['factor']['Shield']* 100; //coque
$attackers[$fleetID]['techs'] = array(max(0, $attTech), max(0, $defTech), max(0, $shieldTech));
if($shieldTech == 0){
$shieldTech = 1;
}
if($defTech == 0){
$defTech = 1;
}
if($attTech == 0){
$attTech = 1;
}
foreach ($attacker['unit'] as $element => $amount) {
$thisAtt = $amount * ($CombatCaps[$element]['attack'] * $attTech); //attaque
$thisShield = $amount * ($CombatCaps[$element]['shield'] * $shieldTech); // прощет щитов
$structure = $pricelist[$element]['cost'][902];
$thisDef = $amount * $structure ; //прощет брони
//------Крит атаки и щитов
$DK = 1;
$SK = 1;
if($attacker['player']['academy_1103'] == 0)
$procen_DK = 0;
else
$procen_DK = 2*$attacker['player']['academy_1103'];
if($attacker['player']['academy_1303'] == 0)
$procen_SK = 0;
else
$procen_SK = 2*$attacker['player']['academy_1303'];
if($attacker['player']['academy_1311'] == 0)
$power_SK = 0;
else
$power_SK = getbonusOneBis(1311,$attacker['player']['academy_1311']);
if(rand(1,100) <= $procen_DK) $DK = 2;
if(rand(1,100) <= $procen_SK) $SK = 2;
//---------------------------------------------------------------------
$thisAtt *= $DK;
$thisShield *= $SK;
$KritAttacker['DK'][$fleetID] = $DK;
$KritAttacker['SK'][$fleetID] = $SK;
$attArray[$fleetID][$element] = array('def' => $thisDef, 'shield' => $thisShield, 'att' => $thisAtt);
$attackDamage[$fleetID] += $thisAtt;
$attackDamage['total'] += $thisAtt;
$attackShield[$fleetID] += $thisDef;
$attackShield['total'] += $thisDef;
$attackAmount[$fleetID] += $amount;
$attackAmount['total'] += $amount;
}
}
foreach ($defenders as $fleetID => $defender) {
$defenseDamage[$fleetID] = 0;
$defenseShield[$fleetID] = 0;
$defenseAmount[$fleetID] = 0;
$KritDefender['DK'][$fleetID] = 0;
$KritDefender['SK'][$fleetID] = 0;
//-----DEFENDER bonus
if(empty($defender['player']['academy_1306']))
$OB = 0;
else
$OB = $defender['player']['academy_1306'];
if(empty($defender['player']['academy_1305']))
$OS = 0;
else
$OS = $defender['player']['academy_1305'];
//---------------------------------------------------------------------------------------------
$attTech = getbonusOneBis(1101,$defender['player']['academy_1101']) + getbonusOneBis(1102,$defender['player']['academy_1102']) + $defender['player']['factor']['Attack'] * 100; //attaque
$defTech = $OB + getbonusOneBis(1301,$defender['player']['academy_1301']) + getbonusOneBis(1302,$defender['player']['academy_1302']) + $defender['player']['factor']['Defensive']* 100; //bouclier
$shieldTech = $OS + getbonusOneBis(1301,$defender['player']['academy_1301']) + getbonusOneBis(1302,$defender['player']['academy_1302']) + $defender['player']['factor']['Shield']* 100; //coque
$defenders[$fleetID]['techs'] = array(max(0, $attTech), max(0, $defTech), max(0, $shieldTech));
if($shieldTech == 0){
$shieldTech = 1;
}
if($defTech == 0){
$defTech = 1;
}
if($attTech == 0){
$attTech = 1;
}
foreach ($defender['unit'] as $element => $amount) {
//------Крит атаки и щитов
$DK = 1;
$SK = 1;
if($defender['player']['academy_1103'] == 0)
$procen_DK = 0;
else
$procen_DK = 2*$defender['player']['academy_1103'];
if($defender['player']['academy_1303'] == 0)
$procen_SK = 0;
else
$procen_SK = 2*$defender['player']['academy_1303'];
if($defender['player']['academy_1311'] == 0)
$power_SK = 0;
else
$power_SK = getbonusOneBis(1311,$defender['player']['academy_1311']);
if(rand(1,100) <= $procen_DK) $DK = 2;
if(rand(1,100) <= $procen_SK) $SK = 2;
//---------------------------------------------------------------------
$thisAtt = $amount * ($CombatCaps[$element]['attack'] * $attTech); //attaque
$thisShield = $amount * ($CombatCaps[$element]['shield'] * $shieldTech); // прощет щитов
$structure = $pricelist[$element]['cost'][902];
$thisDef = $amount * $structure ; //прощет брони
$thisAtt *= $DK;
$thisShield *= $SK;
$KritDefender['DK'][$fleetID] = $DK;
$KritDefender['SK'][$fleetID] = $SK;
if ($element == 407 || $element == 408 || $element == 409 || $element == 411) {
$thisAtt = 0;
}
$defArray[$fleetID][$element] = array('def' => $thisDef, 'shield' => $thisShield, 'att' => $thisAtt);
$defenseDamage[$fleetID] += $thisAtt;
$defenseDamage['total'] += $thisAtt;
$defenseShield[$fleetID] += $thisDef;
$defenseShield['total'] += $thisDef;
$defenseAmount[$fleetID] += $amount;
$defenseAmount['total'] += $amount;
}
}
$ROUND[$ROUNDC] = array(
'attackers' => $attackers,
'defenders' => $defenders,
'attackA' => $attackAmount,
'defenseA' => $defenseAmount,
'infoA' => $attArray,
'infoD' => $defArray,
'kA' => $KritAttacker,
'kD' => $KritDefender
);
if ($ROUNDC >= MAX_ATTACK_ROUNDS || $defenseAmount['total'] <= 0 || $attackAmount['total'] <= 0) {
break;
}
// Calculate hit percentages (ACS only but ok)
$attackPct = array();
foreach ($attackAmount as $fleetID => $amount) {
if (!is_numeric($fleetID)) {
continue;
}
$attackPct[$fleetID] = ($attackAmount['total'] > 0) ? $amount / $attackAmount['total'] : 0;
}
$defensePct = array();
foreach ($defenseAmount as $fleetID => $amount) {
if (!is_numeric($fleetID)) {
continue;
}
$defensePct[$fleetID] = ($defenseAmount['total'] > 0) ? $amount / $defenseAmount['total'] : 0;
}
// CALCUL DES PERTES !!!
$attacker_n = array();
$attacker_shield = 0;
$defenderAttack = 0;
foreach ($attackers as $fleetID => $attacker) {
$attacker_n[$fleetID] = array();
foreach($attacker['unit'] as $element => $amount) {
if ($amount <= 0) {
$attacker_n[$fleetID][$element] = 0;
continue;
}
$defender_moc = $amount * ($defenseDamage['total'] * $attackPct[$fleetID]) / max($attackAmount[$fleetID], 1);
if(isset($RF[$element])) {
foreach($RF[$element] as $shooter => $shots) {
foreach($defArray as $fID => $rfdef) {
if(empty($rfdef[$shooter]['att']) || $attackAmount[$fleetID] <= 0) continue;
$defender_moc += $rfdef[$shooter]['att'] * $shots / ($amount / $attackAmount[$fleetID] * $attackPct[$fleetID]);
$defenseAmount['total'] += $defenders[$fID]['unit'][$shooter] * $shots;
}
}
}
$CV = 0;
$CR = 0;
$Max_dex = 1.0;
$Fcus = 1.0;
foreach($defArray as $fID => $rfatt)
{
if ($defenseAmount[$fID] <= 0 ) continue;
//------CV
if(empty($defenders[$fID]['academy_1109']))
$CV = 0;
else
$CV += $defensePct[$fID] + getbonusOneBis(1109,$defenders['academy_1109']);
//------CR
if(empty($defenders[$fID]['academy_1110']))
$CR += 1;
else
$CR += $defensePct[$fID] * rand(1,(getbonusOneBis(1110,$defenders['academy_1110'])));
//------max destruction
if(empty($defenders[$fID]['academy_1108']))
$Max_dex += 0;
else
$Max_dex += $defensePct[$fID] * (getbonusOneBis(1108,$defenders['academy_1108']));
//------skil_fcus
if(empty($defenders[$fID]['skil_fcus']))
$Fcus -= 0;
else
$Fcus -= $defensePct[$fID] * ((getbonusOneBis(1111,$defenders['academy_1111'])));
}
$defenderAttack += $defender_moc;
if (($attArray[$fleetID][$element]['def'] / $amount) >= $defender_moc) {
$attacker_n[$fleetID][$element] = round($amount);
$attacker_shield += $defender_moc;
continue;
}
//------minimize RF
if(empty($attacker['player']['academy_1308']))
$minimize_RF = 1;
else
$minimize_RF = max(0, 1 - (getbonusOneBis(1308,$attacker['player']['academy_1308'])));
//----------------------------------------------------------------------------------------------------------
$max_removePoints = floor($amount * $defenseAmount['total'] / max($attackAmount[$fleetID], 1) * $attackPct[$fleetID]);
$attacker_shield += min($attArray[$fleetID][$element]['def'], $defender_moc);
$defender_moc -= min($attArray[$fleetID][$element]['def'], $defender_moc);
$ile_removePoints = max(
min(
$max_removePoints,
$amount * min(
$defender_moc / max($attArray[$fleetID][$element]['shield'], 1) * (rand(0, 200) / 100),
1
)
),
0
);
$attacker_n[$fleetID][$element] = max(ceil($amount - $ile_removePoints), 0);
}
}
$defender_n = array();
$defender_shield = 0;
$attackerAttack = 0;
foreach ($defenders as $fleetID => $defender) {
$defender_n[$fleetID] = array();
foreach($defender['unit'] as $element => $amount) {
if ($amount <= 0) {
$defender_n[$fleetID][$element] = 0;
continue;
}
$attacker_moc = $amount * ($attackDamage['total'] * $defensePct[$fleetID]) / max($defenseAmount[$fleetID], 1);
if (isset($RF[$element])) {
foreach($RF[$element] as $shooter => $shots) {
foreach($attArray as $fID => $rfatt) {
if (empty($rfatt[$shooter]['att']) || $defenseAmount[$fleetID] <= 0 ) continue;
$attacker_moc += $rfatt[$shooter]['att'] * $shots / ($amount / $defenseAmount[$fleetID] * $defensePct[$fleetID]);
$attackAmount['total'] += $attackers[$fID]['unit'][$shooter] * $shots;
}
}
}
$CV = 0;
$CR = 0;
$Max_dex = 1.0;
$Fcus = 1;
foreach($attArray as $fID => $rfatt)
{
if ($attackAmount[$fID] <= 0 ) continue;
//------CV
if(empty($attackers[$fID]['academy_1109']))
$CV = 0;
else
$CV += $attackPct[$fID] + getbonusOneBis(1109,$attackers['academy_1109']);
//------CR
if(empty($attackers[$fID]['academy_1110']))
$CR += 1;
else
$CR += $attackPct[$fID] * rand(1,(getbonusOneBis(1110,$attackers['academy_1110'])));
//------max destruction
if(empty($attackers[$fID]['academy_1108']))
$Max_dex += 0;
else
$Max_dex += $attackPct[$fID] * (getbonusOneBis(1108,$attackers['academy_1108']));
//------skil_fcus
if(empty($attackers[$fID]['skil_fcus']))
$Fcus -= 0;
else
$Fcus -= $attackPct[$fID] * ((getbonusOneBis(1111,$attackers['academy_1111'])));
}
$attackerAttack += $attacker_moc;
if (($defArray[$fleetID][$element]['def'] / $amount) >= $attacker_moc) {
$defender_n[$fleetID][$element] = round($amount);
$defender_shield += $attacker_moc;
continue;
}
//------minimize RF
if(empty($defender['player']['academy_1308']))
$minimize_RF = 1;
else
$minimize_RF = max(0, 1 - (getbonusOneBis(1308,$defender['player']['academy_1308'])));
//---------------------------------------------------------------------------------------------------------- /
$max_removePoints = floor($amount * $attackAmount['total'] / max($defenseAmount[$fleetID], 1) * $defensePct[$fleetID]);
$defender_shield += min($defArray[$fleetID][$element]['def'], $attacker_moc);
$attacker_moc -= min($defArray[$fleetID][$element]['def'], $attacker_moc);
$ile_removePoints = max(
min(
$max_removePoints,
$amount * min(
$attacker_moc / max($defArray[$fleetID][$element]['shield'], 1) * (rand(0, 200) / 100),
1
)
),
0
);
$defender_n[$fleetID][$element] = max(ceil($amount - $ile_removePoints), 0);
}
}
$ROUND[$ROUNDC]['attack'] = $attackerAttack;
$ROUND[$ROUNDC]['defense'] = $defenderAttack;
$ROUND[$ROUNDC]['attackShield'] = $attacker_shield;
$ROUND[$ROUNDC]['defShield'] = $defender_shield;
foreach ($attackers as $fleetID => $attacker) {
$attackers[$fleetID]['unit'] = array_map('round', $attacker_n[$fleetID]);
}
foreach ($defenders as $fleetID => $defender) {
$defenders[$fleetID]['unit'] = array_map('round', $defender_n[$fleetID]);
}
}
if ($attackAmount['total'] <= 0 && $defenseAmount['total'] > 0) {
$won = "r"; // defender
} elseif ($attackAmount['total'] > 0 && $defenseAmount['total'] <= 0) {
$won = "a"; // attacker
} else {
$won = "w"; // draw
}
// CDR
foreach ($attackers as $fleetID => $attacker) { // flotte attaquant en CDR
foreach ($attacker['unit'] as $element => $amount) {
$TRES['attacker'] -= $pricelist[$element]['cost'][901] * $amount ;
$TRES['attacker'] -= $pricelist[$element]['cost'][902] * $amount ;
$ARES['metal'] -= $pricelist[$element]['cost'][901] * $amount ;
$ARES['crystal'] -= $pricelist[$element]['cost'][902] * $amount ;
}
}
$DRESDefs = array('metal' => 0, 'crystal' => 0);
//------Reductin defender
$RD = 1;
if(empty($defender['player']['academy_1313']))
$RD = 0;
else
$RD = getbonusOneBis(1313,$defender['player']['academy_1313']);
//---------------------------------------------------------------------
$defs_point = 0;
foreach ($defenders as $fleetID => $defender) {
foreach ($defender['unit'] as $element => $amount) {
if ($element < 300) { // flotte defenseur en CDR
$DRES['metal'] -= $pricelist[$element]['cost'][901] * $amount ;
$DRES['crystal'] -= $pricelist[$element]['cost'][902] * $amount ;
$TRES['defender'] -= $pricelist[$element]['cost'][901] * $amount ;
$TRES['defender'] -= $pricelist[$element]['cost'][902] * $amount ;
} else { // defs defenseur en CDR + reconstruction
$TRES['defender'] -= $pricelist[$element]['cost'][901] * $amount ;
$TRES['defender'] -= $pricelist[$element]['cost'][902] * $amount ;
$lost = $STARTDEF[$element] - $amount;
//$giveback = round($lost * (rand(56, 84) / 100));
$giveback = round($lost * min(1,(rand(56+$RD, 70+$RD) / 100)));
$defenders[$fleetID]['unit'][$element] += $giveback;
$DRESDefs['metal'] += $pricelist[$element]['cost'][901] * ($lost - $giveback) ;
$DRESDefs['crystal'] += $pricelist[$element]['cost'][902] * ($lost - $giveback) ;
$defs_point += $pricelist[$element]['cost'][901] * $amount + $pricelist[$element]['cost'][901] * ($lost - $giveback);// очки оборонки
$defs_point += $pricelist[$element]['cost'][902] * $amount + $pricelist[$element]['cost'][902] * ($lost - $giveback);// очки оборонки
}
}
}
$ARES['metal'] = max($ARES['metal'], 0);
$ARES['crystal'] = max($ARES['crystal'], 0);
$DRES['metal'] = max($DRES['metal'], 0);
$DRES['crystal'] = max($DRES['crystal'], 0);
$TRES['attacker'] = max($TRES['attacker'], 0);
$TRES['defender'] = max($TRES['defender'], 0);
$totalLost = array('attacker' => $TRES['attacker'], 'defender' => $TRES['defender'], 'dp' => $defs_point);
$debAttMet = ($ARES['metal'] * ($FleetTF / 100));
$debAttCry = ($ARES['crystal'] * ($FleetTF / 100));
$debDefMet = ($DRES['metal'] * ($FleetTF / 100)) + ($DRESDefs['metal'] * ($DefTF / 100));
$debDefCry = ($DRES['crystal'] * ($FleetTF / 100)) + ($DRESDefs['crystal'] * ($DefTF / 100));
return array(
'won' => $won,
'debris' => array(
'attacker' => array(901 => $debAttMet, 902 => $debAttCry),
'defender' => array(901 => $debDefMet, 902 => $debDefCry)
),
'rw' => $ROUND,
'unitLost' => $totalLost
);
}
so das ist im endefekt alles was man zu dem alten code wissen muss und der kleine Bug in der berechnung fals der noch drin ist das kann ich nicht wissen aber so sah das kampfsystem 2017 im prototype aus.
#32
Отправлено 28 Ноябрь 2025 - 19:36
Ich bin mal ganz ehrlich das spiel brauch ein wiki
ich habe heute versucht meinen Allianz Kollegen alles zu erklären die nachricht hatte 4000 Zeichen und was ist passiert neuer bug Schataev bekomm die nachricht von mir gespamt weil im nachrichten system auch ein bug ist ist schon interessant wenn die nachrichten alle an den admin gehen und man dann eine sperre imgame hat wegen spam ![]()
#33
Отправлено 06 Декабрь 2025 - 12:03
Добрый день. Около двух недель назад что-то поменялось в механике начисления очков турнира. В итоге очки альянсу перестали приносить те игроки, которые не были в альянсе на момент начала турнира. Было ли это задумано как изменение или нет? Поясните, пожалуйста
Да, админы изменили правила начисления турнирных очков. Теперь игроки задумаются стоит ли прыгать за турнирной АМ, тем самым обнулить своё участите в новом турнире при смене альянса.
Также сейчас решается изменение механики объявления войны. Война это дополнительные плюшки, за которые нужно платить (как прем магазин). Ну и с вооружением во время войны нужно что то делать. А то один игрок прыгая по альянсам может накидать кучу войн, как добавляя вооружение так и занижая.
Каждый игрок может свои предложения накидывать, моё мнение что война должна быть 1 на 1 ,то есть альянс решивший повоевать, не может кидать войну другому альянсу. Ну и соответственно если у альянса есть война, то ему не могут кинуть ещё одну. И время телепортации ПА должно быть одинаковое у воюющих альянсов.
Администрация, большая просьба когда проходят изменения сообщать об этом на форуме, я думаю это не сложно сделать.
Можно ещё сделать тему, куда закидывать свои подозрения /предположения про мультов.
Например кто -то думает что Olena это мульт Умки, а кто-то считает бугаира мультом свгруза. Так Админам будет легче найти нарушителей.
#34
Отправлено 06 Декабрь 2025 - 12:42
Зачем СВГ создавать мульта, если он просто может спуститься?) чтоб вас двоих держать на панике, хватит и одного Агрессора
#35
Отправлено 06 Декабрь 2025 - 13:52
С одной войной на альянс не согласен. Теряется игровая гибкость, да и от реальности далеко. Прокинул вар трём альянсам - ты видишь в сенсор эти альянсы, но и они так же видят тебя. Вопрос, будут ли это использовать или просто жаловаться на судьбу нелегкую.
Зачем СВГ создавать мульта, если он просто может спуститься?) чтоб вас двоих держать на панике, хватит и одного Агрессора
Зачем ты оправдываешь игроков с моего поста? Это твоё мнение, а моё на этот счёт что один загнал себя сильно вверх, где ему нечего делать, и ушёл в ро , а другим аком гонять достыпных. В этом есть есть логика?
Я про то что у кого-то есть вопрос к мультоводству то бросать имена "позодзреваемых", чтобы админу было проще и быстрее проверить и наказать ,если нарушение существует.
Конечно ещё могут бы дела или хочется отдохнуть от игры, уйдя в ро. Но такие игроки обычно пропадают из статистики)
#36
Отправлено 06 Декабрь 2025 - 13:55
Зачем ты оправдываешь игроков с моего поста? Это твоё мнение, а моё на этот счёт что один загнал себя сильно вверх, где ему нечего делать, и ушёл в ро , а другим аком гонять достыпных. В этом есть есть логика?
Я про то что у кого-то есть вопрос к мультоводству то бросать имена "позодзреваемых", чтобы админу было проще и быстрее проверить и наказать ,если нарушение существует.
Ну, можно сказать, что ты аналогично оправдываешь своих. "Например кто -то думает что Olena это мульт Умки" - это не "кто-то думает", а доказанный факт - Умка сам признался в этом в общем чате дважды.
А насчет темы с просьбами проверки нарушителей - идея здравая. Главное. чтоб у Антона было время этим заниматься
#37
Отправлено 06 Декабрь 2025 - 14:07
Можно ещё сделать тему, куда закидывать свои подозрения /предположения про мультов.
Например кто -то думает что Olena это мульт Умки, а кто-то считает бугаира мультом свгруза. Так Админам будет легче найти нарушителей.
ух чьим только мультом меня не считали и в основном все кидали притензии от тех кто был мною атакован но чтоб топы такие предьявы кидали это прям редкость.
на каких основаниях ты сделал такие выводы?
Зачем ты оправдываешь игроков с моего поста? Это твоё мнение, а моё на этот счёт что один загнал себя сильно вверх, где ему нечего делать, и ушёл в ро , а другим аком гонять достыпных. В этом есть есть логика?
Я про то что у кого-то есть вопрос к мультоводству то бросать имена "позодзреваемых", чтобы админу было проще и быстрее проверить и наказать ,если нарушение существует.
Конечно ещё могут бы дела или хочется отдохнуть от игры, уйдя в ро. Но такие игроки обычно пропадают из статистики)
тогда если эти имена не окажутся одним человеком кидать написавшего игрока в бан на месяц без ро!
по пункту правил о клевете!!
что то о некоторых немецких игроках у которых по несколько мультов и они чисто ими забивают системы чтоб их не достать было ты решил промолчать
а активного игрока который играет ты сравнил с другим и решил так оно и есть
#38
Отправлено 06 Декабрь 2025 - 14:51
Парни, да я двумя руками за честную игру! И мне без разницы кого будут наказывать "своих" или "чужих", главное чтобы Антон и ко находили на это время.
Бугаир, ну почерк игры похожий)
Вот был игрок SplashGTNH атакер знатный, потом надоело его "держать", и уже не знает "хозяин" в какой альянс лучше его пристроить. Или Aeoue, такой активный, по достижениям в топе, а последние месяцы "чемодан без ручки". Дальше не буду перечислять, а то уже на квартал бана заработал за клевету.
#39
Отправлено 06 Декабрь 2025 - 15:03
Парни, да я двумя руками за честную игру! И мне без разницы кого будут наказывать "своих" или "чужих", главное чтобы Антон и ко находили на это время.
Бугаир, ну почерк игры похожий)
Вот был игрок SplashGTNH атакер знатный, потом надоело его "держать", и уже не знает "хозяин" в какой альянс лучше его пристроить. Или Aeoue, такой активный, по достижениям в топе, а последние месяцы "чемодан без ручки". Дальше не буду перечислять, а то уже на квартал бана заработал за клевету.
почерк игры и какой он?
атакует всех кого может?
так это любой атакер делает
#40
Отправлено 06 Декабрь 2025 - 15:04











