1) Можно ли в питоне создавать масив, число элементов которого зависит от переменной ? Например, если переменная равна 3 - создается масив из трех элементов, если 5 - то из пяти.
2) У многих элементов интерфейса (кнопки, надписи) есть такой параметр как WidgetTypes.. (WidgetTypes.WIDGET_GENERAL , WidgetTypes.WIDGET_PLOT_LIST). Я так понял это указатель на функцию или код, который выполняется при контакте с данным элементом. Вопрос: в каком файле описание этих WidgetTypes и как создать свой собственный WidgetTypes?
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
1. Можно, просто создаешь массив с параметром len(твоя переменная). К примеру одномерный массив a = array(len(x))
2. Сам параметр Widget отвечает за идентификацию элемента интерфейса, т.е. позволяет минимизировать размеры скриптов и не прописывать отдельные сценарии для каждого элемента интерфейса. Соотвественно WidgetTypes отвечает за определенный тип идентификаторов.
Вот посмотри тут в мануале есть некоторое пояснение этого параметра:
Не важно... что было сказано или написано... все это от незнания и неумения выбрать верное среди многого...
Мои взгляды на то какой должна быть глобальная стратегия
<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):
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
Такой код вообще не работает
Можешь более подробный пример привести
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
Так причем...
Я не так объяснил... вообщем извинияюсь спешил... попутал
Пример приведенный выше работает если есть модуль Numeric, если нет то правильный пример одномерного массива будет выглядеть так:
[code]
a = 5
i = 0
x = [0]
while (i <= a):
Не важно... что было сказано или написано... все это от незнания и неумения выбрать верное среди многого...
Мои взгляды на то какой должна быть глобальная стратегия
Нашел более простой вариант
[code]
a = ля ля ля
pV = [[]] * a
for i in range(a):
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
Ну я привел первый который пришел в голову
Не важно... что было сказано или написано... все это от незнания и неумения выбрать верное среди многого...
Мои взгляды на то какой должна быть глобальная стратегия
Не совсем в тему идущего обсуждения, но в тему названия. Как, а вернее где в CvCivicsScreen.py изменить размер шрифта которым отображаются цивики? Или это меняется где-то ещё?
<div class='quotetop'>Цитата(Хальк Юсдаль * 17.10.2009, 11:45) [snapback]311012[/snapback]</div>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 )Не совсем в тему идущего обсуждения, но в тему названия. Как, а вернее где в CvCivicsScreen.py изменить размер шрифта которым отображаются цивики? Или это меняется где-то ещё?[/b]
И так в каждом screen.setLabel, screen.setText и т.д. Шрифт изменяется от font=1 до font=4. Если шрифт не задавать то по умолчанию будет 2.
Для цивиков есть интересный вариант http://forums.civfanatics.com/downloads.ph...le&id=13457
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
Спасибо большое.
<div class='quotetop'>Цитата</div>Интересная штука, насколько я помню в WoC используется именно этот вариант.Для цивиков есть интересный вариант http://forums.civfanatics.com/downlo......le&id=13457[/b]
Но просто я сейчас перевожу один интересный мод. А там 6 колонок цивиков, соответвенно русский перевод не влезает толком. Так что переделывал. Пока что получился вот этот вариант. Цвет интерфейса мой, он не из мода, для самого мода наделаю скринов с обычной расцветкой.
Что нибудь посоветуйте по поводу доработки этого экрана. Панель с содержанием оставить внизу, или приподнять? И как изменить положение той полосы, на которой кнопка Выход находится? Или она в фон входит, хм.
Полоса:
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
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
Спасибо большое, теперь хоть буду знать как изменять размер и расположение этих элементов.
И ещё вопрос, если отображаемый текст находиться в самом питоновском файле, его можно как нибудь заменить на ссылку ведущую на обычный. Просто иначе многое там останеться непереведенным. Например.
szCost = localText.getText("TXT_STEALTH_DIPLOMACY_COST", (costEspionage, costGold,))
screen.addMultilineText( self.getNextWidgetName(), "Graciously Return All Hostages We'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
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)
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
В общем отчасти помог предыдущий пример, теперь знаю, как ссылку на текст ставить. Спасибо за пример.
Но возникла проблема. В строчке
Я хочу заменить "The" и " government has executed hostages!" на ссылки на текст.Код:sTitle = "The" + gc.getPlayer(CyGame().getActivePlayer()).getCivilizationAdjective(0) + " 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'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:
sTitle = szCostr + gc.getPlayer(CyGame().getActivePlayer()).getCivilizationAdjective(0) + szCostr1"
Убери двойной апостраф в конце строчки (")
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
<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, тогда и сделаю его ценным.
Проверил у себя - все работает.
Может ошибка в текстовом xml файле или питон коде?
Виложи питон код и xml файл.
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
Вот ссылка на мод, что я русифицирую. Некоторые файлы были изменены мной, но это касается только текста, все работает.
http://rghost.ru/558077
Питон код я выкладывал под спойлером. Файл CvHostageSplash.py
XML WLBO_Rus_Pyth.xml
Сделал. У меня работал
sTitle = localText.getText("TXT_KEY_CVHOS_PY_1", ()) + gc.getPlayer(CyGame().getActivePlayer()).getCivilizationAdjective(0) + localText.getText("TXT_KEY_CVHOS_PY_2", ())
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод