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

Тема: Требуется помощь: Ошибка в TurnDamage

  1. #1
    Хотел вернуть "TurnDamage" в CivIVCol, но получил такой error message при компиляции:

    CvUnit.cpp

    Line: 802
    Message: error C2664: 'CvUnit::changeDamage' : cannot convert parameter 2 from 'PlayerTypes' to 'CvUnit *'|

    [code]
    продвинь это сообщение в соцсеть:  

  2. #2
    <div class='quotetop'>Цитата(kabjans * 12.2.2010, 0:03) [snapback]324841[/snapback]</div>
    cannot convert parameter 2 from &#39;PlayerTypes&#39; to &#39;CvUnit *&#39;|

    802: changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), NO_PLAYER);[/b]
    Неможет конвертировать второй параметр из &#39;PlayerTypes&#39; в &#39;CvUnit *&#39;
    NO_PLAYER это PlayerTypes
    Просмотри параметры для PlayerTypes цывы и колонизации.
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  3. #3
    Видимо,вместо NO_PLAYER нужно прописать юнита,который получает повреждение. Посмотри использование changeDamage в колонизации методом поиска.
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

  4. #4
    <div class='quotetop'>Цитата(NeseryozniyVET * 12.2.2010, 2:38) [snapback]324842[/snapback]</div>
    <div class='quotetop'>Цитата(kabjans * 12.2.2010, 0:03) [snapback]324841[/snapback]
    cannot convert parameter 2 from &#39;PlayerTypes&#39; to &#39;CvUnit *&#39;|

    802: changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), NO_PLAYER);[/b]
    Неможет конвертировать второй параметр из &#39;PlayerTypes&#39; в &#39;CvUnit *&#39;
    NO_PLAYER это PlayerTypes
    Просмотри параметры для PlayerTypes цывы и колонизации.
    [/b][/quote]
    А можно по-подробнее. В Циве 3250 ссылок на PlayerTypes, в Колонизации - 1903. В каком файле и что собственно смотреть?

    <div class='quotetop'>Цитата(Пашок * 12.2.2010, 9:18) [snapback]324850[/snapback]</div>
    Видимо,вместо NO_PLAYER нужно прописать юнита,который получает повреждение. Посмотри использование changeDamage в колонизации методом поиска.
    [/b]
    Вряд ли это возможно. Ведь идея вернуть "TurnDamage" в Колонизацию связана с тем, что каждый юнит, попавший на определенную клетку, получает повреждение. К примеру, корабль, попавший в шторм на море теряет несколько процентов прочности. Или сухопутный юнит, оказавшийся в пустыне или болоте, также теряет силу. И как в таком случает прописывать юниты? Они же совершенно различные.

    Кроме того в Колонизации changeDamage относится к случаю боестолкновения, когда есть атакующий юнит и соответственно есть защищающийся юнит. Например changeDamage(iAttackerDamage, pDefender). Случая, когда юнит получает повреждения от самого факта нахождения на "опасной" клетке там, естественно нет.

    NeseryozniyVET пишет, что это означает "cannot convert parameter 2 from &#39;PlayerTypes&#39; to &#39;CvUnit *&#39; = Не может конвертировать второй параметр из &#39;PlayerTypes&#39; в &#39;CvUnit *&#39;".

    Поэтому возможно решение надо искать в том, что выдает Build log. А именно в этой фразе:
    <div class='quotetop'>Цитата</div>
    "Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast"[/b]
    Я тут поискал на интернете, что значат "reinterpret_cast", "C-style cast" и "function-style cast". Тут нашел, к примеру это:

    <div class='quotetop'>Цитата</div>[quote]reinterpret_cast
    Syntax:

    [code]
    продвинь это сообщение в соцсеть:  

  5. #5
    PlayerTypes - это игрок, в питон кодах обычно обозначается переменной ePlayer и является целым числом (> -1, NO_PLAYER = -1).
    Параметры игрока в SDK описуются в файле CvPlayer.h и CvPlayer.cpp
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  6. #6
    В \Sid Meier&#39;s Civilization 4\Beyond the Sword\CvGameCoreDLL\CvPlayer.cpp понятие "Damage" встречается лишь
    - при взятии или защите города (void CvPlayer::acquireCity) и
    - при получении Goody (bool CvPlayer::canReceiveGoody).
    Даже упоминания о получения повреждений от нахождении на клетке там нет.

    В Колонизации ситуация практически аналогичная.
    продвинь это сообщение в соцсеть:  

  7. #7
    Посмотри описание функции changeDamage(int, ePlayer); Найди какиe параметры ePlayer она использует, и посмотри есть ли они в CyPlayer.h
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  8. #8
    kabjans!! Никого не слушай и не трать время попусту. Итак,компилятор выдал тебе:
    Message: error C2664: &#39;CvUnit::changeDamage&#39; : cannot convert parameter 2 from &#39;PlayerTypes&#39; to &#39;CvUnit *&#39;|
    Это значит,что он не может конвертировать &#39;PlayerTypes&#39; в &#39;CvUnit *&#39;. То есть вместо игрока должен быть указан юнит (CvUnit *).
    Если ты пишешь свой код в CvUnit.cpp, попробуй переписать вот так:

    Код:
    changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), this);
    Если это не будет работать, выложи здесь свой код поподробнее.

    P.S. Ты абсолютно прав в том,что в колонизации <div class='quotetop'>Цитата</div>
    changeDamage относится к случаю боестолкновения, когда есть атакующий юнит и соответственно есть защищающийся юнит. Например changeDamage(iAttackerDamage, pDefender).[/b]
    В своём собственном посте ты описал правильную подачу этой функции. То есть ,для того,чтобы она работала нужно указать два параметра: количественное значение ущерба и юнит,который этот ущерб получает. И поверь,этой функции абсолютно по барабану, от какого <div class='quotetop'>Цитата</div>
    факта [/b]
    она работает. Главное,указать ущерб и юнита,который его получает.
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

  9. #9
    <div class='quotetop'>Цитата(Пашок * 12.2.2010, 20:26) [snapback]324899[/snapback]</div>
    kabjans!! Никого не слушай и не трать время попусту. Итак,компилятор выдал тебе:
    Message: error C2664: &#39;CvUnit::changeDamage&#39; : cannot convert parameter 2 from &#39;PlayerTypes&#39; to &#39;CvUnit *&#39;|
    Это значит,что он не может конвертировать &#39;PlayerTypes&#39; в &#39;CvUnit *&#39;. То есть вместо игрока должен быть указан юнит.
    Если ты пишешь свой код в CvUnit.cpp, попробуй переписать вот так:

    Код:
    changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), this);
    Если это не будет работать, выложи здесь свой код поподробнее.
    [/b]
    Спасибо, Пашок!

    Твой код

    Код:
    changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), this);
    позволил компилировать дальше.

    Дошел до CyPlot.cpp и снова ошибка, что для меня нормально. Сейчас разбираться буду с ней.

    Последние известия с фронта:

    Скомпилировал! 0 errors 0 warmings.


    ОГРОМНОЕ СПАСИБО!!!

    Можно продолжать работу дальше.
    продвинь это сообщение в соцсеть:  

  10. #10
    поздравления !
    Ты сначала этот то код проверь,работает или нет
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

  11. #11
    <div class='quotetop'>Цитата(Пашок * 12.2.2010, 21:08) [snapback]324904[/snapback]</div>
    поздравления !
    Ты сначала этот то код проверь,работает или нет
    [/b]
    Пока это только голая CvGameCoreDLL.dll. Сейчас собираю XML и ART части. Лишь когда они будут готовы, можно будет запустить и проверить работоспособность (запустится ли) и правильность функционирования.
    продвинь это сообщение в соцсеть:  

  12. #12
    <div class='quotetop'>Цитата(kabjans * 12.2.2010, 20:15) [snapback]324906[/snapback]</div>
    <div class='quotetop'>Цитата(Пашок * 12.2.2010, 21:08) [snapback]324904[/snapback]
    поздравления !
    Ты сначала этот то код проверь,работает или нет
    [/b]
    Пока это только голая CvGameCoreDLL.dll. Сейчас собираю XML и ART части. Лишь когда они будут готовы, можно будет запустить и проверить работоспособность (запустится ли) и правильность функционирования.
    [/b][/quote]
    Удачи
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

  13. #13
    Ввел шторм для пробы. Загнал каравеллу в точку шторма.

    Далее хроника с места события.

    ход......состояние каравеллы
    0...................3/3
    1...................2.4/3
    2...................2.1/3
    3................... 1.8/3
    4...................1.5/3
    5...................1.2/3

    Шторм отступил на соседнюю клетку и на каравелле открыли по этому случаю бочонок рома. Надо поторопиться и успеть к ним в кают компанию, пока они весь ром не выпили без меня.

    Еще раз ОГРОМНОЕ СПАСИБО за помощь!
    продвинь это сообщение в соцсеть:  

  14. #14
    Пришли,пожалуйста,бутылочку бандеролью , только ценной,а то на почте выпьют , у них там тоже функция changeDamage неплохо работает
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

  15. #15
    Снимки шторма



    и рифов из Колонизации.

    продвинь это сообщение в соцсеть:  

  16. #16
    Рифы мне не очень нравятся)
    продвинь это сообщение в соцсеть:  
    Модеры! Помните, что власть разваращает!
    Админы! Помните, что абсолютная власть разваращает абсолютно!

  17. #17
    Это похоже на астеройды.
    продвинь это сообщение в соцсеть:  

  18. #18
    <div class='quotetop'>Цитата(Павел I * 13.2.2010, 12:10) [snapback]324962[/snapback]</div>
    Рифы мне не очень нравятся)
    [/b]
    <div class='quotetop'>Цитата(Gx710 * 13.2.2010, 15:21) [snapback]324986[/snapback]</div>
    Это похоже на астеройды.
    [/b]
    Правильно, это и есть астероиды. А те рифы, что я нашел, были сделаны из "меди". Они вообще розовыми появились на экране, как цветочная клумба. Смотрелось сие "чудо" просто ужасно. Поэтому я перепробовал массу вариантов и остановился на астероидах. Они более всего напоминают рифы.

    Кстати, из шторма очень легко сделал "грозу". Это и для моря-океана, и для суши. Ходить под ней можно без минусов, но 5% TurnDamage есть. Плюс сейчас буду давать минусы к добыче ресурсов на клетках в случае начала шторма или грозы на ней.
    продвинь это сообщение в соцсеть:  

  19. #19
    Нашел еще пару интересных возможностей в данном моде.

    Во-первых, шторм на море у побережья может уменьшить отдачу еды с морских клеток, что абсолютно логично. Причем это можно очень просто менять самому в настройках. Я свел отдачу при шторме к нулю. Объяснение простое: шторм и корабли стоят у пирса.

    Аналогично шторму ввел для суши и моря "дождь с грозой". Урон юнитам и недобор с клеток минимальный.

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

    Но тут возник вопрос.

    При наведении мыши на клетку со штормом появляется красная надпись "Damage per Turn 15%".

    Я не нашел источник, откуда она берется. Сама надпись - это TXT_KEY_PLOT_DAMAGE из CIV4GameText.....xml. Но откуда она идет?

    Кроме того непонятно откуда идет именно красный цвет. Меня это интересует, потому что для "встречного ветра" я хотел бы ввести надпись зеленым цветом.

    Кто-нибудь знает где копать? Поиск в питоне и xml файлах Цивилизации (искал по "TXT_KEY_PLOT_DAMAGE") ничего не дал. По идее из Питона команда должна идти, но там, хоть тресни, ее нет.
    продвинь это сообщение в соцсеть:  

  20. #20


    Посмотри в CvGameTextMgr.cpp
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

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

Ваши права

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

free counters