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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 77 78 79 80 81 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
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).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 15 2006, 22:27
Сообщение #1961


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

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



Цитата
Если есть возможность Лекс стукни пжл. в асю чтобы я форум не засорял, т.к. я начинающий (аська 328-816-428).

Звиняй, возможность стукнуть конечно есть, но дел и своих более чем хватает. А форум как раз для того и есть, чтобы учиться. Только перед этим хорошо бы ознакомиться с мануалами и другими полезными материалами, а потом уже спрашивать конкретно то, что НЕ ПОЛУЧАЕТСЯ СДЕЛАТЬ самому. Вариант "сделайте мне" скорее всего останется без ответа, ибо тут все занятые люди.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ангелиус
сообщение Feb 16 2006, 00:10
Сообщение #1962


Level 1


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



Цитата(Lex @ Feb 15 2006, 22:27) [snapback]70163[/snapback]

Звиняй, возможность стукнуть конечно есть, но дел и своих более чем хватает. А форум как раз для того и есть, чтобы учиться. Только перед этим хорошо бы ознакомиться с мануалами и другими полезными материалами, а потом уже спрашивать конкретно то, что НЕ ПОЛУЧАЕТСЯ СДЕЛАТЬ самому. Вариант "сделайте мне" скорее всего останется без ответа, ибо тут все занятые люди.

Да не, делать ничего не надо, решил понемногу порозбираться, а вот скажем чтобы мой прес стал "призраком", т.е. как я понял на него должно постоянно кастоваться автоматически заклинание "Призрачный вид" даже не само оно, а его эффект. Что бы реализовать это на деле необходим скрип или есть какая-нибудь шкура существа дающая такой эффект?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 16 2006, 00:20
Сообщение #1963


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

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



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

Neverwinter Script Source
// наложение постоянного визуального эффекта на игрока
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE), GetFirstPC());
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Night Elf
сообщение Feb 16 2006, 02:47
Сообщение #1964


Level 1


Класс: Маг
Характер: Lawful Neutral
Раса: Полуэльф



Люди помогите... напишите кто-нибудь скрипт : мне нуно что-бы фермер после определенной фразы давал мне предмет "колечко" напишите скрипт.. очень нужно....
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Feb 16 2006, 06:17
Сообщение #1965


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

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



мдямс...это помойму уже смешным становиться..
фраза где? в диалоге или просто в чат?
энивей ф-ция дающая айтем и создающая его

Neverwinter Script Source
// Give oItem to oGiveTo
// If oItem is not a valid item, or oGiveTo is not a valid object, nothing will
// happen.
void ActionGiveItem(object oItem, object oGiveTo)


Neverwinter Script Source
// Create an item with the template sItemTemplate in oTarget's inventory.
// - nStackSize: This is the stack size of the item to be created
// * Return value: The object that has been created.  On error, this returns
//  OBJECT_INVALID.
// If the item created was merged into an existing stack of similar items,
// the function will return the merged stack object. If the merged stack
// overflowed, the function will return the overflowed stack that was created.
object CreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1)


на крайняк можно и лексикон открыть...или когда ф-цию ищещ набрать слово Item или Give

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

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

 



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