Закрытая тема
Страница 41 из 63 ПерваяПервая ... 3140414251 ... ПоследняяПоследняя
Показано с 801 по 820 из 1243

Тема: Вопросы к мододелам.

  1. #801
    Здравствуйте! Еще вопросец.

    Сделал fpk-архив папки Art для более быстрой загрузки, но игра его не читает и загружает без текстур. Как сделать чтобы считывала с fpk?
    продвинь это сообщение в соцсеть:  

  2. #802
    Архив куда поместил?
    продвинь это сообщение в соцсеть:  

  3. #803
    Не нашел ответа,поэтому задам такой вопрос:как сделать,чтобы цивилизации появлялись не все сразу,а в разное время?Имеется ввиду как в каком либо сценарии(по типу Rhye’s and Fall).И еще чтобы можно было указать стартовых юнитов.
    продвинь это сообщение в соцсеть:  

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

    Аватар для Snake_B


    Регистрация
    14.09.2007
    Адрес
    Донецк-Камчатка....
    Сообщений
    13,325
    Цитата Сообщение от Rbhbytz Посмотреть сообщение
    Не нашел ответа,поэтому задам такой вопрос:как сделать,чтобы цивилизации появлялись не все сразу,а в разное время?Имеется ввиду как в каком либо сценарии(по типу Rhye’s and Fall).И еще чтобы можно было указать стартовых юнитов.
    использовать не стандартную dll (например RevDCM), но там нельзя задать когда именно появляться должны... ну или написать свою dll, в которой можно будет задавать... или делать события в питоне....
    если что-то из того что написано понял, то спрашивай, если нет... то тогда ответ - ни как ))
    продвинь это сообщение в соцсеть:  

  5. #805
    Цитата Сообщение от Snake_B Посмотреть сообщение
    использовать не стандартную dll (например RevDCM), но там нельзя задать когда именно появляться должны... ну или написать свою dll, в которой можно будет задавать... или делать события в питоне....
    если что-то из того что написано понял, то спрашивай, если нет... то тогда ответ - ни как ))
    Наверное легче всего в питоне прописать? я в Rhye’s and Fall и других модах пытался разобраться,но не смог найти где и что.Я так понял,там надо создать свой файл и прописать что-то,но вот что? Вот допустим в Greek World че-то похожее нашел:
    if (iGameTurn == self.iSpawnTurn) and (iGameTurn >= 30):
    #Germanic spawn
    tTopLeft = (24, 53)
    tBottomRight = (41, 70)
    dummy, plotList = self.squareSearch( tTopLeft, tBottomRight, self.outerSpawn, [] )
    rndNum = gc.getGame().getSorenRandNum(len(plotList), 'Greek World - Germanic tribes')
    result = plotList[rndNum]
    if (result):
    self.makeUnit(iAxeman, iGermanic, result, 4)
    self.makeUnit(iArcher, iGermanic, result, 2)
    self.makeUnit(iSettler, iGermanic, result, 1)
    self.makeUnit(iWorker, iGermanic, result, 1)
    А как это воспроизвети для себя - без понятия)
    продвинь это сообщение в соцсеть:  

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

    Аватар для Snake_B


    Регистрация
    14.09.2007
    Адрес
    Донецк-Камчатка....
    Сообщений
    13,325
    Цитата Сообщение от Rbhbytz Посмотреть сообщение
    Наверное легче всего в питоне прописать? я в Rhye’s and Fall и других модах пытался разобраться,но не смог найти где и что.Я так понял,там надо создать свой файл и прописать что-то,но вот что? Вот допустим в Greek World че-то похожее нашел:
    if (iGameTurn == self.iSpawnTurn) and (iGameTurn >= 30):
    #Germanic spawn
    tTopLeft = (24, 53)
    tBottomRight = (41, 70)
    dummy, plotList = self.squareSearch( tTopLeft, tBottomRight, self.outerSpawn, [] )
    rndNum = gc.getGame().getSorenRandNum(len(plotList), 'Greek World - Germanic tribes')
    result = plotList[rndNum]
    if (result):
    self.makeUnit(iAxeman, iGermanic, result, 4)
    self.makeUnit(iArcher, iGermanic, result, 2)
    self.makeUnit(iSettler, iGermanic, result, 1)
    self.makeUnit(iWorker, iGermanic, result, 1)
    А как это воспроизвети для себя - без понятия)
    да судя по всему оно и есть... а как воспроизвести... питон это не много не моё... может кто ответит, кто разбирается...
    продвинь это сообщение в соцсеть:  

  7. #807
    Snake_B привет, и всем тоже привет , кто подскажет ...
    (Играю в редфорс всем доволен поэтому и не показываюсь у тебя в ветке ... )
    возник вопрос - в стандартных настройках устанавливается эпоха старта ... а вот эпоха "финиша" развития идет безлимитно .. грубо говоря как сделать так что бы цивилизации развивались только до средних веков. или до новейшего времени ... есть решение не слишком сложное?
    продвинь это сообщение в соцсеть:  

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

    Аватар для Snake_B


    Регистрация
    14.09.2007
    Адрес
    Донецк-Камчатка....
    Сообщений
    13,325
    вот тут посмотри:
    http://www.civfanatics.ru/threads/4545-Era-Stopper
    оно под DTS 3.13, но думаю и под 3,19 пойдет...
    продвинь это сообщение в соцсеть:  

  9. #809
    Здравствуйте. У меня вопрос: как можно сделать так, чтобы при тренировке юнита в городе на 1 уменьшалось население? И возможно ли как-нибудь сделать так, чтобы каждому юниту изначально рандомно генерировалось имя из списка имён и фамилий (как вариант слогов)? При этом, конечно, желательно запретить менять имя игроку.
    продвинь это сообщение в соцсеть:  

  10. #810
    Ненавистница мейнстрима


    Регистрация
    02.02.2010
    Адрес
    Green Ukraine
    Сообщений
    389
    Цитата Сообщение от Торбейн Посмотреть сообщение
    как можно сделать так, чтобы при тренировке юнита в городе на 1 уменьшалось население?
    Торбейн, можешь почитать с этого моего поста
    Правда, там все сбилось после перехода на новый форумный движок

    Но процитирую со старого форума:

    В питоне делается так:
    Открой файл Assets\Python\CvEventManager.py
    Найди в нем def onUnitBuilt(self, argsList):
    и добавь

    Код:
    if unit.getUnitType() == gc.getInfoTypeForString('UNIT_WORKER'):
            city.changePopulation(-1)
    чтоб получилось
    Код:
    def onUnitBuilt(self, argsList):
            'Unit Completed'
            city = argsList[0]
            unit = argsList[1]
            player = PyPlayer(city.getOwner())
            CvAdvisorUtils.unitBuiltFeats(city, unit)
    #change begin
            if unit.getUnitType() == gc.getInfoTypeForString('UNIT_WORKER'):
                city.changePopulation(-1)
    #change end
            if (not self.__LOG_UNITBUILD):
                return
            CvUtil.pyPrint('%s was finished by Player %d Civilization %s' 
                %(PyInfo.UnitInfo(unit.getUnitType()).getDescription(), player.getID(), player.getCivilizationName()))
    UNIT_WORKER - это рабочий. То есть, если построишь рабочего - население города должно уменьшится. Если пропишешь UNIT_SETTLER то будет работать для поселенца и т.д.
    Эти названия берутся из файла Assets\XML\Units\CIV4UnitInfos.xml


    Я так поняла, если хочешь, чтоб население уменьшалось при постройке ЛЮБОГО юнита, то не надо проверять условие, скорее всего достаточно будет просто строки
    Код:
    city.changePopulation(-1)
    Но с этого моего поста все же почитай, там есть много интересных моментов
    продвинь это сообщение в соцсеть:  

    Цива не мультиплеерная игра, и роль сильного ИИ в ней очень сильна

  11. #811
    Sungirl, спасибо большое Нет, проверять тип юнита скорее всего придётся, но условием, видимо, будет неравность скауту и исследователю. С постом с удовольствием ознакомлюсь.
    А что касается переименовки юнитов, это, кажется, будет не так просто? Есть какая-нибудь функция, которая задавала бы новоиспечённому молодцу name?

    P.S. Мда. А вроде и поиском пользовался и гуглил, да и тему листал. Такой я невнимательный.
    продвинь это сообщение в соцсеть:  

  12. #812
    Народ, подскажите, мб кто знает...
    1. Хочу сделать спутник-шпион для которого строится проект. Добавить кнопку на панель еще не самое сложное, как оказалось. Проблема в подсветке области. Как подсветку на сделать в DLL?
    2. Как сделать, чтобы Манхеттен позволял строить ядерное оружие только тому, у кого он создан? Иными словами, чтобы каждый строил. В XML сменить не проблема, но постройка-то все равно всем разрешается.
    3. Где же все-таки нарастает стоимость поселенца при позднем старте - так и не нашел....
    продвинь это сообщение в соцсеть:  

  13. #813
    Цитата Сообщение от pingvin156 Посмотреть сообщение
    Народ, подскажите, мб кто знает...
    1. Хочу сделать спутник-шпион для которого строится проект. Добавить кнопку на панель еще не самое сложное, как оказалось. Проблема в подсветке области. Как подсветку на сделать в DLL?
    2. Как сделать, чтобы Манхеттен позволял строить ядерное оружие только тому, у кого он создан? Иными словами, чтобы каждый строил. В XML сменить не проблема, но постройка-то все равно всем разрешается.
    3. Где же все-таки нарастает стоимость поселенца при позднем старте - так и не нашел....
    1)
    CvPlot::changeAdjacentSight(TeamTypes eTeam, int iRange, bool bIncrement, CvUnit* pUnit, bool bUpdatePlotGroups)
    eTeam - комманда-разведыватель
    iRange - радиус разведываемой области
    bIncrement - если true, делаем область видимой. если false - то невидимой.
    pUnit - юнит-разведчик (в твоем случае NULL)
    bUpdatePlotGroups - нужно ли перерасчитовать торговые пути (в твоем случае false)

    2)
    В XML:
    В CIV4ProjectInfo.xml и CIV4GameInfoSchema.xml по аналогии с bAllowsNukes надо добавить bTeamNukes
    B SDK:
    B CvInfos.h и CvInfos.cpp для проэктов CvProjectInfo сделай то же самое
    B CvGame.h и CvGame.cpp создай указатель на массив bool m_abTeamNukesValid размером MAX_TEAMS (по аналогии с int m_aiRankTeam). И создай функции для работы с этим массивом:
    bool isTeamNukesValid(TeamTypes eTeam) const
    void makeTeamNukesValid(TeamTypes eTeam, bool bValid = true)
    Вставь эти функции в нужные места возле соответствующих им функций isNukesValid и makeNukesValid в CvTeam::changeProjectCount и CvPlayer::canTrain
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

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

    Аватар для Snake_B


    Регистрация
    14.09.2007
    Адрес
    Донецк-Камчатка....
    Сообщений
    13,325
    Цитата Сообщение от NeseryozniyVET Посмотреть сообщение
    1)
    2)
    В XML:
    В CIV4ProjectInfo.xml и CIV4GameInfoSchema.xml по аналогии с bAllowsNukes надо добавить bTeamNukes
    B SDK:
    B CvInfos.h и CvInfos.cpp для проэктов CvProjectInfo сделай то же самое
    B CvGame.h и CvGame.cpp создай указатель на массив bool m_abTeamNukesValid размером MAX_TEAMS (по аналогии с int m_aiRankTeam). И создай функции для работы с этим массивом:
    bool isTeamNukesValid(TeamTypes eTeam) const
    void makeTeamNukesValid(TeamTypes eTeam, bool bValid = true)
    Вставь эти функции в нужные места возле соответствующих им функций isNukesValid и makeNukesValid в CvTeam::changeProjectCount и CvPlayer::canTrain
    вот кстати... Вет... а ты можешь это добавить в свою dll и включение через xml?
    продвинь это сообщение в соцсеть:  

  15. #815
    Можно ли сделать, чтобы при исследовании определенной технологии, юниты сразу получали нужную прокачку? Если да, то как.
    Дело в том, что хотелось бы довести до ума идею из Final Frontier (и модах на его основе). Ведь не логично, что корабль получает новую броню или оружие за счёт опыта, а не технологического развития.
    продвинь это сообщение в соцсеть:  

  16. #816
    NeseryozniyVET, большущее спасибо!!
    продвинь это сообщение в соцсеть:  

  17. #817
    Народ, еще один вопрос: захотел сделать для авианосцев учет по весу самолета.
    Переписал 2 строчки в функции setTransportUnit:
    Вместо
    pOldTransportUnit->changeCargo(-1);
    сделал
    if (getDomainType() == DOMAIN_AIR && airBaseCombatStr() != 0) {
    pTransportUnit->changeCargo(-m_pUnitInfo->getAirUnitCap());
    } else {
    pTransportUnit->changeCargo(-1);
    }
    И вместо
    pTransportUnit->changeCargo(1);
    сделал
    if (getDomainType() == DOMAIN_AIR && airBaseCombatStr() != 0) {
    pTransportUnit->changeCargo(m_pUnitInfo->getAirUnitCap());
    } else {
    pTransportUnit->changeCargo(1);
    }
    Теперь в машину загружаю пехов (сделано как с ракетами через спецюнит), а при выгрузке вылет. И вообще зачастую при выгрузке игра вылетает. Мб кто знает, в чем дело?
    продвинь это сообщение в соцсеть:  

  18. #818
    Цитата Сообщение от Snake_B Посмотреть сообщение
    вот кстати... Вет... а ты можешь это добавить в свою dll и включение через xml?
    В ближайшее время нет.
    Цитата Сообщение от ComInter Посмотреть сообщение
    Можно ли сделать, чтобы при исследовании определенной технологии, юниты сразу получали нужную прокачку? Если да, то как.
    Дело в том, что хотелось бы довести до ума идею из Final Frontier (и модах на его основе). Ведь не логично, что корабль получает новую броню или оружие за счёт опыта, а не технологического развития.
    Только в SDK
    Цитата Сообщение от pingvin156 Посмотреть сообщение
    Народ, еще один вопрос: захотел сделать для авианосцев учет по весу самолета.
    Переписал 2 строчки в функции setTransportUnit:
    Вместо
    pOldTransportUnit->changeCargo(-1);
    сделал
    if (getDomainType() == DOMAIN_AIR && airBaseCombatStr() != 0) {
    pTransportUnit->changeCargo(-m_pUnitInfo->getAirUnitCap());
    } else {
    pTransportUnit->changeCargo(-1);
    }
    И вместо
    pTransportUnit->changeCargo(1);
    сделал
    if (getDomainType() == DOMAIN_AIR && airBaseCombatStr() != 0) {
    pTransportUnit->changeCargo(m_pUnitInfo->getAirUnitCap());
    } else {
    pTransportUnit->changeCargo(1);
    }
    Теперь в машину загружаю пехов (сделано как с ракетами через спецюнит), а при выгрузке вылет. И вообще зачастую при выгрузке игра вылетает. Мб кто знает, в чем дело?
    почитай тут
    http://www.civfanatics.ru/threads/76...ом-ходу
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось NeseryozniyVET; 09.05.2012 в 20:19.
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  19. #819
    Народ, извините, если надоел. Мой мод почти готов. Осталось немногое: интерфейс для сканирования местности спутником-шпионом. Я думал добавить кнопку под кнопку шпионажа, только добавив тип кнопки CONTROL_SCAN. Добавил в два места, где встречались эти "контролы" в функции canDoControl и doControl в классе cvGameInterface. Проверил: у меня уже на этапе генерации карты вылетает в ошибку.
    Я в верном направлении двигаюсь? Мб где есть тема, посвящённая созданию функциональных кнопок?

    Код (функции в отдельности работают - проверено туповызовом при doTurn):
    CvMainInterface.py --------------------------------------
    ...
    ePlayer = gc.getGame().getActivePlayer()
    if gc.getTeam(gc.getPlayer(ePlayer).getTeam()).IsSateliteScanValid():
    iBtnY += iBtnAdvance
    screen.setImageButton( "EspionageAdvisorButton", "", iBtnX, iBtnY, iBtnWidth, iBtnWidth, WidgetTypes.WIDGET_ACTION, gc.getControlInfo(ControlTypes.CONTROL_SCAN).getActionInfoIndex(), -1 )
    screen.setStyle( "EspionageAdvisorButton", "Button_HUDAdvisorEspionage_Style" )
    screen.hide( "EspionageAdvisorButton" )
    ....
    ------------------------------
    void CvGame::doControl(ControlTypes eControl) {
    ...
    case CONTROL_SCAN:
    // Igor ACTION
    eTeam = getActiveTeam();
    if (eTeam == NO_TEAM) {
    pPlot = GC.getMapINLINE().plotSorenINLINE(10, 10);
    GET_TEAM(eTeam).SateliteScan(pPlot);
    }
    break;
    ...
    ----------------------------------------
    bool CvGame::canDoControl(ControlTypes eControl) const {
    ....
    case CONTROL_SCAN:
    return true; // временно, вставить IsSateliteScanValid...
    break;
    ....
    продвинь это сообщение в соцсеть:  

  20. #820


    Неужели никто не знает?..
    продвинь это сообщение в соцсеть:  

Закрытая тема
Страница 41 из 63 ПерваяПервая ... 3140414251 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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

free counters