Pracinhas 96 13.08.2013, 21:21:01 Поделиться #21 13.08.2013, 21:21:01 Уникальное свойствоНажмите здесь! Корабли пустыни Маршруты караванов удлиняются на 50%. Ваши торговые пути распространяют религию родного города вдвое эффективнее. Ресурсы нефти удваиваются. [Cкрыть] Лучники на верблюдахНажмите здесь! Лучники на верблюдах - это уникальные арабские войска, замещающие рыцарей. У них мощная дистанционная атака, позволяющая наносить урон врагу на расстоянии двух клеток. Это подразделение может двигаться после боя. В ближнем бою лучники на верблюдах довольно слабы. Как и всякое кавалерийское подразделение, оно уязвимо для атак пикинеров.[Cкрыть] БазарНажмите здесь! Базар - уникальная арабская постройка, замещающая рынок. Базар приносит городу дополнительное золото. Цивилизация получает дополнительную копию каждого редкого ресурса, расположенного поблизости от города с базаром. Также базар дает +2 к золоту за каждую клетку с нефтью и оазисом. [Cкрыть] Аравия торговая нация которая с большой вероятностью появятся в пустыне что позволяет строить Петру в столице .Особенность Аравии удваивает давление от торговых путей. Лучники на верблюдах - войска, тактика которых схожа с монгольскими Кешиктенами. Они мощнее ,но медленнее их и не имеют штрафа при атаке городов. .Базар делает копию ресурса роскоши которую можно продать и даёт золото за нефть и оазис. Изменено 14.08.2013, 07:28:39 пользователем Pracinhas Цитата Ссылка на комментарий
Pracinhas 96 25.10.2013, 12:53:50 Автор Поделиться #22 25.10.2013, 12:53:50 цена от скорости игры зависит, или я неправ? От скорости цена не зависит. От скорости зависит время в течении которого получаешь золото. Цитата Ссылка на комментарий
Pracinhas 96 25.10.2013, 12:54:20 Автор Поделиться #23 25.10.2013, 12:54:20 цена от скорости игры зависит, или я неправ? От скорости цена не зависит. От скорости зависит время в течении которого получаешь золото. Цитата Ссылка на комментарий
CR4SH 35 30.10.2013, 08:41:58 Поделиться #24 30.10.2013, 08:41:58 От скорости цена не зависит. От скорости зависит время в течении которого получаешь золото. играю только на быстрой, там 25 ходов Цитата Ссылка на комментарий
valera573 0 02.11.2013, 20:02:12 Поделиться #25 02.11.2013, 20:02:12 Я лучниками на верблюдах даже в новейшее время пользовался, 4 верблюда и города с 2 ходов нет. Цитата Ссылка на комментарий
Pracinhas 96 04.11.2013, 19:56:59 Автор Поделиться #26 04.11.2013, 19:56:59 Я лучниками на верблюдах даже в новейшее время пользовался, 4 верблюда и города с 2 ходов нет. Иногда встречаются города которые без верблюдов взять сложно, например: если город со стеной на холме, а внутри арбалетчик и фрегат то юниты уничтожаются за ход и захватить этот город очень сложно ,но верблюды могут обстрелять город и отойти на недосягаемое городом и внутренними юнитами расстояние, и тем самым без труда снизить Хп города до нуля. Цитата Ссылка на комментарий
Сидри 446 05.11.2013, 02:54:29 Поделиться #27 05.11.2013, 02:54:29 От скорости цена не зависит. От скорости зависит время в течении которого получаешь золото. Цена ресурса зависит от скорости игры, если покупать за наличку. А в ежеходной оплате примерно всегда одинакова, так как при снижении скорости увеличивается срок продажи. Цитата Ссылка на комментарий
CR4SH 35 05.11.2013, 10:08:05 Поделиться #28 05.11.2013, 10:08:05 Цена ресурса зависит от скорости игры, если покупать за наличку. А в ежеходной оплате примерно всегда одинакова, так как при снижении скорости увеличивается срок продажи. а таблички нет? а если найду?! Цитата Ссылка на комментарий
jgbrv 383 05.11.2013, 11:38:54 Поделиться #29 05.11.2013, 11:38:54 а таблички нет? а если найду?! Цена ресурса расчитывается так: количество счастья от этого ресурса*количество ходов*2. Золото в ход: цена*0.8/количество ходов. То есть золото в ход от скорости не зависит и всегда равно 6.4. А если покупать сразу, то получается так: быстрая: 200 средняя: 240 эпик: 360 марафон: 720 Это - базовые значения, потом на них накладываются разные модификаторы. Цитата Ссылка на комментарий
CR4SH 35 05.11.2013, 16:41:40 Поделиться #30 05.11.2013, 16:41:40 Цена ресурса расчитывается так: количество счастья от этого ресурса*количество ходов*2.Золото в ход: цена*0.8/количество ходов. То есть золото в ход от скорости не зависит и всегда равно 6.4. А если покупать сразу, то получается так: быстрая: 200 средняя: 240 эпик: 360 марафон: 720 Это - базовые значения, потом на них накладываются разные модификаторы. спасибо модификаторы ты имеешь ввиду хорошие отношение с нацией-продавцом? ну и по етой же теме - таблички модификаторов,как я понял, тож нет? а 6.4 всегда обнуляются к меньшему так? то есть к 6 Цитата Ссылка на комментарий
jgbrv 383 05.11.2013, 17:05:49 Поделиться #31 05.11.2013, 17:05:49 Там много всего - текущее отношение, наличие недавних негативных событий (распространили религию у религиозного друга - цена упадёт, но он может остаться другом), сила (если вы - намного слабее, то и цена будет ниже) - и так далее. Таблицы нет, но есть код, довольно объёмный. Округляется, похоже, вверх - равный только что встреченный ии будет давать 7 золотых. Цитата Ссылка на комментарий
CR4SH 35 06.11.2013, 09:52:31 Поделиться #32 06.11.2013, 09:52:31 Там много всего - текущее отношение, наличие недавних негативных событий (распространили религию у религиозного друга - цена упадёт, но он может остаться другом), сила (если вы - намного слабее, то и цена будет ниже) - и так далее.Таблицы нет, но есть код, довольно объёмный. Округляется, похоже, вверх - равный только что встреченный ии будет давать 7 золотых. где код псмотреть? странно, но у меня первый встречный ИИ соглашается на 6 Изменено 06.11.2013, 10:20:16 пользователем CR4SH Цитата Ссылка на комментарий
Вадим Б 0 06.11.2013, 13:41:05 Поделиться #33 06.11.2013, 13:41:05 где код псмотреть?странно, но у меня первый встречный ИИ соглашается на 6 Новый патч поправил и сейчас при нейтрале обычное дело 7 золота в ход. При плохих скорее всего - 3 золота в ход. Боюсь предполагать , но при ОТЛИЧНЫХ отношениях - 9 или 10 в ход за ресурс У меня пока со всеми прекрасные отношения. Проверю - отпишусь. А раньше твёрдо 5 золота в ход. ЗЫЖ - При Нейтрале я имею ввиду надпись внизу диалогового окна. Хотя не исключено что влияют также такие факторы, как 1- общее осуждение агрессора Но я немного воевал, правда об этом знаю только 3-е компов. Одного вынесли сейчас. 1 комп до сих пор воюет со 2-м, который вероломно напал на 3-о. Сам я походу Ангел среди них. 2- предоставление границ 3- не нападение на ГГ хотя бы 1 раз. Я на ГГ ни разу не наехал по крупному, с войной. Изменено 06.11.2013, 13:50:01 пользователем Вадим Б Цитата Ссылка на комментарий
jgbrv 383 06.11.2013, 16:41:43 Поделиться #34 06.11.2013, 16:41:43 где код псмотреть? Устанавливаем 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крыть] Боюсь предполагать , но при ОТЛИЧНЫХ отношениях - 9 или 10 в ход за ресурс Не-а, значение только уменьшаться может, если я всё правильно понял. Изменено 06.11.2013, 16:42:33 пользователем jgbrv Цитата Ссылка на комментарий
saykat 0 10.12.2013, 10:54:23 Поделиться #35 10.12.2013, 10:54:23 Конечно жаба душит продавать ресурсы ИИ за три копейки, из-за не самых лучших отношений, но не продашь ты- продаст другой ИИ. Редко когда удается получить монополию на >=3 ресурса в начале игры. Да и на 2 то не часто можно. (это без учета ГГ). Цитата Ссылка на комментарий
Рекомендованные сообщения
Присоединиться к обсуждению
Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже! Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.