Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 50 51 52 53 54 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Мефистофель
сообщение Jun 12 2005, 19:52
Сообщение #1276


Level 6
Иконки Групп

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Куча вопросов, блин. Вы уж простите. Но помогите. :D
1.Как использовать функцию AktionAttak.
2. У Тулсете есть специальные триггеры битвы. Называется «Раскрасить Встретившихся». Дак вот как мне задать точку, чтобы именно от туда появлялись монстры.
3. Дайте, пожалуйста, скриптик, чтобы если Уничтожено 4 объекта с определенными Тегами. То строка в диалоге появится, если нет то нет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 12 2005, 21:50
Сообщение #1277


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



2Мефистофель

1.
void ActionAttack(object oAttackee, int bPassive=FALSE)

object - это объект, на который будет происходить атака.
int bPassive - атака в пассивном (если стоит TRUE) или в активном режиме (если стоит FALSE)

2.
Цитата из Aurora Toolset Айвана. Прочитай его.
QUOTE

Если оставить наш encounter нарисованным на локации в виде большой области, то монстры
появятся по всему периметру. Если вам необходимо, чтобы нападение произошло из заданной
точки, то нужно нажать на очерченный encounter правой кнопкой мыши и выбрать пункт "Add
spawn point" (Рис. 46). Появится стрелка, указывающая на черный треугольник, этот
треугольник и будет точкой spawn'а монстров. Точек spawn'а может быть несколько, сделайте
их и перетащите мышкой в нужное место.
Рис. 46.
Важно! При точках spawn'а монстры будут появляться лицом в ту сторону, в которую
направлена самая маленькая сторона, являющаяся основанием равнобедренного
треугольника. И монстры будут появляться только из той точки, которая находится
перед наступившим на область encounter'а объектом (NPC, PC). Выглядит это так: вы
делаете encounter и ставите три точки spawn'а в разные стороны. С какой бы стороны вы
не подошли, противник всегда будет появляться в точке перед вами.
И еще один слот – OnExhausted. Он срабатывает, если вы выбрали опцию "Single-Shot
spawn" и в локации исчезли все противники.


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jun 13 2005, 00:45
Сообщение #1278


Level 6
Иконки Групп

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



2-fenix-
Спасиб, а вот готовый скрипт про атаку взгянуть, можно а то я так ничё не понимаю.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 13 2005, 13:31
Сообщение #1279


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



2Мефистофель

3.

На OnDeath челов ставим это.

Neverwinter Script Source
void main()
{
  object oChel = GetObjectByTag ("Тег чела с кем базарить");

  SetLocalInt(oChel, "Первый чел, Второй, Третий, четвертый", 1);
}


А на проверку фразы это

Neverwinter Script Source
int StartingConditional()
{
    if(GetLocalInt(OBJECT_SELF, "Первый чел") == 1 &&

    GetLocalInt(OBJECT_SELF, "Второй чел") == 1 &&

    GetLocalInt(OBJECT_SELF, "Третий чел") == 1 &&

    GetLocalInt(OBJECT_SELF, "Четвертый чел") == 1)
        {
        return TRUE;
        }
    return FALSE;
}


Добавлено в [mergetime]1118684998[/mergetime]
QUOTE
Спасиб, а вот готовый скрипт про атаку взгянуть, можно а то я так ничё не понимаю.


Вот переделка скрипта на разговор

Neverwinter Script Source
void main()
{
  if(GetLocalInt(OBJECT_SELF, "Первый чел") == 1 &&

    GetLocalInt(OBJECT_SELF, "Второй чел") == 1 &&

    GetLocalInt(OBJECT_SELF, "Третий чел") == 1 &&

    GetLocalInt(OBJECT_SELF, "Четвертый чел") == 1)
    {
    ActionAttack(GetPCSpeaker(), False);
    }
}


Если все эти локальные переменные равны 1, то Чел будет атаковать заговорившего PC в активном режиме(а, что это значет ХЗ).

З.Ы Объясните, что значат эти режимы ПЛИЗЗЗ.

Сообщение отредактировал -fenix- - Jun 13 2005, 20:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение Jun 14 2005, 05:13
Сообщение #1280


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Приветствую всех.

Как сделать в модуле, чтобы встреча спавнилась только ночью или только днем?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Jun 14 2005, 10:28
Сообщение #1281


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Neverwinter Script Source
if (GetIsDay())
    {
          // i tut to chto nado delatj dnem
          //dlja nochi  pohozhe
    }


Сообщение отредактировал mamuc - Jun 14 2005, 10:28
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 14 2005, 12:16
Сообщение #1282


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Том III находится тут
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 14 2005, 12:19
Сообщение #1283


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Том II находится тут
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение Jun 15 2005, 12:44
Сообщение #1284


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Маmuc

Это понятно, я не знаю как активизировать эту размещаемую встречу.
Добавлено в [mergetime]1118828800[/mergetime]
Вот наступает ночь и встреча должна работать, а когда пиходит день - нет. Как это сделать?
Добавлено в [mergetime]1118828896[/mergetime]
Я хочу понять как активизировать встречу.

Во спросил :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 15 2005, 13:06
Сообщение #1285


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Scaled

Цитирую из Lexicon'а:
QUOTE

SetEncounterActive(int, object)

Sets an encounter to active or inactive.

void SetEncounterActive(int bNewValue, object oEncounter = OBJECT_SELF);



Parameters

bNewValue
TRUE if the encounter is active, otherwise FALSE.

oEncounter
The encounter to set active or inactive. (Default: OBJECT_SELF)



Description

Set oEncounter's active state to nNewValue.
When an encounter is exhausted it will set itself to be "not active".
If your encounter is set for "Continuous" respawns, it will reset itself to "active" each time the Respawn Time lapses.
If you want to use the SetEncounterActive function to control exactly when the encounter is active then you need to use the "Single Shot" setting on the encounter.



Remarks

From Victor Morales:
I have tried the SetEncounterActive function to spawn creatures at different times of the day. For example, I only wanted the undead in a cemetery to spawn if it was nighttime.
If the encounter active flag is set to FALSE to begin with (in the encounter GUI window when the encounter is created) then the SetEncounterActive function will spawn them properly the first time. It seems that the creatures are set to spawn before the OnEnter event is checked for validity. In addition, once the active flag is set it won't revert until the next time the encounter is triggered.
So I would have undead that would spawn at night properly, but once they spawned - if the time changed to day they would spawn at least one more time during daylight hours. Then the trigger would work properly again.
I tried to make it reset the active flag to active OnEnter, then the creatures would spawn, and to reset it to inactive OnExit. However, that didn't work either and the behavior stayed the same.
You can draw a trigger around the encounter and call this function from OnEnter of that trigger instead as a workaround.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 15 2005, 13:40
Сообщение #1286


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



Scaled
общий смысл цитаты из лексикона сводится к тому, что если хочешь нормально управлять encounter'ом, то рисуй вокруг него триггер, и в OnEnter оного производи необходимые тебе действия. т.е. в твоем случае в OnEnter окружающего encounter триггера нужно вписать:
Neverwinter Script Source
void main()
{
  object oEnc = GetObjectByTag("тэг encounter'а");
  SetEncounterActive(GetIsNight(), oEnc);
}

ps. чтобы не париться с вырисовыванием триггера, проще нарисовать такой же по форме, но чуть больше по размерам и расположить encounter внутри этого триггера.

pss. тэг подправил.. ведь "dd_night_enc" могут и не понять. :)

Сообщение отредактировал dumbo - Jun 15 2005, 13:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 15 2005, 14:01
Сообщение #1287


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



dumbo
Совсем не обязательно вырисовывать внешний управляющий триггер. Достаточно эти функции юзать на самом Encounter в его OnEnter. ;)

Ночной.
Neverwinter Script Source
void main()
{
  SetEncounterActive(GetIsNight(), OBJECT_SELF);
}


Не ночной.
Neverwinter Script Source
void main()
{
  SetEncounterActive(!GetIsNight(), OBJECT_SELF);
}

Добавлено в [mergetime]1118833521[/mergetime]
ЗЫ. Такая схема вполне успешно ведет себя в Леворе. Так что ремарка от Виктора Моралеса ошибочна. =)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 15 2005, 14:15
Сообщение #1288


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



DBColl
веришь-нет: еще до чтения ремарки проверил именно путем внедрения в OnEnter SetEncounterActive(GetIsNight()) - не ра-бо-та-ет. посмотрел на поведение, и мысли закрались о том, что он выплевывает крич либо до запуска OnEnter, либо просто после прогона OnEnter не проверяет active флаг. после увиденного пошел читать подробнее и в обнаруженной ремарке нашел подтверждение своих мыслей... :)
видимо, у вас там что-то еще приделано... :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 15 2005, 15:23
Сообщение #1289


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (dumbo @ Jun 15 2005, 14:15)
не ра-бо-та-ет. посмотрел на поведение, и мысли закрались о том, что он выплевывает крич либо до запуска OnEnter, либо просто после прогона OnEnter не проверяет active флаг. после увиденного пошел читать подробнее и в обнаруженной ремарке нашел подтверждение своих мыслей...видимо, у вас там что-то еще приделано...

Нет, все именно так, как я сказал. Просто там надо мутить как-то с настройками САМОГО ЭНКАУНТЕРА. Я помню, долго бился с этим вопросом и в итоге нашел именно то положение настроек (active, continued и тп), при котором такая схема заработала. ;) Хотя не исключаю, что что-то в энкаунтерах могло быть пофиксено в ХотУ, потому что Левор, как известно, делался на СоУ и именно ТАМ все работало.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 15 2005, 17:07
Сообщение #1290


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



DBColl
прочитал описание еще раз :) в настройках поставил Single Shot, Active сбросил - вот теперь все правильно работает с SetEncounterActive(GetIsNight()) в OnEnter encounter'a... ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 15 2005, 20:20
Сообщение #1291


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



В функции

Neverwinter Script Source
void ActionAttack(object oAttackee, int bPassive=FALSE)


FALSE и TRUE - это атака в пассивном и активном режиме, а что эти режимы подразумевают, как их понимать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 16 2005, 02:51
Сообщение #1292


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



-fenix-
пассивный режим означает то, что атакующий не будет бежать к атакуемому. если у него будет только оружие ближнего боя, то он будет курить бамбук. иначе постреляет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 16 2005, 13:09
Сообщение #1293


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Люди просветите, что в функциях делает это - int Reserved1(), int Reserved2...int Reserved85(), это ваще за чем?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 16 2005, 15:45
Сообщение #1294


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



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

ps. в результате прений и мега-флуда(ныне почившего) было выяснено: функции ReservedXX были введены в xp1(SoU) и заменены в xp2(HotU) на группу функций типа itemproperty и функции работы с ними.

Сообщение отредактировал dumbo - Jun 17 2005, 12:53
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 17 2005, 11:24
Сообщение #1295


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Тут вот особо продвинутые люди создают собственные функции, не подскажет ли кто из них как это делать?

Или тут так не объяснить? Тогда хоть скажите с помощью каких прог(иль в самом тулсете), я тогда сам буду ковыряться(без тупых вопросов не обойтись:D).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Jun 17 2005, 13:06
Сообщение #1296


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



QUOTE=-fenix-, Jun 17 2005, 11:24]Тут вот особо продвинутые люди создают собственные функции, не подскажет ли кто из них как это делать?[/QUOTE]
Если это "тупой вопрос", то
функции объявляются следующим образом:
<тип возвращаемого значения> <имя функции>(<список параметров>)
{
<тело функции, т.е. тут описано, собственно то что эта функция делает.>
}

Пример:
Neverwinter Script Source
//[NSS]
// Вот функция kill. Она ничего не возвращает, поэтому
// типом возвращаемого значения будет void
// Функция имеет два аргумента:
// object oVictim - это тот кого мы собираемся кильнуть
// int nVis - константа визуального эффекта, которым будет
// сопровождаться смерть несчастного.
void kill(object oVictim, int nVis=VFX_IMP_DEATH)
{
  effect eVis = EffectVisualEffect(nVis); 
  ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oVictim);
  ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oVictim);
}

// Вот функция hasItem, она проверяет наличие предмета с тегом sTagItem
// В инвентаре объекта oInventory
// Вернет TRUE если предмет есть, а иначе - FALSE
int hasItem(object oInventory, string sItemTag)
{
  return GetIsObjectValid(GetItemPossessedBy(oInventory, sItemTag));
}

// вот функция main - главная функция скрипта.
// С нее начинается выполнения сценария и из нее вызываются
// все остальные функции. Эта функция убет нарушителя, если
// тот наступит куда не следует, не имея соответствующего
// аусвайса!
void main()
{
  object oIntruder = GetEnteringObject();
  if(!hasItem(oIntruder, "Ausweis"))
  {
    kill(oIntruder);
  }
}


Добавлено в [mergetime]1119003303[/mergetime]
QUOTE (-fenix- @ Jun 17 2005, 11:24)
Скриптер проекта

:swoon:
Если, вдруг имелось ввиду, как делать движковые функции, то сомневаюсь, что тут тебе кто-нить поможет (*слегка косится на Думбо*).
Хотя особо продвидуные наверное могут и не такое. Сделали ведь, говорять, какие-то умельцы SetName.

Сообщение отредактировал Friedrich - Jun 17 2005, 13:08
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 17 2005, 19:58
Сообщение #1297


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Friedrich
Я ни этот вопрос имел ввиду тупым. Я имел ввиду, что есле это трудно объяснить тут, то намекните и я сам буду разбераться, задавая попутно тупые вопросы.

А пользоваться этими функциями так ?
Neverwinter Script Source
void kill(object oVictim, int nVis=VFX_IMP_DEATH)
{
  effect eVis = EffectVisualEffect(nVis);
  ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oVictim);
  ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oVictim);

}

void main()
{
object oPC = GetPCSpeaker();

kill(oPC, VFX_IMP_DEATH);

}


их надо объявлять в каждом скрипте.

QUOTE
Если, вдруг имелось ввиду, как делать движковые функции, то сомневаюсь, что тут тебе кто-нить поможет

Было бы интересно, но я до этого еще не дорос :)

QUOTE
Скриптер проекта

это к чему???

И еще вопросы
1) Есть в НвН массивы или какие - нибудь условия со счетчиком(как в паскале for) или их делать с помощью while?
2) Есть в НвН метки(как в паскале label)?
3) просветите, что такое инклюд и как его юзать.

Почему столько вопросов? Потому что у меня наконец появилось время для того, что бы заняться изучением НвН'овского скриптинга по человечески. !!!НАКОНЕЦ!!!

Вот скачал сейчас два томика :) скриптов, веселый вечер у меня намечается.

Сообщение отредактировал -fenix- - Jun 17 2005, 20:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Jun 17 2005, 22:25
Сообщение #1298


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



Феникс, лексикон посмотреть не судьба? Или с аглицким вообще никак? Даже если никак, то все равно посмотреть на досуге будет не вредно.

А ежели в чего-то Паскале шаришь, то я чего-то не понимаю твоих вопросов про функуии. Все точно также. Если есть есть какой-то кусок кода, который требуется регулярно выполнять, или он просто содержит какие-либо логически связанные действия или вычисления, то их целесообразно отделить от основной программы в отдельный блок - функцию или процедуру (void-функции - это считай как процедуры). Пользываться самописными функциями затем можно как стандартными.

Чтобы не переписывать одни и те же функции в разных скриптах, их можно объединять в библиотеки - инклюды (Биоварские инклюды обычно называится nw_i0_* или x*_inc_*, нп: nw_i0_generic).

Директивой #include "filename" при компиляции соотыетствующий файл будет добавлен к основному скрипту. Инклюд не должен содержать функии main.

Далее,
1) циклы в НВСкрипте конечно есть:
int i;
for (i = 0; i < 5; i++)
{
// statements ...
// this loop will cycle i as 0, 1, 2, 3, and 4
}
Аналог for i:=0 to 4 do
или н.п.:
for(i = 4; i >= 0; i--){}
аналог: for i:= 4 downto 0 do

while (expression) { statement; }
выполняется, пока expression истинно. Как в паскале, в общем.

do {statement;} while(expression); Как repeat ... until, только выполняется пока условие истинно.

2) Меток и goto естественно нету, т.к. они есть атрибут "дурного стиля программирования" (или фортрана). :D

3) Массивов как таковых нету, но если очень нужно - то их можно симулировать с помощью локалок по принципу:
Имя локалки = имя массива + номер ячейки. См. биоварский инклюд nw_o0_itemmaker

Еще советую почитать, хотя-бы книжечку по Си, которую тут Айван где-то выкладывал (на предмет синтаксиса). Хотя это не обязательно, Лексикону тебе за глаза хватит.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 18 2005, 13:17
Сообщение #1299


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE
Феникс, лексикон посмотреть не судьба? Или с аглицким вообще никак? Даже если никак, то все равно посмотреть на досуге будет не вредно.


Да. С англицким вообще никак, но лексикон скачал и ковыряю его потихоньку с помощью сократа и лингво. :(

У меня просто раньше времени не было разбераться в НвН скриптах, экзамены и все такое. Все, что увидел мельком, это if и локалки, их пока и юзал. Про циклы с пост и предусловием в статьях нашел, а про for и label нигде не написано, вот и спросил есть ли таковые. Спсибо за ответы :good:

И новый вопросик

Перевод Валео ни кто не заканчивал?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 18 2005, 22:46
Сообщение #1300


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (-fenix- @ Jun 18 2005, 16:17)
Перевод Валео ни кто не заканчивал?

Нет. Есть желание? Вперед!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 50 51 52 53 54 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th March 2024 - 04:26