Результаты опроса: Поддерживаете ли вы концепцию:

Голосовавшие
41. Вы ещё не голосовали в этом опросе
  • Да

    24 58.54%
  • Нет

    17 41.46%
+ Ответить в теме
Страница 3 из 5 ПерваяПервая ... 234 ... ПоследняяПоследняя
Показано с 41 по 60 из 83

Тема: Лимит тайла и следопыт

Комбинированный просмотр

  1. #1
    <div class='quotetop'>Цитата</div>
    если мы все еще говорим о ЛИМИТЕ тайла, то ИМХО вес не подходит, подходит скорее площадь. 1 хороший танк по весу равен батальону, но места на тайле займет намного меньше. [/b]
    "вес" я взял в кавычки. можно по-другому,но тут важнее концептуально.
    Можно как в старкрафте supply (требуемое обеспечение или просто обеспечение).
    для пехотинца нужен сух паек, а технике - много горючки и т.д.
    и насчет танка и батальона пехоты- а почему ты решил что танков тоже не батальон?

    <div class='quotetop'>Цитата</div>
    Не ясно - что значит "уменьшить силу ущерба по нескольким силам"? [/b]
    я хотел сказать уменьшить colleteral damage, но это я и сам в xml сделать. Тут из баланса выходит чтобы был реальных бой, а не избиение артиллерией и добивания полумертвых юнитов.
    ну максимум чуток потрепать процентов так на 10-20 (снять бонус апгрейдов)
    сделать доступнее апргрейд по уменьшению получаемого побочного урона.

    <div class='quotetop'>Цитата</div>
    Надеюсь, ты все еще уважаешь реализм в стратегии? И как тогда представить такой эффект в реале - генерал работает антигравитатором? [/b]
    в стратегиях я уважаю:
    1) реализм
    2) полноту возможностей
    3) играбельность
    это то что к движку. по сюжету другой разговор.
    "вес" я указал в кавычках.Просто понятно что танк сильнее пехоты в большинстве случаев,и так как он не получает бонусов защиты (в реальности еще как получает, здесь убрали для играбельности).
    как я сказал выше это типа расходов-генерал более экономично распределяет необходимое.
    у него ни поворуешь, ни перерасходуешь.

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

    <div class='quotetop'>Цитата</div>
    В Циве же некоторые атакуемые юниты могут отступить, В Call to Power II (КтП2) атакующий, видя что его силы проигрывают, мог скомандовать отступление. В e-civ было отступление.[/b]
    есть отступление только у тех кто атакует.
    а я хочу чтобы и тех обороняется тоже был. типа спрятаться
    продвинь это сообщение в соцсеть:  

  2. #2
    +1
    тоже бы скачал если бы был
    продвинь это сообщение в соцсеть:  

  3. #3

    Можно ли задать максимальное/минимальное число юнитов в стеке?

    Подскажите пжлт можно ли ограничить размер стеков скажем максимум 10-20 юнитами как Тотал Вор?
    продвинь это сообщение в соцсеть:  

  4. #4
    В файле Assets\XML\PythonCallbackDefines.xml
    находишь тэг USE_UNIT_CANNOT_MOVE_INTO_CALLBACK
    и задаешь значение 1

    В файле Assets\Python\CvGameUtils.py
    находишь функцию def unitCannotMoveInto(self,argsList):
    и изменяешь ее
    Код:
    	def unitCannotMoveInto(self,argsList):
    		ePlayer = argsList[0]		
    		iUnitId = argsList[1]
    		iPlotX = argsList[2]
    		iPlotY = argsList[3]
    # begin
    		if gc.getMap().plot(iPlotX, iPlotY).getNumUnits() > 10:
    			return True
    # end
    		return False
    Заместь 10 можно выставить то число которое тебе больше нравится
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  5. #5
    идейный враг всяких трансформероB

    Аватар для Snake_B


    Регистрация
    14.09.2007
    Адрес
    Донецк-Камчатка....
    Сообщений
    13,323
    как бы это... я думаю стоит упомянуть...
    АИ об этом ни чего не знает... поэтому не исключен стек из 10 топоров, а рядом отдельный из 10 копий.... баланс может очень сильно поплыть...
    продвинь это сообщение в соцсеть:  

  6. #6
    NeseryozniyVET, Snake_B, очень благодарю! Буду пробывать!
    продвинь это сообщение в соцсеть:  

  7. #7
    При такой реализации ограничения юнитов в стеке возникает проблема - в городе можно построить сколь угодно много юнитов и задача штурма становится неразрешимой, т.к. невозможно подвести под стены армию больше, чем гарнизон.
    Какие идеи по поводу ограничения гарнизона?
    продвинь это сообщение в соцсеть:  

  8. #8
    Цитата Сообщение от Tompson Посмотреть сообщение
    При такой реализации ограничения юнитов в стеке возникает проблема - в городе можно построить сколь угодно много юнитов и задача штурма становится неразрешимой, т.к. невозможно подвести под стены армию больше, чем гарнизон.
    Какие идеи по поводу ограничения гарнизона?
    Вариант 1
    В файле Assets\Python\CvGameUtils.py
    находишь функцию def canTrain(self,argsList):
    и изменяешь ее
    Код:
    	def canTrain(self,argsList):
    		pCity = argsList[0]
    		eUnit = argsList[1]
    		bContinue = argsList[2]
    		bTestVisible = argsList[3]
    		bIgnoreCost = argsList[4]
    		bIgnoreUpgrades = argsList[5]
    # begin
    		if pCity.plot().getNumUnits() > 10:
    			return True
    # end
    		return False

    Вариант 2
    В файле Assets\XML\PythonCallbackDefines.xml
    находишь тэг USE_CANNOT_TRAIN_CALLBACK
    и задаешь значение 1

    В файле Assets\Python\CvGameUtils.py
    находишь функцию def cannotTrain(self,argsList):
    и изменяешь ее
    Код:
    	def cannotTrain(self,argsList):
    		pCity = argsList[0]
    		eUnit = argsList[1]
    		bContinue = argsList[2]
    		bTestVisible = argsList[3]
    		bIgnoreCost = argsList[4]
    		bIgnoreUpgrades = argsList[5]
    # begin
    		if pCity.plot().getNumUnits() > 10:
    			return True
    # end
    		return False
    Заместь 10 можно выставить то число которое тебе больше нравится
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  9. #9
    И еще проблема - шпион не может войти в клетку, где стоит заполненный неприятельский стек, а так же воздушные юниты тоже учитываются в стеке.
    Кстати, где можно найти описание питона применительно к "Цивилизации"?
    продвинь это сообщение в соцсеть:  

  10. #10
    Цитата Сообщение от Tompson Посмотреть сообщение
    И еще проблема - шпион не может войти в клетку, где стоит заполненный неприятельский стек, а так же воздушные юниты тоже учитываются в стеке.
    Надо добавить услове
    в def unitCannotMoveInto(self,argsList):
    Код:
    	pUnit = gc.getPlayer(ePlayer).getUnit(iUnitId)
    	if not (pUnit.isSpy() or pUnit.getDomainType() == DomainTypes.DOMAIN_AIR):
    в def canTrain(self,argsList): или def cannotTrain(self,argsList):
    Код:
    	pUnitInfo = gc.getUnitInfo(eUnit)
    	if not (pUnitInfo.isSpy() or pUnitInfo.getDomainType() == DomainTypes.DOMAIN_AIR):
    Цитата Сообщение от Tompson Посмотреть сообщение
    Кстати, где можно найти описание питона применительно к "Цивилизации"?
    В SDK в файлх Cv*.h питоновские функции помечены
    В XML файлах названия тегов такие же как и названия функций, только заместь b - is, а заместь i - get (bSpy - isSpy(), iCost - getCost())
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  11. #11
    Чертовски благодарен, буду пробовать!
    продвинь это сообщение в соцсеть:  

  12. #12
    А как сделать, чтобы число юнитов, помещающихся в городе зависило от размера города? Пробовал использовать getPopulation() - не вышло, выдает ошибку.
    продвинь это сообщение в соцсеть:  

  13. #13
    Цитата Сообщение от Tompson Посмотреть сообщение
    А как сделать, чтобы число юнитов, помещающихся в городе зависило от размера города? Пробовал использовать getPopulation() - не вышло, выдает ошибку.
    Должно работать

    Код:
    	def unitCannotMoveInto(self,argsList):
    		ePlayer = argsList[0]		
    		iUnitId = argsList[1]
    		iPlotX = argsList[2]
    		iPlotY = argsList[3]
    # begin
    		iMaxUnits = 10
    		pPlot = gc.getMap().plot(iPlotX, iPlotY)
    		pCity = pPlot.getPlotCity()
    		if pCity:
    			iMaxUnits += pCity.getPopulation() * 2 / 3
    		if pPlot.getNumUnits() > iMaxUnits:
    			return True
    # end
    		return False
    Код:
    	def cannotTrain(self,argsList):
    		pCity = argsList[0]
    		eUnit = argsList[1]
    		bContinue = argsList[2]
    		bTestVisible = argsList[3]
    		bIgnoreCost = argsList[4]
    		bIgnoreUpgrades = argsList[5]
    # begin
    		if pCity.plot().getNumUnits() > 10 + pCity.getPopulation() * 2 / 3:
    			return True
    # end
    		return False
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось NeseryozniyVET; 24.05.2011 в 02:56.
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  14. #14
    Действительно работает! Огромное спасибо!
    продвинь это сообщение в соцсеть:  

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

  16. #16
    Добавлю только, что аналогично и в городах - если войска под завязку, то напасть невозможно.
    Значит нужно какое-то новое решение. Какое, пока не знаю.
    продвинь это сообщение в соцсеть:  
    Чтобы тебя любили — приходится быть со всеми хорошим каждый день.
    Чтобы ненавидели — напрягаться не приходится вообще.
    Гомер Симпсон

  17. #17
    Код:
    	def unitCannotMoveInto(self,argsList):
    		ePlayer = argsList[0]		
    		iUnitId = argsList[1]
    		iPlotX = argsList[2]
    		iPlotY = argsList[3]
    # begin
    		pUnit = gc.getPlayer(ePlayer).getUnit(iUnitId)
    		if not (pUnit.isSpy() or pUnit.getDomainType() == DomainTypes.DOMAIN_AIR):
    			eTeam = pUnit.getTeam()
    			pTeam = gc.getTeam(eTeam)
    			iNumUnits = plot.getNumUnits()
    			if iNumUnits > 0:
    				iUnits = 0
    				pPlot = gc.getMap().plot(iPlotX, iPlotY)
    				for i in range (iNumUnits):
    					pLoopUnit = plot.getUnitByIndex(i)
    					if (eTeam != pLoopUnit.getTeam()) and (not pTeam.isAtWar(pLoopUnit.getTeam())): # юниты противников не считаем
    						if not(pLoopUnit.isSpy() or pLoopUnit.getDomainType() == DomainTypes.DOMAIN_AIR):
    							iUnits += 1
    				iNumUnits = 10
    				pCity = pPlot.getPlotCity()
    				if pCity:
    					iNumUnits += pCity.getPopulation() * 2 / 3
    				if iUnits > iNumUnits:
    					return True
    # end
    		return False
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось NeseryozniyVET; 26.05.2011 в 11:20.
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  18. #18
    NeseryozniyVET, все работает, огромное спасибо!
    В первом приближении получился вот такой мод http://vas.civfanatics.ru/vas_mod/Stack/Stack.zip с ограничением 3 юнита в стеке. При желании можно задать любое другое количество, меняя переменные iMaxUnits и iMaxUnitInfos в файле cvgameutils.py, оптимальный размер стека думаю можно будет определить опытным путем по результатам серии игр. Первая пробная партия показала, что ИИ не совсем идиот, и стеков отдельно из копейщиков, отдельно из секирщиков, отдельно из катапульт не водит, старается делать смешанные.
    Однако, с ростом городов гарнизоны в них начинают превосходить любую атакующую армию. Чтобы как то с этим бороться установил одного недовольного жителя на каждый военный юнит в городе, увеличив на 1 бонусное количество счастливых жителей во всех городах. Соответственно несколько изменил институты власти - дал монархии 3 счастливых горожанина в 5-ти крупнейших городах, у представительства 1-го в крупнейших городах. Что из этого выйдет - посмотрим.
    Всем, кому интересно ограничение стека просьба писать, какие особенности возникают в такой игре, и, соответственно какие возможны усовершенствования.
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось Tompson; 28.05.2011 в 10:44. Причина: нерабочая ссылка

  19. #19
    При подсчете числа юнитов в клетке считаются все, включая посаженные в транспорт, в результате число юнитов в морском стеке уменьшается на число сидящих в галере/галеоне/транспорте. Как исключить из подсчета транспортируемые отряды?
    продвинь это сообщение в соцсеть:  

  20. #20
    Цитата Сообщение от Tompson Посмотреть сообщение
    При подсчете числа юнитов в клетке считаются все, включая посаженные в транспорт, в результате число юнитов в морском стеке уменьшается на число сидящих в галере/галеоне/транспорте. Как исключить из подсчета транспортируемые отряды?
    if pLoopUnit.isCargo(): - если юнит загружен в транспорт
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

+ Ответить в теме
Страница 3 из 5 ПерваяПервая ... 234 ... ПоследняяПоследняя

Ваши права

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

free counters