Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты на Unity

Ответ
 
Опции темы
Старый 26.07.2016, 14:43   #16
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Всё просто
http://shgames.ru/index.php?title=%D...BE%D0%BD%D1%8B
Пример использования сферической интерполяции в Unity3D
// Интерполяция между двумя вращениями.
// (Назначьте два разных объекта на переменные from и to 
// и данный объект повернется начиная с вращения первого, 
// приняв в итоге вращение второго )
 
using UnityEngine;
 
public class 
example MonoBehaviour {
    public 
Transform from;
    public 
Transform to;
    public 
float speed 0.1F;
    
void Update() {
        
transform.rotation Quaternion.Slerp(from.rotationto.rotationTime.time speed);
    }

Теперь и планета поворачивается в место клика
Вложения
Тип файла: rar Mistshift.rar (7.66 Мб, 506 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (06.08.2016)
Старый 26.07.2016, 15:01   #17
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Mistshift Обучение

Есть еще куча официальных уроков как по юнити3д так и по C#.
http://unity3d.com/learn/tutorials

Естественно, что все на английском.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Foxymist (26.07.2016)
Старый 27.07.2016, 02:22   #18
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Доделал то, что хотел, что то получается уже

Для перемещения по сфере можно кликать по ней, кликать по кубам для перемещения к ним, расставлять “Станции” пробелом. Сейчас можно ставить друг в друга “Станции”

Дальше в планах ООП, уже сейчас чувствую что необходимо.
Вложения
Тип файла: rar Mistshift.rar (7.80 Мб, 510 просмотров)
(Offline)
 
Ответить с цитированием
Старый 27.07.2016, 08:54   #19
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Mistshift Обучение

Сообщение от Foxymist Посмотреть сообщение
Дальше в планах ООП, уже сейчас чувствую что необходимо.
чего? Т.е ты на шарпе до этого без него писал типо?
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 27.07.2016, 12:39   #20
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Сообщение от RegIon Посмотреть сообщение
чего? Т.е ты на шарпе до этого без него писал типо?
Типо. Несовсем так, вот он пишет;

https://habrahabr.ru/post/148015/
1. Наследование. Есть пекарь. Есть печь электрическая и газовая. Ваша задача смоделировать процесс приготовления пищи пекарем в каждой из печи. Решая задачу в лоб, у нас будет много дублирования кода из-за того, что сам процесс передачи пищи в печь и сама работа с печами идентичны для обеих печей. Но если мы включаем объектное мышление, и вспоминаем про инструмент наследование, то получаем примерно следующее (диаграмму лень рисовать, сорри):
Есть печь (абстрактная печь). У нее есть поведение — включить, выключить, увеличить или уменьшить температуру, положить чего-то, достать чего-то и состояние — температура в печи, включена или выключена. Это отличный пример абстрактного объекта в котором соблюдены принципы инкапсуляции (при реализации я их обязательно буду соблюдать). И есть пекарь, конкретный такой пекарь Иван. Он умеет работать с абстрактной печью. Т.е. смотреть температуру, включать выключать и т.д. вы поняли. Сила наследования в том, что нам не придется переписывать нашего Ивана для каждой из печей, будь то электро или газовая печь. Я думаю всем ясно почему? Получается что инструмент применен правильно.
А у меня есть скрипт “PickedEntity” он двигает сферу при клике(Камеру вокруг сферы) а вчера я продублировал его “PickedEntity1” и добавил возможность клонирования объекта(Станции - куба)
Вот и понял, что тут чтото не так, а конкретно я не использую ООП а надо бы.
Я не особо в этом разбираюсь, возможно, неправильно выразился.
(Offline)
 
Ответить с цитированием
Старый 27.07.2016, 15:21   #21
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Mistshift Обучение

Ты вообще ничего пока что не понял.

Сообщение от Foxymist Посмотреть сообщение
А у меня есть скрипт “PickedEntity” он двигает сферу при клике(Камеру вокруг сферы) а вчера я продублировал его “PickedEntity1” и добавил возможность клонирования объекта(Станции - куба)
Вот и понял, что тут чтото не так, а конкретно я не использую ООП а надо бы.
Это называется Entity Component System.
У тебя на сцене есть объект и по сути это просто точка в пространстве как в блитзе пивот (CreatePivot()). На нем есть уже стандартные от юнити3д компоненты (Transform, Renderer, etc) и ты еще навешиваешь свои компоненты (скрипты), которые им или другими объектами как то манипулируют.

Сообщение от Foxymist Посмотреть сообщение
Типо. Несовсем так, вот он пишет;
https://habrahabr.ru/post/148015/
У тебя вот есть станция. Если ты захочешь добавить еще одну станцию, то ты вероятно как в блитзе начнешь писать новый код для этой станции. Но если подумать, то у станций если некоторые одинаковые возможности. Допустим стандартная возможность это продать станцию.
В случае без ООП ты будешь писать два раза функцию ПродатьСтанцию1() и ПродатьСтанцию2().
С ООП ты можешь сделать базовый класс для станций.
public class Station {
    protected 
int cost 100 // цена станции

    
public virtual void Sell(){     // функция продажи станции
        
playerMoney += cost 2;    // возвращаем половину цены за станцию в казну
    
}

Далее код станции Харвестера:
// создаем новый класс для Харвестера
public class StationHarvester Station //  и наследуем возможности из класса "Station"
// и вдруг оказалось, что Харвестер при постройке занимает
// 10 единиц электричества (привет Red Alert, C&C: Generals)
// и соответственно нужно возвращать в казну эти 10 единиц электричества, но 
// в базовой функции продажи такой возможности нет. Поэтому нужно изменить функцию (перезаписать).

    
public override void Sell(){
        
playerEnergy += 10;        // новая возможность (возвращение энергии)
        
base.Sell();             // и при этом через base.Sell() мы вызываем стандартную функцию продажи, которая 
                                // возвращает деньги за станцию.
    
}

1. Меньше кода нужно писать ведь функция Sell может быть огромная, а тут изменили одну строку при той же
функциональности.
2. Если нужно все переделать, то это будет легко и все внезапно не перестанет работать так как все
разложено по полочкам (по классам), а не как в Блитзе все в одной куче.

Главное не слишком увлекаться "разбиением" по классам и функциям. Еще есть интерфейсы, но это уже другая история.

playerEnergy += 10; - "+=" это тоже самое, что и "playerEnergy = playerEnergy + 10;"
virtual - это ключевое слово значит, что если это класс кто-то наследует, то эту функцию можно изменить.
override - это ключевое слово значит, что мы изменяем (перезаписываем) функцию, которая кстати должна быть помечена ключевым словом virtual.
Вроде можно изменять (перезаписывать) функцию в лоб просто объявив новую с таким же именем, но тогда мы потеряем возможности старой функции и это вроде не совсем правильно.

Пример не самый лучший, но возможно поможет не много разобраться.
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо Nex за это полезное сообщение:
ABTOMAT (28.07.2016), Foxymist (27.07.2016), impersonalis (03.08.2016), Randomize (31.07.2016), St_AnGer (31.07.2016)
Старый 28.07.2016, 19:50   #22
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Изменил управление так вроде удобнее.

Использовал этот пример: http://wiki.unity3d.com/index.php/Mo...fiteRotateZoom

Обзор - Зажать правую кнопку мыши + двигаем мышь.
Зум -Скроллинг .
Передвинуть орбитальную станцию; Клик по сфере левая кнопка мыши.
Строить можно только там, где орбитальная станция и в определённом радиусе вокруг неё.
Стройка – Пробел.
Планета вращается вокруг звезды.
Вложения
Тип файла: rar Mistshift.rar (7.80 Мб, 501 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (28.07.2016)
Старый 31.07.2016, 01:24   #23
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Вот что готово;
Немного осваивая ГУИ написал вот такой скрипт ;
using UnityEngine;
using System.Collections;

public class 
NameUnit MonoBehaviour {

    private 
RaycastHit hit;
    public 
string UnitName;
    public 
Color ColorText;
    public 
int UnitHP;
    public 
int HP=0;
    public 
Color ColorHP;
    public 
int UnitEnergy;
    public 
int E=0;
    public 
Color ColorEnergy;
    private 
float distanceVector;
    public 
Transform AlienUnit;

    
void Start () {

    }
    
    
Vector3 TextPos;

    
void OnGUI()
    {

        
TextPos Camera.main.WorldToScreenPoint (transform.position);

    if (
Input.GetKey(KeyCode.Q)) 
       {
     
        
    
GUI.Label (new Rect (TextPos.xScreen.height TextPos.y5050), UnitName);
    
GUI.color Color.black ColorText;
    
GUI.Label (new Rect (TextPos.xScreen.height TextPos.- (20), 5050), "HP:" UnitHP);


        }    
        
//Transform Unit;
        
distanceVector Vector3.Distance (gameObject.transform.position AlienUnit.position);

        if (
distanceVector <2)
        {
        if (
Input.GetKeyDown (KeyCode.F1)) {
            
UnitHP -= 10;
        }

        if (
Input.GetKeyDown (KeyCode.F2)) {
            
UnitEnergy -= 10;
        }


        
//if (Input.GetKeyDown (KeyCode.F3)) {
        //    UnitHP += 10;
        //}
        
        //if (Input.GetKeyDown (KeyCode.F4)) {
        //    UnitEnergy += 10;
        //}
         
}

        
//UnitHP
        
HP UnitHP;

        if (
HP>99){HP=100;}
        if (
HP<1){gameObject.activefalse;}

        
GUI.color Color.black+ColorHP;
        for (
int i 0<HPi=i+1
        
        {
        
            
GUI.Label (new Rect ((TextPos.x+(i)-HP/2), Screen.height TextPos.- (35), 1010), "|");

        }

        
//UnitEnergy
        
UnitEnergy;
        
        if (
E>99){E=100;}
        if (
E<1){E=0UnitEnergy=0;}

        
GUI.color Color.black+ColorEnergy;
        for (
int i 0<Ei=i+1
            
        {
            
            
GUI.Label (new Rect ((TextPos.x+(i)-E/2), Screen.height TextPos.- (30), 1010), "|");
            
        }

    }

    
void Update () 
    {
    
    }

Появилось ХП и Энергия чтобы отнять нужно чтобы зеленый маркер находился рядом c юнитом. “F1” отнять ХП “F2” отнять Энергию.
“Q” подробности. Юнит исчезает если HP=0

Теперь надо обернуть всё в базовый класс ну ООП вобщем…

Немного разобрался с ГУИ.

На скриншоте с зажатой “Q” подробности.

Миниатюры
Нажмите на изображение для увеличения
Название: 01.png
Просмотров: 888
Размер:	409.4 Кб
ID:	22450  Нажмите на изображение для увеличения
Название: Untitled - 2.png
Просмотров: 691
Размер:	264.9 Кб
ID:	22451  
Вложения
Тип файла: rar Mistshift.rar (7.81 Мб, 503 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (31.07.2016)
Старый 02.08.2016, 23:49   #24
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Немного продвинулся в перёд :
Теперь харвестер сосёт туман, количество и скорость всасываемого, зависит от дистанции между харвестером и орбитальной станцией.

На планете простой скрипт, имя планеты, общее количество тумана и сколько тумана осталось.

В верхнем левом углу, отображается - количество собранного тумана.
Немного оптимизировал скрип:

using UnityEngine;
using System.Collections;

public class 
NameUnit MonoBehaviour {

    public static 
NameUnit Instance get; private set; }
    
    public 
string UnitName;
    public 
Color ColorText;

    public 
float UnitHP;
    public 
Color ColorHP;

    public 
float UnitEnergy;
    public 
Color ColorEnergy;
    
    public 
float Resurs;
    public 
Color ColorResurs;

    private 
float distanceVector;
    public 
float distanceOrbitalStation;

    public 
Transform AlienUnit;
    public 
Transform OrbitalStationUnit;
    
    private 
float HarvestMistRes;

    public 
bool componentHarvest;

    
void Start () {

        
//HarvestMistRes = Mist.Instance.MistPlanet;
    
}


    public 
void Awake()
    {
        
Instance this;
    
    }


    
Vector3 TextPos;

    
void OnGUI()
    {
          
                
TextPos Camera.main.WorldToScreenPoint (transform.position);

                if (
Input.GetKey (KeyCode.Q)) {
     
                
GUI.Label (new Rect (TextPos.xScreen.height TextPos.y5050), UnitName);
                
GUI.color Color.black ColorText;
                
GUI.Label (new Rect (TextPos.xScreen.height TextPos.- (20), 5050), "HP:" UnitHP);

                }    

        if (
componentHarvest == true) {GUIResursProgress (ResursColorResurs40);}

        
GUIResursProgress (UnitHPColorHP35);
        
GUIResursProgress (UnitEnergyColorEnergy30);

              }

    
void Update () 
    {


        
distanceVector DistanceUnit(gameObject.transformAlienUnit);

        
distanceOrbitalStation DistanceUnit(gameObject.transformOrbitalStationUnit);

        
        if (
Input.GetKeyDown (KeyCode.F1) && distanceVector<5) {UnitHP-=10;}
        
        
//UnitHP
        
UnitHP=HPUnit(UnitHP,gameObject);

        
//UnitEnergy
        
if (distanceOrbitalStation 20) {UnitEnergy Energy(UnitEnergy,100,20,1);}
        
        if (
distanceOrbitalStation 20) {UnitEnergy Energy(UnitEnergy,100,20,0);}

        
//UnitResurs
        
if (componentHarvest == true) {Resurs ResursLimit (80Resurs100UnitEnergy20);}

    }

    
//Function=====================================================================================================================================
    
public void GUIResursProgress(float ResursGUIColor ResursColorint TextYPos)
        
    {
        
        
GUI.color Color.black ResursColor;
        for (
int i 0<ResursGUIi=i+1
        {
            
            
GUI.Label (new Rect ((TextPos.+ (i) - ResursGUI 2), Screen.height TextPos.- (TextYPos), 5050), ".");
            
        }

    }

    public static 
float DistanceUnit(Transform A,Transform B)

    {
        return 
Vector3.Distance (A.positionB.position);
    }


    public static 
float HPUnit(float HPGameObject gameObject)

    {
        if (
HP 100) {HP 100;}
        
        if (
HP 1) {gameObject.active false;}

        return 
HP;
    }

    public static 
float Energy(float E,float Max,float Min int FlagIE)
        
    {

        if (
FlagIE == 

        {
             
+= 10f TimeRTS ();
        
            if (
Max) {=Max;}
        }


        if (
FlagIE == 
        {
            
-= 10f TimeRTS ();

            if (
Min ) {Min;}
            
        }


        return 
E;
    }
    
    public static 
float ResursLimit(float UpdateHarvest ,float ResursHarvestfloat MaxResursfloat ResursEnergyfloat EnergyDist)
        
    {
        if (
Mist.Instance.MistPlanet 0

                 {

                        if (
ResursHarvest MaxResurs && ResursEnergy EnergyDist) {
                                
ResursHarvest += 50f TimeRTS ();
                        }

                        if (
ResursHarvest MaxResurs && ResursEnergy == EnergyDist) {
                                
ResursHarvest += 10f TimeRTS ();
                                
UpdateHarvest=99.9f;
                        }
        
                        if (
ResursHarvest MaxResurs) {
                                
ResursHarvest 0;
                        } 

                        if (
ResursHarvest MaxResurs && ResursHarvest UpdateHarvest && Mist.Instance.MistPlanet 0) {
            
                          
Mist.Instance.MistPlanet--;//Resurs

                        
}

             }

        return 
ResursHarvest;
        
    }
    
    public static 
float TimeRTS(float t=1.0f )
        
    {
        return 
Time.deltaTime*t;
    }
//Function=====================================================================================================================================    

Управление осталось тем же Узнать о планете больше “Q”
Обзор - Зажать правую кнопку мыши + двигаем мышь.
Зум -Скроллинг .
Передвинуть орбитальную станцию; Клик по сфере левая кнопка мыши.
Строить можно только там, где орбитальная станция и в определённом радиусе вокруг неё.
Стройка – Пробел.
Сейчас в планах сделать GUI механизм покупки – продажи.
Миниатюры
Нажмите на изображение для увеличения
Название: Mistshift.png
Просмотров: 688
Размер:	613.4 Кб
ID:	22455  
Вложения
Тип файла: rar Mistshift.rar (7.81 Мб, 535 просмотров)
(Offline)
 
Ответить с цитированием
Старый 03.08.2016, 01:46   #25
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Mistshift Обучение

А можно ты не будешь вываливать километровые листинги кода, а вместо этого, как белый человек, дашь ссылку на гитхаб с сорцами? Интересующиеся заглянут, а нам простыни пролистывать не придётся...
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Foxymist (03.08.2016)
Старый 03.08.2016, 12:39   #26
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Mistshift Обучение

Сообщение от Nex Посмотреть сообщение
playerMoney += cost 2;    // возвращаем половину цены за станцию в казну 
После пары подстав от MATLAB, такие конструкции вызывают у меня неудобство. Укажите явно: ЧТО делать с дробной частью (в общем случае, возможны 4 варианта) до её каста к типу операнда слева - floor, ceil, round, fix?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (10.08.2016)
Старый 03.08.2016, 14:18   #27
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Mistshift Обучение

Сообщение от impersonalis Посмотреть сообщение
После пары подстав от MATLAB, такие конструкции вызывают у меня неудобство. Укажите явно: ЧТО делать с дробной частью (в общем случае, возможны 4 варианта) до её каста к типу операнда слева - floor, ceil, round, fix?
protected int cost = 100 // цена станции
Думаю тут в любом случае будет 50. И если указать 2.0 или 2f, то вероятно C# сообщит о том, что float не может быть int.
Или я не правильно что-то понял?
(Offline)
 
Ответить с цитированием
Старый 03.08.2016, 14:18   #28
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Сообщение от Taugeshtu Посмотреть сообщение
А можно ты не будешь вываливать километровые листинги кода, а вместо этого, как белый человек, дашь ссылку на гитхаб с сорцами? Интересующиеся заглянут, а нам простыни пролистывать не придётся...
Хорошо в будущем буду прятать под OFFtop’ы.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Foxymist за это полезное сообщение:
St_AnGer (03.08.2016), Taugeshtu (03.08.2016)
Старый 03.08.2016, 15:38   #29
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Mistshift Обучение

Сообщение от Nex Посмотреть сообщение
Думаю тут в любом случае будет 50. И если указать 2.0 или 2f, то вероятно C# сообщит о том, что float не может быть int.
Или я не правильно что-то понял?
не обращай внимания - я придираюсь. В M могла образоваться даже в априори целом результате единичка где-нить на n-ой позиции после запятой (т.е. её ещё и невидно при стандартном выводе), что при округлении в бОльшую сторону добавляло аж единицу.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (03.08.2016)
Старый 06.08.2016, 15:29   #30
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Не стал делать GUI, просто почитал у вас тут http://forum.boolean.name/forumdisplay.php?f=167
там всё просто, мне нужно только определиться, каким оно должно быть, и какой метод использовать.

Новое; сделал основу для выбора и покупки юнитов , пока их два HarvestStation за 100 “Тумана” и ProtectStation за 10 “Тумана”
ProtectStation просто как альтернатива для тестирования (Пустышка) но её можно убить.

Выбор что строить цифры 1,2… выйти из режима строительства правая кнопка мыши.

Изначально у вас 100 тумана советую приобрести HarvestStation.

Нужно ещё пару мелочей дописать и дальше проще будет, пиши себе скрипты да придумывай
юнитов.

Энергия теперь отнимается нормально и скорость добычи тоже.
UnitEnergy Energy(UnitStaticEnergy-distanceOrbitalStation,100,20,1);

Resurs ResursLimit (100-(UnitEnergy/32), Resurs100); 
Вложения
Тип файла: rar Mistshift.rar (7.81 Мб, 527 просмотров)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:46.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com