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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 65 66 67 68 69 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
DroWishSoul
сообщение Jul 20 2005, 08:29
Сообщение #1651


Level 3
*

Класс: Убийца
Характер: Chaotic Neutral
Раса: Эльф



QUOTE (-fenix- @ Jul 20 2005, 08:21)
Тут вот в прохождении спрашивали, что значит меч +1 и у меня возникло массу других вопросов, что значит...
Есть какой-нить хелп, FAQ, по этому поводу? Наверное в лицензионных играх есть статьи, где объясняются все параметры и скилы, но в пиратке этого нет. Где можно это достать?

Откуда можно это достать, я не знаю, всё узнавал по собственному опыту.
Если надо, то попробуй поискать на яндексе. Хотя, я почти уверен, что такие FAQ есть на какой-нибудь игромании в архивах или на ЛКИ.
Добавлено в 12:53
Помогите еще раз со скриптом... мне надо, чтобы в определенный промежуток времени (например, с 21 вечера до 6 утра) объект (например, NPC с тагом "tag") делал определенные действия (например, сидел (то есть, анимация, а не отдых))
вот так... да, и куда этот скрипт всунуть? :xz:

Сообщение отредактировал DroWishSoul - Jul 20 2005, 12:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 20 2005, 15:35
Сообщение #1652


Level 10
***

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Человек



DroWishSoul
Если не ошибаюсь, было в базе скриптов. Но где-то точно было.
Добавлено в [mergetime]1121863071[/mergetime]
Вот, у меня тоже вопрос. Как сделать так:
вот непись, а вот его вэйпоинты. Сначала он идёт на первый WP, ждёт 10 сек, потом на второй, ждёт 10 сек и т.д. Где-то это было, но я ОЧЕНЬ ограничен во времени сидения в инете, чтобы искать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 20 2005, 16:07
Сообщение #1653


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

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



DroWishSoul, вот самое простое, ставим на OnHeartbeat

Neverwinter Script Source
void main()
{
object oNPC = OBJECT_SELF;

if (GetTimeHour() >= 21 || GetTimeHour() <=6) // проверяем время

    {
    AssignCommand(oNPC,ActionPlayAnimation(ACTION_SIT, 1.0, 10.0)); // совершаем любое действие
    }

    else
    {
    // иначе что-то еще
    }
}


Сообщение отредактировал -fenix- - Jul 20 2005, 16:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 20 2005, 16:14
Сообщение #1654


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Вот и ответ на твой вопрос, просто нарисуй триггер (надеюсь ты знаешь что это такое) и на onEnter поставь вот этот скриптик
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oNPC = GetObjectByTag("Тэг твоего NPC");
object oWP_1 = GetWaypointByTag("Тэг первого вайпоинта");
object oWP_2 = GetWaypointByTag("Тэг второго вайпоинта");
object oWP_3 = GetWaypointByTag("Тэг третьего вайпоинта");

if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") == 1)
return;
SetLocalInt(OBJECT_SELF,"TRIGGER",1);

ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWP_1)));
ActionWait(10.0);
ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWP_2)));
ActionWait(10.0);
ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWP_3)));
ActionWait(10.0);
}

P.S: обрати внимание что ты сам можешь указать время, (ActionWait) добавить анимацию, фразы…
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DroWishSoul
сообщение Jul 20 2005, 16:16
Сообщение #1655


Level 3
*

Класс: Убийца
Характер: Chaotic Neutral
Раса: Эльф



Благодарю.
Добавлено в 16:49
есть ещё вопросы:
fenix, можно ли подобное сотворить НЕ через HeartBeat, а, например, с наступлением определенного времени NPC должен делать действие?
а ACTION_SIT - это имеется ввиду сидение на стуле? Мне нужно, как при отдыхе... Но когда я ставлю ACTION_REST, он почему-то заваливается на спину с громким хлопком, а не садится на пол (а при ACTION_SIT не происходит ничего).

Сообщение отредактировал DroWishSoul - Jul 20 2005, 16:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 20 2005, 18:15
Сообщение #1656


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

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



QUOTE (DroWishSoul @ Jul 20 2005, 16:16)
а ACTION_SIT - это имеется ввиду сидение на стуле? Мне нужно, как при отдыхе... Но когда я ставлю ACTION_REST, он почему-то заваливается на спину с громким хлопком, а не садится на пол (а при ACTION_SIT не происходит ничего).


Да, это я ступил надо вот, что писать ANIMATION_LOOPING_SIT_CROSS.

QUOTE (DroWishSoul @ Jul 20 2005, 16:16)
можно ли подобное сотворить НЕ через HeartBeat, а, например, с наступлением определенного времени NPC должен делать действие?


На сколько я знаю, специального слота, для ночного и дневного события нет!
Так, что проверяем это через хертбит каждые 6 секунд.
Если беспокоит, что он ночью каждые 6 секунд приказы отдает то можно так сделать.
Neverwinter Script Source
void main()
{
object oNPC = OBJECT_SELF;

if (GetTimeHour() >= 21 && GetLocalInt(oNPC, "Ночь") == 0 ||
    GetTimeHour() <=6 && GetLocalInt(oNPC, "Ночь") == 0)

    {
    AssignCommand(oNPC,ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 10.0));
    SetLocalInt(oNPC, "Ночь", 1);
    }

    else
    {
    if (GetLocalInt (oNPC, "Ночь") == 1)
        SetLocalInt(oNPC, "Ночь", 0);
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DroWishSoul
сообщение Jul 20 2005, 18:45
Сообщение #1657


Level 3
*

Класс: Убийца
Характер: Chaotic Neutral
Раса: Эльф



fenix, большое спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 20 2005, 20:43
Сообщение #1658


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



-fenix- ну и нагромоздил же ты скрипт, а не проще ли написать так:

Neverwinter Script Source
void main()
{
    if (GetLocalInt(OBJECT_SELF, "Night") == FALSE)
    {
        if (GetTimeHour() >= 21 || GetTimeHour() <= 6)
        {
            AssignCommand(OBJECT_SELF, PlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 9999.0));
            SetLocalInt(OBJECT_SELF, "Night", TRUE);
        }
    }
    else
    {
        SetLocalInt(OBJECT_SELF, "Night", FALSE);
    }
}

И делать это надо не на хартбит, а на эвент OnRested. На эвенте хартбита при определенных условиях просто заставлять использовать функцию сна, в скрипте которого уже будет прописан сей скрипт. Желательно также сделать условия, что если с НПС заговорили, то переменную стереть, но пока он говорит, не садиться, и т.п.

Dik Morris, не совсем понял, зачем триггер? Достаточно указать НПС, что от него требуется, и он уже сам будет делать то что надо. Скрипт же можно изобразить гораздо проще. Тем более есть такие возможности. Правим код на хартбите:

Neverwinter Script Source
WalkWayPoints(FALSE, 10.0);

На OnSpawn убираем или комментируем "WalkWayPoints();"

Сообщение отредактировал Zirrex - Jul 20 2005, 20:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 20 2005, 20:54
Сообщение #1659


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

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



QUOTE (Zirrex @ Jul 20 2005, 20:43)
а не проще ли написать так:

Проще, ну дак я сам только учусь :)
Zirrex, а зачем на OnRested, я че та не совсем допер, растолкуй плизз :xz:

З.Ы Дошла моя кутсценка :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 20 2005, 20:56
Сообщение #1660


Level 10
***

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Человек



Спасибо Dik Morrsу и Zirrexу!
Кто-нибудь знает как на OnDeath непися постаить добавление записи в журнал игрока?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DroWishSoul
сообщение Jul 20 2005, 21:30
Сообщение #1661


Level 3
*

Класс: Убийца
Характер: Chaotic Neutral
Раса: Эльф



Daemonix, наверное, вот так:
Neverwinter Script Source
void main()
{
  object oPC = GetLastKiller();
  AddJournalQuestEntry("TAG", ID, oPC); // вводим вместо TAG тэг квеста в журнале, а вместо ID - ID записи (это все вводится в Journal Editore)
}

PS Это если на случай, что ты его убил... эхм... а если его убьет твой фамилиар... мда... меня лучше не слушать :swoon:

Сообщение отредактировал DroWishSoul - Jul 20 2005, 21:32
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 20 2005, 21:33
Сообщение #1662


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

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



Не много дополню
QUOTE (Daemonix @ Jul 20 2005, 20:56)
Кто-нибудь знает как на OnDeath непися постаить добавление записи в журнал игрока?

Есть функция
Цитата из перевода Valleo
Neverwinter Script Source
void AddJournalQuestEntry(string szPlotID, int nState, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE, int bAllowOverrideHigher=FALSE)

string szPlotID - это плот ID, который создается при создании записи в toolset&#39;s Journal Editor
int nState - номер статейки, которую надо записать в ваш журнал, тоже найдете в toolset&#39;s Journal Editor
object oCreature - каму добавится запись в журнал
int bAllPartyMembers - если TRUE - запись добавится всем партийцам
int bAllPlayers - если TRUE - запись добавится ВСЕМ в этом МИРЕ
int bAllowOverrideHigher - если TRUE - вы сможете установить номер записи, меньшИй, чем текущий. То есть если номер текущей записи в квесте szPlotId - N, то с этой опцией вы сможете установить любой номер, меньший N. Это полезно в случае отката квеста на некоторое время назад, либо при множественном выборе номер, когда точно неизвестно, будет ли номер больше текущего, либо меньше.


Сообщение отредактировал -fenix- - Jul 20 2005, 21:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 20 2005, 21:38
Сообщение #1663


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Daemonix при смерти НПС добавляешь запись в журнал персонажа. Правда, НПС должен быть уникальным:

Neverwinter Script Source
void main()
{
    object oKiller = GetLastKiller();

    if (GetIsPC(oKiller) && (GetLocalInt(oKiller, "NW_JOURNAL_ENTRYJOUR_Save") < 10))
    {
        AddJournalQuestEntry("JOUR_Save", 10, oPC, TRUE, TRUE);
    }
}

Строчка "(GetLocalInt(oKiller, ""NW_JOURNAL_ENTRYJOUR_Save") < 10)", если у тебя не одна запись, и в данном случае добавляется первая.

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

DroWishSoul, так надо выделить, кто убивает НПС.

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

Сообщение отредактировал Zirrex - Jul 20 2005, 21:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 20 2005, 21:39
Сообщение #1664


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

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



Не надо изобретать велосипедов. Все уже давно написано за вас и не так криво...
Neverwinter Script Source
void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)

Стандартная функция Биовар. Если прописать так:
Neverwinter Script Source
WalkWayPoints(FALSE, 10.0);

То будет ходить по поинтам и ждать ровно 10 секунд. Если повесить на поинт локалку X2_L_WAYPOINT_SETFACING становится лицом в сторну вепоинта.

QUOTE (DroWishSoul @ Jul 20 2005, 11:29)
Помогите еще раз со скриптом... мне надо, чтобы в определенный промежуток времени (например, с 21 вечера до 6 утра) объект (например, NPC с тагом "tag") делал определенные действия (например, сидел (то есть, анимация, а не отдых))
вот так... да, и куда этот скрипт всунуть?

То же самое, читаем спавн скрипт на НПС по дефолту. Там написано что надо разкомментировать, что бы НПС ходил домой ночью. И даже как назвать скрипт что будет запускаться когда он дойдет до ночного поинта отдыха. А что он будет делать, решать вам.

LocalString X2_S_SLEEP_AT_NIGHT_SCRIPT == "имя_скрипта_на_ночь" - Стринг на модуле - запускает скрипт ночью на НПС надо NW_FLAG_SLEEPING_AT_NIGHT
Neverwinter Script Source
SetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT);

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 20 2005, 21:54
Сообщение #1665


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Aiwan, так он же хочет, чтобы он не уходил, а просто сидел ночью. Чтобы НПС ушел, это не сложно, а вот чтобы сидел в определенный промежуток времени, надо бы уже иначе.

-fenix-, потому что, чем меньше подобных скриптов на хартбите, тем лучше. Если не указать определенных условий, он будет делать подобное, в данном случае, сидеть, когда ему захочется этого, точнее велит сам скрипт. Если не хартбите сделать команду отдыха, когда НПС в режиме покоя, т.е. с ним никто не разговаривает, не бьет, или он сам не сражается, причем не "ActionRest", а "ForceRest", чтобы он сел отдыхать, при этом будет выполняться соответствующий скрипт.

Я почему не хотел бы еще кидать тот скрипт на хартбит, чтобы он не проверялся постоянно, а выполнялся только тогда, когда это точно нужно. Т.е. НПС сидел и вдруг встал, и чтобы он сел снова, нужно уже иметь готовую переменную.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 20 2005, 23:24
Сообщение #1666


Level 10
***

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Человек



Хм,.. инетресно. А кто-нибудь в курсах, как можно при разговоре с неписём:

Непись:
- Пошёл отсюда!

Герой(вар.1):
<убеждение> Успокойся, я хочу помочь!

Герой(вар.2):
Ладно, пойду.

При первом варианте может быть так:

Непись(вар.1)
<успех>Да, ты прав... Мне надо расслабиться...

<неудача> Нет, я тебе не верю. Вали прочь!


Так вот, с появлением фразы
QUOTE

<убеждение> Успокойся, я хочу помочь!

я уже разобрался, а как далее?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Puh
сообщение Jul 21 2005, 02:35
Сообщение #1667


Level 2
*

Класс: Теневой Танцор
Характер: Neutral Evil
Раса: Полуэльф



Имеешь в виду как сделать проверку на скил, т.е. если достаточно, то вариант <успех>, а если не хватает, то второй вариант? Если да, то на вариант ответа неписи "Да, ты прав..." вешай что-нибудь типа такой фигни:
(во вкладке "надпись появляется при")

int StartingConditional ()
{
object oPC = GetPCSpeaker ();
if (!(GetAbilityScore(oPC, ABILITY_INTELLIGENCE) >= 15'к примеру')) return FALSE;
return TRUE;
}

на второй вариант можешь повесить почти тоже самое, только измени знаки >= на <, хотя это делать не обязательно(в смысле вешать второй скрипт :yes: ).

ЗЫ: если я неправильно понял твой вопрос, то извини...

Сообщение отредактировал Puh - Jul 21 2005, 02:36
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 21 2005, 09:04
Сообщение #1668


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

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



Daemonix открой любой диалог в ПЛ к примеру и посмотри как сделано. Все описывать тебе просто замучаешься... Там все просто. Я лично разбирался глядя на диалоги Биовар.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DroWishSoul
сообщение Jul 21 2005, 09:32
Сообщение #1669


Level 3
*

Класс: Убийца
Характер: Chaotic Neutral
Раса: Эльф



Эх... еще вопрос... как NPC заберет у меня 5 предметов с одним тагом во время диалога?
PS Уже стыдно спрашивать :oops:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Jul 21 2005, 10:25
Сообщение #1670


Level 4
**

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



Люди добрые! (Гномы, эльфы и иже с ними) помогите ради всех богов! Нужно мне несколько спутников взять с собой. (2- 5) а больше одного не получается. Чего им нужно, блин? :DB:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 21 2005, 10:59
Сообщение #1671


Level 10
***

Класс: Мастер Оружия
Характер: Lawful Good
Раса: Человек



QUOTE
zmey
Люди добрые! (Гномы, эльфы и иже с ними) помогите ради всех богов! Нужно мне несколько спутников взять с собой. (2- 5) а больше одного не получается. Чего им нужно, блин?


Всмысле каких спутников? Чтобы неписи просто шли за тобой или их морды появлялись в правом верхнем углу?(фамилиары) В последнем случае более одного никогда не видел... :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Jul 21 2005, 11:10
Сообщение #1672


Level 4
**

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



для daemonix: а в hordes? там было двое!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 21 2005, 11:36
Сообщение #1673


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

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



DroWishSoul, тут не давно было, вылелось в функцию
Neverwinter Script Source
int removeStackItems(object oInventory, string sItem, int nNum)
{
  object oItem = GetFirstItemInInventory(oInventory);
  int nCount = nNum; // столько итемов осталось удалить
  while(GetIsObjectValid(oItem) && (nCount > 0))
  {
    if(GetTag(oItem) == sItem)
    {
      int nStack = GetItemStackSize(oItem);
      if (nStack <= nCount)    // ЕСЛИ в стопке предметов меньше,
      {                        // чем нам нужно удалить:
        DestroyObject(oItem);  // - удаляем все стопку
        nCount-=nStack;        // - уменьшаем счетчик на кол-во уд-х пред-ов
      } else                     
      { // ИНАЧЕ сокращ. размер стопки и обнуляем счетчик
        SetItemStackSize(oItem, nStack-nCount);
        nCount = 0;
      }
    }
    oItem = GetNextItemInInventory(oInventory);
  }
  return nNum - nCount; // возвращаем кол-во уд-х пред-ов
}

zmey, на сколько я понимаю, то только в хорде так и можно делать, а вообще то же где-то это было.
Где-то нужно поставить максимум хенчменов, посмотри в темках.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DroWishSoul
сообщение Jul 21 2005, 13:03
Сообщение #1674


Level 3
*

Класс: Убийца
Характер: Chaotic Neutral
Раса: Эльф



Не пойму никак... где же тут указывается таг вещей?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Jul 21 2005, 13:09
Сообщение #1675


Level 10
***

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



QUOTE (DroWishSoul @ Jul 21 2005, 13:03)
Не пойму никак... где же тут указывается таг вещей?

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

205 страниц V  « < 65 66 67 68 69 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th April 2025 - 21:58