+ Ответить в теме
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 20 из 27

Тема: [Решено] Как сделать, чтобы ИИ избегал повреждений юнитов от ландшафта?

  1. #1

    [Решено] Как сделать, чтобы ИИ избегал повреждений юнитов от ландшафта?

    NeverMind привет. Не подскажешь, что это да строчка в GlobalDefines
    "PATH_DAMAGE_WEIGHT"

    Вообще на модиках очень для многих строк в этом файле отсутствует описание, есть ли оно где-нибудь?
    продвинь это сообщение в соцсеть:  
    Васяка инкорпорейтед представляет: Master of Star Control

  2. #2
    <div class='quotetop'>Цитата</div>
    NeverMind привет. Не подскажешь, что это да строчка в GlobalDefines
    "PATH_DAMAGE_WEIGHT"[/b]
    Помню, что смотрел, и не понял . Возможно, еще посмотрю.

    <div class='quotetop'>Цитата</div>
    Вообще на модиках очень для многих строк в этом файле отсутствует описание, есть ли оно где-нибудь?[/b]
    Да, некоторые параметры в этом файле трудно понять, некоторы трудно сформулировать. Врочем, большинство игровых параметров по нему описано. Описания этого файла нигде больше не встречал.
    продвинь это сообщение в соцсеть:  

  3. #3
    <div class='quotetop'>Цитата(NeverMind * 19.8.2009, 23:03) [snapback]301106[/snapback]</div>
    <div class='quotetop'>Цитата
    NeverMind привет. Не подскажешь, что это да строчка в GlobalDefines
    "PATH_DAMAGE_WEIGHT"[/b]
    Помню, что смотрел, и не понял . Возможно, еще посмотрю.

    <div class='quotetop'>Цитата</div>
    Вообще на модиках очень для многих строк в этом файле отсутствует описание, есть ли оно где-нибудь?[/b]
    Да, некоторые параметры в этом файле трудно понять, некоторы трудно сформулировать. Врочем, большинство игровых параметров по нему описано. Описания этого файла нигде больше не встречал.
    [/b][/quote]

    Может быть этот параметр отвечает за понимание компьютером получения повреждений юнитами при прохождении каких-то запрограммированных на это feature элементов?
    А то у меня в моде как раз с этим проблемы.

    Кстати, может кто-то знает, в моде про космос (не помню как точно называется. официальный мод БтС), там тоже есть feature с повреждениями, там комп их избегает? И если и если избегает то чем это определено?
    продвинь это сообщение в соцсеть:  
    Васяка инкорпорейтед представляет: Master of Star Control

  4. #4
    В доступном нам коде этот параметр используется только один раз:
    [code]// Damage caused by features (mods)
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

  5. #5
    <div class='quotetop'>Цитата(Пашок * 20.8.2009, 8:35) [snapback]301118[/snapback]</div>[quote]
    В доступном нам коде этот параметр используется только один раз:
    [code]// Damage caused by features (mods)
    продвинь это сообщение в соцсеть:  
    Васяка инкорпорейтед представляет: Master of Star Control

  6. #6
    // Damage caused by features (mods)
    if (0 != GC.getPATH_DAMAGE_WEIGHT()) //если есть повреждения (если GC.getPATH_DAMAGE_WEIGHT() не равно нулю) тогда
    {
    if (pToPlot->getFeatureType() != NO_FEATURE) //если на тайле есть феатура (лес, оазис и т. д.) тогда
    {
    += (GC.getPATH_DAMAGE_WEIGHT() * std::max(0, GC.getFeatureInfo(pToPlot->getFeatureType()).getTurnDamage())) / GC.getMAX_HIT_POINTS();
    // до значения iCost добавляем ((повреждения(GC.getPATH_DAMAGE_WEIGHT()) умноженые на количество ходов повреждений? [std::max(0, GC.getFeatureInfo(pToPlot->getFeatureType()).getTurnDamage())]) и деленные на максимум жизни [GC.getMAX_HIT_POINTS()])
    }
    if (pToPlot->getExtraMovePathCost() > 0) //если при движении на тайле тратятся дополнительные очки движения [pToPlot->getExtraMovePathCost()] (например в пустыне или на холмах) тогда
    {
    iCost += (PATH_MOVEMENT_WEIGHT * pToPlot->getExtraMovePathCost());
    //до значения iCost добавляем (PATH_MOVEMENT_WEIGHT умноженое на дополнительные очки движения на тайле [pToPlot->getExtraMovePathCost()])
    }
    }
    Для полного понимания надо код функций GC.getPATH_DAMAGE_WEIGHT(), getTurnDamage(), getExtraMovePathCost()

    Из какого файла этот код?
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  7. #7
    <div class='quotetop'>Цитата(NeseryozniyVET * 20.8.2009, 15:56) [snapback]301183[/snapback]</div>
    // Damage caused by features (mods)
    if (0 != GC.getPATH_DAMAGE_WEIGHT()) //если есть повреждения (если GC.getPATH_DAMAGE_WEIGHT() не равно нулю) тогда
    {
    if (pToPlot->getFeatureType() != NO_FEATURE) //если на тайле есть феатура (лес, оазис и т. д.) тогда
    {
    += (GC.getPATH_DAMAGE_WEIGHT() * std::max(0, GC.getFeatureInfo(pToPlot->getFeatureType()).getTurnDamage())) / GC.getMAX_HIT_POINTS();
    // до значения iCost добавляем ((повреждения(GC.getPATH_DAMAGE_WEIGHT()) умноженые на количество ходов повреждений? [std::max(0, GC.getFeatureInfo(pToPlot->getFeatureType()).getTurnDamage())]) и деленные на максимум жизни [GC.getMAX_HIT_POINTS()])
    }
    if (pToPlot->getExtraMovePathCost() > 0) //если при движении на тайле тратятся дополнительные очки движения [pToPlot->getExtraMovePathCost()] (например в пустыне или на холмах) тогда
    {
    iCost += (PATH_MOVEMENT_WEIGHT * pToPlot->getExtraMovePathCost());
    //до значения iCost добавляем (PATH_MOVEMENT_WEIGHT умноженое на дополнительные очки движения на тайле [pToPlot->getExtraMovePathCost()])
    }
    }
    Для полного понимания надо код функций GC.getPATH_DAMAGE_WEIGHT(), getTurnDamage(), getExtraMovePathCost()

    Из какого файла этот код?
    [/b]
    Спасибо! Всё более и боее убеждаюсь, что скоро решу проблему с умиранием отрядов AI в пустынях.

    Из какого файла код, не знаю. Надо Пашка спросить.
    Мне бы ещё знать какие значения может принимать этот параметр. Только 0 или 1? Или больше? А если больше, то на что влияет величина числа?
    продвинь это сообщение в соцсеть:  
    Васяка инкорпорейтед представляет: Master of Star Control

  8. #8
    <div class='quotetop'>Цитата(vasaka * 20.8.2009, 15:11) [snapback]301190[/snapback]</div>
    Мне бы ещё знать какие значения может принимать этот параметр. Только 0 или 1? Или больше? А если больше, то на что влияет величина числа?
    [/b]
    Надо посмотреть код функции GC.getPATH_DAMAGE_WEIGHT()
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  9. #9
    GC.getPATH_DAMAGE_WEIGHT() - возвращает число,прописанное в GlobalDefines. Похоже,это просто множитель, чем он больше,тем больше урон,наносимый юниту при прохождении тайла. Код из CvGameCore Utils.cpp
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

  10. #10
    <div class='quotetop'>Цитата(vasaka * 20.8.2009, 15:11) [snapback]301190[/snapback]</div>
    Спасибо! Всё более и боее убеждаюсь, что скоро решу проблему с умиранием отрядов AI в пустынях.

    Из какого файла код, не знаю. Надо Пашка спросить.
    Мне бы ещё знать какие значения может принимать этот параметр. Только 0 или 1? Или больше? А если больше, то на что влияет величина числа?
    [/b]
    По умолчанию PATH_DAMAGE_WEIGHT равен нулю, поэтому код просто игнорируется.
    Может принимать любые целые числа, даже отрицательные.
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  11. #11
    Насколько я понял, AI делает расчёты сможет ли он преодолеть враждебный feature или он его по пути грохнет и в связи с этим решается идти или нет. Так?
    продвинь это сообщение в соцсеть:  
    Васяка инкорпорейтед представляет: Master of Star Control

  12. #12
    В общих чертах да. Этот параметр учитывается при выборе пути юнитом. Насколько я понял, чем больше значение PATH_DAMAGE_WEIGHT, тем менее вероятно, что юнит пойдет через данный тайл при прочих равных.
    продвинь это сообщение в соцсеть:  

  13. #13
    <div class='quotetop'>Цитата(NeverMind * 20.8.2009, 22:31) [snapback]301251[/snapback]</div>
    В общих чертах да. Этот параметр учитывается при выборе пути юнитом. Насколько я понял, чем больше значение PATH_DAMAGE_WEIGHT, тем менее вероятно, что юнит пойдет через данный тайл при прочих равных.
    [/b]
    Ясно. Осталось определить какое значения будет оптимальным. Чтобы войска и не погибали в песках и не совсем отказывались по ним ходить. Это можно как-то вычислить или только эксперементальным путём?
    продвинь это сообщение в соцсеть:  
    Васяка инкорпорейтед представляет: Master of Star Control

  14. #14
    <div class='quotetop'>Цитата</div>
    даже отрицательные[/b]
    А если отрицательные то отряду на тайле наоборот очки здоровья прибавляться будут по логике?
    продвинь это сообщение в соцсеть:  

  15. #15
    В RFC варвары и вражеские юниты точно не предпочитают задерживаться на русской территории из-за эффекта "русская зима", но прбежками там передвигаются. Можно наверное там посмотреть.
    продвинь это сообщение в соцсеть:  

  16. #16
    Также В RFC: Europe на болотах легкие юниты(а также венецианцы, изза спецефической столицы на болотах, Рае говрит, что уберет потом) получают по 10% поврежений за ход, простоянный на болоте.

    Я знаю, что берсерки, серироносцы, мечники, скирмишеры, рабочие поселенцы могут бегать по болотам.
    продвинь это сообщение в соцсеть:  
    меня постоянно преследуют умные мысли, но я быстрее.

  17. #17
    <div class='quotetop'>Цитата(AR74 * 24.8.2009, 8:55) [snapback]301762[/snapback]</div>
    В RFC варвары и вражеские юниты точно не предпочитают задерживаться на русской территории из-за эффекта "русская зима", но прбежками там передвигаются. Можно наверное там посмотреть.
    [/b]
    В RFC обычной или в RFC: Europe?
    продвинь это сообщение в соцсеть:  
    Васяка инкорпорейтед представляет: Master of Star Control

  18. #18
    <div class='quotetop'>Цитата(vasaka * 24.8.2009, 17:29) [snapback]301840[/snapback]</div>
    <div class='quotetop'>Цитата(AR74 * 24.8.2009, 8:55) [snapback]301762[/snapback]
    В RFC варвары и вражеские юниты точно не предпочитают задерживаться на русской территории из-за эффекта "русская зима", но прбежками там передвигаются. Можно наверное там посмотреть.
    [/b]
    В RFC обычной или в RFC: Europe?
    [/b][/quote]

    В обычной
    продвинь это сообщение в соцсеть:  
    меня постоянно преследуют умные мысли, но я быстрее.

  19. #19
    Наиболее подходяшее значение параметра:
    PATH_DAMAGE_WEIGHT

    500000 (пятьсот тысяч)

    Оно же используется в официальном моде про космос (не помню названия).
    продвинь это сообщение в соцсеть:  
    Васяка инкорпорейтед представляет: Master of Star Control

  20. #20


    Прописал коды всех функций GC.getPATH_DAMAGE_WEIGHT(), getTurnDamage(), getExtraMovePathCost() в Колонизацию.

    Все прекрасно работает, но если пустить свой корабль на исследование территории, то независимо от значения PATH_DAMAGE_WEIGHT в GlobalDefines.xml корабль все время идет одним и тем же путем и естественно гибнет на одном и том же ходу.

    Я попробовал значения PATH_DAMAGE_WEIGHT равные -500000, 0 и 500000.
    Результат один и тот же. 20 ходов и "на корм рыбам".

    Перемещение корабля по одному и тому же пути означает, что PATH_DAMAGE_WEIGHT не имеет смысла вообще. Оно что есть, что нет.

    Поэтому вопрос. Как и на основании чего было выведено:

    <div class='quotetop'>Цитата</div>
    Наиболее подходяшее значение параметра:

    PATH_DAMAGE_WEIGHT

    500000 (пятьсот тысяч)[/b]
    продвинь это сообщение в соцсеть:  

+ Ответить в теме
Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 7
    Новое: 18.01.2017, 12:09
  2. Как сделать так,чтобы ИИ цива перестала появлятся в дипломатии?
    от Rbhbytz в разделе Вопросы и гайды по моддингу Civ4
    Ответов: 1
    Новое: 07.11.2010, 14:30
  3. Как сделать чтобы город после захвата не терял постройки
    от QuibinG в разделе Вопросы и гайды по моддингу Civ4
    Ответов: 10
    Новое: 25.03.2009, 09:23
  4. Ответов: 1
    Новое: 23.11.2007, 23:00
  5. Как сделать чтобы казармы не лечили за 1 ход?
    от Agafonov в разделе Civ3 - Модостроение
    Ответов: 4
    Новое: 29.09.2005, 16:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters