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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 152 153 154 155 156 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Lirulin
сообщение Jul 9 2008, 21:48
Сообщение #3811


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Цитата(Aiwan @ Jul 9 2008, 20:36) *
Есть скрипт для НПС, который будетбегать за РС и говорить типа: "Великий воин, последователь Темпуса! Подойди ко мне, базар есть!"
Настраивается дистанция. Напирмер, вы отбежали от НПС на 15 метров и все, он успокоился пока вас снова не увидит.

И он, этот скрипт, на Perception ставится, да? Или куда-то еще, а дистанция задается произвольно, независимо Perception'а NPC?

Сообщение отредактировал Lirulin - Jul 9 2008, 21:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ogneslav
сообщение Jul 9 2008, 21:48
Сообщение #3812


Level 4
**

Класс: Друид
Характер: True Neutral
Раса: Человек



Да, наверно действительно плохо искал.
Спасибо!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jul 9 2008, 21:58
Сообщение #3813


Level 3
*

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



Опять о триггерах и разговорах. Мы уже когда-то спрашивали тут, что делать с тем, что при 1 хенче реплика есть, при двух - нет=( Но это-то ладно... А как быть, если надо чтобы некоторые хенчи говорили что-то, а другие - нет? Только через их тэги устанавливать, какие говорят нужную фразу, а какие нет?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jul 9 2008, 22:52
Сообщение #3814


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

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



Да
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Xfans
сообщение Jul 10 2008, 06:26
Сообщение #3815


Level 3
*

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



Спасибо! А если хенчи по расе отличаются, то через racial type можно? Или все равно только тэгами?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ogneslav
сообщение Jul 10 2008, 08:56
Сообщение #3816


Level 4
**

Класс: Друид
Характер: True Neutral
Раса: Человек



Я недавно скачал СЕР 2.1 и начал разбираться с системой лошадок, практически во всем разобрался, но 1 вопрос остался, где брать радиальное меню, которое управляет этими лошадками?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 10 2008, 21:09
Сообщение #3817


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

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



Цитата(Lirulin @ Jul 10 2008, 00:48) *
И он, этот скрипт, на Perception ставится, да? Или куда-то еще, а дистанция задается произвольно, независимо Perception'а NPC?

Нет. Ставится на юзердеф. Perception срабаатывает и дает сигнал НПС дял скрипта. Надо?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jul 17 2008, 12:57
Сообщение #3818


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Очередной дурацкий вопрос из моей коллекции (IMG:style_emoticons/kolobok_light/smile.gif)

Хочу НПС OnSpawn прописать последовательность действий, которую он должен постоянно выполнять - пошел на первый вейп, сделал там что-нибудь, пошел на второй, постоял, пошел на третий, и так далее. Потом так же - обратно. Перешел к одному - действие - ко второму - действие, и т.д.
Как пишется анимация, я знаю и напишу. Вопрос в другом - нужно, чтобы НПС делал это все постоянно. Насколько я знаю, скрипт OnSpawn срабатывает только один раз. Как сделать, чтобы он работал постоянно. Вариант OnHeartbeat отпадает - за 6 секунд НПС с такой последовательностью действий не управится. Кам к мне поступить?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jul 17 2008, 14:03
Сообщение #3819


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Я бы через хербит делал, только надо воткнуть туда проверку (мы рядом с нужным вейпом? да - делаем то, что надо, идём дальше, нет - выходим).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jul 17 2008, 15:55
Сообщение #3820


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



можно вставить в экшен несколько экшенов, в том числе тот, который их вставляет... (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) хз как сказать нормально - чтобы объяснить рекурсию нужно сначала объяснить рекурсию... так что пример:
Neverwinter Script
void DoItAgain()
{
    SetCommandable(TRUE);
    ActionMoveToLocation(...);
    ActionPlayAnimation(...);
    // ...
    // и прочие непотребства

    ActionDoCommand(DoItAgain());
    SetCommandable(FALSE); // а это чтобы наш "шатун" не отвлекался на настырного игрока
}

void main()
{
    // ещё какая-то инициализация по умолчанию
    // ...

    DoItAgain();
}


Сообщение отредактировал azathoth - Jul 17 2008, 16:00
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 17 2008, 20:25
Сообщение #3821


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

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



shadowdweller, Лекса пни. Он это делает на пять с плюсом. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jul 17 2008, 23:50
Сообщение #3822


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Ну вот... Из трех советов до конца поняла только последний... Дядюшка Айв, не хочу я никого пинать, я хочу сама уметь. (IMG:style_emoticons/kolobok_light/sad.gif) Разжуйте мне, плиз, как для идиота, а? Хотя, почему - "как"? (IMG:style_emoticons/kolobok_light/sad.gif)

azathoth, спасибо (IMG:style_emoticons/kolobok_light/smile.gif) А то, что ты писал - куда ставится? На OnSpawn? И что такое "еще какая-то инициализация по умолчанию"? Это то, что в дефолтном скрипте может стоять? Есть, вообще, какие-то необходимые вещи, которые туда вписываются? С остальным, вроде, понятно более-менее.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jul 18 2008, 00:39
Сообщение #3823


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



я скрипт не тестировал даже (IMG:style_emoticons/kolobok_light/blum3.gif) предупреждаю, просто показал вариант работы экшанов. Ставится на онСпаун, действительно, в других местах он будет не к месту. "инициализация по умолчанию" - это то что обычно у неписи в онСпаун стоит (много чего там, вроде задания лисниг паттернов использующихся для работы ИИ - наверно ж важно, я такие вещи предпочитаю руками не трогать). можно просто этот скрипт запустить кроме всего прочего.

Neverwinter Script
ExecuteScript("nw_c2_default9", OBJECT_SELF);


а вообще я бы тоже это через онХатбит бы сделал, т.е. заставляем непись выполнять одно из действий А Б С и т.д., записываем текущее действие (локальная переменная), в следующий запуск соотвественно смотрим переменную, проверяем и дошел ли вообще нпц до вейпойнта и посылаем его выполнять следующее действие.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jul 18 2008, 01:02
Сообщение #3824


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Придется пинать Лекса. Жестокие вы люди, господа...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jul 18 2008, 01:10
Сообщение #3825


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

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



сначала курим (правда там на примере UD скрипта, но логика у него точно такая же как и у HB в данном случае):
http://nwnmod.narod.ru/stat_anim_npc1.htm
http://nwnmod.narod.ru/stat_anim_npc2.htm
демо-модуль с кузнецами: http://www.wrg.ru/download.php?view.50
потом можно пнуть, только нежно.

зы: делайте скидку на время написания, это было давно, некоторые конструкции или подходы уже могли устареть.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 18 2008, 19:24
Сообщение #3826


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

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



Вот модуль, в нем используется стандартные еванты. Посмотри любого НПС у него в слотах спавна и юзердеф и хертбит стоят мои скрипты. Твоя задача на парне который занимается ковром (в моем модуле он шкипер). Анимацию можешь сама изменить. В принципе, в этом модуле достаточно стандартных действий НПС что бы ты могла оживить весь модуль. Очень внимательно прочитай скрипт am_csp_common - в нем подробно распиано что будет делать НПС в том или ином случае. На НПС надо вешать локалки типа FLAG_RANGED и НПС становится атакующим рейнджером:
Neverwinter Script
//==================================================
============================

//      Атакующие свойства НПС - устанавливается ТОЛЬКО ОДНО ИЗ НИХ!
//==================================================
============================

    //--------------------------------------------------------------------------
    //  Старается атаковать издали, дальнобойным оружием.
    //--------------------------------------------------------------------------
    if (GetLocalInt(OBJECT_SELF, "FLAG_RANGED") == TRUE)
        {SetCombatCondition(X0_COMBAT_FLAG_RANGED);}
    //--------------------------------------------------------------------------
    //  Использует защитные фиты и паррирование
    //--------------------------------------------------------------------------
    if (GetLocalInt(OBJECT_SELF, "FLAG_DEFENSIVE") == TRUE)
        {SetCombatCondition(X0_COMBAT_FLAG_DEFENSIVE);}
    //--------------------------------------------------------------------------
    //  Будет невидимым и попытается атаковать, выйдет из невидимости и снова
    //  будет пытаться атаковать.
    //--------------------------------------------------------------------------
    if (GetLocalInt(OBJECT_SELF, "FLAG_AMBUSHER") == TRUE)
        {SetCombatCondition(X0_COMBAT_FLAG_AMBUSHER);}
    //--------------------------------------------------------------------------
    //  При атаке убегает
    //--------------------------------------------------------------------------
    if (GetLocalInt(OBJECT_SELF, "FLAG_COWARDLY") == TRUE)
        {SetCombatCondition(X0_COMBAT_FLAG_COWARDLY);}


Либо стандартные еванты. ЧТо бы НПС замечал игрока, и прочее, надо ему раскомментировать свойства. Например хертбит запускаем так: присваиваем на НПС локалку FLAG_HEARTBEAT == 1 в свойствах на локации. В общем смотри НПС там все расписано с комментариями..
Neverwinter Script
//==================================================
============================

//                  Запускаем стандартные еванты на НПС
//==================================================
============================

    //--------------------------------------------------------------------------
    // Если вы присвоите локальную переменную "FLAG_USER_DEFINED_EVENT" равную
    // TRUE, то все еванты присвоятся сразу. В противном случае присваивайте
    // По одному для каждого события.
    //--------------------------------------------------------------------------
    int iUserDef = GetLocalInt(OBJECT_SELF, "FLAG_USER_DEFINED_EVENT");

    // * Fire User Defined Event 1001 in the OnHeartbeat
    if (iUserDef==TRUE || GetLocalInt(OBJECT_SELF, "FLAG_HEARTBEAT") == TRUE)
        {SetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT);}

    // * Fire User Defined Event 1002
    if (iUserDef==TRUE || GetLocalInt(OBJECT_SELF, "FLAG_PERCIEVE") == TRUE)
        {SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT);}

Прикрепленный файл  modules_npc.zip ( 564.76 килобайт ) Кол-во скачиваний: 14
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jul 19 2008, 17:58
Сообщение #3827


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Спасибо, Айв!

*Утащила мод, обернулась, не видел ли кто, и пошла ковырять* (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jul 24 2008, 16:06
Сообщение #3828


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Вот помню, что об этом уже спрашивали, но не могу найти, где это было - как организовать проверку на то, наступила ли в игре определенная дата?

Цитата(Aiwan @ Jul 10 2008, 23:09) *
Нет. Ставится на юзердеф. Perception срабаатывает и дает сигнал НПС дял скрипта. Надо?

Надо, надо! Полезный скрипт лишним не бывает!!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jul 25 2008, 11:13
Сообщение #3829


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Есть функции GetCalendarYear/Month/Day. Соотвественно, нужно проверять
Neverwinter Script
if(GetCalendarYear() > <год> || (GetCalendarYear() == <год> && GetCalendarMonth() > <месяц>)  || (GetCalendarYear() == <год> && GetCalendarMonth() == <месяц> && GetCalendarDay() >= <день>))
    ...


Сообщение отредактировал Ilerien - Jul 25 2008, 11:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lirulin
сообщение Jul 25 2008, 18:20
Сообщение #3830


Level 3
*

Класс: Клерик
Характер: Chaotic Good
Раса: Эльф



Цитата(Ilerien @ Jul 25 2008, 13:13) *
Есть функции GetCalendarYear/Month/Day. Соотвественно, нужно проверять
Neverwinter Script
if(GetCalendarYear() > <год> || (GetCalendarYear() == <год> && GetCalendarMonth() > <месяц>)  || (GetCalendarYear() == <год> && GetCalendarMonth() == <месяц> && GetCalendarDay() >= <день>))
    ...


Ну вот, а я искал, искал... (учить надо (IMG:style_emoticons/kolobok_light/unsure.gif) ). Спасибо! Пошел делать дальше!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Артём
сообщение Jul 28 2008, 07:10
Сообщение #3831


Level 5
**

Класс: Друид
Характер: Neutral Good
Раса: Человек



У меня вопрос про скрипт который вылажен на "Скрипты для новичков"
И вот в первом скрипте я уже сильно напутал (IMG:style_emoticons/kolobok_light/smile.gif)
Цитата
CreateItemOnObject("ResRef_cloth025", oPC, 1);

Как я понел надаобыло писать так, но почемуто вешь вобше непоевляется в инвинтаре а вот если написать...
Цитата
CreateItemOnObject("NW_CLOTH024", oPC, 1);

если писать только тег, то вещь появляется но не одевается при входе в игру...

Вот скрипт попрошу показать где я намудрил (IMG:style_emoticons/kolobok_light/crazy.gif) (я даже самые элементарные скрипты незнаю потому просто вырезаю всё ненужное и надеюсь, что это будит рабтоть (IMG:style_emoticons/kolobok_light/rolleyes.gif) )

Цитата
void main()
{
object oMod = GetModule();
object oPC = GetEnteringObject();

if (!GetIsPC(oPC) || GetLocalInt(oMod, "START_GAME"))
{return;}
{
SetLocalInt(oMod, "START_GAME", TRUE);


object oItem = GetFirstItemInInventory(oPC);
while(GetIsObjectValid(oItem))
{
DestroyObject(oItem);
oItem = GetNextItemInInventory(oPC);
}


int i=0;
while(i<14)
{
DestroyObject(GetItemInSlot(i, oPC)); //
i++;

}

CreateItemOnObject("NW_CLOTH027", oPC, 1);



object oItemCr = GetFirstItemInInventory(oPC);
while(GetIsObjectValid(oItemCr))
{
SetIdentified(oItemCr,TRUE);
oItemCr = GetNextItemInInventory(oPC);
}

{
SetXP(oPC, 15);
}


AssignCommand(oPC, ActionEquipMostEffectiveArmor());

}
}


Сообщение отредактировал Артём - Jul 28 2008, 07:14
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 28 2008, 09:10
Сообщение #3832


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

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



Артём, эта функция создает вещи не по тэгу, а по резрефу вещи. Поэтому по стандарту во всех вещах и объектах Биовари тэг = резрефу, чтобы не было путаницы. Чтобы твоя вещь создалась, сделай тэг и резреф одинаковыми. Например: тэг = ait_item_armor, резреф = ait_item_armor (резреф ограничен 16 символами). И не делай такие тэги, иначе быстро запутаешься, что у тебя за вещь, если будешь их просматривать по резрефам.

Так ты не указал, какую именно вещь нужно одеть. Потом, необходима мелкая задержка между созданием и одеванием вещи, потому что функция "CreateItemOnObject" более медленная, чем функция "ActionEquipItem" или "ActionEquipMostEffectiveArmor". Да, вот еще что. Вещи не одеваются на эвенте входа. Они хорошо одеваются на эвенте локации. Сам уже не раз наступал на эти грабли. Попробуй свой скрипт повесить на эвент локации входа. Вот как я одеваю вещи на нового персонажа:

Neverwinter Script
void ClientGiveClothers(object oPC, float fDelay)
{
    string sClass, sItem;
    object oClother;

    // Выдача одежды игроку
    switch (GetClassByPosition(1, oPC))
    {
        case CLASS_TYPE_BARBARIAN:  sClass = "barbarian"break;
        case CLASS_TYPE_FIGHTER:    sClass = "fighter";    break;
        case CLASS_TYPE_MONK:      sClass = "monk";        break;
        case CLASS_TYPE_PALADIN:    sClass = "paladin";    break;
        case CLASS_TYPE_RANGER:    sClass = "ranger";      break;
        case CLASS_TYPE_ROGUE:      sClass = "rogue";      break;
        case CLASS_TYPE_BARD:      sClass = "bard";        break;
        case CLASS_TYPE_CLERIC:    sClass = "cleric";      break;
        case CLASS_TYPE_DRUID:      sClass = "druid";      break;
        case CLASS_TYPE_SORCERER:  sClass = "sorcerer";    break;
        case CLASS_TYPE_WIZARD:    sClass = "wizard";      break;
    }

    if (GetGender(oPC) == GENDER_FEMALE)    sItem = "ac_" + sClass + "_f";
    else                                    sItem = "ac_" + sClass + "_m";

    if (GetItemPossessedBy(oPC, sItem) == OBJECT_INVALID)  oClother = CreateItemOnObject(sItem, oPC);
    if (oClother == OBJECT_INVALID) oClother = GetItemPossessedBy(oPC, sItem);
    DelayCommand(fDelay, AssignCommand(oPC, ActionEquipItem(oClother, INVENTORY_SLOT_CHEST)));
}

Задержка fDelay=0.1 секунда.

Функция вызывается из общего тела скрипта в конце твоего условия:
Neverwinter Script
object oPC = GetEnteringObject();
...
ClientGiveClothers(oPC, 0.1);


Сообщение отредактировал Zirrex - Jul 28 2008, 09:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Артём
сообщение Jul 28 2008, 10:20
Сообщение #3833


Level 5
**

Класс: Друид
Характер: Neutral Good
Раса: Человек



Большое спасибо за внятный ответ (IMG:style_emoticons/kolobok_light/good.gif) (IMG:style_emoticons/kolobok_light/smile.gif) сейчас буду пробовать
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 28 2008, 22:50
Сообщение #3834


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

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



Артём, поправил твой скрипт. Проверяй. Только не забудь его повесить на событие входа в локацию. Сделай для стартовой локации отдельный скрипт.

Neverwinter Script
void main()
{
    object oPC = GetEnteringObject();
    object oArea = GetArea(oPC);

    if (GetIsPC(oPC) == FALSEreturn;
    if (oArea == OBJECT_INVALID)    return;

    if (GetXP(oPC) == FALSE)
    {
        // Удаление вещей с персонажа
        int s;
        object oSlot;

        for (s = 0; s < 18; s++)
        {
            oSlot = GetItemInSlot(s, oPC);
            if (GetIsObjectValid(oSlot)) DestroyObject(oSlot);
        }

        // Удаление вещей из рюкзака персонажа
        object oItem = GetFirstItemInInventory(oPC);

        if (oItem != OBJECT_INVALID)
        {
            while (GetIsObjectValid(oItem))
            {
                DestroyObject(oItem);
                oItem = GetNextItemInInventory(oPC);
            }
        }
        // выдачи вещи
        object oClother = CreateItemOnObject("NW_CLOTH027", oPC, 1);
        // установка флага для всех вещей в рюкзаке "Определенные"
        object oItemCr = GetFirstItemInInventory(oPC);

        while(GetIsObjectValid(oItemCr))
        {
            SetIdentified(oItemCr, TRUE);
            oItemCr = GetNextItemInInventory(oPC);
        }
        // не проще сразу выдавать определенные вещи? Лишний цикл

        SetXP(oPC, TRUE);
        // на персонажа одевается выданная вещь
        DelayCommand(0.1, AssignCommand(oPC, ActionEquipItem(oClother, INVENTORY_SLOT_CHEST)));
        // сохранение персонажа
        DelayCommand(2.0, ExportSingleCharacter(oPC));
    }
}

Переменная не нужна. Дело все том, что если эта система предназначена для шарда, то после рестарта у твоего персонажа снова заберут вещи, выдадут заново вещь, определят ее и дадут персонажу 15 опыта, затерев то значение, которое будет. Простая проверка на 0. Если опыт равен 0, то выполнить условие, если нет, то пропустить. Потом нужно следить, чтобы опыт никогда не был 0.

Сообщение отредактировал Zirrex - Jul 28 2008, 22:52
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Jul 29 2008, 02:01
Сообщение #3835


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Zirrex, а если получится так, что в стартовую локацию придется входить не один раз, а несколько, и каждый раз с бедного игрока будут сдирать одежду и рюкзак ему чистить? (IMG:style_emoticons/kolobok_light/smile.gif) Это я к тому, что, может, стоит переменную повесить на то, входил игрок уже в локу или нет?
У меня работает так:
Neverwinter Script
#include "nw_i0_tool"
void main()
{
object oEnter = GetEnteringObject();

if (!GetIsPC(oEnter)) return;

//вот как раз наша переменная. проверяем, не произошло ли уже это событие
int DoOnce = GetLocalInt(oEnter, GetTag(OBJECT_SELF));
// если да - скрипт не сработает, если нет - продолжаем действовать.
if (DoOnce==TRUE) return;
// устанавливаем переменную, что игрок уже однажды вошел на локацию.
SetLocalInt(oEnter, GetTag(OBJECT_SELF), TRUE);
// а дальше уже можно чистить инвентарь и проделывать с игроком все, что угодно

Заранее извиняюсь, если сморозила глупость (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал shadowdweller - Jul 29 2008, 02:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 152 153 154 155 156 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6th August 2025 - 00:11