Закрытая тема
Страница 62 из 63 ПерваяПервая ... 1252616263 ПоследняяПоследняя
Показано с 1,221 по 1,240 из 1243

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

  1. #1221
    Цитата Сообщение от Не могу придумать никнейм Посмотреть сообщение
    Всем привет. Давно меня тут не было. Не спрашивайте, зачем, просто скажите, имеется ли в API цивы функция для проверки, объявил ли кто-либо войну другой циве. Если да, то какая?

    Далее: можно ли средствами питона забанить для поселения необходимую область на карте? Да-да, я знаю, что у Райе есть в сдк функция SettlersMap, но я не ищу легких путей не умею на нем программировать на таком уровне. В качестве благодарности, если кому нужно, могу скинуть скрипт, который меняет арты флагов в тот год, когда вам это будет необходимо.
    В смысле, для проверки? Это и так видно. Поясни.
    продвинь это сообщение в соцсеть:  
    Политик — это человек, который пожертвует вашей жизнью за свою родину.
    Цитата Сообщение от Ильф, Петров
    На третьем ходу выяснилось, что Остап играет восемнадцать испанских партий. На остальных досках васюкинцы применили хотя устаревшую, но верную защиту Филидора.

  2. #1222
    Цитата Сообщение от Ostap352 Посмотреть сообщение
    В смысле, для проверки?
    Существует функция для проверки, является ли игрок вассалом другого игрока
    PHP код:
    gc.getTeam().isVassal() 
    . Так вот: наверняка есть аналог для проверки, объявлена ли война. Меня интересует, что это за аналог. Вначале мне показалось, что за это отвечает isAtWar() (что вроде кажется логичным), но она не сработало. Возможно, я просто привязываю не к той функции в файле cvEventManager? Проверка нужна для того, чтобы при данном условии последовало какое-то действие.
    продвинь это сообщение в соцсеть:  

  3. #1223
    Цитата Сообщение от Ostap352 Посмотреть сообщение
    Если в питоне, то можно поковыряться тут: CvCommerceInfo.py
    Глянь подробнее тут: http://civ4bug.sourceforge.net/PythonAPI/
    Что-то я не нахожу данного файла.
    продвинь это сообщение в соцсеть:  

  4. #1224
    Цитата Сообщение от Ostap352 Посмотреть сообщение
    Да есть он ужо у всех...
    А что за такой?
    продвинь это сообщение в соцсеть:  

  5. #1225
    Цитата Сообщение от Не могу придумать никнейм Посмотреть сообщение
    А что за такой?
    Скрипт, что меняет положение флага...
    продвинь это сообщение в соцсеть:  
    Политик — это человек, который пожертвует вашей жизнью за свою родину.
    Цитата Сообщение от Ильф, Петров
    На третьем ходу выяснилось, что Остап играет восемнадцать испанских партий. На остальных досках васюкинцы применили хотя устаревшую, но верную защиту Филидора.

  6. #1226
    Зачем ИИ удаляет юниты себе же в ущерб, когда экономическая ситуация в порядке?
    продвинь это сообщение в соцсеть:  

  7. #1227
    Цитата Сообщение от Не могу придумать никнейм Посмотреть сообщение
    Зачем ИИ удаляет юниты себе же в ущерб, когда экономическая ситуация в порядке?
    Дык это уж сто раз исправлялось... Псих и Вет по этим делам спецы... Псих не выходит на связь, а Вета на форуме нету...
    продвинь это сообщение в соцсеть:  
    Политик — это человек, который пожертвует вашей жизнью за свою родину.
    Цитата Сообщение от Ильф, Петров
    На третьем ходу выяснилось, что Остап играет восемнадцать испанских партий. На остальных досках васюкинцы применили хотя устаревшую, но верную защиту Филидора.

  8. #1228
    Тогда выход один - ковырять код их модов...
    Слушай, есть у меня еще одна проблема. Данный скрипт перемещает юнитов на необходимое место и селит их. До операции с pushMission все идет нормально. Далее - нет. Вернее, сказать, он работает от случая к случаю и зависит от текущей клетки(то есть существуют клетки, на которых вылетает ошибка "NoneType", а есть такие, которые спокойно это делают). Сами клетки вполне себе валидны и пусты(у меня существует массив с перечислением оных). Данная ошибка приводит меня в замешательство. Собственно, вот он:
    PHP код:
        def removeUnitsFromArea(selfiPlayertCoordstDesant):
            for 
    idx in tCoords:
                for 
    x in range(idx[0]-2idx[0]+4):
                    for 
    y in range(idx[1]-2idx[1]+4):
                        
    area gc.getMap().plotx)
                        
    iNumUnitsInAPlot area.getNumUnits()
                        
                        if 
    iNumUnitsInAPlot:
                            for 
    i in range(iNumUnitsInAPlot):
                                
    unit area.getUnit(i)
                                
                                if 
    not area.isWater():
                                    if(
    unit.getUnitType() == iSettler):
                                        if(
    unit.getOwner() == iPlayer):
                                            
    unit.setXY(tDesant[0], tDesant[1] , FalseTrueTrue)

                                            for 
    l in range(iNumUnitsInAPlot):
                                                
    accompUnit area.getUnit(l)
                                                if 
    not area.isWater():
                                                    if(
    accompUnit.getOwner() == iPlayer):
                                                        
    accompUnit.setXY(tDesant[0], tDesant[1] , FalseTrueTrue)

            
    pPlayer gc.getPlayer(iPlayer)                                                    
            for 
    iUnit in range(pPlayer.getNumUnits()):
                
    pUnit pPlayer.getUnit(iUnit)
                
    pGroup pUnit.getGroup()
                
    pGroup.pushMission(MissionTypes.MISSION_FOUNDtDesant[0], tDesant[1], 0FalseTrueMissionAITypes.MISSIONAI_FOUNDpUnit.plot(), pUnit
    А вот ошибка в логах:
    PHP код:
    Traceback (most recent call last):

      
    File "CvEventInterface"line 23in onEvent

      File 
    "CvEventManager"line 190in handleEvent

      File 
    "CvEventManager"line 372in onBeginGameTurn

      File 
    "fmtfe"line 783in removeUnitsFromAreaSource

      File 
    "fmtfe"line 726in removeUnitsFromArea

    AttributeError
    'NoneType' object has no attribute 'pushMission'
    ERRPython function onEvent failedmodule CvEventInterface 
    продвинь это сообщение в соцсеть:  

  9. #1229

    Question

    Цитата Сообщение от Не могу придумать никнейм Посмотреть сообщение
    Данный скрипт перемещает юнитов на необходимое место и селит их.
    Какой селит? Тут ни одного слова в скрипте нет про создание города. Или ты другое имеешь ввиду?
    продвинь это сообщение в соцсеть:  
    Политик — это человек, который пожертвует вашей жизнью за свою родину.
    Цитата Сообщение от Ильф, Петров
    На третьем ходу выяснилось, что Остап играет восемнадцать испанских партий. На остальных досках васюкинцы применили хотя устаревшую, но верную защиту Филидора.

  10. #1230
    Цитата Сообщение от Ostap352 Посмотреть сообщение
    Тут ни одного слова в скрипте нет про создание города.
    Как нет, если вот он?
    PHP код:
     pGroup.pushMission(MissionTypes.MISSION_FOUNDtDesant[0], tDesant[1], 0FalseTrueMissionAITypes.MISSIONAI_FOUNDpUnit.plot(), pUnit
    В принципе, не важно. Уже все решено.
    Вета на форуме нету
    А какой у него ник?
    продвинь это сообщение в соцсеть:  

  11. #1231
    Цитата Сообщение от Не могу придумать никнейм Посмотреть сообщение
    Как нет, если вот он?
    PHP код:
     pGroup.pushMission(MissionTypes.MISSION_FOUNDtDesant[0], tDesant[1], 0FalseTrueMissionAITypes.MISSIONAI_FOUNDpUnit.plot(), pUnit
    В принципе, не важно. Уже все решено.
    Mission_Found может выполнять только Unit_settler. А у тебя написано alltypes.
    продвинь это сообщение в соцсеть:  
    Политик — это человек, который пожертвует вашей жизнью за свою родину.
    Цитата Сообщение от Ильф, Петров
    На третьем ходу выяснилось, что Остап играет восемнадцать испанских партий. На остальных досках васюкинцы применили хотя устаревшую, но верную защиту Филидора.

  12. #1232
    Ник смотри тут. http://www.civfanatics.ru/members/30263-NeseryozniyVET Его профиль.
    продвинь это сообщение в соцсеть:  
    Политик — это человек, который пожертвует вашей жизнью за свою родину.
    Цитата Сообщение от Ильф, Петров
    На третьем ходу выяснилось, что Остап играет восемнадцать испанских партий. На остальных досках васюкинцы применили хотя устаревшую, но верную защиту Филидора.

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

  14. #1234
    За что отвечает foundValue? Как я думаю, он отвечает за предрасположенность к поселению ИИ на данной клетке. Это так?
    продвинь это сообщение в соцсеть:  

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

  16. #1236
    Если не знаешь в каком файле, включи логи. Если файл известен, вспоминай, что изменил, сравнивая с оригиналом.
    продвинь это сообщение в соцсеть:  

  17. #1237
    Вопрос жизни и смерти в буквальном смысле: почему при возрождении цивы к ней премыкает лишь только один город, если в функцию кладутся все элементы массива?

    Сама функция:
    PHP код:
        def revival(selfiPlayertCoords):
            
    city gc.getMap().plottCoords[0], tCoords[1] ).getPlotCity()
            if 
    not city.isNone():
                
    OldOwner city.getOwner()
                
    teamOwner gc.getTeam(gc.getPlayer(OldOwner).getTeam())
                
    area gc.getMap().plottCoords[0], tCoords[1] )
                
    iNumUnitsInAPlot area.getNumUnits()
                
                if 
    iNumUnitsInAPlot:
                    for 
    i in range(iNumUnitsInAPlot):
                        
    unit area.getUnit(i)
                        
    gc.getPlayer(iPlayer).acquireCity(cityTrueFalse)
                        
    self.makeUnit(unit.getUnitType(), 4iPlayertCoords2)
                        for 
    t in range(iNumTechs):
                                if (
    teamOwner.isHasTech(t)): 
                                        
    gc.getTeam(iPlayer).setHasTech(tTrueiPlayerFalseFalse)
                        for 
    l in range(iNumPlayers):
                            
    gc.getTeam(iPlayer).makePeace(l
    Вызов функции:
    PHP код:
    if not gc.getTeam(iEngland).isAlive():
                
    rand random.randrange(501005)
                if (
    iGameTurn rand == 0):
                    for 
    tEngIdx in tEngRevivalArea:    
                        
    self.revival(iEnglandtEngIdx
    Собственно, массив:
    PHP код:
    tEngRevivalArea = [(5354), (5154), (5357), (5260), (4956)] 
    Пожалуйста, ответьте хоть что-нибудь. Просто очень хотим с другом поиграть по мп в нечто похожее на RFC, только со своей изюминкой. Тред отдельный на тему мода создавать не хочу, чтобы расписывать, какой чудесный у меня мод делается, ибо был уже печальный опыт, поэтому так.



    Прошу прощения, вопрос снят.
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось Не могу придумать никнейм; 27.08.2015 в 00:37.

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

  19. #1239
    Цитата Сообщение от Не могу придумать никнейм Посмотреть сообщение
    Привет, господа-молчуны. Я все же не теряю надежду на ответ. Так вот: существует скрипт, который уничтожает циву при захвате ее столицы другим государством и чтобы захватить столицу было весьма непростой задачей, я хочу научить ИИ концентрировать войска в больших количествах, чем в других городах, в столице. Как это сделать? Наверняка ведь это осуществимо.
    Ковыряюсь в RFC. Нашёл скрипт, что при уничтожении столицы передаёт остальные города другой циве, но это было СДК. Не знаю, каким боком там, но в СДК...
    продвинь это сообщение в соцсеть:  
    Политик — это человек, который пожертвует вашей жизнью за свою родину.
    Цитата Сообщение от Ильф, Петров
    На третьем ходу выяснилось, что Остап играет восемнадцать испанских партий. На остальных досках васюкинцы применили хотя устаревшую, но верную защиту Филидора.

  20. #1240


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

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

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

Ваши права

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

free counters