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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 77 78 79 80 81 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
justshurik
сообщение Feb 1 2006, 02:22
Сообщение #1936


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Спасибо за ответ. Лексикон уже давно использую. :yes:
Добавлено в [mergetime]1138801732[/mergetime]
Народ, извините за глупый вопрос, но сам никак не могу додуматься.
Как преобразовать тип vector в тип location?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Feb 1 2006, 17:33
Сообщение #1937


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



QUOTE
Как преобразовать тип vector в тип location?
Что-то мне подсказывает, что этого сделать нельзя... ИМХО - невозможно!!!
А зачем тебе? Может кто-то найдеть другой способ решить задачу...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 1 2006, 18:02
Сообщение #1938


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

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



justshurik,
Neverwinter Script Source
// Create a location.
location Location(object oArea, vector vPosition, float fOrientation)

Собсна локация это и есть позиция на карте и направление.
Нэш, ну ты отразил. :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Feb 1 2006, 21:13
Сообщение #1939


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Функцию я эту встречал. Единственное что меня смущает в ней, это object oArea. Зачем он здесь нужен?

Сообщение отредактировал justshurik - Feb 1 2006, 21:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Feb 1 2006, 21:27
Сообщение #1940


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

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



Location(object oArea, vector vPosition, float fOrientation)
oArea - локация, карта
vPosition - местоположение на карте
fOrientation - направление взгляда
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Feb 1 2006, 21:37
Сообщение #1941


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Спасибо за ответ. Теперь понял что и как. :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Feb 2 2006, 01:56
Сообщение #1942


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



Я ничо не понял зачем эта функция. Теперь мне интересно где ее используют?


QUOTE
Нэш, ну ты отразил
- это....ааа....эээ...."ИМХО"
Добавлено в [mergetime]1138834657[/mergetime]
Ее можно использовать для определения дистанции к обекту?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Feb 2 2006, 11:00
Сообщение #1943


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

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



нет..для определиния расстояния вполне лостаточно просто использовать
GetDistanceBetween(object oFirst, object oSecond)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Feb 2 2006, 18:16
Сообщение #1944


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



QUOTE
Я ничо не понял зачем эта функция. Теперь мне интересно где ее используют?

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


Сообщение отредактировал justshurik - Feb 3 2006, 01:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Feb 3 2006, 23:46
Сообщение #1945


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



Чето заглохла эта тема :swoon:
Добавлено в [mergetime]1138999971[/mergetime]
Народ. Маленький вопросик. Как делать указатели и ссылки на переменные в редакторе скриптов?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 3 2006, 23:55
Сообщение #1946


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

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



QUOTE (justshurik @ Feb 3 2006, 23:46)
Чето заглохла эта тема :swoon:

наивный. до 100 скоро дойдет :)
QUOTE (justshurik @ Feb 3 2006, 23:46)
Как делать указатели и ссылки на переменные в редакторе скриптов?

никак
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Feb 4 2006, 05:38
Сообщение #1947


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



а зачем? это не с++(к примеру) ...

Сообщение отредактировал [MoF]Darth_Nick - Feb 4 2006, 08:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
justshurik
сообщение Feb 4 2006, 13:34
Сообщение #1948


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Человек



QUOTE ([MoF)
Darth_Nick,Feb 4 2006, 05:38]а зачем? это не с++(к примеру) ...

да просто немного неудобно без указателей. Хотя вроде бы и без них все работает
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Feb 5 2006, 03:02
Сообщение #1949


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



Привет,
Такая вот ситуация: Есть у меня 4 НПС, один из них главный; есть 8 Вепов(Это как бы патруль :)). На капитана я вешаю такой скрипт:

Neverwinter Script Source
void main()
{
object oCommander = GetNearestObjectByTag("ast_s_commader");
int oTrueFalse = FALSE;

if (GetIsDay())
{
oTrueFalse=FALSE;
}
else
{
oTrueFalse=TRUE;
}

if (GetDistanceBetween(oCommander, OBJECT_SELF)<3.0)
ActionDoCommand(AssignCommand(OBJECT_SELF, ClearAllActions(FALSE)));

if (GetDistanceBetween(oCommander, OBJECT_SELF)>6.0)
{
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionForceFollowObject(oCommander, 0.0)));
}
else
{
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oCommander, oTrueFalse, 1.0f)));
}
}


А на других НПС такой:

Neverwinter Script Source
void main()
{
object oW1 = GetWaypointByTag("ast_s_1level001");
object oW2 = GetWaypointByTag("ast_s_1level002");
object oW3 = GetWaypointByTag("ast_s_1level003");
object oW4 = GetWaypointByTag("ast_s_1level004");
object oW5 = GetWaypointByTag("ast_s_1level005");
object oW6 = GetWaypointByTag("ast_s_1level006");
object oW7 = GetWaypointByTag("ast_s_1level007");
object oW8 = GetWaypointByTag("ast_s_1level008");

string speak1 = "Ñ äîðîãè!!!";
string speak2 = "Ïîñòîðîíèñü!!!";
string speak3 = "Âñå ïîäîìàì!!! Íèêîãî íå äîëæíî áûòü íà óëèöàõ, íî÷üþ!!!";

object oPC = GetFirstPC();

int oTrueFalse = FALSE;

if (GetIsDay())
{
oTrueFalse=FALSE;
}
else
{
oTrueFalse=TRUE;
}

ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW1, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW3, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW2, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW3, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}

ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW4, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}

ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW5, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}

ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW6, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}

ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW7, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}

ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW8, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}
}


Как оно работает(Так не должно!!!!), НПС доходит к вепу 3 останавливается, потом когда он должен произнести фразу(ночью если Вы ближе 8 футов), то это не работае, он все сразу выскажет и ВСЕ... Они еще должны нормально ходить(ВСЕСТЕ). У меня в скрипт из базы немножко не подходит...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Feb 5 2006, 20:24
Сообщение #1950


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

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



Nashman, че та я не понял, ты что вообще от них хочешь???

QUOTE (Nashman @ Feb 5 2006, 04:02)
На капитана я вешаю такой скрипт:

Куда именно?
Neverwinter Script Source
//это кто, капитан или кто-то посторонний?
object oCommander = GetNearestObjectByTag("ast_s_commader");
//...

//Если oCommander это капитан и скрипт стоит на нем, то он что, сам за собой ходит? А если oCommander это не капитан, то закем он ходит?
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionForceFollowObject(oCommander, 0.0)));



oTrueFalse - это они типа днем ходят, а ночью бегают?!
QUOTE (Nashman @ Feb 5 2006, 04:02)
он должен произнести фразу(ночью если Вы ближе 8 футов)

И где проверка на текущее время?
Neverwinter Script Source
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW3, oTrueFalse, 1.0f)));
if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0)


Второй скрипт именно таким стоит на каждом рядовом?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Feb 5 2006, 23:00
Сообщение #1951


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



Привет,
Наоборот, тот скрипт, что я написал на капитана - он на НПС-обычних, а тот, что для обычных - для капитана. Просто перепутал...
QUOTE
че та я не понял, ты что вообще от них хочешь???

Это городской патруль, и они должны патрулировать город, днем нормально, ночью из бегом, и когда ночью ПС подходит слишком близко, то ПС говорит что-то...

QUOTE
Куда именно?

НВ... Разве есть еще что-то зацыкленое?...
QUOTE
И где проверка на текущее время?

Neverwinter Script Source
if (GetIsDay())
{
oTrueFalse=FALSE;
}
else
{
oTrueFalse=TRUE;
}



QUOTE
Второй скрипт именно таким стоит на каждом рядовом?

На капитане... У меня несколько патрулей...(Перепутал :tomato: )

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Feb 6 2006, 09:41
Сообщение #1952


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Вешай на ХВ командира скрипт, на солдат ни чего не надо...
Neverwinter Script Source
void main()
{
object oW1 = GetWaypointByTag("ast_s_1level001");
object oW2 = GetWaypointByTag("ast_s_1level002");
object oW3 = GetWaypointByTag("ast_s_1level003");
object oSoldat = GetObjectByTag("Soldat_1");
object oSoldat2 = GetObjectByTag("Soldat_2");
object oKom = OBJECT_SELF;
string speak1 = "C дороги!";
string speak2 = "Посторонись!";
string speak3 = "Все по домам! Ни кого не должно быть на улицах ночью!";

object oPC = GetFirstPC();
int oTrueFalse = FALSE;

if (GetIsDay())
{
oTrueFalse=FALSE;
}
else
{
oTrueFalse=TRUE;
}

if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0 && GetIsNight())
{
switch (Random(3)+1)
{
case 1:
ActionSpeakString(speak1, TALKVOLUME_SHOUT);
break;
case 2:
ActionSpeakString(speak2, TALKVOLUME_SHOUT);
break;
case 3:
ActionSpeakString(speak3, TALKVOLUME_SHOUT);
break;
}
}
if(GetLocalInt(OBJECT_SELF, "MARSH") != 1)
{
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW1, oTrueFalse)));
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW2, oTrueFalse)));
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW3, oTrueFalse)));
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW1, oTrueFalse)));
SetLocalInt(OBJECT_SELF,"MARSH",1);
DelayCommand(15.0,SetLocalInt(OBJECT_SELF,"MARSH",2));
}
AssignCommand(oSoldat, ActionMoveToObject(oKom, oTrueFalse));
AssignCommand(oSoldat2, ActionMoveToObject(oKom, oTrueFalse));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Feb 9 2006, 07:06
Сообщение #1953


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



QUOTE (StalkerDtN @ Jan 21 2006, 07:55)
У меня такой вопрос: как можно сделать так, чтобы в какой-нибудь из слотов игрока (INVENTORY_SLOT_*)
нельзя было запихать соответствующую ему(слоту) вещь. Вариант, на подобие, - отлавливать событие одевания предмета с помощью onPlayerEquipItem не рационален, т.к. все равно проигрывается анимация - если это оружие, то взятие его в руку. К тому же очень вероятно, что оружие не уберется

Бывают такие ситуации… Используй скрипт на OnHeartbeat модуля.
Neverwinter Script Source
void main()
{
object oPC = GetFirstPC(); // Игрок
object oItem = GetItemPossessedBy(oPC,"MECH_KLADENEZ"); //  предмет в инвентаре игрока
object oRigHand = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC);//оружие правой руки
if (GetTag(oRigHand) == "MECH_KLADENEZ")
{
CopyItem(oItem, oPC);
DestroyObject(oRigHand,0.04);
FloatingTextStringOnCreature("Меч перевесил вас…", oPC);
}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Equalizer
сообщение Feb 10 2006, 18:40
Сообщение #1954


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Меня интерисует вот что,не подскажите как лучше реализовать систему получения экспы в модуле или может кто-то может выложить хороший, проверенный скрипт?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Feb 10 2006, 21:57
Сообщение #1955


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

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



на вольте, если мне не изменяет память, несколько штук таких скриптов...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
L33t
сообщение Feb 13 2006, 20:23
Сообщение #1956


Level 2
*

Класс: Вор
Характер: Lawful Evil
Раса: Карлик



Подскажите, пожалуйста, пример скрипта, который реализует следующее: при взятии в правую руку топора с тегом Т происходит проверка - нет ли в радиусе 30 футов от держащего существ определенного вида (например, эльфов). Если есть, то на топор навешивается свечение (как визуальный эффект). Когда в радиусе 30 футов от держащего нет ни одного эльфа или же топор вынули из правой руки, свечение снимается.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Feb 14 2006, 09:30
Сообщение #1957


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Привет, L33t
попробуй ниже приведенным скриптом, он вешается на OnPlayerEquipItem
Neverwinter Script Source
object oPC  = GetPCItemLastEquippedBy(); // игрок, взявший топор в руку
    object oTopor = GetObjectByTag("T"); // собствено сам топор
    float dt = 1.0f, distance = 30.0f; // время обработки + дистанция
    int   ip = ITEM_VISUAL_EVIL; // визуальный эффект топора
//==============================================================================
void check();
//==============================================================================
void check()
{
    object oNear = GetNearestCreature(CREATURE_TYPE_RACIAL_TYPE, RACIAL_TYPE_ELF, oPC);
    itemproperty ipFirst;

    if (GetDistanceBetween(oPC, oNear) < distance)
    if (!GetLocalInt(oPC, "TOPOR"))
    {
        SetLocalInt(oPC, "TOPOR", 1);
        SendMessageToPC(GetFirstPC(), "Эльфы рядом!...МОЧИ ИХ!");
        AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyVisualEffect(ip), oTopor);
    }
    if (GetDistanceBetween(oPC, oNear) > distance)
    if (GetLocalInt(oPC, "TOPOR"))
    {
        ipFirst = GetFirstItemProperty(oTopor);
        while (GetIsItemPropertyValid(ipFirst))
        {
            if (GetItemPropertyType(ipFirst) == ITEM_PROPERTY_VISUALEFFECT)
            {
                SetLocalInt(oPC, "TOPOR", 0);
                RemoveItemProperty(oTopor, ipFirst);
                break;
            }
            ipFirst = GetNextItemProperty(oTopor);
        }
    }
    if (!GetLocalInt(GetModule(), "UNEQUIPPED"))
    DelayCommand(dt, check());
}
//==============================================================================
void main()
{
    object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);

    if (oItem == oTopor){SetLocalInt(GetModule(), "UNEQUIPPED", 0); check();}
}


Одно НО в нем для укорочения кода применина рекурсия так, что если покажется, что слишком тормозит просто продублируй функцию check(), но вообще это врят ли будет сильно заметно. (IMG:style_emoticons/kolobok_light/declare.gif)

PS: забыл добавить - в скрипте на событий OnPlayerUnEquipItem допиши строчки
Neverwinter Script Source
object oItem = GetPCItemLastUnequipped();
object oTopor = GetObjectByTag("T");
if (oItem == oTopor) SetLocalInt(GetModule(), "UNEQUIPPED", 1);


Сообщение отредактировал StalkerDtN - Feb 14 2006, 13:51
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ангелиус
сообщение Feb 15 2006, 20:09
Сообщение #1958


Level 1


Класс: Обыватель
Характер: Chaotic Evil
Раса: Человек



Можно сделать такую фишку как: скажем я играю одним персом, но активировав самодельное заклинание мой перс превращается в другого перса сделаного отдельно (существо) со своими навыками и в зависимости от опыта моего реального перса дается опыт и тому в которого я превращусь? Получается что-то вроде магии смены формы. Просто есть гениальная задумка(IMG:style_emoticons/kolobok_light/smile.gif) ))


Сообщение отредактировал Ангелиус - Feb 15 2006, 20:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 15 2006, 20:17
Сообщение #1959


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

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



можно.

Смена формы либо так:
Neverwinter Script Source
// Sets the creature's appearance type to the value specified (uses the APPEARANCE_TYPE_XXX constants)
void SetCreatureAppearanceType(object oCreature, int nAppearanceType)

Поменяется только внешний вид.
либо так:
Neverwinter Script Source
// Create a Polymorph effect.
effect EffectPolymorph(int nPolymorphSelection, int nLocked=FALSE)

+ прописка в рolymorph.2da нужного тебе существа.

Выдача опыта через
Neverwinter Script Source
// Sets oCreature's experience to nXpAmount.
void SetXP(object oCreature, int nXpAmount)

и схожие с XP.

Навыки.. тут сложнее. Полиморфу можно прописать 3 уникальных НОВЫХ способности. Убрать старые никак, только делевелом в 0. Но скорее всего придется делать через шкурку и дачу свойств ей (это правка еще пары 2дашек)

подумай дважды, тебе нужен этот геморой или не очень. Можно обойтись просто сменой формы + парой новых способностей.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ангелиус
сообщение Feb 15 2006, 20:35
Сообщение #1960


Level 1


Класс: Обыватель
Характер: Chaotic Evil
Раса: Человек



Цитата(Lex @ Feb 15 2006, 20:17) [snapback]70151[/snapback]

можно.

Смена формы либо так:
Neverwinter Script Source
// Sets the creature's appearance type to the value specified (uses the APPEARANCE_TYPE_XXX constants)
void SetCreatureAppearanceType(object oCreature, int nAppearanceType)

Поменяется только внешний вид.
либо так:
Neverwinter Script Source
// Create a Polymorph effect.
effect EffectPolymorph(int nPolymorphSelection, int nLocked=FALSE)

+ прописка в рolymorph.2da нужного тебе существа.

Выдача опыта через
Neverwinter Script Source
// Sets oCreature's experience to nXpAmount.
void SetXP(object oCreature, int nXpAmount)

и схожие с XP.

Навыки.. тут сложнее. Полиморфу можно прописать 3 уникальных НОВЫХ способности. Убрать старые никак, только делевелом в 0. Но скорее всего придется делать через шкурку и дачу свойств ей (это правка еще пары 2дашек)

подумай дважды, тебе нужен этот геморой или не очень. Можно обойтись просто сменой формы + парой новых способностей.


Просто я хочу небольшой сюжетик в оригинальном НВН сделать, чисто чтобы разнообразить игру. Задумка такая, я начинаю играть призраком который не может практически наносить повреждения, а чтобы попасть в этот мир я через полиформу призываю уникальное тело которым я и сражаюсь. Для этого мне и необходимо, чтобы опыт распространялся на 2х ибо уникальным телом будет именно обычное игровое (персональное). Если есть возможность Лекс стукни пжл. в асю чтобы я форум не засорял, т.к. я начинающий (аська 328-816-428).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 77 78 79 80 81 > » 
Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th April 2025 - 11:47