![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2471
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: Chaotic Neutral Раса: Полуэльф ![]() |
QUOTE(Milfes @ Aug 20 2006, 00:01) [snapback]90082[/snapback] Мне кажеться нельзя, как ты себе представляеш плейс будет выполнять команду, ну например ActionMoveToObject. :crazy: Хотя я не спец могу и ошибаться. А тебе что конкретно надо? например,убить или добавить визуальный эффект.В данном случае, а вообще, знать бы конкретно. |
![]()
Сообщение
#2472
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
можно, если я тебя правильно понял. Особых ограничений не встречал (писались же большие катсцены на триггерах, там по паре сотен строк. Косяки бывали, но вроде команды все выполняются)
QUOTE(Waromon @ Aug 20 2006, 02:13) [snapback]90094[/snapback] Вообще - да, команды плектаблы выполняют, но не все. (например, как выше уже сказано было ActionMoveToObject) ты невнимателен. Речь ж о том, чтобы это через Assign для другого (НПС) делать. |
![]()
Сообщение
#2473
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
2 Noah
А тыб взял да и опробовал. (IMG:style_emoticons/kolobok_light/smile.gif) Вообще - да, команды плектаблы выполняют, но не все. (например, как выше уже сказано было ActionMoveToObject) |
![]()
Сообщение
#2474
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE например,убить или добавить визуальный эффект Можно при помощи функции ApplyEffectToObject. |
![]()
Сообщение
#2475
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Milfes, часто для синхронизации этого мало и приходится или писать на самом НПС, или если пишется для стороннего объекта, через структуры типа:
AssignCommand(oNPC,ActionDoCommand(ApplyEffectToObject(...))) например. |
![]()
Сообщение
#2476
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Если не трудно обьясните зачем нужна функция ActionDoCommand.
Уже сам разобрался. Сообщение отредактировал Milfes - Aug 20 2006, 01:56 |
![]()
Сообщение
#2477
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
2 Milfes
Просто для того чтобы в будущем подобных вопросов не возникало, идем СЮДА и качаем Лексикон, если напряги с инглишем читаем перевод Функция Тулсета и перевод некоторых статей Лексикона, все на русском языке. |
![]()
Сообщение
#2478
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Подскажите пожалуйсто, как через скрипты у мага востановить все заклинания, не используя отдых.
|
![]()
Сообщение
#2479
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Никак.
|
![]()
Сообщение
#2480
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
QUOTE(Milfes @ Aug 21 2006, 11:50) [snapback]90169[/snapback] Подскажите пожалуйсто, как через скрипты у мага востановить все заклинания, не используя отдых. Функция ForceRest - мгновенный отдых, восстанавливаются и спеллы и фиты и т.д... З.Ы: virusman, он походу имел в виду стандартных рест. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2481
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Да вроде нет, он довольно четко говорил про тока восстановление спелов.
Сделать это ни как низя, ибо функции для восстановления спеллов почему-то нету, хотя уменьшение есть. Забыли разрабы про восстановление или нет, почему в патчах до сих пор функции нету??? З.Ы. Вообще-то есть способ восстановить спеллы используя функцию поднятия уровня хенча, но там ток по пакеджам восстанавливается. |
![]()
Сообщение
#2482
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Есть ещё один вариант.
Дело в том, что если спеллов 0, то при уменьшении их становится 255. Таким образом, можно установить то количество спеллов, которое нужно. |
![]()
Сообщение
#2483
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE Функция ForceRest - мгновенный отдых, восстанавливаются и спеллы и фиты и т.д... Спасибо, впринципе подойдёт. Мне фиты не важны были, главное востановление заклинаний. |
![]()
Сообщение
#2484
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Хех, Milfes, так ведь это полноценный отдых, только без проверок на врагов и прочее, он и хиты восполнит и все заклы с чара снимет и св-ва на предметах восполнит и прочее.
Если так оно и надо, то так бы и сказал. |
![]()
Сообщение
#2485
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE не используя отдых. Я имел виду, что бы он не садился и не шло время, просто я не знал про мгновенный отдых. QUOTE он и хиты восполнит и все заклы с чара снимет и св-ва на предметах восполнит и прочее это в принципе не надо, но и не помешает.
|
![]() ![]()
Сообщение
#2486
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Кто-нибудь сможет выложить скрипт, чтобы после использования предмета срабатывал нужный мне скрипт.
Или дать ссылку, где это уже написано. |
![]()
Сообщение
#2487
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Для срабатывания скрипта при использовани предмета ни какой скрипт писать не надо, есть специальное событие - OnActivateItem в св-вах модуля. Вот туда и нужно вписать скрипт, который будет срабатывать при использовании предмета. Можешь пасмотреть еще ТУТ
|
![]() ![]()
Сообщение
#2488
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Понятно
Спасибо! Я пытался написать скрипт по той схеме но у меня нечего не вышло. NSS void main()
{ object oActivator = GetItemActivator(); object oActivated = GetItemActivated(); object oPC = GetEnteringObject(); if ("item_1" == GetTag(oActivated)) { effect eDamage = EffectDamage(1); string sString="Текст"; ActionDoCommand(AssignCommand(oPC, ActionSpeakString(sString))); } } |
![]()
Сообщение
#2489
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Артём, ты меня извини, конечно, но ты вообще читаешь, для чего служат те или иные функции, прежде чем их использовать? Как я понял из скрипта, ты хотел нанести урон цели, и при этом цель должна что-то сказать. Скрипт такой:
NSS void main()
{ object oPC = GetItemActivator(); object oItem = GetItemActivated(); object oTarget = GetItemActivatedTarget(); // не GetEnteringObject(); Прочитай про эту функцию string sItem = GetTag(oItem); if ("item_1" == sItem) { AssignCommand(oTarget, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(1), oTarget)); AssignCommand(oTarget, ActionSpeakString("Текст")); } } |
![]() ![]()
Сообщение
#2490
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Прошу прощение за глупость.[
Скрипт я написал, не проверял, я просто хотел привести пример. Сам скрипт такой. NSS void main() { object oActivator = GetItemActivator(); object oActivated = GetItemActivated(); object oTarget = GetFirstPC(); location lSparks = GetLocation(oTarget); if ("item_1" == GetTag(oActivated)) { DelayCommand(1.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect (VFX_IMP_DIVINE_STRIKE_FIRE),lSparks)); string sString="Упс..."; ActionDoCommand(AssignCommand(oTarget, ActionSpeakString(sString))); } } У меня ещё один вопрос, какой нужен скрипт для прибавления нужного количество мне жизней. Сообщение отредактировал Артём - Aug 28 2006, 16:52 |
![]()
Сообщение
#2491
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Ты на предположение мое не ответил. Скрипт на кого должен использоваться? Только на игрока? Если на игрока, то зачем "object oTarget = GetFirstPC();"? У тебя есть функция "GetItemActivator();", а это никто иной, как игрок.
NSS void main() { object oPC = GetItemActivator(); object oItem = GetItemActivated(); string sItem = GetTag(oItem); location lSparks = GetLocation(oPC); if ("item_1" == sItem) { ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE), lSparks); DelayCommand(1.0, AssignCommand(oPC, ActionSpeakString("Упс..."))); } } Советую все главные функции выносить наверх модульного эвента, чтобы потом, если ты решишь добавить описание срабатывания иной вещи, не писать их снова. Чтобы выполнить скрипт на кого-угодно (зависит от установки в самой вещи), т.е. на себя или на любой объект, на который будет направлен предмет, то можно сделать так: NSS void main()
{ object oPC = GetItemActivator(); object oItem = GetItemActivated(); object oTarget = GetItemActivatedTarget(); string sItem = GetTag(oItem); if ("item" == sItem) { // если на цель ExecuteScript("name_script", oTarget); // если на себя ExecuteScript("name_script", oPC); } } Сообщение отредактировал Zirrex - Aug 28 2006, 17:23 |
![]() ![]()
Сообщение
#2492
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Понятно
Спасибо! Все скрипты которые мне дают я сохраняю у меня, их уже около сотни. Я уже спрашивал, но спрошу ещё. Какой нужен скрипт для прибавления нужного количество мне жизней. Сообщение отредактировал Артём - Aug 28 2006, 17:54 |
![]()
Сообщение
#2493
|
|
Level 1 Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
Вопрос конечно может и странный...
Где находится текст функции GetRacialType() дабы его похерить и написать так как оно мне надо? Эксплорером разодрал весь scrpits.bif, но в nwnscript.nss только заголовок нашел :-( Где эта функция находится никто не знает? И получится ли вообще править общесистемные функции? |
![]()
Сообщение
#2494
|
|
Level 6 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить NWN: Скриптинг [PW] ![]() |
если функция стандартная - то она фшыта в движок ...изменить можно каким нить извратом с дизасмом и хуками вроде (IMG:style_emoticons/kolobok_light/crazy.gif) да и зачем ее менять О_о
|
![]()
Сообщение
#2495
|
|
Level 1 Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
а папка оверрайд ничем помочь не может? мне надо заменить эту функцию в игре на свою... как вот только это сделать?
|
![]() ![]() |
Текстовая версия | Сейчас: 23rd July 2025 - 23:57 |