Аравия - Страница 2 - Стратегия и тактика - Strategium.ru Перейти к содержимому

Аравия

Рекомендованные сообщения

Pracinhas

Уникальное свойствоНажмите здесь!
 Корабли пустыни

Маршруты караванов удлиняются на 50%. Ваши торговые пути распространяют религию родного города вдвое эффективнее. Ресурсы нефти удваиваются.

[Cкрыть]

Лучники на верблюдахНажмите здесь!
 Лучники на верблюдах - это уникальные арабские войска, замещающие рыцарей. У них мощная дистанционная атака, позволяющая наносить урон врагу на расстоянии двух клеток. Это подразделение может двигаться после боя. В ближнем бою лучники на верблюдах довольно слабы. Как и всякое кавалерийское подразделение, оно уязвимо для атак пикинеров.06a662b95b4a.jpg[Cкрыть]

БазарНажмите здесь!
 Базар - уникальная арабская постройка, замещающая рынок. Базар приносит городу дополнительное золото. Цивилизация получает дополнительную копию каждого редкого ресурса, расположенного поблизости от города с базаром. Также базар дает +2 к золоту за каждую клетку с нефтью и оазисом.

a332765ed072.jpg

[Cкрыть]

Аравия торговая нация которая с большой вероятностью появятся в пустыне что позволяет строить Петру в столице .Особенность Аравии удваивает давление от торговых путей. Лучники на верблюдах - войска, тактика которых схожа с монгольскими Кешиктенами. Они мощнее ,но медленнее их и не имеют штрафа при атаке городов. .Базар делает копию ресурса роскоши которую можно продать и даёт золото за нефть и оазис.

Изменено пользователем Pracinhas
Ссылка на комментарий

Закреплённые сообщения
Pracinhas
цена от скорости игры зависит, или я неправ?

От скорости цена не зависит. От скорости зависит время в течении которого получаешь золото.

Ссылка на комментарий

Pracinhas
цена от скорости игры зависит, или я неправ?

От скорости цена не зависит. От скорости зависит время в течении которого получаешь золото.

Ссылка на комментарий

От скорости цена не зависит. От скорости зависит время в течении которого получаешь золото.

играю только на быстрой, там 25 ходов

Ссылка на комментарий

valera573

Я лучниками на верблюдах даже в новейшее время пользовался, 4 верблюда и города с 2 ходов нет.

Ссылка на комментарий

Pracinhas
Я лучниками на верблюдах даже в новейшее время пользовался, 4 верблюда и города с 2 ходов нет.

Иногда встречаются города которые без верблюдов взять сложно, например: если город со стеной на холме, а внутри арбалетчик и фрегат то юниты уничтожаются за ход и захватить этот город очень сложно ,но верблюды могут обстрелять город и отойти на недосягаемое городом и внутренними юнитами расстояние, и тем самым без труда снизить Хп города до нуля.

Ссылка на комментарий

Сидри
От скорости цена не зависит. От скорости зависит время в течении которого получаешь золото.

Цена ресурса зависит от скорости игры, если покупать за наличку. А в ежеходной оплате примерно всегда одинакова, так как при снижении скорости увеличивается срок продажи.

Ссылка на комментарий

Цена ресурса зависит от скорости игры, если покупать за наличку. А в ежеходной оплате примерно всегда одинакова, так как при снижении скорости увеличивается срок продажи.

а таблички нет? а если найду?! :)

Ссылка на комментарий

а таблички нет? а если найду?! :)

Цена ресурса расчитывается так: количество счастья от этого ресурса*количество ходов*2.

Золото в ход: цена*0.8/количество ходов.

То есть золото в ход от скорости не зависит и всегда равно 6.4.

А если покупать сразу, то получается так:

быстрая: 200

средняя: 240

эпик: 360

марафон: 720

Это - базовые значения, потом на них накладываются разные модификаторы.

Ссылка на комментарий

Цена ресурса расчитывается так: количество счастья от этого ресурса*количество ходов*2.

Золото в ход: цена*0.8/количество ходов.

То есть золото в ход от скорости не зависит и всегда равно 6.4.

А если покупать сразу, то получается так:

быстрая: 200

средняя: 240

эпик: 360

марафон: 720

Это - базовые значения, потом на них накладываются разные модификаторы.

спасибо

модификаторы ты имеешь ввиду хорошие отношение с нацией-продавцом?

ну и по етой же теме - таблички модификаторов,как я понял, тож нет?

а 6.4 всегда обнуляются к меньшему так? то есть к 6

Ссылка на комментарий

Там много всего - текущее отношение, наличие недавних негативных событий (распространили религию у религиозного друга - цена упадёт, но он может остаться другом), сила (если вы - намного слабее, то и цена будет ниже) - и так далее.

Таблицы нет, но есть код, довольно объёмный.

Округляется, похоже, вверх - равный только что встреченный ии будет давать 7 золотых.

Ссылка на комментарий

Там много всего - текущее отношение, наличие недавних негативных событий (распространили религию у религиозного друга - цена упадёт, но он может остаться другом), сила (если вы - намного слабее, то и цена будет ниже) - и так далее.

Таблицы нет, но есть код, довольно объёмный.

Округляется, похоже, вверх - равный только что встреченный ии будет давать 7 золотых.

где код псмотреть?

странно, но у меня первый встречный ИИ соглашается на 6

Изменено пользователем CR4SH
Ссылка на комментарий

Вадим Б
где код псмотреть?

странно, но у меня первый встречный ИИ соглашается на 6

Новый патч поправил и сейчас при нейтрале обычное дело 7 золота в ход. При плохих скорее всего - 3 золота в ход.

Боюсь предполагать :023: , но при ОТЛИЧНЫХ отношениях - 9 или 10 в ход за ресурс :022:

У меня пока со всеми прекрасные отношения. Проверю - отпишусь.

А раньше твёрдо 5 золота в ход.

ЗЫЖ - При Нейтрале я имею ввиду надпись внизу диалогового окна. Хотя не исключено что влияют также такие факторы, как

1- общее осуждение агрессора

Но я немного воевал, правда об этом знаю только 3-е компов. Одного вынесли сейчас. 1 комп до сих пор воюет со 2-м, который вероломно напал на 3-о. Сам я походу Ангел :017: среди них.

2- предоставление границ

3- не нападение на ГГ хотя бы 1 раз. Я на ГГ ни разу не наехал по крупному, с войной.

Изменено пользователем Вадим Б
Ссылка на комментарий

где код псмотреть?

Устанавливаем SDK из стима, потом идём в Sid Meier's Civilization V SDK/CvGameCoreSource/CvGameCoreDLL_Expansion2/CvDealAI.cpp - там вся логика сделок.

Только я, оказывается, совсем в подсчёте не разобрался.

0.8 = это коэффициент при пересчёте gpt в цену, когда считаем gpt из цены, коэффициент = 1.25.

Если ии продаёт, а не покупает, то умножаем цену на 100/130 ~ 0.769.

Потом ещё модификаторы отношения.

То есть ии должен первому встречному платить по 7 золота в ход за ресурс и продавать свой за 10.

Пара функций:

КодНажмите здесь!
 

/// How much GPT should be provided if we're trying to make it worth iValue?

int CvDealAI::GetGPTforForValueExchange(int iGPTorValue, bool bNumGPTFromValue, int iNumTurns, bool bFromMe, PlayerTypes eOtherPlayer, bool bUseEvenValue, bool bRoundUp)

{

CvAssertMsg(GetPlayer()->GetID() != eOtherPlayer, "DEAL_AI: Trying to check value of GPT with oneself. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");

int iPreCalculationDurationMultiplier;

int iMultiplier;

int iDivisor;

int iPostCalculationDurationDivider;

// We passed in Value, we want to know how much GPT we get for it

if(bNumGPTFromValue)

{

iPreCalculationDurationMultiplier = 1;

iMultiplier = 100;

iDivisor = /*80*/ GC.getEACH_GOLD_PER_TURN_VALUE_PERCENT();

iPostCalculationDurationDivider = iNumTurns; // Divide value by number of turns to get GPT

// Example: want amount of GPT for 100 value.

// 100v * 1 = 100

// 100 * 100 / 80 = 125

// 125 / 20 turns = 6.25GPT

}

// We passed in an amount of GPT, we want to know how much it's worth

else

{

iPreCalculationDurationMultiplier = iNumTurns; // Multiply GPT by number of turns to get value

iMultiplier = /*80*/ GC.getEACH_GOLD_PER_TURN_VALUE_PERCENT();

iDivisor = 100;

iPostCalculationDurationDivider = 1;

// Example: want value for 6 GPT

// 6GPT * 20 turns = 120

// 120 * 80 / 100 = 96

// 96 / 1 = 96v

}

// Convert based on the rules above

int iReturnValue = iGPTorValue * iPreCalculationDurationMultiplier;

iReturnValue *= iMultiplier;

// While we have a big number shall we apply some modifiers to it?

if(bFromMe)

{

// AI values it's GPT more highly because it's easy to exploit this

// See whether we should multiply or divide

if(!bNumGPTFromValue)

{

iReturnValue *= 130;

iReturnValue /= 100;

}

else

{

iReturnValue *= 100;

iReturnValue /= 130;

}

int iModifier;

// Approach is important

switch(GetPlayer()->GetDiplomacyAI()->GetMajorCivApproach(eOtherPlayer, /*bHideTrueFeelings*/ true))

{

case MAJOR_CIV_APPROACH_HOSTILE:

iModifier = 150;

break;

case MAJOR_CIV_APPROACH_GUARDED:

iModifier = 110;

break;

case MAJOR_CIV_APPROACH_AFRAID:

iModifier = 100;

break;

case MAJOR_CIV_APPROACH_FRIENDLY:

iModifier = 100;

break;

case MAJOR_CIV_APPROACH_NEUTRAL:

iModifier = 100;

break;

default:

CvAssertMsg(false, "DEAL_AI: AI player has no valid Approach for Gold valuation. Please send Jon this with your last 5 autosaves and what changelist # you're playing.")

iModifier = 100;

break;

}

// See whether we should multiply or divide

if(!bNumGPTFromValue)

{

iReturnValue *= iModifier;

iReturnValue /= 100;

}

else

{

iReturnValue *= 100;

iReturnValue /= iModifier;

}

// Opinion also matters

switch(GetPlayer()->GetDiplomacyAI()->GetMajorCivOpinion(eOtherPlayer))

{

case MAJOR_CIV_OPINION_ALLY:

iModifier = 100;

break;

case MAJOR_CIV_OPINION_FRIEND:

iModifier = 100;

break;

case MAJOR_CIV_OPINION_FAVORABLE:

iModifier = 100;

break;

case MAJOR_CIV_OPINION_NEUTRAL:

iModifier = 100;

break;

case MAJOR_CIV_OPINION_COMPETITOR:

iModifier = 115;

break;

case MAJOR_CIV_OPINION_ENEMY:

iModifier = 140;

break;

case MAJOR_CIV_OPINION_UNFORGIVABLE:

iModifier = 200;

break;

default:

CvAssertMsg(false, "DEAL_AI: AI player has no valid Opinion for Gold valuation. Please send Jon this with your last 5 autosaves and what changelist # you're playing.")

iModifier = 100;

break;

}

// See whether we should multiply or divide

if(!bNumGPTFromValue)

{

iReturnValue *= iModifier;

iReturnValue /= 100;

}

else

{

iReturnValue *= 100;

iReturnValue /= iModifier;

}

}

// Sometimes we want to round up. Let's say a the AI offers a deal to the human. We have to ensure that the human can also offer that deal back and the AI will accept (and vice versa)

if(bRoundUp)

{

iReturnValue += 99;

}

iReturnValue /= iDivisor;

iReturnValue /= iPostCalculationDurationDivider;

// Are we trying to find the middle point between what we think this item is worth and what another player thinks it's worth?

if(bUseEvenValue)

{

iReturnValue += GET_PLAYER(eOtherPlayer).GetDealAI()->GetGPTforForValueExchange(iGPTorValue, bNumGPTFromValue, iNumTurns, !bFromMe, GetPlayer()->GetID(), /*bUseEvenValue*/ false, bRoundUp);

iReturnValue /= 2;

}

return iReturnValue;

}

/// How much is a Resource worth?

int CvDealAI::GetResourceValue(ResourceTypes eResource, int iResourceQuantity, int iNumTurns, bool bFromMe, PlayerTypes eOtherPlayer)

{

CvAssertMsg(GetPlayer()->GetID() != eOtherPlayer, "DEAL_AI: Trying to check value of a Resource with oneself. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");

int iItemValue = 0;

const CvResourceInfo* pkResourceInfo = GC.getResourceInfo(eResource);

CvAssert(pkResourceInfo != NULL);

if (pkResourceInfo == NULL)

return 0;

ResourceUsageTypes eUsage = pkResourceInfo->getResourceUsage();

// Luxury Resource

if(eUsage == RESOURCEUSAGE_LUXURY)

{

if (GC.getGame().GetGameLeagues()->IsLuxuryHappinessBanned(GetPlayer()->GetID(), eResource))

{

iItemValue = 0;

}

else

{

int iHappinessFromResource = pkResourceInfo->getHappiness();

iItemValue += (iResourceQuantity * iHappinessFromResource * iNumTurns * 2); // Ex: 1 Silk for 4 Happiness * 30 turns * 2 = 240

// If we only have 1 of a Luxury then we value it much more

if(bFromMe)

{

if(GetPlayer()->getNumResourceAvailable(eResource) == 1)

{

iItemValue *= 3;

if(GetPlayer()->GetPlayerTraits()->GetLuxuryHappinessRetention() > 0)

{

iItemValue /= 2;

}

}

}

}

}

// Strategic Resource

else if(eUsage == RESOURCEUSAGE_STRATEGIC)

{

//tricksy humans trying to sploit us

if(!bFromMe)

{

// if we already have a big surplus of this resource

if(GetPlayer()->getNumResourceAvailable(eResource) > GetPlayer()->getNumCities())

{

iResourceQuantity = 0;

}

else

{

iResourceQuantity = min(max(5,GetPlayer()->getNumCities()), iResourceQuantity);

}

}

if(!GET_TEAM(GetPlayer()->getTeam()).IsResourceObsolete(eResource))

{

iItemValue += (iResourceQuantity * iNumTurns * 150 / 100); // Ex: 5 Iron for 30 turns * 2 = value of 300

}

else

{

iItemValue = 0;

}

}

// Increase value if it's from us and we don't like the guy

if(bFromMe)

{

int iModifier = 0;

// Opinion also matters

switch(GetPlayer()->GetDiplomacyAI()->GetMajorCivOpinion(eOtherPlayer))

{

case MAJOR_CIV_OPINION_ALLY:

iModifier = 100;

break;

case MAJOR_CIV_OPINION_FRIEND:

iModifier = 100;

break;

case MAJOR_CIV_OPINION_FAVORABLE:

iModifier = 100;

break;

case MAJOR_CIV_OPINION_NEUTRAL:

iModifier = 100;

break;

case MAJOR_CIV_OPINION_COMPETITOR:

iModifier = 175;

break;

case MAJOR_CIV_OPINION_ENEMY:

iModifier = 400;

break;

case MAJOR_CIV_OPINION_UNFORGIVABLE:

iModifier = 1000;

break;

default:

CvAssertMsg(false, "DEAL_AI: AI player has no valid Opinion for Resource valuation. Please send Jon this with your last 5 autosaves and what changelist # you're playing.")

iModifier = 100;

break;

}

// Approach is important

switch(GetPlayer()->GetDiplomacyAI()->GetMajorCivApproach(eOtherPlayer, /*bHideTrueFeelings*/ true))

{

case MAJOR_CIV_APPROACH_HOSTILE:

iModifier += 300;

break;

case MAJOR_CIV_APPROACH_GUARDED:

iModifier += 150;

break;

case MAJOR_CIV_APPROACH_AFRAID:

iModifier = 200; // Forced value

break;

case MAJOR_CIV_APPROACH_FRIENDLY:

iModifier = 200; // Forced value

break;

case MAJOR_CIV_APPROACH_NEUTRAL:

iModifier += 100;

break;

default:

CvAssertMsg(false, "DEAL_AI: AI player has no valid Approach for Resource valuation. Please send Jon this with your last 5 autosaves and what changelist # you're playing.")

iModifier += 100;

break;

}

iItemValue *= iModifier;

iItemValue /= 200; // 200 because we've added two mods together

}

return iItemValue;

}

[Cкрыть]
Боюсь предполагать :023: , но при ОТЛИЧНЫХ отношениях - 9 или 10 в ход за ресурс :022:

Не-а, значение только уменьшаться может, если я всё правильно понял.

Изменено пользователем jgbrv
Ссылка на комментарий

Конечно жаба душит продавать ресурсы ИИ за три копейки, из-за не самых лучших отношений, но не продашь ты- продаст другой ИИ. Редко когда удается получить монополию на >=3 ресурса в начале игры. Да и на 2 то не часто можно. (это без учета ГГ).

Ссылка на комментарий

Присоединиться к обсуждению

Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже! Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Ответы 33
  • Создано
  • Последний ответ
  • Просмотры 26583
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...