+ Ответить в теме
Страница 4 из 6 ПерваяПервая ... 345 ... ПоследняяПоследняя
Показано с 61 по 80 из 108

Тема: Осваиваем питон (от простого к сложному)

  1. #61
    <div class='quotetop'>Цитата(NeseryozniyVET * 19.4.2010, 0:48) [snapback]333428[/snapback]</div>[quote]
    Вот рабочий код[code]
    продвинь это сообщение в соцсеть:  

  2. #62
    Выражение if Game.getSorenRandNum(100, "Gold abandoned") > 99 означает: берм случайное число от 0 до 100 (вроде без последнего числа (100)) и если оно больше 99. Другими словами условие невозможно. Лучше написать: if Game.getSorenRandNum(10000, "Gold abandoned") < 100, тогда это будет 1%.
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  3. #63
    Подскажите, в чём моя ошибка.
    Пытаюсь сделать питон-мод, который для начала просто обрабатывал бы любое событие, например, onBeginActivePlayerTurn.

    Структура мода такая:
    [code]
    %CivDir%
    продвинь это сообщение в соцсеть:  

  4. #64
    1) Это не С++ поэтому точку с запятой ставить в конце строчек ненадо
    2)заместь f = open("D:\\Temp\\_mod.log", "a") напиши f = open("_mod.log", "w"). Файл сохранится в папке с игрой (там где экзэшник от BtS).
    Посмотри как у меня в VetScreenMod&#39;е в CvMainInterface.py сделана запись и чтение файла. (Искать по слову LoadAndSave)
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  5. #65
    <div class='quotetop'>Цитата(NeseryozniyVET * 22.7.2010, 13:26) [snapback]343244[/snapback]</div>
    1) Это не С++ поэтому точку с запятой ставить в конце строчек ненадо
    2)заместь f = open("D:\\Temp\\_mod.log", "a") напиши f = open("_mod.log", "w"). Файл сохранится в папке с игрой (там где экзэшник от BtS).
    Посмотри как у меня в VetScreenMod&#39;е в CvMainInterface.py сделана запись и чтение файла. (Искать по слову LoadAndSave)
    [/b]
    Про точку с запятой я знаю, но она не мешает, а без неё мне код режет глаз.
    Код сохранения рабочий, если его скопировать в отдельный скрипт и запустить, всё отработает нормально.
    В VetScreenMod&#39;е сохранение вроде бы также и сделано, через open/write/close
    Код:
    f = open(g_szFileName, &#39;w&#39;)
    f.write(text)
    f.close()
    Нет ли у меня концептуальных проблем, может обработчик событий как-то зарегистрировать надо или ещё что-то добавить в мод? Или всё правильно и должно работать?
    продвинь это сообщение в соцсеть:  

  6. #66
    М-да, проблема была в том, что события BeginActivePlayerTurn не существует, я его нашёл в BUG Mod, но там они сами его генерируют. Поэтому у меня ничего и не вызывалось. Стандартное: BeginPlayerTurn.
    продвинь это сообщение в соцсеть:  

  7. #67
    Давно хотел спросить у специалистов. Можно ли как нибудь в питоне вызвать функцию из длл,если она не прописана в Су-файлах. К примеру, в Су.City есть только getBonusGoodHappiness(), а changeBonusGoodHappiness(int iChange) прописана только в Cv.City, в Cy.City её нет. Так вот,как бы её использовать без редактирования длл, а то пакет СДК больно неохота опять ставить.
    продвинь это сообщение в соцсеть:  
    Интересная идея для заработка

  8. #68
    <div class='quotetop'>Цитата(Пашок * 30.7.2010, 19:04) [snapback]344547[/snapback]</div>
    Давно хотел спросить у специалистов. Можно ли как нибудь в питоне вызвать функцию из длл,если она не прописана в Су-файлах. К примеру, в Су.City есть только getBonusGoodHappiness(), а changeBonusGoodHappiness(int iChange) прописана только в Cv.City, в Cy.City её нет.[/b]
    В птоне можно вызвать только функции прописаные в CyCityInterface1.cpp
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  9. #69
    Доброго времени суток!
    Возникла проблема, но как ни бился, ничего не выходит. Если жива еще тема и спецы, может кто подскажет?!

    Цель: добавить возможность разрушать свои города в BTS
    Реализация: ничего умнее не придумал, как в момент переименования города проверить имя, если оно равно 0 (ноль), то вызывать функцию kill.
    Код из CvEventManager.py :

    Код:
    def __eventEditCityNameApply(self, playerID, userData, popupReturn):    
                  'Edit City Name Event'
                  iCityID = userData[0]
                  bRename = userData[1]
                  player = gc.getPlayer(playerID)
                  city = player.getCity(iCityID)
                  cityNameOld = city.getName()
                  cityName = popupReturn.getEditBoxString(0)
    
                  if (cityName == "0"):
                          if (city.getPopulation() < 4 and not city.isCapital()):
                                  message = "You have destroyed the city of %s!!!" %(cityNameOld,)
                                  CyInterface().getHeadSelectedCity().kill()
                                  CyInterface().addImmediateMessage(message,"AS2D_BOMBARDED")                        
                                  #gc.getActivePlayer().raze(city)
                  else:
                          if (len(cityName) > 30):
                                  cityName = cityName[:30]
                          city.setName(cityName, not bRename)
    Проблема: В одиночной и сетевой игре все работает, но если играть через PitBoss, то после разрушения выскакивает ошибка синхронизации, при этом разрушение происходит только на моем компе, остальные видят город как и раньше...

    1. Подскажите, может есть какая-то функция синхронизации...
    2. gc.getActivePlayer().raze(city) тоже не работает... мало того, через 10 ходов владения городом city.canRaze становится false и функция raze не отрабатывает. до 10 ходов все ОК!
    3. Ну и если совсем не лень, как можно было бы оформить данное решение более эстетично. CheckBox какой-нить повесить или кнопку в меню города? Примерчик бы.
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось freeman23; 22.11.2010 в 20:42.

  10. #70
    Могу только на третий ответить. Там есть кнопка в верхнем правом углу экрана города. CvMainInterface.py
    http://www.civfanatics.ru/threads/74...-Mod-2.4/page7
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  11. #71
    Вот случайно нашел, может то что ты ищешь. CyGame().isPitbossHost() во всех случаях что мне встречались имеет вид

    Код:
    if (CyGame().isPitbossHost()):
             return
    Везде используется для прерывания выполнения активных функций.
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  12. #72
    Цитата Сообщение от NeseryozniyVET Посмотреть сообщение
    Вот случайно нашел, может то что ты ищешь. CyGame().isPitbossHost() во всех случаях что мне встречались имеет вид

    Код:
    if (CyGame().isPitbossHost()):
             return
    Везде используется для прерывания выполнения активных функций.
    Спасибо, но это совсем не то
    Мне нужно не прервать функцию, а выполнить полностью и передать изменения серверу...

    А если не получается прямо, может можно как-то вызвать событие, по которому выскакивает запрос на уничтожение или захват города?
    Например, сделать владельцем города другого игрока (варвара) и поместить в него своего юнита... Криво, но хоть как-нибудь, потому как от использования питбосса не уйти.
    продвинь это сообщение в соцсеть:  

  13. #73
    я сейчас делаю мод earth1200AD, с количеством игроков разобрался, теперь мне нужно сделать так, чтобы страны появлялись в разное время. Какие файлы Python надо импортировать в Consts.py, чтобы это все заработало?
    продвинь это сообщение в соцсеть:  

  14. #74
    Здравствуйте!Нужна подсказка как перекинуть державы и некоторых лидеров из одного мода в другой?А именно в Rise of Mankind из Thomas War.Заранее спасибо!!!
    продвинь это сообщение в соцсеть:  

  15. #75
    Цитата Сообщение от Oni15rus Посмотреть сообщение
    Здравствуйте!Нужна подсказка как перекинуть державы и некоторых лидеров из одного мода в другой?А именно в Rise of Mankind из Thomas War.Заранее спасибо!!!
    это надо XML файлы править. Их много и работы минимум на день. Если есть желание целый день нудной работой заниматся объясню как делать.
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  16. #76
    Цитата Сообщение от Oni15rus
    Дружище объясни как перекинуть.Мне не лень!
    Цивилизации задаются в файле мод\Assets\XML\Civilizations\CIV4CivilizationInfos.xml (описание каждой цивилизации начинается <CivilizationInfo> и заканчивается </CivilizationInfo>)
    ссылки тэгов начинающиеся на TXT_KEY_ находятся в файлах папки мод\Assets\XML\Text
    ссылка тэга <DefaultPlayerColor> находится в файле мод\Assets\XML\Interface\CIV4PlayerColorInfos.xml, а там ссылки на файл мод\Assets\XML\Interface\CIV4ColorVals.xml
    ссылка тэга <ArtDefineTag> находится в файле мод\Assets\XML\Art\CIV4ArtDefines_Civilization.xml
    значение тэга <ArtStyleType> задается в мод\Assets\XML\GlobalTypes.xml в тэге <ArtStyleTypes> и используется в файлах мод\Assets\XML\Buildings\CIV4CityLSystem.xml и мод\Assets\XML\Buildings\CIV4PlotLSystem.xml. В этих же файлах могут используются (для дворца или других построек) значения тэга <LSystem> из файла мод\Assets\XML\Art\CIV4ArtDefines_Building.xml
    ссылка тэга <UnitArtStyleType> находится в файле мод\Assets\XML\Civilizations\CIV4UnitArtStyleTypeInfos.xml


    Лидеры задаются в файле мод\Assets\XML\Civilizations\CIV4LeaderHeadInfos.xml
    ссылки тэгов начинающиеся на TXT_KEY_ находятся в файлах папки мод\Assets\XML\Text
    ссылка тэга <ArtDefineTag> находится в файле мод\Assets\XML\Art\CIV4ArtDefines_Leaderhead.xml

    Здания задаются в файле мод\Assets\XML\Buildings\CIV4BuildingInfos.xml
    ссылки тэгов начинающиеся на TXT_KEY_ находятся в файлах папки мод\Assets\XML\Text
    ссылка тэга <Class> находится в файле мод\Assets\XML\Buildings\CIV4BuildingClassInfos.xml
    ссылки тэга <ArtDefineTag> находится в файле мод\Assets\XML\Art\CIV4ArtDefines_Building.xml и используется в файле мод\Assets\XML\Buildings\CIV4CityLSystem.xml

    Юниты задаются в файле мод\Assets\XML\Units\CIV4UnitInfos.xml
    ссылки тэгов начинающиеся на TXT_KEY_ находятся в файлах папки мод\Assets\XML\Text
    ссылка тэга <Class> находится в файле мод\Assets\XML\Units\CIV4UnitClassInfos.xml
    ссылки тэга <UnitMeshGroup> находится в файле мод\Assets\XML\Art\CIV4ArtDefines_Unit.xml

    3D Модэли и кнопки находятся в папке мод\Assets\Art
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось NeseryozniyVET; 19.05.2011 в 20:49.
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  17. #77
    А поподробнее нельзя?Например нужно перебросить державу Аргентину.Что и как делать?И например лидера Филиппа второго котоый есть у Испании в Thomas War и его нет у них в Rise of Makkind.В какие папки и тексты заходить?
    продвинь это сообщение в соцсеть:  

  18. #78
    Цитата Сообщение от Oni15rus Посмотреть сообщение
    А поподробнее нельзя?Например нужно перебросить державу Аргентину.Что и как делать?И например лидера Филиппа второго котоый есть у Испании в Thomas War и его нет у них в Rise of Makkind.В какие папки и тексты заходить?
    Открой файл CIV4CivilizationInfos.xml и найди там Аргентину (скорей всего надо искать по слову ARGENTINA) и перенеси в соответствующий файл в другом моде. Потом запомни все названия ссылок тэгов начинающиеся на TXT_KEY_, это текстовые названия и описания, их тоже надо будет переносить из соответствующих файлов. Там же указаны лидеры, уникальные юниты, уникальные здания и стартовые технологии. По ссылке тэга <ArtDefineTag> в файле CIV4ArtDefines_Civilization.xml указаны адреса кнопок и 3D модэлей.
    То же самое надо проделать и с цветом, лидерами, юнитами и зданиями.
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось NeseryozniyVET; 19.05.2011 в 20:51.
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  19. #79
    Первое я сделал.Но вот где эти TXT брать?
    продвинь это сообщение в соцсеть:  

  20. #80


    Цитата Сообщение от Oni15rus Посмотреть сообщение
    Первое я сделал.Но вот где эти TXT брать?
    ссылки тэгов начинающиеся на TXT_KEY_ находятся в файлах папки мод\Assets\XML\Text
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

+ Ответить в теме
Страница 4 из 6 ПерваяПервая ... 345 ... ПоследняяПоследняя

Ваши права

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

free counters