+ Ответить в теме
Страница 1 из 3 12 ... ПоследняяПоследняя
Показано с 1 по 20 из 48

Тема: Вопросы по питону

  1. #1

    Thumbs down

    1) Можно ли в питоне создавать масив, число элементов которого зависит от переменной ? Например, если переменная равна 3 - создается масив из трех элементов, если 5 - то из пяти.
    2) У многих элементов интерфейса (кнопки, надписи) есть такой параметр как WidgetTypes.. (WidgetTypes.WIDGET_GENERAL , WidgetTypes.WIDGET_PLOT_LIST). Я так понял это указатель на функцию или код, который выполняется при контакте с данным элементом. Вопрос: в каком файле описание этих WidgetTypes и как создать свой собственный WidgetTypes?
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  2. #2
    Полководец Аватар для Gesse


    Регистрация
    26.12.2007
    Адрес
    Россия,Магнитогорск
    Сообщений
    454
    1. Можно, просто создаешь массив с параметром len(твоя переменная). К примеру одномерный массив a = array(len(x))
    2. Сам параметр Widget отвечает за идентификацию элемента интерфейса, т.е. позволяет минимизировать размеры скриптов и не прописывать отдельные сценарии для каждого элемента интерфейса. Соотвественно WidgetTypes отвечает за определенный тип идентификаторов.

    Вот посмотри тут в мануале есть некоторое пояснение этого параметра:
    Вложения Вложения
    продвинь это сообщение в соцсеть:  
    Не важно... что было сказано или написано... все это от незнания и неумения выбрать верное среди многого...

    Мои взгляды на то какой должна быть глобальная стратегия

  3. #3
    <div class='quotetop'>Цитата(Gesse * 7.10.2009, 7:11) [snapback]309662[/snapback]</div>
    1. Можно, просто создаешь массив с параметром len(твоя переменная). К примеру одномерный массив a = array(len(x))
    [/b]
    Значит такой код должен работать без проблем ?
    [code]
    x = 6
    a = array(len(x))
    i = 0
    while (i < x):
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

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

  5. #5
    Полководец Аватар для Gesse


    Регистрация
    26.12.2007
    Адрес
    Россия,Магнитогорск
    Сообщений
    454
    Так причем...
    Я не так объяснил... вообщем извинияюсь спешил... попутал
    Пример приведенный выше работает если есть модуль Numeric, если нет то правильный пример одномерного массива будет выглядеть так:
    [code]
    a = 5
    i = 0
    x = [0]
    while (i <= a):
    продвинь это сообщение в соцсеть:  
    Не важно... что было сказано или написано... все это от незнания и неумения выбрать верное среди многого...

    Мои взгляды на то какой должна быть глобальная стратегия

  6. #6
    Нашел более простой вариант
    [code]
    a = ля ля ля
    pV = [[]] * a
    for i in range(a):
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  7. #7
    Полководец Аватар для Gesse


    Регистрация
    26.12.2007
    Адрес
    Россия,Магнитогорск
    Сообщений
    454
    Ну я привел первый который пришел в голову
    продвинь это сообщение в соцсеть:  
    Не важно... что было сказано или написано... все это от незнания и неумения выбрать верное среди многого...

    Мои взгляды на то какой должна быть глобальная стратегия

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

  9. #9
    <div class='quotetop'>Цитата(Хальк Юсдаль * 17.10.2009, 11:45) [snapback]311012[/snapback]</div>
    Не совсем в тему идущего обсуждения, но в тему названия. Как, а вернее где в CvCivicsScreen.py изменить размер шрифта которым отображаются цивики? Или это меняется где-то ещё?[/b]
    screen.setLabel("", "Background", u"<font=3>" + gc.getCivicOptionInfo(i).getDescription().upper() + u"</font>", CvUtil.FONT_CENTER_JUSTIFY, fX + self.HEADINGS_WIDTH/2, self.HEADINGS_TOP + self.TEXT_MARGIN, 0, FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1 )
    И так в каждом screen.setLabel, screen.setText и т.д. Шрифт изменяется от font=1 до font=4. Если шрифт не задавать то по умолчанию будет 2.

    Для цивиков есть интересный вариант http://forums.civfanatics.com/downloads.ph...le&id=13457
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  10. #10
    Спасибо большое.

    <div class='quotetop'>Цитата</div>
    Для цивиков есть интересный вариант http://forums.civfanatics.com/downlo......le&id=13457[/b]
    Интересная штука, насколько я помню в WoC используется именно этот вариант.
    Но просто я сейчас перевожу один интересный мод. А там 6 колонок цивиков, соответвенно русский перевод не влезает толком. Так что переделывал. Пока что получился вот этот вариант. Цвет интерфейса мой, он не из мода, для самого мода наделаю скринов с обычной расцветкой.

    Что нибудь посоветуйте по поводу доработки этого экрана. Панель с содержанием оставить внизу, или приподнять? И как изменить положение той полосы, на которой кнопка Выход находится? Или она в фон входит, хм.
    продвинь это сообщение в соцсеть:  
    Я иду меж стен и дворцовых башен,
    Мимо перекрестков веков и лиц,
    Мимо городов, площадей и пашен,
    Познавая мир на холсте страниц.

  11. #11
    Полоса:
    screen.addPanel( "TechBottomPanel", u"", u"", True, False, 0, 713, self.W_SCREEN, 55, PanelStyles.PANEL_STYLE_BOTTOMBAR )

    Надписи "Выход" и "Отменить":
    self.Y_EXIT = 726
    self.Y_CANCEL = 726
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  12. #12
    Спасибо большое, теперь хоть буду знать как изменять размер и расположение этих элементов.

    И ещё вопрос, если отображаемый текст находиться в самом питоновском файле, его можно как нибудь заменить на ссылку ведущую на обычный. Просто иначе многое там останеться непереведенным. Например.

    szCost = localText.getText("TXT_STEALTH_DIPLOMACY_COST", (costEspionage, costGold,))
    screen.addMultilineText( self.getNextWidgetName(), "Graciously Return All Hostages We&#39;re Holding for Free " + szCost, self.SDBUTTON_X + 52, self.SDBUTTON_Y, 400, 80, WidgetTypes.WIDGET_GENERAL, -1, -1, CvUtil.FONT_LEFT_JUSTIFY)
    if ((iGold<costGold)or(iEspionagePointsAgainst<costEspionage)):
    screen.setLabel(self.getNextWidgetName(), "Background", local
    продвинь это сообщение в соцсеть:  
    Я иду меж стен и дворцовых башен,
    Мимо перекрестков веков и лиц,
    Мимо городов, площадей и пашен,
    Познавая мир на холсте страниц.

  13. #13
    szCost = localText.getText("TXT_KEY_ТВОЙ_ТЕКСТ", ())
    szCost += localText.getText("TXT_STEALTH_DIPLOMACY_COST", (costEspionage, costGold,))
    screen.addMultilineText( self.getNextWidgetName(), szCost, self.SDBUTTON_X + 52, self.SDBUTTON_Y, 400, 80, WidgetTypes.WIDGET_GENERAL, -1, -1, CvUtil.FONT_LEFT_JUSTIFY)
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  14. #14
    В общем отчасти помог предыдущий пример, теперь знаю, как ссылку на текст ставить. Спасибо за пример.
    Но возникла проблема. В строчке
    Код:
    sTitle = "The" + gc.getPlayer(CyGame().getActivePlayer()).getCivilizationAdjective(0) + " government has executed hostages!"
    Я хочу заменить "The" и " government has executed hostages!" на ссылки на текст.
    Для этого я сделал.

    szCostr = localText.getText("TXT_KEY_CVHOS_PY_1", ())
    szCostr1 = localText.getText("TXT_KEY_CVHOS_PY_2", ())
    И поместил в предыдущую строку.
    Код:
    sTitle = szCostr + gc.getPlayer(CyGame().getActivePlayer()).getCivilizationAdjective(0) + szCostr1"
    Но интерфейс в таких условиях вообще не работает. Причем он перестает работать, как только я помещаю в файл эти две строки
    szCostr = localText.getText("TXT_KEY_CVHOS_PY_1", ())
    szCostr1 = localText.getText("TXT_KEY_CVHOS_PY_2", ())
    Куда бы я их не ставил, результат один, исчезает интерфейс. Так как все-таки добиться замены обычного текста ссылкой на текст?
    [spoiler]
    [code]## Sid Meier&#39;s Civilization 4
    ## Copyright Firaxis Games 2005
    from CvPythonExtensions import *
    import PyHelpers
    import CvUtil
    import ScreenInput
    import CvScreenEnums
    import string

    PyPlayer = PyHelpers.PyPlayer
    PyInfo = PyHelpers.PyInfo

    # globals
    gc = CyGlobalContext()
    ArtFileMgr = CyArtFileMgr()
    localText = CyTranslator()

    class CvHostageSplash:
    продвинь это сообщение в соцсеть:  
    Я иду меж стен и дворцовых башен,
    Мимо перекрестков веков и лиц,
    Мимо городов, площадей и пашен,
    Познавая мир на холсте страниц.

  15. #15
    sTitle = szCostr + gc.getPlayer(CyGame().getActivePlayer()).getCivilizationAdjective(0) + szCostr1"

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

  16. #16
    <div class='quotetop'>Цитата</div>
    sTitle = szCostr + gc.getPlayer(CyGame().getActivePlayer()).getCivilizationAdjective(0) + szCostr1"Убери двойной апостраф в конце строчки (")[/b]
    Убрал но никакого положительного эффекта. Интерфейс пропадает именно, когда я добавляю.
    szCostr = localText.getText("TXT_KEY_CVHOS_PY_1", ())
    szCostr1 = localText.getText("TXT_KEY_CVHOS_PY_2", ())

    P.S. 400 пост. Ну да ладно скоро будет 500, тогда и сделаю его ценным.
    продвинь это сообщение в соцсеть:  
    Я иду меж стен и дворцовых башен,
    Мимо перекрестков веков и лиц,
    Мимо городов, площадей и пашен,
    Познавая мир на холсте страниц.

  17. #17
    Проверил у себя - все работает.
    Может ошибка в текстовом xml файле или питон коде?
    Виложи питон код и xml файл.
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  18. #18
    Вот ссылка на мод, что я русифицирую. Некоторые файлы были изменены мной, но это касается только текста, все работает.
    http://rghost.ru/558077
    Питон код я выкладывал под спойлером. Файл CvHostageSplash.py
    XML WLBO_Rus_Pyth.xml
    продвинь это сообщение в соцсеть:  
    Я иду меж стен и дворцовых башен,
    Мимо перекрестков веков и лиц,
    Мимо городов, площадей и пашен,
    Познавая мир на холсте страниц.

  19. #19
    Сделал. У меня работал

    sTitle = localText.getText("TXT_KEY_CVHOS_PY_1", ()) + gc.getPlayer(CyGame().getActivePlayer()).getCivilizationAdjective(0) + localText.getText("TXT_KEY_CVHOS_PY_2", ())
    продвинь это сообщение в соцсеть:  
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

  20. #20


    Ура. Ура. Ура. Заработало, знать бы ещё почему у меня подобное не работало, из-за кавычек лишних наверное.
    продвинь это сообщение в соцсеть:  
    Я иду меж стен и дворцовых башен,
    Мимо перекрестков веков и лиц,
    Мимо городов, площадей и пашен,
    Познавая мир на холсте страниц.

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

Ваши права

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

free counters