![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#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 Раса: Человек ![]() |
а папка оверрайд ничем помочь не может? мне надо заменить эту функцию в игре на свою... как вот только это сделать?
|
![]()
Сообщение
#2496
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Зачем что-то менять/заменять??
Напиши свою функцию!!! Скажи точно, что тебе надо, чтобы функция делала?? Сообщение отредактировал -fenix- - Aug 29 2006, 14:00 |
![]()
Сообщение
#2497
|
|
Level 1 Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
Мне надо чтобы Невер читал расу чара не из файла перса, а из БД. Хранить цифру в БД несложно, сложнее заставить Невер считать эту цифру расой.
Ну или менять расу персонажа на лету, скриптом. Если не получится гетрасиалтайп переписать, буду искать адрес в памяти где раса и через nwnx пытаться че-нить сделать. Но геморрой... |
![]()
Сообщение
#2498
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
А не проще написать функцую, каторая бы по имени или там ID или чему там, возвращала из базы расу перса, и использовать ее замест стандартной???
|
![]()
Сообщение
#2499
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
QUOTE Ну или менять расу персонажа на лету, скриптом. Если не получится гетрасиалтайп переписать, буду искать адрес в памяти где раса и через nwnx пытаться че-нить сделать. Но геморрой... RacialType:CODE pObjectData = pObject+0xC64; //(смещения в байтах) nRacialType = *(pObjectData+0x3E4); //только учти, что в NWNX-Functions объект смещён на 4: //this->pGameObject = gameObject+4; типа того. Но проще и безопасней заюзать LetoScript и изменять значение в bic-файле. Вряд ли расу придётся менять как перчатки. Ещё можно заменить эту функцию в nwscript.nss и использовать вместо неё свою, но для этого всё равно придётся вставлять свой инклюд в каждый файл, где используется эта функция (Креон перл-скрипт для этого юзал). Сообщение отредактировал virusman - Aug 29 2006, 18:19 |
![]()
Сообщение
#2500
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
У меня вопрос, какой нужен скрипт чтобы после смерти непися заработал новый скрипт.
|
![]() ![]() |
Текстовая версия | Сейчас: 28th April 2025 - 12:39 |