![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3216
|
|
Level 4 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Скажите, можно ли добавалять фиты персонажу скриптово(на подобии нвна 2, тоесть социальные там всякие(ну вообщем для скрипта всеравног какие, главное можно ли?))
И второй вопрос можно ли добавить фит на оружие через скрипт, из тех что нет в палитре( и врядли они там будут, т.к. их я сделал, а добавлять в палитру нехотелось бы (IMG:style_emoticons/kolobok_light/prankster2.gif) ) |
![]()
Сообщение
#3217
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Вешать на шкуру. Или через NWNX, но это вариант не для сингла.
|
![]()
Сообщение
#3218
|
|
Level 2 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Полуэльф ![]() |
Помогите со скриптом пожалуйста. нужно что бы сундук(и др. объекты с инвентарем) пропадали когда из них забирают содержимое, и появлялись заново через 10 минут (вместе с содержимым).
Я поставил на OnClosed скрипт, ломающий объект, а вот восстановить никак не могу... Да, и если можно лучше что бы просто исчезал, а не ломался, и не когда закрывают, а когда забирают содержимое (ведь можно закрыть и не взять, а объект все равно сломается). |
![]()
Сообщение
#3219
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Ставить на onDisturbed.
Neverwinter Script #include "nw_i0_2q4luskan" Можно добавить переноску имени/тега/флажков и т. д. Если инвентарь переменный, то его тоже можно сохранять (а лучше генерить на открытие плейса).
void main() { object oChest = OBJECT_SELF; location lLoc = GetLocation(oChest); string sResRef = GetResRef(oChest); if(GetInventoryDisturbType() == INVENTORY_DISTURB_TYPE_REMOVED && !GetIsObjectValid(GetFirstItemInInventory(oChest)) ) { AssignCommand(GetModule(), DelayCommand(600.0f, CreateObjectVoid(OBJECT_TYPE_PLACEABLE, sResRef, lLoc))); DestroyObject(oChest); } } Сообщение отредактировал Ilerien - Feb 5 2010, 13:49 |
![]()
Сообщение
#3220
|
|
Level 2 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Полуэльф ![]() |
о, спасибо большое (IMG:style_emoticons/kolobok_light/thank_you.gif)
Хм..Не знает команды CreateObjectVoid, а чем она отличается от просто createobject? Добавлено: А, все, сорри, это я кривой, не скопировал первую строку, думал это комментарий (IMG:style_emoticons/kolobok_light/pardon.gif) Сообщение отредактировал Norfolk - Feb 5 2010, 13:56 |
![]()
Сообщение
#3221
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Что значит "не знает"? Эта функция лежит в стандартной библе nw_i0_2q4luskan. Отличается от простого создания обжекта тем, что возвращает не обжект, а войд - для того, чтобы можно было передать её в DelayCommand().
|
![]()
Сообщение
#3222
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
|
![]()
Сообщение
#3223
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Хотел научить стражников ругаться и подбегать к игроку, если у него в руках находится оружие.
на onPerseption поставил такой кусок: Neverwinter Script object oPC = GetLastPerceived(); if (GetIsPC(oPC)&&GetLastPerceptionSeen()) { object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC); if (oWeapon != OBJECT_INVALID) { ClearAllActions(); AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "noweapon")); SendMessageToPC(oPC, "Я вижу тебя!"); } } "Ай си ю" в лог говорит, а вот диалог не стартует. Нипесь привязан к вейпоинтам, быть может в них дело? Сообщение отредактировал Batkom - Feb 12 2010, 20:53 |
![]()
Сообщение
#3224
|
|
Level 9 ![]() ![]() ![]() Класс: Волшебник Характер: Neutral Good Раса: Эльф ![]() |
Batkom, попробуй заставь его сначала подойти к игроку
|
![]()
Сообщение
#3225
|
|
Level 5 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Человек ![]() |
возможно ActionDoCommand?
|
![]()
Сообщение
#3226
|
|
Level 2 ![]() Класс: Оборотень Характер: Lawful Good Раса: Человек ![]() |
1. Чета искал, искал и не нашел, можно ли такую фичу сделать, чтоб NPC мог пользоваться определенным предметом (точнее даже свойством предмета - заклинанием с него, уникальные способности там всякие). Скриптово можно только найти талант у NPC в определенной категории (атака, защита, лечение, зелье; на всех, на себя, на кого-то одного), и заставить его использовать, но при этом не контролируется, что именно будет использовать NPC. Можно ли это как то явно указывать. Я чувствую, стандартными средствами этого не сделать, но может в nwnx реализовано?
Мне в частности нужно, чтобы после смерти PC его хенч пытался его воскресить жезлом или свитком. Заклинанием можно заставить, но ждать до 5 круга заклятий для хенча-клерика совсем не вариант, а у остальных даже и этого нет. 2. Можно ли заставить NPC-клерика читать исцеляющие заклинания, если он их не запоминал? Кажись для них самопроизвольное чтение не работает и GetHasSpell() вернет 0... (IMG:style_emoticons/kolobok_light/unsure.gif) Сообщение отредактировал Mingun - Mar 21 2010, 09:18 |
![]()
Сообщение
#3227
|
|
Level 2 ![]() Класс: Оборотень Характер: Lawful Good Раса: Человек ![]() |
Да, и еще. Кто объяснит мне, почему народ так активно юзает CopyObject/DeleteObject для предметов, а не TakeFrom...|GiveTo... ? Переместить ведь должно быть быстрее и идеологически более правильно, чем копирование и последующее удаление? (IMG:style_emoticons/kolobok_light/snoozer_17.gif) (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
|
![]()
Сообщение
#3228
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Neverwinter Script void main() { object oSelf = OBJECT_SELF; object oWp01 = GetNearestObjectByTag("WP1_"+ GetTag(OBJECT_SELF)) // какая проблема здесь? он нехочет компилить... пишет: // ОШИБКА: ПОТЕРЯ АНАЛИЗАТОРА ПЕРЕМЕННОЙ object oWp05 = GetNearestObjectByTag("WP5_"+ GetTag(OBJECT_SELF)) object oWpT01 = GetNearestObjectByTag("WP1_Tavern"+ GetTag(OBJECT_SELF)) //суть этого всего: обозначить теги точек для определенного нпс. //Он будет ходить просто по 5ти точкам(гулять), и будет заходить в таверну. object oWpT05 = GetNearestObjectByTag("WP5_Tavern"+ GetTag(OBJECT_SELF)) object oWpH01 = GetNearestObjectByTag("WP1_HOME"+ GetTag(OBJECT_SELF)) //5 точек, ведушие нпс к дому object oWpH05 = GetNearestObjectByTag("WP5_HOME"+ GetTag(OBJECT_SELF)) if(GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return; int T = GetTimeHour(); if (T<7 && T>15) AssignCommand(oSelf, ActionForceMoveToObject(oWp01, TRUE, 4.0)); AssignCommand(oSelf, ActionWait(2.0)); AssignCommand(oSelf, ActionForceMoveToObject(oWp05, TRUE, 4.0)); AssignCommand(oSelf, ActionWait(2.0)); // Как сделать цикл? необходимо, чтобы эти действия // //производились циклически, пока идет время от 7 до 15ти// if (T<15 && T>21) AssignCommand(oSelf, ActionForceMoveToObject(oWpT01, TRUE, 4.0)); AssignCommand(oSelf, ActionWait(2.0)); AssignCommand(oSelf, ActionForceMoveToObject(oWpT05, TRUE, 4.0)); AssignCommand(oSelf, ActionWait(2.0)); ExecuteScript(sit_on_ch_tav) //когда нпс подойдет, он должен быдет сесть на стул. if(T<21 && T>7) AssignCommand(oSelf, ActionForceMoveToObject(oWpH01, TRUE, 4.0)); AssignCommand(oSelf, ActionWait(2.0)); AssignCommand(oSelf, ActionForceMoveToObject(oWpH05, TRUE, 4.0)); AssignCommand(oSelf, ActionWait(2.0)); ExecuteScript(1sleep)//когда настанет ночь, нпс пойдет домой и ляжет спать я немного ужал этот скрипт, убрал повторяюшиеся действия, типа: object oWp01 = GetNearestObjectByTag("WP1_"+ GetTag(OBJECT_SELF)) Мне нужно чтобы этот скрипт работал, и оживил немножко моих нпс-селян. а то они ходят как зомби, или тупо стоят... както нетак=) PS Все вопросы внесены в сам скрипт |
![]()
Сообщение
#3229
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Ошибку выдает т.к. нет точки с запятой после сроки кода. А вот сам скрипт врятли тебе кто напишет... Могу порекомендовать тебе мой мануал по созданию скриптов НПС стоящих в ХБ слоте.
http://remmgen.narod.ru/tscript3.html#SC_HB Сообщение отредактировал gennady - Sep 4 2010, 16:26 |
![]()
Сообщение
#3230
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата 1. Чета искал, искал и не нашел, можно ли такую фичу сделать, чтоб NPC мог пользоваться определенным предметом (точнее даже свойством предмета - заклинанием с него, уникальные способности там всякие). Скриптово можно только найти талант у NPC в определенной категории (атака, защита, лечение, зелье; на всех, на себя, на кого-то одного), и заставить его использовать, но при этом не контролируется, что именно будет использовать NPC. Можно ли это как то явно указывать. Я чувствую, стандартными средствами этого не сделать, но может в nwnx реализовано? Да, в NWNX реализовано, плагин Funcs.Цитата 2. Можно ли заставить NPC-клерика читать исцеляющие заклинания, если он их не запоминал? Кажись для них самопроизвольное чтение не работает и GetHasSpell() вернет 0... Кусок кода из джасперовсого АИ:Neverwinter Script int AI_ActionCastSpontaeousSpell(int iSpellID, int nTalent, object oTarget) Насколько я понимаю, GetHasSpell() прекрасно работает, единственный момент - заставить непися кастить спелл, даже если у него его нет (IMG:style_emoticons/kolobok_light/smile.gif)
{ if(nTalent > i0 && GetHasSpell(iSpellID) && GetObjectSeen(oTarget)) { // Note: Not stored or used in time stop // 8: "[DCR: Casting] Workaround for Spontaeous [SpellID] " + IntToString(iSpellID) + " [Target] " + GetName(oTarget) DebugActionSpeakByInt(8, oTarget, iSpellID); // Equip the best shield we have AI_EquipBestShield(); // Decrement the spell being cast by one as we cheat cast it DecrementRemainingSpellUses(OBJECT_SELF, iSpellID); // Cheat cast, it'll remove inflict wounds if it is an inflict spell anyway. ActionCastSpellAtObject(iSpellID, oTarget, METAMAGIC_NONE, TRUE); return TRUE; } return FALSE; } Сообщение отредактировал Ilerien - Mar 21 2010, 13:57 |
![]()
Сообщение
#3231
|
|
Level 2 ![]() Класс: Оборотень Характер: Lawful Good Раса: Человек ![]() |
Насколько я понимаю, GetHasSpell() прекрасно работает, единственный момент - заставить непися кастить спелл, даже если у него его нет (IMG:style_emoticons/kolobok_light/smile.gif) Это то я понимаю, что работает функция как положено для заклинаний. Мне непонятно, почему у нее нет отдельного возвращаемого значения для заклинаний исцеления клериков, и приходится вручную реализовывать им спонтанное чтение. Да. Воистину неисповедимы пути биотварей... (IMG:style_emoticons/kolobok_light/biggrin.gif) А как заставить NPC скастовать то, чего у него нет, я знаю (IMG:style_emoticons/kolobok_light/prankster2.gif) Да, в NWNX реализовано, плагин Funcs. Можно чуток поконкретней? Что то я там такого не видел... может плохо смотрел? В смысле какая функция? Уже нашел. что то у них на сайте как то плохо описаны возможности, а в скрипте все есть (IMG:style_emoticons/kolobok_light/smile.gif) Хотя нет, радость преждевременна. Где сам то плагин funcs??? На nwnx.org его нет. Есть только Functions, а это, как я понимаю. не одно и тоже (IMG:style_emoticons/kolobok_light/bb.gif) Сообщение отредактировал Mingun - Mar 22 2010, 10:21 |
![]()
Сообщение
#3232
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Где сам то плагин funcs??? На nwnx.org его нет. Есть только Functions, а это, как я понимаю. не одно и тоже Funcs на SVN virusman'a
|
![]()
Сообщение
#3233
|
|
Level 2 ![]() Класс: Оборотень Характер: Lawful Good Раса: Человек ![]() |
Спасибо! Жалко, под винду нету (IMG:style_emoticons/kolobok_light/smile.gif) Придется поколдовать (IMG:style_emoticons/kolobok_light/biggrin.gif)
|
![]()
Сообщение
#3234
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Ну, убунта в виртуалке (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3235
|
|
Level 2 ![]() Класс: Оборотень Характер: Lawful Good Раса: Человек ![]() |
Ну, убунта в виртуалке (IMG:style_emoticons/kolobok_light/smile.gif) Не-е-е, так не пойдет. Я ж не могу заставить игрока в мой модуль запускать невер в виртуалке (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#3236
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Поскольку это моя функция, в Functions она тоже есть.
Один человек недавно начал портировать Funcs на винду: http://www.nwnx.org/phpBB2/viewtopic.php?t=1535 Можешь попросить его сделать эту функцию. |
![]()
Сообщение
#3237
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Не-е-е, так не пойдет. Я ж не могу заставить игрока в мой модуль запускать невер в виртуалке biggrin.gif (IMG:style_emoticons/kolobok_light/offtopic.gif) эммм... Если ты делаешь шард, то под чем сидит игрок тебя не будет интересовать, а если сингл: я что-то пропустил, или сделали нвнх под сингл? |
![]()
Сообщение
#3238
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
(IMG:style_emoticons/kolobok_light/offtopic.gif) эммм... Если ты делаешь шард, то под чем сидит игрок тебя не будет интересовать, а если сингл: я что-то пропустил, или сделали нвнх под сингл? Сделали.http://www.nwnx.org/phpBB2/viewtopic.php?t=1263 |
![]()
Сообщение
#3239
|
|
Level 2 ![]() Класс: Оборотень Характер: Lawful Good Раса: Человек ![]() |
Разве NWNX только для сервера? Мне казалось, что он и в клиентском невере может работать. Хотя.. с другой стороны, exe-шника я в ядре NWNX не видел, только dll.
А делаю я сингл. Просто мне хочется, чтобы хенчи могли воскрешать игрока после смерти, а для этого им надо уметь пользоваться палочками и свиточками воскрешения (в идеале - любым предметом, могущим возвращать к жизни). Типа придать им осмысленную деятельность при наличии возможностей (IMG:style_emoticons/kolobok_light/smile.gif) .Ну, а так как это стандартными средствами невозможно, пришлось обратится к не совсем стандартным (IMG:style_emoticons/kolobok_light/biggrin.gif) . Вообщем, спасибо, что просветили (IMG:style_emoticons/kolobok_light/rolleyes.gif) (IMG:style_emoticons/kolobok_light/offtopic.gif) Да, а чем различаются Funcs и Functions? Вроде многие функции у них совершенно аналогичные (IMG:style_emoticons/kolobok_light/unsure.gif) |
![]()
Сообщение
#3240
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
В общем, можешь использовать файлы из раздела Client Extender Downloads тут:
http://www.nwnx.org/index.php?id=nwnx2 Но учти, что тогда при распространении модуля тебе нужно будет включать NWNCX в его состав и объяснить пользователям, как запускать NWNCX. Functions - изначально плагин с разными функциями. Funcs - почти то же самое, но ещё со множеством дополнительных функций, касающихся игромеханики. Правда, иногда бывает, что в Functions что-то появляется, а в Funcs - ещё нет. |
![]() ![]() |
Текстовая версия | Сейчас: 7th May 2025 - 20:43 |