Jump to content
Korean Random
idab

Гайд по swfmill: пример с добавлением часов в ангар

Recommended Posts

Гайд по добавлению часов в ангар.

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


Нам понадобится:
1.
swfmill (компилятор SWF↔XML)
2. текстовый редактор (например Notepad++ http://download.tuxf...5.Installer.exe)

Приступим:

Шаг1:
Качаем программу swfmill с оф.сайта (http://swfmill.org/r...0.3.0-win32.zip).
Извлекаем из архива (у меня к примеру путь выгдядит так: c:\swfmill\содержимое папки swfmill).


Шаг2:
Копируем из папки игры (\World_of_Tanks\res\packages\gui.pkg\gui\flash\) файл common.swf в папку c:\swfmill\

Шаг3:
Открываем командную строку от имени администратора: Пуск-Все программы-Стандартные-Командная строка(правой клавишей мыши - Запуск от имени Администратора).
Далее нам необходимо перейти в командной строке в папку swfmill. Для этого импользуем команду: chdir /d C:\swfmill
Для наглядности скриншот:
post-1652-0-18360300-1436735596_thumb.jpg
Теперь мы в папке swfmill.
Для компиляции нам понадобится 2 команды:

swfmill swf2xml common.swf common.xml
swfmill xml2swf common.xml common.swf

Для того, чтобы мы смогли редактировать данный файл, нам необходимо компилировать его в xml.
Используем команду:

swfmill swf2xml common.swf common.xml

(копируем и вставляем в командную строку - правая клавиши мыши - вставить - Enter). В папке swfmill у нас создался новый файл - common.xml. Переходим к шагу 4.

Шаг4:
Открываем файл common.xml в Notepad++. Нажимаем Поиск - Найти - вводим(копируем):

</Export>

Более подробно на скриншоте:
post-1652-0-36228800-1436735565_thumb.jpg

Между </Export> и <DefineBitsLossless2 objectID="11" вставляем этот код:

<DefineFont3 objectID="11" isShiftJIS="0" isUnicode="0" isANSII="0" wideGlyphOffsets="0" italic="0" bold="1" language="1" name="Arial">
<glyphs/>
</DefineFont3>
<DefineFontAlignZones objectID="11" csmTableHint="1">
<zoneArrays/>
</DefineFontAlignZones>
<DefineEditText objectID="442" wordWrap="1" multiLine="1" password="0" readOnly="1" autoSize="0" hasLayout="1" notSelectable="1" hasBorder="0" isHTML="0" useOutlines="0" fontRef="11" fontHeight="700" align="0" leftMargin="0" rightMargin="0" indent="0" leading="40" variableName="" initialText="23:59:00">
<size>
<Rectangle left="-40" right="11720" top="-40" bottom="2019"/>
</size>
<color>
<Color red="238" green="238" blue="238" alpha="255"/>
</color>
</DefineEditText>
<DefineSprite objectID="443" frames="1">
<tags>
<PlaceObject3 replace="0" depth="1" objectID="442" name="displayTime">
<transform>
<Transform transX="-2960" transY="-400"/>
</transform>
<filters>
<Glow blurX="5.000000000000000" blurY="5.000000000000000" strength="3.000000000000000" innerGlow="0" knockout="0" passes="3">
<color>
<Color red="0" green="0" blue="0" alpha="255"/>
</color>
</Glow>
</filters>
</PlaceObject3>
<ShowFrame/>
<End/>
</tags>
</DefineSprite>
<PlaceObject2 replace="0" depth="1" objectID="443" allflags1="2" allflags2="0">
<transform>
<Transform transX="3014" transY="1500"/>
</transform>
<events>
<Event flags1="2" flags2="0">
<actions>
<Dictionary>
<strings>
<String value="currentTime"/>
<String value="Date"/>
<String value="seconds"/>
<String value="getSeconds"/>
<String value="minutes"/>
<String value="getMinutes"/>
<String value="hours"/>
<String value="getHours"/>
<String value="0"/>
<String value="displayTime"/>
<String value="text"/>
<String value=":"/>
</strings>
</Dictionary>
<PushData>
<items>
<StackDictionaryLookup index="0"/>
<StackDouble value="0.000000000000000"/>
<StackDictionaryLookup index="1"/>
</items>
</PushData>
<New/>
<SetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="2"/>
<StackDouble value="0.000000000000000"/>
<StackDictionaryLookup index="0"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="3"/>
</items>
</PushData>
<CallMethod/>
<SetLocalVariable/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
<StackDouble value="0.000000000000000"/>
<StackDictionaryLookup index="0"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="5"/>
</items>
</PushData>
<CallMethod/>
<SetLocalVariable/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
<StackDouble value="0.000000000000000"/>
<StackDictionaryLookup index="0"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="7"/>
</items>
</PushData>
<CallMethod/>
<SetLocalVariable/>
<PushData>
<items>
<StackDouble value="0.000000000000000"/>
</items>
</PushData>
<Pop/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackInteger value="24"/>
</items>
</PushData>
<LessThanTyped/>
<LogicalNOT/>
<BranchIfTrue byteOffset="44"/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackInteger value="24"/>
</items>
</PushData>
<GreaterThanTyped/>
<LogicalNOT/>
<BranchIfTrue byteOffset="23"/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackInteger value="24"/>
</items>
</PushData>
<Substract/>
<SetVariable/>
<BranchAlways byteOffset="65492"/>
<PushData>
<items>
<StackDouble value="0.000000000000000"/>
</items>
</PushData>
<Pop/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackInteger value="10"/>
</items>
</PushData>
<LessThanTyped/>
<LogicalNOT/>
<BranchIfTrue byteOffset="12"/>
<PushData>
<items>
<StackDictionaryLookup index="6"/>
<StackDictionaryLookup index="8"/>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetVariable/>
<AddTyped/>
<SetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackInteger value="10"/>
</items>
</PushData>
<LessThanTyped/>
<LogicalNOT/>
<BranchIfTrue byteOffset="12"/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
<StackDictionaryLookup index="8"/>
<StackDictionaryLookup index="4"/>
</items>
</PushData>
<GetVariable/>
<AddTyped/>
<SetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackInteger value="10"/>
</items>
</PushData>
<LessThanTyped/>
<LogicalNOT/>
<BranchIfTrue byteOffset="25"/>
<PushData>
<items>
<StackDouble value="0.000000000000000"/>
</items>
</PushData>
<Pop/>
<PushData>
<items>
<StackDictionaryLookup index="2"/>
<StackDictionaryLookup index="8"/>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<AddTyped/>
<SetVariable/>
<PushData>
<items>
<StackDouble value="0.000000000000000"/>
</items>
</PushData>
<Pop/>
<PushData>
<items>
<StackDictionaryLookup index="9"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="10"/>
<StackDictionaryLookup index="6"/>
</items>
</PushData>
<GetVariable/>
<PushData>
<items>
<StackDictionaryLookup index="11"/>
</items>
</PushData>
<AddTyped/>
<PushData>
<items>
<StackDictionaryLookup index="4"/>
</items>
</PushData>
<GetVariable/>
<AddTyped/>
<PushData>
<items>
<StackDictionaryLookup index="11"/>
</items>
</PushData>
<AddTyped/>
<PushData>
<items>
<StackDictionaryLookup index="2"/>
</items>
</PushData>
<GetVariable/>
<AddTyped/>
<SetMember/>
<EndAction/>
</actions>
</Event>
<Event flags1="0" flags2="0"/>
</events>
</PlaceObject2>


При желании можно изменить шрифт, цвет, размер часов (по умолчанию шрифт часов Arial)
В теге <DefineFont3 objectID="11" - меняется шрифт
name="Arial"

В теге <DefineEditText objectID="442" - меняется размер и цвет шрифта

fontHeight="700"
<Color red="238" green="238" blue="238" alpha="255"/>

В Notepad нажимаем Сохранить Как и сохраняем в папку c:\swfmill\. Для того, чтобы мы могли обратно скомпилировать xml в swf.
В командной строке вводим 2-ую команду:

swfmill xml2swf common.xml common.swf

.
Все, теперь у нас в папке файл common.swf обновился и там уже есть часы.
Копируем файл common.swf в папку res_mods (например: f:\Games\World_of_Tanks\res_mods\0.7.5\gui\flash\)
Вот и все!!!
Включаем игру и проверяем...

  • Upvote 10

Share this post


Link to post

Short link
Share on other sites

Пришлось делать таким способом, т.к. файл common.swf обратно собирается с ошибками, если его редактировать в Adobe Flash. Хотелось добавить часы без багов (ошибок). Данный способ хорош тем, что swf не декомлилируется, соответственно и ошибок нет, а по сути просто дописывается код (скрипт) для отображения часов.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Отличный гайд, как в прочем и форум. С помощью него, я смог поставить именно ту лампочку, какую хоте. Это я про форум говорил. :heh:

А если нужно, чтоб ещё и дни недели отображались, это как делать?

Edited by nokiamen
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

если надо и дни недели, дату, можно и это добавить, позже выложу код, который необходимо будет вставить ;)

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Как и обещал кодик для отображения даты:

<DefineFont3 objectID="11" isShiftJIS="0" isUnicode="0" isANSII="0" wideGlyphOffsets="0" italic="0" bold="1" language="1" name="Arial">
 <glyphs/>
 </DefineFont3>
 <DefineFontAlignZones objectID="11" csmTableHint="1">
 <zoneArrays/>
 </DefineFontAlignZones>
 <DefineEditText objectID="442" wordWrap="1" multiLine="1" password="0" readOnly="1" autoSize="0" hasLayout="1" notSelectable="1" hasBorder="0" isHTML="0" useOutlines="0" fontRef="11" fontHeight="490" align="2" leftMargin="0" rightMargin="0" indent="0" leading="40" variableName="" initialText="23:59:00 Day Date, Month">
 <size>
	 <Rectangle left="-40" right="11759" top="-40" bottom="4898"/>
 </size>
 <color>
	 <Color red="226" green="226" blue="226" alpha="255"/>
 </color>
 </DefineEditText>
 <DefineSprite objectID="443" frames="1">
 <tags>
	 <PlaceObject3 replace="0" depth="1" objectID="442" name="displayTime">
	 <transform>
		 <Transform transX="-7000" transY="-3300"/>
	 </transform>
	 <filters>
		 <Glow blurX="5.000000000000000" blurY="5.000000000000000" strength="3.000000000000000" innerGlow="0" knockout="0" passes="3">
		 <color>
			 <Color red="0" green="0" blue="0" alpha="255"/>
		 </color>
		 </Glow>
	 </filters>
	 </PlaceObject3>
	 <ShowFrame/>
	 <End/>
 </tags>
 </DefineSprite>
 <PlaceObject3 replace="0" depth="1" objectID="443" name="Date" blendMode="0" allflags1="2" allflags2="0">
 <transform>
	 <Transform transX="3014" transY="3935"/>
 </transform>
 <events>
	 <Event flags1="2" flags2="0">
	 <actions>
		 <Dictionary>
		 <strings>
			 <String value="now"/>
			 <String value="Date"/>
			 <String value="nDay"/>
			 <String value="weekdays"/>
			 <String value="getDay"/>
			 <String value="nMonth"/>
			 <String value="month"/>
			 <String value="getMonth"/>
			 <String value="nDate"/>
			 <String value="getDate"/>
			 <String value="is_zero_mon"/>
			 <String value="0"/>
			 <String value=""/>
			 <String value="nYear"/>
			 <String value="getFullYear"/>
			 <String value="12"/>
			 <String value="11"/>
			 <String value="10"/>
			 <String value="09"/>
			 <String value="08"/>
			 <String value="07"/>
			 <String value="06"/>
			 <String value="05"/>
			 <String value="04"/>
			 <String value="03"/>
			 <String value="02"/>
			 <String value="01"/>
			 <String value="суббота"/>
			 <String value="пятница"/>
			 <String value="четверг"/>
			 <String value="среда"/>
			 <String value="вторник"/>
			 <String value="понедельник"/>
			 <String value="воскресенье"/>
			 <String value="currentTime"/>
			 <String value="seconds"/>
			 <String value="getSeconds"/>
			 <String value="minutes"/>
			 <String value="getMinutes"/>
			 <String value="hours"/>
			 <String value="getHours"/>
			 <String value="ampm"/>
			 <String value="AM"/>
			 <String value="PM"/>
			 <String value="displayTime"/>
			 <String value="text"/>
			 <String value=":"/>
			 <String value="
"/>
			 <String value="-"/>
		 </strings>
		 </Dictionary>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="0"/>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="1"/>
		 </items>
		 </PushData>
		 <New/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="2"/>
			 <StackDictionaryLookup index="3"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="0"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="4"/>
		 </items>
		 </PushData>
		 <CallMethod/>
		 <GetMember/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDouble value="0.000000000000000"/>
		 </items>
		 </PushData>
		 <Pop/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="5"/>
			 <StackDictionaryLookup index="6"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="0"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="7"/>
		 </items>
		 </PushData>
		 <CallMethod/>
		 <GetMember/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="8"/>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="0"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="9"/>
		 </items>
		 </PushData>
		 <CallMethod/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="8"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackInteger value="10"/>
		 </items>
		 </PushData>
		 <LessThanTyped/>
		 <LogicalNOT/>
		 <BranchIfTrue byteOffset="13"/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="10"/>
			 <StackDictionaryLookup index="11"/>
		 </items>
		 </PushData>
		 <SetVariable/>
		 <BranchAlways byteOffset="8"/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="10"/>
			 <StackDictionaryLookup index="12"/>
		 </items>
		 </PushData>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="13"/>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="0"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="14"/>
		 </items>
		 </PushData>
		 <CallMethod/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDouble value="0.000000000000000"/>
		 </items>
		 </PushData>
		 <Pop/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="6"/>
			 <StackDictionaryLookup index="15"/>
			 <StackDictionaryLookup index="16"/>
			 <StackDictionaryLookup index="17"/>
			 <StackDictionaryLookup index="18"/>
			 <StackDictionaryLookup index="19"/>
			 <StackDictionaryLookup index="20"/>
			 <StackDictionaryLookup index="21"/>
			 <StackDictionaryLookup index="22"/>
			 <StackDictionaryLookup index="23"/>
			 <StackDictionaryLookup index="24"/>
			 <StackDictionaryLookup index="25"/>
			 <StackDictionaryLookup index="26"/>
			 <StackInteger value="12"/>
		 </items>
		 </PushData>
		 <DeclareArray/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="3"/>
			 <StackDictionaryLookup index="27"/>
			 <StackDictionaryLookup index="28"/>
			 <StackDictionaryLookup index="29"/>
			 <StackDictionaryLookup index="30"/>
			 <StackDictionaryLookup index="31"/>
			 <StackDictionaryLookup index="32"/>
			 <StackDictionaryLookup index="33"/>
			 <StackInteger value="7"/>
		 </items>
		 </PushData>
		 <DeclareArray/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="34"/>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="1"/>
		 </items>
		 </PushData>
		 <New/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="35"/>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="34"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="36"/>
		 </items>
		 </PushData>
		 <CallMethod/>
		 <SetLocalVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="37"/>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="34"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="38"/>
		 </items>
		 </PushData>
		 <CallMethod/>
		 <SetLocalVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="39"/>
			 <StackDouble value="0.000000000000000"/>
			 <StackDictionaryLookup index="34"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="40"/>
		 </items>
		 </PushData>
		 <CallMethod/>
		 <SetLocalVariable/>
		 <PushData>
		 <items>
			 <StackDouble value="0.000000000000000"/>
		 </items>
		 </PushData>
		 <Pop/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="39"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackInteger value="24"/>
		 </items>
		 </PushData>
		 <LessThanTyped/>
		 <LogicalNOT/>
		 <BranchIfTrue byteOffset="13"/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="41"/>
			 <StackDictionaryLookup index="42"/>
		 </items>
		 </PushData>
		 <SetVariable/>
		 <BranchAlways byteOffset="8"/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="41"/>
			 <StackDictionaryLookup index="43"/>
		 </items>
		 </PushData>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="39"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackInteger value="24"/>
		 </items>
		 </PushData>
		 <GreaterThanTyped/>
		 <LogicalNOT/>
		 <BranchIfTrue byteOffset="23"/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="39"/>
			 <StackDictionaryLookup index="39"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackInteger value="12"/>
		 </items>
		 </PushData>
		 <Substract/>
		 <SetVariable/>
		 <BranchAlways byteOffset="65492"/>
		 <PushData>
		 <items>
			 <StackDouble value="0.000000000000000"/>
		 </items>
		 </PushData>
		 <Pop/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="39"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackInteger value="10"/>
		 </items>
		 </PushData>
		 <LessThanTyped/>
		 <LogicalNOT/>
		 <BranchIfTrue byteOffset="12"/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="39"/>
			 <StackDictionaryLookup index="11"/>
			 <StackDictionaryLookup index="39"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="37"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackInteger value="10"/>
		 </items>
		 </PushData>
		 <LessThanTyped/>
		 <LogicalNOT/>
		 <BranchIfTrue byteOffset="12"/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="37"/>
			 <StackDictionaryLookup index="11"/>
			 <StackDictionaryLookup index="37"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="35"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackInteger value="10"/>
		 </items>
		 </PushData>
		 <LessThanTyped/>
		 <LogicalNOT/>
		 <BranchIfTrue byteOffset="25"/>
		 <PushData>
		 <items>
			 <StackDouble value="0.000000000000000"/>
		 </items>
		 </PushData>
		 <Pop/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="35"/>
			 <StackDictionaryLookup index="11"/>
			 <StackDictionaryLookup index="35"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <SetVariable/>
		 <PushData>
		 <items>
			 <StackDouble value="0.000000000000000"/>
		 </items>
		 </PushData>
		 <Pop/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="44"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="45"/>
			 <StackDictionaryLookup index="39"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="46"/>
		 </items>
		 </PushData>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="37"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="46"/>
		 </items>
		 </PushData>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="35"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="47"/>
		 </items>
		 </PushData>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="2"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="47"/>
		 </items>
		 </PushData>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="10"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="8"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="48"/>
		 </items>
		 </PushData>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="5"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="48"/>
		 </items>
		 </PushData>
		 <AddTyped/>
		 <PushData>
		 <items>
			 <StackDictionaryLookup index="13"/>
		 </items>
		 </PushData>
		 <GetVariable/>
		 <AddTyped/>
		 <SetMember/>
		 <EndAction/>
	 </actions>
	 </Event>
	 <Event flags1="0" flags2="0"/>
 </events>
 </PlaceObject3>

 

e4f82adc689389e18a4227e78b8cba08.jpg

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

А попроще никак?

А попроще - скачать готовый мод :)

Share this post


Link to post

Short link
Share on other sites

А попроще никак?

Это и так попроще, код уже готовый давал, просто скопировать и вставить. Да и вообще там все просто. Намного больше времени заняло написать гайд, чем сделать часы (довавить часы занимает от силы 3-5 минут)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

А как редактировать уже имеющийся блок?

К примеру добавить или удалить.

Edited by iMDM

Share this post


Link to post

Short link
Share on other sites

А можно вместо часов другую информацию выводить?

 

Например, я бы хотел видеть некий рейтинг эффективности, т.е. взять значения (количество боев, побед, нанесенных повреждений и т.д.) вставить их в формулу и вывести число!!!

 

Немного вижу логики работы часов, но возможно ошибаюсь, как то в xml формате не понятно программирование...

 

Пожалуйста, не отвечате одним ответом "да" или "можно", немного направте по нужному направлению, если трудно подробно объяснить.

А я дальше уже сам постараюсь и если получиться, то тож могу мод выложить, если кому надо ;)

Edited by samroid

Share this post


Link to post

Short link
Share on other sites

А можно вместо часов другую информацию выводить?

 

Например, я бы хотел видеть некий рейтинг эффективности, т.е. взять значения (количество боев, побед, нанесенных повреждений и т.д.) вставить их в формулу и вывести число!!!

 

Немного вижу логики работы часов, но возможно ошибаюсь, как то в xml формате не понятно программирование...

 

Пожалуйста, не отвечате одним ответом "да" или "можно", немного направте по нужному направлению, если трудно подробно объяснить.

А я дальше уже сам постараюсь и если получиться, то тож могу мод выложить, если кому надо ;)

Не получится просто "взять значения (количество боев, побед, нанесенных повреждений и т.д.)" - этих данных клиент не знает. Задумка хорошая, но не вы первый.

Share this post


Link to post

Short link
Share on other sites

Не получится просто "взять значения (количество боев, побед, нанесенных повреждений и т.д.)" - этих данных клиент не знает. Задумка хорошая, но не вы первый.

 

Мне бы для начала просто понять, можно ли вывести некое число, допустим число "12345" и главное как?

Из часов не очень логика программирования понятна, может кто расстолкует немного, как работают часы...

 

Далее, ведь по нажатию "Достижения" клиент показывает количество боев, а значит может узнать как-то эти данные. Может быть надо в другие файлы посмотреть, которые за достижения отвечают и от туда кусок кода взять.

 

И наверное можно ведь и запрос по http сделать (на офф сайт или другие) и через парсинг взять нужные значения.

 

мне бы пока понять как значения выводить свои, а дальше уже найду решение ;)

Edited by samroid

Share this post


Link to post

Short link
Share on other sites

Как и обещал кодик для отображения даты:



<DefineFont3 objectID="11" isShiftJIS="0" isUnicode="0" isANSII="0" wideGlyphOffsets="0" italic="0" bold="1" language="1" name="Arial">
	 <glyphs/>
	 </DefineFont3>
	 <DefineFontAlignZones objectID="11" csmTableHint="1">
	 <zoneArrays/>
	 </DefineFontAlignZones>
	 <DefineEditText objectID="442" wordWrap="1" multiLine="1" password="0" readOnly="1" autoSize="0" hasLayout="1" notSelectable="1" hasBorder="0" isHTML="0" useOutlines="0" fontRef="11" fontHeight="490" align="2" leftMargin="0" rightMargin="0" indent="0" leading="40" variableName="" initialText="23:59:00 Day Date, Month">
	 <size>
		 <Rectangle left="-40" right="11759" top="-40" bottom="4898"/>
	 </size>
	 <color>
		 <Color red="226" green="226" blue="226" alpha="255"/>
	 </color>
	 </DefineEditText>
	 <DefineSprite objectID="443" frames="1">
	 <tags>
		 <PlaceObject3 replace="0" depth="1" objectID="442" name="displayTime">
		 <transform>
			 <Transform transX="-7000" transY="-3300"/>
		 </transform>
		 <filters>
			 <Glow blurX="5.000000000000000" blurY="5.000000000000000" strength="3.000000000000000" innerGlow="0" knockout="0" passes="3">
			 <color>
				 <Color red="0" green="0" blue="0" alpha="255"/>
			 </color>
			 </Glow>
		 </filters>
		 </PlaceObject3>
		 <ShowFrame/>
		 <End/>
	 </tags>
	 </DefineSprite>
	 <PlaceObject3 replace="0" depth="1" objectID="443" name="Date" blendMode="0" allflags1="2" allflags2="0">
	 <transform>
		 <Transform transX="3014" transY="3935"/>
	 </transform>
	 <events>
		 <Event flags1="2" flags2="0">
		 <actions>
			 <Dictionary>
			 <strings>
				 <String value="now"/>
				 <String value="Date"/>
				 <String value="nDay"/>
				 <String value="weekdays"/>
				 <String value="getDay"/>
				 <String value="nMonth"/>
				 <String value="month"/>
				 <String value="getMonth"/>
				 <String value="nDate"/>
				 <String value="getDate"/>
				 <String value="is_zero_mon"/>
				 <String value="0"/>
				 <String value=""/>
				 <String value="nYear"/>
				 <String value="getFullYear"/>
				 <String value="12"/>
				 <String value="11"/>
				 <String value="10"/>
				 <String value="09"/>
				 <String value="08"/>
				 <String value="07"/>
				 <String value="06"/>
				 <String value="05"/>
				 <String value="04"/>
				 <String value="03"/>
				 <String value="02"/>
				 <String value="01"/>
				 <String value="суббота"/>
				 <String value="пятница"/>
				 <String value="четверг"/>
				 <String value="среда"/>
				 <String value="вторник"/>
				 <String value="понедельник"/>
				 <String value="воскресенье"/>
				 <String value="currentTime"/>
				 <String value="seconds"/>
				 <String value="getSeconds"/>
				 <String value="minutes"/>
				 <String value="getMinutes"/>
				 <String value="hours"/>
				 <String value="getHours"/>
				 <String value="ampm"/>
				 <String value="AM"/>
				 <String value="PM"/>
				 <String value="displayTime"/>
				 <String value="text"/>
				 <String value=":"/>
				 <String value="
"/>
				 <String value="-"/>
			 </strings>
			 </Dictionary>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="0"/>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="1"/>
			 </items>
			 </PushData>
			 <New/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="2"/>
				 <StackDictionaryLookup index="3"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="0"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="4"/>
			 </items>
			 </PushData>
			 <CallMethod/>
			 <GetMember/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDouble value="0.000000000000000"/>
			 </items>
			 </PushData>
			 <Pop/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="5"/>
				 <StackDictionaryLookup index="6"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="0"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="7"/>
			 </items>
			 </PushData>
			 <CallMethod/>
			 <GetMember/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="8"/>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="0"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="9"/>
			 </items>
			 </PushData>
			 <CallMethod/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="8"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackInteger value="10"/>
			 </items>
			 </PushData>
			 <LessThanTyped/>
			 <LogicalNOT/>
			 <BranchIfTrue byteOffset="13"/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="10"/>
				 <StackDictionaryLookup index="11"/>
			 </items>
			 </PushData>
			 <SetVariable/>
			 <BranchAlways byteOffset="8"/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="10"/>
				 <StackDictionaryLookup index="12"/>
			 </items>
			 </PushData>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="13"/>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="0"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="14"/>
			 </items>
			 </PushData>
			 <CallMethod/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDouble value="0.000000000000000"/>
			 </items>
			 </PushData>
			 <Pop/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="6"/>
				 <StackDictionaryLookup index="15"/>
				 <StackDictionaryLookup index="16"/>
				 <StackDictionaryLookup index="17"/>
				 <StackDictionaryLookup index="18"/>
				 <StackDictionaryLookup index="19"/>
				 <StackDictionaryLookup index="20"/>
				 <StackDictionaryLookup index="21"/>
				 <StackDictionaryLookup index="22"/>
				 <StackDictionaryLookup index="23"/>
				 <StackDictionaryLookup index="24"/>
				 <StackDictionaryLookup index="25"/>
				 <StackDictionaryLookup index="26"/>
				 <StackInteger value="12"/>
			 </items>
			 </PushData>
			 <DeclareArray/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="3"/>
				 <StackDictionaryLookup index="27"/>
				 <StackDictionaryLookup index="28"/>
				 <StackDictionaryLookup index="29"/>
				 <StackDictionaryLookup index="30"/>
				 <StackDictionaryLookup index="31"/>
				 <StackDictionaryLookup index="32"/>
				 <StackDictionaryLookup index="33"/>
				 <StackInteger value="7"/>
			 </items>
			 </PushData>
			 <DeclareArray/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="34"/>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="1"/>
			 </items>
			 </PushData>
			 <New/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="35"/>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="34"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="36"/>
			 </items>
			 </PushData>
			 <CallMethod/>
			 <SetLocalVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="37"/>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="34"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="38"/>
			 </items>
			 </PushData>
			 <CallMethod/>
			 <SetLocalVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="39"/>
				 <StackDouble value="0.000000000000000"/>
				 <StackDictionaryLookup index="34"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="40"/>
			 </items>
			 </PushData>
			 <CallMethod/>
			 <SetLocalVariable/>
			 <PushData>
			 <items>
				 <StackDouble value="0.000000000000000"/>
			 </items>
			 </PushData>
			 <Pop/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="39"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackInteger value="24"/>
			 </items>
			 </PushData>
			 <LessThanTyped/>
			 <LogicalNOT/>
			 <BranchIfTrue byteOffset="13"/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="41"/>
				 <StackDictionaryLookup index="42"/>
			 </items>
			 </PushData>
			 <SetVariable/>
			 <BranchAlways byteOffset="8"/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="41"/>
				 <StackDictionaryLookup index="43"/>
			 </items>
			 </PushData>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="39"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackInteger value="24"/>
			 </items>
			 </PushData>
			 <GreaterThanTyped/>
			 <LogicalNOT/>
			 <BranchIfTrue byteOffset="23"/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="39"/>
				 <StackDictionaryLookup index="39"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackInteger value="12"/>
			 </items>
			 </PushData>
			 <Substract/>
			 <SetVariable/>
			 <BranchAlways byteOffset="65492"/>
			 <PushData>
			 <items>
				 <StackDouble value="0.000000000000000"/>
			 </items>
			 </PushData>
			 <Pop/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="39"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackInteger value="10"/>
			 </items>
			 </PushData>
			 <LessThanTyped/>
			 <LogicalNOT/>
			 <BranchIfTrue byteOffset="12"/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="39"/>
				 <StackDictionaryLookup index="11"/>
				 <StackDictionaryLookup index="39"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="37"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackInteger value="10"/>
			 </items>
			 </PushData>
			 <LessThanTyped/>
			 <LogicalNOT/>
			 <BranchIfTrue byteOffset="12"/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="37"/>
				 <StackDictionaryLookup index="11"/>
				 <StackDictionaryLookup index="37"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="35"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackInteger value="10"/>
			 </items>
			 </PushData>
			 <LessThanTyped/>
			 <LogicalNOT/>
			 <BranchIfTrue byteOffset="25"/>
			 <PushData>
			 <items>
				 <StackDouble value="0.000000000000000"/>
			 </items>
			 </PushData>
			 <Pop/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="35"/>
				 <StackDictionaryLookup index="11"/>
				 <StackDictionaryLookup index="35"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <SetVariable/>
			 <PushData>
			 <items>
				 <StackDouble value="0.000000000000000"/>
			 </items>
			 </PushData>
			 <Pop/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="44"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="45"/>
				 <StackDictionaryLookup index="39"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="46"/>
			 </items>
			 </PushData>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="37"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="46"/>
			 </items>
			 </PushData>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="35"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="47"/>
			 </items>
			 </PushData>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="2"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="47"/>
			 </items>
			 </PushData>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="10"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="8"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="48"/>
			 </items>
			 </PushData>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="5"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="48"/>
			 </items>
			 </PushData>
			 <AddTyped/>
			 <PushData>
			 <items>
				 <StackDictionaryLookup index="13"/>
			 </items>
			 </PushData>
			 <GetVariable/>
			 <AddTyped/>
			 <SetMember/>
			 <EndAction/>
		 </actions>
		 </Event>
		 <Event flags1="0" flags2="0"/>
	 </events>
	 </PlaceObject3>

 

e4f82adc689389e18a4227e78b8cba08.jpg

А где в коде меняется язык? Хочу украинский поставить.

Share this post


Link to post

Short link
Share on other sites

Мне бы для начала просто понять, можно ли вывести некое число, допустим число "12345" и главное как?

Из часов не очень логика программирования понятна, может кто расстолкует немного, как работают часы...

 

Далее, ведь по нажатию "Достижения" клиент показывает количество боев, а значит может узнать как-то эти данные. Может быть надо в другие файлы посмотреть, которые за достижения отвечают и от туда кусок кода взять.

 

И наверное можно ведь и запрос по http сделать (на офф сайт или другие) и через парсинг взять нужные значения.

 

мне бы пока понять как значения выводить свои, а дальше уже найду решение ;)

 

Из модулей интерфейса нельзя делать запросы по http)

 

А вообще, лучше бы автор действительно написал, как он получил этот код. Декомпилировал собственный модуль?

 

А где в коде меняется язык? Хочу украинский поставить.

Судя по всему здесь прописаны названия дней недели.

      <String value="суббота"/>
     <String value="пятница"/>
     <String value="четверг"/>
     <String value="среда"/>
     <String value="вторник"/>
     <String value="понедельник"/>
     <String value="воскресенье"/>

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

3af53fa838d05ac07cbf869d783db459.jpg

 

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

 


     <String value="субота"/>
     <String value="п'ятниця"/>
     <String value="четвер"/>
     <String value="середа"/>
     <String value="вівторок"/>
     <String value="понеділок"/>
     <String value="неділя"/>
Edited by _Cezar_

Share this post


Link to post

Short link
Share on other sites
Судя по всему здесь прописаны названия дней недели.

 

 
     <String value="суббота"/>
     <String value="пятница"/>
     <String value="четверг"/>
     <String value="среда"/>
     <String value="вторник"/>
     <String value="понедельник"/>
     <String value="воскресенье"/>

Спасибо, ты был прав.

Share this post


Link to post

Short link
Share on other sites

После введения обучения возникла необходимость переместить часы правее.

Подскажите где это делается.

 

Нашел на офф. форуме

 

Есть ли возможность сделать время шрифтом одного размера, а день недели и дату меньшим?

Edited by _Cezar_

Share this post


Link to post

Short link
Share on other sites

Такой вопрос путь "(\World_of_Tanks\res\packages\gui.pkg\gui\flash\)" нет такого пути.

По этому пути World_of_Tanks\res\packages\gui.pkg только файл гуи-пкг нет папки гум и флеш.

Где находится файл common.swf ?

Заранее спасибо.

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...