<div class='quotetop'>Цитата(kabjans * 12.2.2010, 0:03) [snapback]324841[/snapback]</div>Неможет конвертировать второй параметр из 'PlayerTypes' в 'CvUnit *'cannot convert parameter 2 from 'PlayerTypes' to 'CvUnit *'|
802: changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), NO_PLAYER);[/b]
NO_PLAYER это PlayerTypes
Просмотри параметры для PlayerTypes цывы и колонизации.
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
Видимо,вместо NO_PLAYER нужно прописать юнита,который получает повреждение. Посмотри использование changeDamage в колонизации методом поиска.
Интересная идея для заработка
<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]Неможет конвертировать второй параметр из 'PlayerTypes' в 'CvUnit *'cannot convert parameter 2 from 'PlayerTypes' to 'CvUnit *'|
802: changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), NO_PLAYER);[/b]
NO_PLAYER это PlayerTypes
Просмотри параметры для PlayerTypes цывы и колонизации.
[/b][/quote]
А можно по-подробнее. В Циве 3250 ссылок на PlayerTypes, в Колонизации - 1903. В каком файле и что собственно смотреть?
<div class='quotetop'>Цитата(Пашок * 12.2.2010, 9:18) [snapback]324850[/snapback]</div>Вряд ли это возможно. Ведь идея вернуть "TurnDamage" в Колонизацию связана с тем, что каждый юнит, попавший на определенную клетку, получает повреждение. К примеру, корабль, попавший в шторм на море теряет несколько процентов прочности. Или сухопутный юнит, оказавшийся в пустыне или болоте, также теряет силу. И как в таком случает прописывать юниты? Они же совершенно различные.Видимо,вместо NO_PLAYER нужно прописать юнита,который получает повреждение. Посмотри использование changeDamage в колонизации методом поиска.
[/b]
Кроме того в Колонизации changeDamage относится к случаю боестолкновения, когда есть атакующий юнит и соответственно есть защищающийся юнит. Например changeDamage(iAttackerDamage, pDefender). Случая, когда юнит получает повреждения от самого факта нахождения на "опасной" клетке там, естественно нет.
NeseryozniyVET пишет, что это означает "cannot convert parameter 2 from 'PlayerTypes' to 'CvUnit *' = Не может конвертировать второй параметр из 'PlayerTypes' в 'CvUnit *'".
Поэтому возможно решение надо искать в том, что выдает Build log. А именно в этой фразе:
<div class='quotetop'>Цитата</div>Я тут поискал на интернете, что значат "reinterpret_cast", "C-style cast" и "function-style cast". Тут нашел, к примеру это:"Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast"[/b]
<div class='quotetop'>Цитата</div>[quote]reinterpret_cast
Syntax:
[code]
PlayerTypes - это игрок, в питон кодах обычно обозначается переменной ePlayer и является целым числом (> -1, NO_PLAYER = -1).
Параметры игрока в SDK описуются в файле CvPlayer.h и CvPlayer.cpp
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
В \Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\CvPlayer.cpp понятие "Damage" встречается лишь
- при взятии или защите города (void CvPlayer::acquireCity) и
- при получении Goody (bool CvPlayer::canReceiveGoody).
Даже упоминания о получения повреждений от нахождении на клетке там нет.
В Колонизации ситуация практически аналогичная.
Посмотри описание функции changeDamage(int, ePlayer); Найди какиe параметры ePlayer она использует, и посмотри есть ли они в CyPlayer.h
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
kabjans!! Никого не слушай и не трать время попусту. Итак,компилятор выдал тебе:
Message: error C2664: 'CvUnit::changeDamage' : cannot convert parameter 2 from 'PlayerTypes' to 'CvUnit *'|
Это значит,что он не может конвертировать 'PlayerTypes' в 'CvUnit *'. То есть вместо игрока должен быть указан юнит (CvUnit *).
Если ты пишешь свой код в CvUnit.cpp, попробуй переписать вот так:
Если это не будет работать, выложи здесь свой код поподробнее.Код:changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), this);
P.S. Ты абсолютно прав в том,что в колонизации <div class='quotetop'>Цитата</div>В своём собственном посте ты описал правильную подачу этой функции. То есть ,для того,чтобы она работала нужно указать два параметра: количественное значение ущерба и юнит,который этот ущерб получает. И поверь,этой функции абсолютно по барабану, от какого <div class='quotetop'>Цитата</div>changeDamage относится к случаю боестолкновения, когда есть атакующий юнит и соответственно есть защищающийся юнит. Например changeDamage(iAttackerDamage, pDefender).[/b]она работает. Главное,указать ущерб и юнита,который его получает.факта [/b]
Интересная идея для заработка
<div class='quotetop'>Цитата(Пашок * 12.2.2010, 20:26) [snapback]324899[/snapback]</div>Спасибо, Пашок!kabjans!! Никого не слушай и не трать время попусту. Итак,компилятор выдал тебе:
Message: error C2664: 'CvUnit::changeDamage' : cannot convert parameter 2 from 'PlayerTypes' to 'CvUnit *'|
Это значит,что он не может конвертировать 'PlayerTypes' в 'CvUnit *'. То есть вместо игрока должен быть указан юнит.
Если ты пишешь свой код в CvUnit.cpp, попробуй переписать вот так:
Если это не будет работать, выложи здесь свой код поподробнее.Код:changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), this);
[/b]
Твой код
позволил компилировать дальше.Код:changeDamage(GC.getFeatureInfo(eFeature).getTurnDamage(), this);![]()
Дошел до CyPlot.cpp и снова ошибка, что для меня нормально. Сейчас разбираться буду с ней.
Последние известия с фронта:
Скомпилировал! 0 errors 0 warmings.
ОГРОМНОЕ СПАСИБО!!!![]()
Можно продолжать работу дальше.
поздравления!
Ты сначала этот то код проверь,работает или нет![]()
Интересная идея для заработка
<div class='quotetop'>Цитата(Пашок * 12.2.2010, 21:08) [snapback]324904[/snapback]</div>Пока это только голая CvGameCoreDLL.dll. Сейчас собираю XML и ART части. Лишь когда они будут готовы, можно будет запустить и проверить работоспособность (запустится ли) и правильность функционирования.поздравления!
Ты сначала этот то код проверь,работает или нет
[/b]
<div class='quotetop'>Цитата(kabjans * 12.2.2010, 20:15) [snapback]324906[/snapback]</div><div class='quotetop'>Цитата(Пашок * 12.2.2010, 21:08) [snapback]324904[/snapback]Пока это только голая CvGameCoreDLL.dll. Сейчас собираю XML и ART части. Лишь когда они будут готовы, можно будет запустить и проверить работоспособность (запустится ли) и правильность функционирования.поздравления!
Ты сначала этот то код проверь,работает или нет
[/b]
[/b][/quote]
Удачи![]()
Интересная идея для заработка
Ввел шторм для пробы. Загнал каравеллу в точку шторма.
Далее хроника с места события.
ход......состояние каравеллы
0...................3/3
1...................2.4/3
2...................2.1/3
3................... 1.8/3
4...................1.5/3
5...................1.2/3
Шторм отступил на соседнюю клетку и на каравелле открыли по этому случаю бочонок рома. Надо поторопиться и успеть к ним в кают компанию, пока они весь ром не выпили без меня.![]()
Еще раз ОГРОМНОЕ СПАСИБО за помощь!
Пришли,пожалуйста,бутылочку бандеролью
, только ценной,а то на почте выпьют
, у них там тоже функция changeDamage неплохо работает
Интересная идея для заработка
<div class='quotetop'>Цитата(Павел I * 13.2.2010, 12:10) [snapback]324962[/snapback]</div><div class='quotetop'>Цитата(Gx710 * 13.2.2010, 15:21) [snapback]324986[/snapback]</div>Рифы мне не очень нравятся)
[/b]Правильно, это и есть астероиды. А те рифы, что я нашел, были сделаны из "меди". Они вообще розовыми появились на экране, как цветочная клумба. Смотрелось сие "чудо" просто ужасно. Поэтому я перепробовал массу вариантов и остановился на астероидах. Они более всего напоминают рифы.Это похоже на астеройды.
[/b]
Кстати, из шторма очень легко сделал "грозу". Это и для моря-океана, и для суши. Ходить под ней можно без минусов, но 5% TurnDamage есть. Плюс сейчас буду давать минусы к добыче ресурсов на клетках в случае начала шторма или грозы на ней.
Нашел еще пару интересных возможностей в данном моде.
Во-первых, шторм на море у побережья может уменьшить отдачу еды с морских клеток, что абсолютно логично. Причем это можно очень просто менять самому в настройках. Я свел отдачу при шторме к нулю. Объяснение простое: шторм и корабли стоят у пирса.
Аналогично шторму ввел для суши и моря "дождь с грозой". Урон юнитам и недобор с клеток минимальный.
Во-вторых, в моде можно не только негативные явления природы типа шторма или грозы вводить, но и положительные. Я ввел для пробы "встречный ветер" (естественно без минусов по повреждению), который дает плюс 1 к скорости движения корабля. Все прекрасно работает.
Но тут возник вопрос.
При наведении мыши на клетку со штормом появляется красная надпись "Damage per Turn 15%".
Я не нашел источник, откуда она берется. Сама надпись - это TXT_KEY_PLOT_DAMAGE из CIV4GameText.....xml. Но откуда она идет?
Кроме того непонятно откуда идет именно красный цвет. Меня это интересует, потому что для "встречного ветра" я хотел бы ввести надпись зеленым цветом.
Кто-нибудь знает где копать? Поиск в питоне и xml файлах Цивилизации (искал по "TXT_KEY_PLOT_DAMAGE") ничего не дал. По идее из Питона команда должна идти, но там, хоть тресни, ее нет.
Интересная идея для заработка