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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 66 67 68 69 70 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
-fenix-
сообщение Jul 21 2005, 13:32
Сообщение #1676


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

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



Neverwinter Script Source
int removeStackItems(object oInventory, string sItem, int nNum)

object oInventory - объект в инвентаре которого нужно удалить вещь.
string sItem - тег вещи, которую надо удалить.
int nNum - кол-во, сколько надо удалить.


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


Level 3
*

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



QUOTE (Аваддон @ Jul 21 2005, 13:09)
В параметрах вещи.

Я имел ввиду скрипт.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 21 2005, 14:11
Сообщение #1678


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

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



Это функция, кОторая это делает, что тебе надо
Neverwinter Script Source
int removeStackItems(object oInventory, string sItem, int nNum)

object oInventory - объект в инвентаре которого нужно удалить вещь.
string sItem - тег вещи, которую надо удалить.
int nNum - кол-во, сколько надо удалить.


Это так сказать объяснение, что это функция делает
Neverwinter Script Source
{
  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; // возвращаем кол-во уд-х пред-ов
}

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

З.Ы описание должно быть до использование функции, лучше всего в самом начале.
З.З.Ы а еще лучше скинуть ее в отдельный файл и подключить его как инклюд!

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


Level 3
*

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



Ладно, я уже по-другому сделал, спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 21 2005, 23:19
Сообщение #1680


Level 10
***

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



QUOTE
zmeyдля daemonix: а в hordes? там было двое!

Хм, просто я не играл в Hordes. У меня только Shadows of Undertide есть. Но скоро куплю.
Добавлено в [mergetime]1121977284[/mergetime]
З.Ы. Думаете, есть смысл делать мод для непрокачанного героя?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jul 22 2005, 00:36
Сообщение #1681


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

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



QUOTE (zmey @ Jul 21 2005, 11:25)
больше одного не получается. Чего им нужно, блин?

в скрипт OnModuleLoad добавь строку:
Neverwinter Script Source
SetMaxHenchmen(5);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 22 2005, 09:41
Сообщение #1682


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

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



Daemonix ты имеешь в виду мод для героя первого уровня? Дык конечно лучше делать, чтобы начинать первоуровневым игроком, а потом прокачать его (по ходу игры) скажем до 20 :D. Лично я так и делаю, у себя.
Добавлено в [mergetime]1122021364[/mergetime]
QUOTE
Хм,.. инетресно. А кто-нибудь в курсах, как можно при разговоре с неписём:

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

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

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



Daemonix! Наверно скорее всего я опоздал :xz: … Но если нет, или если ты до конца не понял тогда смотри:

Пример:
NPC: Привет игрок! У меня есть деньги!
Игрок: (убеждение) Не поделишься богатством?
1) Вариант ответа NPC, при срабатывании убеждения:
Конечно на, я не жадный!
2) Вариант ответа NPC, при провале убеждения:
Нет! Пошел ты!
Дык вот, Первый вариант появляется если в закладку ПОЯВЛЯЕТСЯ ПРИ, добавить этот скрипт:
Neverwinter Script Source
#include "nw_i0_tool"

int StartingConditional()
{
    if(!(AutoDC(DC_EASY, SKILL_PERSUADE, GetPCSpeaker())))
        return FALSE;

    return TRUE;
}

Ты можешь сам делать такие скрипты, просто в Мастере скриптов (Это в редакторе диалога, ты наверное знаешь) ПОЯВЛЯЕТСЯ ПРИ -> МАСТЕР СКРИПТОВ -> КРИТЕРИЙ УМЕНИЙ и проверяешь убеждение…
P.S: У меня стоит Hordes of the Underdark, а у тебя ведь Shadows of Undrentide может что не сойдется…но вроде и должно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 22 2005, 15:33
Сообщение #1683


Level 10
***

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



Спасибо, Dik Morris!


Вот ещё что, я тут на днях придумал такой скрипт, хотя и уверен, что его кто-то до меня уже придумал.
Так вот: вам часто приходится делать города в своих модулях? И не все же неписи в городах смогут сказать что-то важное. Обычно их реплики сводятся к одной строчке. И мне в голову пришла мысль:
как можно сделать так, чтобы непись произносил не одну и ту же короткую реплику всё время, а разные?

Объяснение просто:
Берём непися, создаём ему разговор: а там, в разговоре делаем ему 4(можете сколько угодно) разных приветствия.
Я пробовал на таких:
-Привет!
-Тебе нравится наш город!
-Похоже ты не местный!
-Я бы посоветовал тебе пойти в таверну!

И привязываем к каждому приветствию условие появления:
CODE
int StartingConditional()
{

// Вместо 4 ставим своё кол-во реплик
if(Random(4) >= 1)
 return FALSE;

return TRUE;
}

Вот. Я всё проверил и вроде пашет. Но лучше всего увеличьте число реплик с 4 до 8-10.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 22 2005, 16:00
Сообщение #1684


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

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



Daemonix попробовал я твой скрипт :yes:, все вроде нормально но вот иногда НПС молчит и приходится повторно щелкать, напрягает знаете ли :unsure: ...Но можно делать проверкой, случайно (ТЕКСТ ПОЯВ. ПРИ СЛУЧАЙНО) так тоже нечего, и не надо каждый раз другие скрипты делать т.к не у всех ведь неписей одинаковое кол-во фраз, у кого-то больше, у кого-то меньше.

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


Level 10
***

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



Да, это верно. Надеюсь, можно будет что-нибудь доработать. А такой простой скрипт можно и в ScriptWizard'е сделать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 22 2005, 21:06
Сообщение #1686


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

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



Daemonix хм... а зачем же "Random(4) >= 1"? У тебя получается, что говорить НПС будет только в одном случае. Лучше уж сделать тогда один скрипт, а диалог выполнить на токене. В скрипте расписать переключатель, и каждый раз НПС будет говорить разные фразы, причем молчать не будет никогда.

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


Level 10
***

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



QUOTE
ZirrexЛучше уж сделать тогда один скрипт, а диалог выполнить на токене. В скрипте расписать переключатель, и каждый раз НПС будет говорить разные фразы, причем молчать не будет никогда.


В смысле? Пожалуйста, расскажи поподробнее.
Добавлено в [mergetime]1122056496[/mergetime]
З.Ы. Не очень хорошо разбираюсь в токенах.
Добавлено в [mergetime]1122056598[/mergetime]
З.З.Ы. Так и думал, что все сразу раскритикуют.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 23 2005, 08:08
Сообщение #1688


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

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



Daemonix,
QUOTE
Так и думал, что все сразу раскритикуют.

Критика то необходима... куда уж без нее.
И вообще лучше делать не просто безмозглые фразы, а фразы со смыслом, пусть и не большим :D .
Простой пример:
"Немедленно оденьтесь!" (Текст появ. при - вы без одежды)
"Господи! Да вы ранены!" (Текст появ. при - вы ранены)
"Нечего себе мускулы!" (Текст появ. при, проверка на силу)
"Ух, да ты еще совсем молодой!" (Текст появ. при - проверка на возраст)
"Здорово орк!" (Текст появ. при - раса)
"Привет варвар!" (Текст появ. при - класс)
Все это очень легко, и делается в визарде, и несомненно приукрасит диалог...
З.Ы: если нужны скрипты на одежду и ранение тогда скажи.

Сообщение отредактировал Dik Morris - Jul 23 2005, 08:09
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Валеско
сообщение Jul 23 2005, 08:42
Сообщение #1689


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

Класс: Бард
Характер: Chaotic Neutral
Раса: Животное
МАСТЕР Пера



QUOTE
"Ух, да ты еще совсем молодой!"


я бы заменил на что-то типа:
"Ей, парень, привет!"
"Юноша, отойдите с дороги"
и "Куда прешь, дедуган?!" при большом возрасте.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 23 2005, 12:14
Сообщение #1690


Level 10
***

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



Dik Morris,
QUOTE
З.Ы: если нужны скрипты на одежду и ранение тогда скажи.


Да, кстати, пригодились бы, и вообще, хорошая идея!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 23 2005, 13:01
Сообщение #1691


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

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



Daemonix!
Блин я тогда напутал что то извини в общем, дал тебе два одинаковых скрипта :crazy: , сорри, вот исправил:
Вот скрипт если игрок ранен: (ставится на Текст. появ при)
Neverwinter Script Source
int StartingConditional()
{
    if ((GetLocalInt(OBJECT_SELF,"counter")!=3) && (GetLocalInt(OBJECT_SELF,"counter")!=1))
    {
        int roll=d100();
        if (roll>60)
        {
            int CurrentHP=GetCurrentHitPoints(GetPCSpeaker());
            int MaxHP=GetMaxHitPoints(GetPCSpeaker());
            if ((MaxHP/2)>=(CurrentHP))
            {
                return TRUE;
            }
            return FALSE;
        }
        return FALSE;
    }
    return FALSE;
}

А, скрипт если игрок не одет: (ставится на Текст. появ при)
Neverwinter Script Source
int StartingConditional()
{
    if ((GetLocalInt(OBJECT_SELF,"counter")!=1) && (GetLocalInt(OBJECT_SELF,"counter")!=2))
    {
        int roll=d100();
        if (roll>33)
        {
            object oItem=GetItemInSlot(INVENTORY_SLOT_CHEST,GetPCSpeaker());
            if(!GetIsObjectValid(oItem))
            {
                return TRUE;
            }
            return FALSE;
        }
        return FALSE;
    }
    return FALSE;
}



Сообщение отредактировал Dik Morris - Jul 23 2005, 13:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 23 2005, 13:11
Сообщение #1692


Level 10
***

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



Dik Morris!

А не знаешь, как вообще сделать так, чтобы непись, которого ты побьёшь, переставал драться и начинал диалог? :vava:
Добавлено в [mergetime]1122113847[/mergetime]
Кстати говоря, спасибо!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 23 2005, 14:43
Сообщение #1693


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

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



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

Посмотри здесь скрипт Айвана Скрипты. Том III.

Самый простой способ вывести сообщение по токену:

Neverwinter Script Source
int StartingConditional()
{
    string sMessage;
    int iRandom = d6();

    switch (iRandom)
    {
        case 1: sMessage = "Сообщение 1"; break;
        case 2: sMessage = "Сообщение 2"; break;
        case 3: sMessage = "Сообщение 3"; break;
        case 4: sMessage = "Сообщение 4"; break;
        case 5: sMessage = "Сообщение 5"; break;
        case 6: sMessage = "Сообщение 6"; break;
    }

    SetCustomToken(10000, sMessage);
    return TRUE;
}

В Диалоге НПС создаешь его ответ таким образом:

Neverwinter Script Source
<CUSTOM10000>

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

Dik Morris, а зачем ты постоянно в скриптах используешь переменные? Они у тебя хоть изменяются или так и остаются равными нулю? Если остаются, какой в них прок, только усложнение простого скрипта. Те же скрипты, только проще:

Neverwinter Script Source
int StartingConditional()
{
    object oPC = GetPCSpeaker();

    int CurrentHP = GetCurrentHitPoints(oPC);
    int MaxHP = GetMaxHitPoints(oPC) / 2;

    if (d100() > 60)
    {
        if (MaxHP >= CurrentHP)
        {
            return TRUE;
        }
        return FALSE;
    }
    return FALSE;
}

Neverwinter Script Source
int StartingConditional()
{
    object oPC = GetPCSpeaker();
    object oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);

    if (d100() > 33)
    {
        if (!GetIsObjectValid(oItem))
        {
            return TRUE;
        }
        return FALSE;
    }
    return FALSE;
}


Сообщение отредактировал Zirrex - Jul 23 2005, 15:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 24 2005, 18:13
Сообщение #1694


Level 10
***

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



Спасибо, Zirrex, потом попробую.... А никто не знает, как делать диалог неотменяемым, т.е. жмёшь на ESC и всё равно остаёшься в нём? А то его очень надо дослушать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 24 2005, 18:18
Сообщение #1695


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

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



Daemonix, ставишь в св-вах непися прям на первой заклатке, на против диалога, галочку "без прерывания".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Аваддон
сообщение Jul 24 2005, 19:26
Сообщение #1696


Level 10
***

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



-fenix- Ух ты! А я думал это для того, чтобы другим игрокам во время диалога, при кликах на НПС писалось что объект занят:)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Daemonix
сообщение Jul 24 2005, 20:51
Сообщение #1697


Level 10
***

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



Во, класс! А я чё-то ещё не могу найти в предметах, интерьере, ландшафтах такую фигню: большие ворота (локация типа "деревенский"). Не подскажете, где мне их найти?
Добавлено в [mergetime]1122227532[/mergetime]
Такие ворота были и в Игре в эпизоде 3 (если не ошибаюсь) на входе в город Лускан.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 24 2005, 21:35
Сообщение #1698


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

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



QUOTE (-fenix- @ Jul 24 2005, 21:18)
Daemonix, ставишь в св-вах непися прям на первой заклатке, на против диалога, галочку "без прерывания".

И что? Хочешь сказать не будет прерываться? :D Будет. Надо принудилово ставить катсцену и стартовать диалог. Потом отменять в диалоге катсцену. Если уж учите чему, то проверяйте хотя бы. :no:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 24 2005, 21:37
Сообщение #1699


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

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



В особенностях есть несколько ворот!
QUOTE (Daemonix @ Jul 24 2005, 20:51)
Такие ворота были и в Игре в эпизоде 3 (если не ошибаюсь) на входе в город Лускан.

Это где, в ПЛ? Тогда наверно там они в хаке.

QUOTE (Aiwan @ Jul 24 2005, 21:35)
что? Хочешь сказать не будет прерываться? biggrin.gif Будет. Надо принудилово ставить катсцену и стартовать диалог. Потом отменять в диалоге катсцену. Если уж учите чему, то проверяйте хотя бы.

Я дог глубины души был уверен, что он не будет прерываться :( (хотя не когда не пробовал :) )


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


Level 10
***

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



QUOTE
адо принудилово ставить катсцену и стартовать диалог. Потом отменять в диалоге катсцену.


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

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

 



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