Рыцарская Сага

Главная Регистрация Вход
Понедельник, 02.12.2024, 20:43

Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Похоже, я у вас тут поселюсь...
RevoleДата: Понедельник, 17.02.2014, 18:03 | Сообщение # 1
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Приветствую всех...

Так как на форум http://knighttale.mybb3.ru/ видать никто не заходит, решил создать эту тему здесь... Всё ещё делаю свой модуль, но блин тыщу раз переделывал и удалял, сейчас опять решил заняться им, по серьезному. И накопились таких вот два вопроса:

1. Как задать определенное время суткам. Мне надо, что бы запустился скрипт, который установит определенный час (например час ночи). Ну, или просто сделает ночь.

2. Проверку на наличие спутника у персонажа (я хз засчитываются ли фамильяры спутниками или нет, но они по сути не в счет).

3. Можно ли как-то скриптом завершить режим боя?

4. Проверка на наличие враждебных мобов в локации. Слот ХБ на локации

П.С Хотелось бы выразить большую благодарность Геннадию, т.к с его помощи и раздела "игроделу" я научился чувствовать себя в тулсете более менее свободно.


Сообщение отредактировал Revole - Понедельник, 17.02.2014, 20:00
 
RemmДата: Вторник, 18.02.2014, 09:21 | Сообщение # 2
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Привет! hi Мы перебрались на Юкос, тут вроде форум нормальный.
Сейчас под рукой нет тулсета, вечером отвечу на все вопросы.
Цитата Revole ()
2. Проверку на наличие спутника у персонажа (я хз засчитываются ли фамильяры спутниками или нет, но они по сути не в счет).

Можно делать все проверки на наличие спутникоф, фамильяров, подконтрольных...
Цитата Revole ()
3. Можно ли как-то скриптом завершить режим боя?

Я рекомендую наш скрипт из саги 100 раз проверенный лежит на этой странице: http://remmgen.narod.ru/tmonster.html
//:://////////////////////////////////////////////////
//:: Прекращение атаки
//:: File name: end_attak
//:: Слот: OnDamaged, OnCombatRoundEnd, OnHeartBeat
//:://////////////////////////////////////////////////
Остальное вечером по Москве.. pardon


Модмейкер
Рыцарская Сага
 
RevoleДата: Вторник, 18.02.2014, 10:35 | Сообщение # 3
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Цитата Remm ()
Я рекомендую наш скрипт из саги 100 раз проверенный лежит на этой странице: http://remmgen.narod.ru/tmonster.html
//:://////////////////////////////////////////////////
//:: Прекращение атаки
//:: File name: end_attak
//:: Слот: OnDamaged, OnCombatRoundEnd, OnHeartBeat
//:://////////////////////////////////////////////////


То, что надо! Теперь не надо будет ждать 10 секунд, прежде, чем начать диалог. Мелочь - а приятно.

Добавлено (18.02.2014, 10:35)
---------------------------------------------
С анимацией проблемы до сих пор. ANIMATION_LOOPING_DEAD_FRONT (NPC падает на колени, а потом лицом вниз – умер). Прочитал про анимацию в игроделу, вроде бы понял, но в игре выходит вообще не так. В диалоге нпс должен вот так упасть на колени, но при этом рожой не шмякнутся в землю, т.е продолжать стоять на коленях и потом встать, не падая вообще. Но у меня выходит только то, что он встаёт на колени, а потом еще падает и лежит рожой в грязи столько времени, сколько он должен был стоять на коленях. Не знаю как быть unknow


Сообщение отредактировал Revole - Вторник, 18.02.2014, 10:38
 
RemmДата: Вторник, 18.02.2014, 20:18 | Сообщение # 4
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Цитата Revole ()
1. Как задать определенное время суткам. Мне надо, что бы запустился скрипт, который установит определенный час (например час ночи). Ну, или просто сделает ночь.
Задаем нужное время функцией:
SetTime(int nHour,int nMinute,int nSecond,int nMillisecond)

например:

Код
int nHour = GetTimeHour();
if(nHour > 21) SetTime(8,0,0,0); // если 9 вечера, то задаем 8 часов утра
Цитата Revole ()
2. Проверку на наличие спутника у персонажа (я хз засчитываются ли фамильяры спутниками или нет, но они по сути не в счет).
    object oHenchman = GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oPC);
object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oPC);
object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR,oPC);
object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED,oPC);
object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED,oPC);

Это все что может быть у перса
А вот сама проверка
Код
void main()
{
      object oPC = GetFirstPC();
      object oNPC = GetFirstObjectInArea(oPC);

   while (GetIsObjectValid(oNPC))
   {
    if(oNPC == GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oPC))
         AssignCommand(oPC, SpeakString("Ìîé ñïóòíèê!"));     
    oNPC = GetNextObjectInArea(oPC);
   }
}
проверка врагов на слот НБ
Код
void main()
{
  object oPC = GetFirstPC();
  object oSelf = OBJECT_SELF;

  if(GetArea(oPC) != GetArea(oSelf)) return; // если ПС нет в локе
  object oBrag = GetFirstObjectInArea();

  while (GetIsObjectValid(oBrag))  // Проверем враждебных NPC
  {
   if(GetIsEnemy(oPC,oBrag) && GetObjectType(oBrag)== OBJECT_TYPE_CREATURE)
   return;
   oBrag = GetNextObjectInArea();
  }
//тут пишем код что должно произойти когда нет врагов
}
 
RevoleДата: Среда, 19.02.2014, 08:30 | Сообщение # 5
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Благодарю, особенно за проверку на HБ, а то в него вся разработка уперлась!

Добавлено (18.02.2014, 21:35)
---------------------------------------------
Цитата Remm ()
проверка врагов на слот НБ


Забыл спросить, мертвые мобы учитываются? У меня скрипты в слоте death стоят, чтобы моб мертвый лежал.

Добавлено (19.02.2014, 08:30)
---------------------------------------------
Эх... мертвых мобов он все-таки тоже учитывает( А жаль...

Тэкс, придется искать замену...

Сообщение отредактировал Revole - Вторник, 18.02.2014, 21:36
 
RemmДата: Среда, 19.02.2014, 09:47 | Сообщение # 6
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Так в чем проблема, сделай еще одну проверку мертвый ли твой моб...

Модмейкер
Рыцарская Сага
 
RevoleДата: Среда, 19.02.2014, 17:28 | Сообщение # 7
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Цитата Remm ()
сделай еще одну проверку мертвый ли твой моб...


Не знаю как unknow

Да и потом я уже по другому начал делать...

Добавлено (19.02.2014, 12:21)
---------------------------------------------

Цитата Remm ()
сделай еще одну проверку мертвый ли твой моб...


Подскажешь как? А то мой новопридуманный способ накрылся медным тазом...

Добавлено (19.02.2014, 12:41)
---------------------------------------------

Код
void main()
{
   object oPC = GetFirstPC();
   object oSelf = OBJECT_SELF;

   if(GetArea(oPC) != GetArea(oSelf)) return; // ???? ?? ??? ? ????
   object oBrag = GetFirstObjectInArea();

   while (GetIsObjectValid(oBrag))  // ???????? ?????????? NPC
   {
    if(GetIsEnemy(oPC,oBrag) && GetObjectType(oBrag)== OBJECT_TYPE_CREATURE && GetIsDead(oBrag) == FALSE)
    return;
    oBrag = GetNextObjectInArea();
   }
DelayCommand(1.5, AssignCommand(oPC, SpeakString("Âðîäå áû íè÷åãî íå çàáûë...")));
}


Ты имел ввиду так?

Добавлено (19.02.2014, 17:28)
---------------------------------------------

Код
void main()
{
object oTarget = GetLastAttacker();

AssignCommand(OBJECT_SELF, ActionCastSpellAtObject(SPELL_FEAR, oTarget));
}


Слот "АтакованФизачески". Вроде все правильно, но почему он не кастует нужный спел?
 
RemmДата: Четверг, 20.02.2014, 08:40 | Сообщение # 8
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Цитата Revole ()
Ты имел ввиду так?
Да, это именно то! Проверяем враждебность, существо и жизнь. Должно работать...

Цитата Revole ()
Слот "АтакованФизачески". Вроде все правильно, но почему он не кастует нужный спел?
Вроде код правильно записан... Попробуй еще так записать.

Код
void main()
{
object oTarget = GetLastAttacker();

AssignCommand(OBJECT_SELF, ActionCastSpellAtObject(SPELL_FEAR, oTarget, METAMAGIC_QUICKEN, TRUE));
}


Модмейкер
Рыцарская Сага
 
RevoleДата: Суббота, 22.02.2014, 07:53 | Сообщение # 9
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Странно, тоже не кастует(

Добавлено (22.02.2014, 07:53)
---------------------------------------------
Здорова еще раз. Можешь с небольшим скрипткиком помочь? А то у меня не получается.

Ситуация такая: есть триггер, мне нужно что-бы за пределы этого тригера никто не выходил. Для игрока: если вышел за предел - мгновенная смерть с системным сообщением в чате. Для NPC: если вышел за предел - не смотря на бой/диалог/какое-либо другое действие сразу же бежит к определенной точке.


Сообщение отредактировал Revole - Суббота, 22.02.2014, 07:54
 
RemmДата: Суббота, 22.02.2014, 08:13 | Сообщение # 10
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Код
void main()
{
  object oPC = GetEnteringObject();
  object oWP = GetNearestObjectByTag("LOC");
  effect eDeath = EffectDeath();

  if(GetIsPC(oPC))
  {
   ApplyEffectToObject(DURATION_TYPE_INSTANT,eDeath,oPC);
   SpeakString("СМЕРТЬ");
  }
  else
  {
   AssignCommand(oPC, ClearAllActions(TRUE));
   AssignCommand(oPC, ActionForceMoveToObject(oWP, TRUE, 1.0, 20.0));
   AssignCommand(oPC, ActionDoCommand(SetCommandable(TRUE, oPC)));
   DelayCommand(0.1, SetCommandable(FALSE, oPC)); // заблокировать
   DelayCommand(20.5, SetCommandable(TRUE, oPC)); // разблокировать
  }
}


Модмейкер
Рыцарская Сага
 
RevoleДата: Воскресенье, 23.02.2014, 10:42 | Сообщение # 11
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Благодарю

Добавлено (23.02.2014, 10:18)
---------------------------------------------
Помоги со скриптом, если не особо занят.

Ситуация такая: босс, скажем объект oBOSS, перестает атаковать (в это время игрок тоже останавливает атаку и начинает пошатывается как пьяный в течении 6 секунд и у него над головой кружит эффект ошеломления). потом босс делает вид, что произносит какое-то заклинание и говорит текст. Все, все снова продолжают бой.

Добавлено (23.02.2014, 10:42)
---------------------------------------------
И еще: как удалить сразу много объектов с одинаковым тегом в один миг?

Сообщение отредактировал Revole - Воскресенье, 23.02.2014, 10:31
 
RemmДата: Понедельник, 24.02.2014, 09:04 | Сообщение # 12
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Цитата Revole ()
И еще: как удалить сразу много объектов с одинаковым тегом в один миг?

Запусти цикл с проверкой тега и численным оператором. Если тег совпал, увеличиваем оператор на единичку...
На босса и героя можно эффект паралича кинуть... Ну и на всех кто рядом и проиграть сценку.
Могу вечером помочь, но ты хоть шаблон скрипта боса кинь... pardon


Модмейкер
Рыцарская Сага
 
RevoleДата: Понедельник, 24.02.2014, 17:46 | Сообщение # 13
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Цитата Remm ()
Запусти цикл с проверкой тега и численным оператором. Если тег совпал, увеличиваем оператор на единичку...


Я в принципе так и думал, но я не знаю, как это записать.

Цитата Remm ()
скрипта боса кинь


Вот скрипт: игрок наступает на триггер и пошло поехало.

#include "nw_i0_2q4luskan"
void main()
{
object oSelf = OBJECT_SELF;
object oPC = GetEnteringObject();
object oPC1 = GetFirstPC();
object oUmir = GetObjectByTag("Umir");
object oStan = GetObjectByTag("Stan");
object oRat = GetObjectByTag("rat");
object oOP = GetObjectByTag("imp_dlal_chasovoi1");
object oBOSS = GetObjectByTag("boss_a");
object oSound = GetObjectByTag("sound_stena_ogn");

object oTargetPC = GetWaypointByTag("WP_PC");
location lTargetPC = GetLocation(oTargetPC);

object oTargetOGN = GetWaypointByTag("spawn_stena_ogn");
location lTargetOGN = GetLocation(oTargetOGN);

effect ePar = EffectCutsceneParalyze();
float fDurationPAR = 8.2;

int nHeal = GetMaxHitPoints(oBOSS) - GetCurrentHitPoints(oBOSS);
effect eHeal = EffectHeal(nHeal);

effect eVol = EffectVisualEffect(VFX_FNF_LOS_NORMAL_10);// Волна оглушения. Хотя можно конечно было найти и лучше эффект, но я не знаю как.

if (!GetIsPC(oPC)) return;
if (GetLocalInt(oPC1, "a_ataka1v") == 4)
{
DelayCommand(0.5, FadeToBlack(oPC, FADE_SPEED_FASTEST)); //Занавес
DelayCommand(2.0, AssignCommand(oPC, ClearAllActions(TRUE)));//Отменяем действия игрока
DelayCommand(2.0, SetCutsceneMode(oPC, TRUE)); // Сцена
DelayCommand(5.0, FadeFromBlack(oPC, FADE_SPEED_MEDIUM)); //Убираем занавес
DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTargetPC))); //Телепортируем игрока к месту рядом с боссом (типо подбежал)
DelayCommand(7.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oBOSS)); //Отхиливаем босса
DelayCommand(9.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVol, oBOSS));//Босс как бы кидает оглушающую волну

*И тут все НПС (oStan, oUmir, oRat, oOP, oCH) прекращают атаку и игрок вместе с ними пьяно покачиваются, а у них всех над головам эффект какой-нибудь, чтобы игрок точно видел, что они как бы под контролем у босса*

*А босс тем временем прекращает атаку и произносит какое-нибудь заклинание (чисто для вида)*

//Тут я реализую свою задумку
DelayCommand(13.0, AssignCommand(oBOSS, SpeakString("Ха-ха-ха! Ловушка! Гхрыы!"))); //Босс как бы издевательски смеется
DelayCommand(15.0, SetCutsceneMode(oPC, FALSE));
DestroyObject(GetObjectByTag("rol_sorc1"));
}
if (GetLocalInt(oPC1, "a_ataka1v") == 0)
{
SetLocalInt(oPC, "a_ataka1v", 1);
DelayCommand(1.5, AssignCommand(oRat, SpeakString("В бой, братия! Во славу Велемира!")));
DelayCommand(6.0, AssignCommand(oRat, SpeakString("Вы вовремя прибыли! Без вас мы не справимся...")));
}
}

Добавлено (24.02.2014, 17:46)
---------------------------------------------
И еще я такую странную вещь заметил: в моем модуле за убийство мобов не дается опыт... КАК ТАК?

Сообщение отредактировал Revole - Понедельник, 24.02.2014, 16:24
 
RemmДата: Понедельник, 24.02.2014, 19:07 | Сообщение # 14
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Код

void main()
{
   int nNth;
   object oVrag = GetObjectByTag("NAEMNIK_VRAG", nNth);

  for(nNth=0; nNth <= 100; nNth++)
  {
   if(GetIsObjectValid(oVrag))
   {
    DestroyObject((oVrag));
    oVrag = GetObjectByTag("NAEMNIK_VRAG", nNth);
   }
   else break;
  }
}

Это на 100
А это на всех:

Код
void main()
{
       int nNth;
       object oVrag = GetObjectByTag("NAEMNIK_VRAG", nNth);

      while(GetIsObjectValid(oVrag))
       {
        DestroyObject((oVrag));
        nNth++;
        oVrag = GetObjectByTag("NAEMNIK_VRAG", nNth);
       }
}

Ну и бос. Тут я записал отдельной функцией остановку..

Код
#include "nw_i0_2q4luskan"
void BOSS()
{
      object oPC = GetFirstPC();
      object oNPC = GetFirstObjectInArea(oPC);
      effect eCatPar = EffectCutsceneParalyze();  // Эффект парализации
      effect eDIS = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);// Замешательство птички
      float Time = 5.0;//Время парализации

      while (GetIsObjectValid(oNPC))
      {
       if(GetObjectType(oNPC)== OBJECT_TYPE_CREATURE)
       {
         AssignCommand(oNPC, ClearAllActions());
         ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCatPar, oNPC, Time);
         if(GetTag(oNPC) != "boss_a")//Кроме БОССА
         ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDIS, oNPC, Time);
        }
       oNPC = GetNextObjectInArea(oPC);
      }
}
//////////////////////////////////////////////
void main()
{
object oSelf = OBJECT_SELF;
object oPC = GetEnteringObject();
object oPC1 = GetFirstPC();
object oUmir = GetObjectByTag("Umir");
object oStan = GetObjectByTag("Stan");
object oRat = GetObjectByTag("rat");
object oOP = GetObjectByTag("imp_dlal_chasovoi1");
object oBOSS = GetObjectByTag("boss_a");
object oSound = GetObjectByTag("sound_stena_ogn");

object oTargetPC = GetWaypointByTag("WP_PC");
location lTargetPC = GetLocation(oTargetPC);

object oTargetOGN = GetWaypointByTag("spawn_stena_ogn");
location lTargetOGN = GetLocation(oTargetOGN);

effect ePar = EffectCutsceneParalyze();
float fDurationPAR = 8.2;

int nHeal = GetMaxHitPoints(oBOSS) - GetCurrentHitPoints(oBOSS);
effect eHeal = EffectHeal(nHeal);

effect eVol = EffectVisualEffect(VFX_FNF_LOS_NORMAL_10);// Волна оглушения. Хотя можно конечно было найти и лучше эффект, но я не знаю как.

if (!GetIsPC(oPC)) return;
if (GetLocalInt(oPC1, "a_ataka1v") == 4)
{
DelayCommand(0.5, FadeToBlack(oPC, FADE_SPEED_FASTEST)); //Занавес
DelayCommand(2.0, AssignCommand(oPC, ClearAllActions(TRUE)));//Отменяем действия игрока
DelayCommand(2.0, SetCutsceneMode(oPC, TRUE)); // Сцена
DelayCommand(5.0, FadeFromBlack(oPC, FADE_SPEED_MEDIUM)); //Убираем занавес
DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTargetPC))); //Телепортируем игрока к месту рядом с боссом (типо подбежал)
DelayCommand(7.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oBOSS)); //Отхиливаем босса
DelayCommand(9.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVol, oBOSS));//Босс как бы кидает оглушающую волну

DelayCommand(10.0, BOSS());

/*И тут все НПС (oStan, oUmir, oRat, oOP, oCH) прекращают атаку и игрок вместе с ними пьяно покачиваются, а у них всех над головам эффект какой-нибудь, чтобы игрок точно видел, что они как бы под контролем у босса*

*А босс тем временем прекращает атаку и произносит какое-нибудь заклинание (чисто для вида)*/

//Тут я реализую свою задумку
DelayCommand(13.0, AssignCommand(oBOSS, SpeakString("Ха-ха-ха! Ловушка! Гхрыы!"))); //Босс как бы издевательски смеется
DelayCommand(15.0, SetCutsceneMode(oPC, FALSE));
DestroyObject(GetObjectByTag("rol_sorc1"));
}
if (GetLocalInt(oPC1, "a_ataka1v") == 0)
{
SetLocalInt(oPC, "a_ataka1v", 1);
DelayCommand(1.5, AssignCommand(oRat, SpeakString("В бой, братия! Во славу Велемира!")));
DelayCommand(6.0, AssignCommand(oRat, SpeakString("Вы вовремя прибыли! Без вас мы не справимся...")));
}
}


Модмейкер
Рыцарская Сага
 
RemmДата: Понедельник, 24.02.2014, 19:15 | Сообщение # 15
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Цитата Revole ()
И еще я такую странную вещь заметил: в моем модуле за убийство мобов не дается опыт... КАК ТАК?

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


Модмейкер
Рыцарская Сага
 
RevoleДата: Понедельник, 24.02.2014, 19:24 | Сообщение # 16
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Цитата Remm ()
Проверь шкалу получения опыта в свойствах модуля...


Ахахаха, так вот за что отвечает та хрень, которую я от любопытства крутил в самом начале... На сколько она должна стоять?
 
RemmДата: Вторник, 25.02.2014, 08:47 | Сообщение # 17
Капитан
Группа: Администраторы
Сообщений: 269
Репутация: 10
Статус: Offline
Цитата Revole ()
На сколько она должна стоять?

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


Модмейкер
Рыцарская Сага
 
RevoleДата: Четверг, 20.03.2014, 19:14 | Сообщение # 18
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
И снова здравствуй. После небольшого отдыха решил продолжить труд. Были у меня тут два очень старых вопросов, которые я все забывал спросить:

1. Как полностью отхилить цель (без визуальных эффектов)

2. Как сделать мини карту разведанной.

Заранее благодарен.
 
AntttonДата: Четверг, 20.03.2014, 19:37 | Сообщение # 19
Алебардщик
Группа: Пользователи
Сообщений: 28
Репутация: 1
Статус: Offline
Revole, Возьми скрипты из кампании, там все есть)
 
RevoleДата: Четверг, 20.03.2014, 20:06 | Сообщение # 20
Алебардщик
Группа: Пользователи
Сообщений: 31
Репутация: 1
Статус: Offline
Цитата Anttton ()
Revole, Возьми скрипты из кампании, там все есть)

Искал уже, но это слишком муторно + я английский нифига не знаю, да еще и сами компании открыть не могу по кое-какой причине. К тому же я нашёл скрипт на лечение, но он с эффектом, а еще там куча текста, в общем я не понял как убрать эффект и оставить просто лечение благополучным способом.

А по второму пункту я вообще ничего не нашел.
 
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:


Сайт создан: 24.04.2007 Бесплатный конструктор сайтов - uCoz