![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1376
|
|||||||
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Во превых, если бы ты делал сингл, я бы дал тебе тест-модуль где все это работает. Но так как ты затачиваешь под себя, то я дал тебе как раз куски кода с которым я возился.
А ты хочешь сказать, что РС после боя мгновенно может начать диалог? Потестируй и увидишь, дебаг мессагу, что сейчас Игрок не может начать диалог.... Или представь ситуацию, что на игрока скастовали спелл парализации или еще какой бяки. Он попросту не будет говорить пока действие не пропадет. Дальше. Твой страж может попросту ЗАБЫТЬ актион. Либо застрять где-то в пути, либо игрок может дернуться и ещ куча либо... та же амбиен анимация. Ну решать тебе :D
Ну дак а я тебе на кой дал свой код? У меня в стандартном еванте на начало диалога стоит отмена локалки хертбита, вернее в самом диалоге. Нет отмены локалки, НПС будет бегать за тобой пока ты не ответишь. Но так как ты, а именно РС в катсцене... то никуда ты не денешься. Все что ты рассказываешь я делал себе для сингал месяц назад. Поэтому объясняю тебе что можеет быть за подводные камни. |
||||||
![]()
Сообщение
#1377
|
|||||||||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
Zirrex 1. то, что я тебе написал в предыдущий раз ты опять не потрудился понять. 2. твой скрипт не работает, ибо не проходит первую же проверку -
3. делать обращение дефендера к игроку надо иначе. причин для того, чтоб диалог не состоялся в случае твоего решения предостаточно: рядом нет неписей, идет бой, непись просто не догнал игрока итд итп. опять же, если крутая заварушка, твой говорун может сильно помешать. следует просто навешивать на игрока локалку ПК, а потом на OnPerception дефендеров(избегать их постоянно запаришься) проверять PC на предмет наличия локалки - если есть такая, то далее PC на бой, идущий диалог итд - если все путем, то просто врубаешь режим кут-сцены, EffectCutsceneImmobilize на PC, спокойно подваливаешь и заводишь непринужденную беседу - "убил ты надысь игрока фартового, падла - ответствуй за базар" итд итп... 4.
проясняем память :) - такое происходит, если использовать SpeakString без ActionDoCommand. ActionSpeakString = ActionDoCommand(SpeakString). точка. 5. "задержки": скрипт RiPPeR'a ты изменил, но, насколько я понял, изменил коряво - поэтому первый же хб игрока, у которого еще не прогрузилась стартовая лока, приводит к затиранию координат - он еще, так сказать, в "нигде". 6.
что есть "ошибка по стеку"? и покажи свой скрипт, который ее вызывает - угадать, что ты подразумеваешь под "стеком" и "командами" довольно затруднительно... 7.
никак. если магию и можно отследить, то физические атаки - пока никак.
|
||||||||
![]() ![]()
Сообщение
#1378
|
|||||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
dumbo, нет, я понял, просто приведенный мной выше скрипт старый, и он не изменен, а проверку он проходил, так как у меня сейчас не 1.66, но проходил ее криво, потому что на скрипт реагировали и другие фракции. Тот, что я давал раньше, выполнялся только один раз, и после активации диалога, можно было о нем забыть. А вот скрипт, который на хартбите, с ним все гораздо сложнее. Чувствую, что придется его оттуда убрать, и сделать гораздо проще, хотя на данный момент работает нормально, но не срабатывает сразу, и иногда приходиться ждать какое-то время. На OnPerception ему будет самое оно. Окончательный вариант на данный момент, если учесть, что он постоянно выполняется, и его как-то надо тормозить, такой:
Последовал примеру Айвана, добавил сценку в момент, когда НПС замечает персонажа с отрицательной репутацией. Теперь персонажу не удастся сбежать, как это было раньше. С координатами я разобрался. Чувствуется, что RiPPeR' учитывал это, когда делал скрипт, одно но, его модификация не сохраняет координаты постоянно, а лишь на входе в локацию. Может быть так оно и лучше, надо проверить. Если приводить весь скрипт, много места займет. Опишу на словах, если не понятно все же будет, потом внесу сам скрипт. Например, умирает персонаж, запускается скрипт смерти, создается на персонаже невидимый объект, в который помещается предмет тела, далее, через 7 секунд запускается через "ExecuteScript" еще один скрипт. Данный скрипт копирует облик персонажа и размещает на там, где лежит персонаж, совмещая его с оригиналом. Через 7.5 секунд персонаж переносится в фугу. Теперь ситуация, которая вызывает ошибку. Умирает персонаж, и тут же выходит, следующий через 7 секунд скрипт натыкается на пустоту. Персонажа то нету, копировать не с чего. В итоге происходит ошибка. Хотя чаще она происходит немного иначе, игрок успевает выйти своим персонажем до момента создания даже невидимого объекта. Скрипт просто не знает, куда его разместить, что приводит к ошибке. Все же я приведу скрипт, но он будет длинный. Наверняка в нем много лишнего, но не буду пока что убирать ничего:
|
||||
![]()
Сообщение
#1379
|
|||||||
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
Хочу зделать так что бы игроку при заходе в модуль открывалось диологовое окно (ну это я знаю как)... Что бы его нельзя было закрыть до завершения...Я знаю можно в настройках объекта ставить без прирывания, хотя я не пробовал это...А как через скрипты потому что он будет говорить сам :) И что бы он не мог ничего делать кроме как говорить, это нужно на него эффект кидать какой то типа стун или дэйз да? И ещо какая команда на дроп игрока с модуля? Заранее благодарен... Добавлено в [mergetime]1121347240[/mergetime] А bootPC(oPC) это на всегда? ну тоесть это бан игрока? Добавлено в [mergetime]1121348960[/mergetime] StringToLocation
LocationToString
Объясните мне пожалуйсто безтолковому как это работает? Добавлено в [mergetime]1121350562[/mergetime] А точнее как их совместить, и зачем прибавлять числа типа:
|
||||||
![]()
Сообщение
#1380
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Народ! Пожалуйста помогите со скриптом, суть в нем такая: игрок наступает триггер, и НПС идут на свои места, последний НПС атакует врага. Все это я сделал но вот... НЕПОНЯТНОЕ УСЛОВИЕ КОМПИЛЯТОРА, на:
ActionDoCommand(AssignCommand(oNPC_16, ActionAttack(oPC); Впрочем вот и сам скрипт: void main() { object oPC = GetEnteringObject(); object oNPC_01 = GetObjectByTag("NPC_01"); object oNPC_02 = GetObjectByTag("NPC_02"); object oNPC_03 = GetObjectByTag("NPC_03"); object oNPC_04 = GetObjectByTag("NPC_04"); object oNPC_05 = GetObjectByTag("NPC_05"); object oNPC_06 = GetObjectByTag("NPC_06"); object oNPC_07 = GetObjectByTag("NPC_07"); object oNPC_08 = GetObjectByTag("NPC_08"); object oNPC_09 = GetObjectByTag("NPC_09"); object oNPC_10 = GetObjectByTag("NPC_10"); object oNPC_11 = GetObjectByTag("NPC_11"); object oNPC_12 = GetObjectByTag("NPC_12"); object oNPC_13 = GetObjectByTag("NPC_13"); object oNPC_14 = GetObjectByTag("NPC_14"); object oNPC_15 = GetObjectByTag("NPC_15"); object oNPC_16 = GetObjectByTag("NPC_16"); //Ýòî ñïèñîê, âñåõ ÍÏÑ êîòîðûå ó÷àñòâóþò â äàííîì ñêðèïòå object oWP_NPC_01 = GetWaypointByTag("NW_WAYPOINT001"); object oWP_NPC_02 = GetWaypointByTag("NW_WAYPOINT002"); object oWP_NPC_03 = GetWaypointByTag("NW_WAYPOINT003"); object oWP_NPC_04 = GetWaypointByTag("NW_WAYPOINT004"); object oWP_NPC_05 = GetWaypointByTag("NW_WAYPOINT005"); object oWP_NPC_06 = GetWaypointByTag("NW_WAYPOINT006"); object oWP_NPC_07 = GetWaypointByTag("NW_WAYPOINT007"); object oWP_NPC_08 = GetWaypointByTag("NW_WAYPOINT008"); object oWP_NPC_09 = GetWaypointByTag("NW_WAYPOINT009"); object oWP_NPC_10 = GetWaypointByTag("NW_WAYPOINT010"); object oWP_NPC_11 = GetWaypointByTag("NW_WAYPOINT011"); object oWP_NPC_12 = GetWaypointByTag("NW_WAYPOINT012"); object oWP_NPC_13 = GetWaypointByTag("NW_WAYPOINT013"); object oWP_NPC_14 = GetWaypointByTag("NW_WAYPOINT014"); object oWP_NPC_15 = GetWaypointByTag("NW_WAYPOINT015"); object oWP_NPC_16 = GetWaypointByTag("NW_WAYPOINT016"); if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") == 1) return; SetLocalInt(OBJECT_SELF,"TRIGGER",1); ActionDoCommand(AssignCommand(oNPC_01, ActionMoveToObject(oWP_NPC_01))); ActionDoCommand(AssignCommand(oNPC_02, ActionMoveToObject(oWP_NPC_02))); ActionDoCommand(AssignCommand(oNPC_03, ActionMoveToObject(oWP_NPC_03))); ActionDoCommand(AssignCommand(oNPC_04, ActionMoveToObject(oWP_NPC_04))); ActionDoCommand(AssignCommand(oNPC_05, ActionMoveToObject(oWP_NPC_05))); ActionDoCommand(AssignCommand(oNPC_06, ActionMoveToObject(oWP_NPC_06))); ActionDoCommand(AssignCommand(oNPC_07, ActionMoveToObject(oWP_NPC_07))); ActionDoCommand(AssignCommand(oNPC_08, ActionMoveToObject(oWP_NPC_08))); ActionDoCommand(AssignCommand(oNPC_09, ActionMoveToObject(oWP_NPC_09))); ActionDoCommand(AssignCommand(oNPC_10, ActionMoveToObject(oWP_NPC_10))); ActionDoCommand(AssignCommand(oNPC_11, ActionMoveToObject(oWP_NPC_11))); ActionDoCommand(AssignCommand(oNPC_12, ActionMoveToObject(oWP_NPC_12))); ActionDoCommand(AssignCommand(oNPC_13, ActionMoveToObject(oWP_NPC_13))); ActionDoCommand(AssignCommand(oNPC_14, ActionMoveToObject(oWP_NPC_14))); ActionDoCommand(AssignCommand(oNPC_15, ActionMoveToObject(oWP_NPC_15))); ActionDoCommand(AssignCommand(oNPC_16, ActionMoveToObject(oWP_NPC_16))); ActionDoCommand(AssignCommand(oNPC_16, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_16, PlayVoiceChat(VOICE_CHAT_HELLO))); ActionDoCommand(AssignCommand(oNPC_16, ActionSpeakString("×òî íàäî?"))); ActionDoCommand(AssignCommand(oNPC_01, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_02, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_03, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_04, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_05, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_06, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_07, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_08, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_09, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_10, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_11, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_12, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_13, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_14, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_15, ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE, 1.0, 5.0))); ActionDoCommand(AssignCommand(oNPC_16, ActionAttack(oPC); } |
![]()
Сообщение
#1381
|
|||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
Dik Morris на будущее: скрипт обрамляй тэгами nss:
и закрой скобки, чудо! :crazy: ActionDoCommand(AssignCommand(oNPC_16, ActionAttack(oPC))); |
||
![]()
Сообщение
#1382
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Все дело в кол-ве скобок - в конце нужно 3 закрывающихся скобки.
Пользуйся кнопкой NSS, для написания скриптов! Эм, дамбо, сорри за повтор, но когда я первый раз обновлял, тебя тут не было :D Сообщение отредактировал -fenix- - Jul 14 2005, 19:34 |
![]()
Сообщение
#1383
|
|||||||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
слово "Сделать" пишется только так и никак иначе. над твоим постом находится пост Zirrex'a, в котором первый скрипт содержит кусок кода, делающий невозможной отмену диалога. суть - SetCutsceneMode(oPlayer, TRUE)); только окончание кут-сцены надо вешать на скрипты самого диалога, а не просто задержкой на 10 секунд. хотя, если у тебя просто будет непись что-то рассказывать, тогда можно и так, только время подсчитать, чтоб успел выговориться.
BootPC просто выкидывает игрока. он может тут же перезайти.
это библиотечные функции - необязательно знать как они работают: их просто нужно использовать. получил локацию игрока, перевел в строку путем LocationToString, сохранил где-то(в базе, например). когда нужно восстановить - прочитал из базы строку, вызвал StringToLocation - получил локацию. осталось только отправить туда игрока.
Сообщение отредактировал dumbo - Jul 14 2005, 19:46 |
||||||
![]()
Сообщение
#1384
|
|
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
dumbo Спасибо за ответы, а в библиотечных функциях уже разобрался, но тоже спасибо.
Добавлено в [mergetime]1121360001[/mergetime] Ага единственное что я не понял так это почему прибовляют числа +6 +12 и т.д.... :xz: |
![]()
Сообщение
#1385
|
|||||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
GoingPro) строка возвращаемая LocationToString имеет вид: #AREA#big_hell#POSITION_X#12.0#POSITION_Y#35.0#POSITION_Z#0.0#ORIENTATION#12.5#END# функция FindSubString находит подстроку в строке и возвращает ее позицию. т.е. FindSubString(sLocation, "#POSITION_X#") вернет в данном случае 14. но тебя то интересуют данные записанные после строки #POSITION_X#! - поэтому к найденному числу прибавляется длина строки "#POSITION_X#" - 12. т.е. данные находятся в строке на позиции 14+12 = 26. надеюсь, внятно расписал? :sleep: Zirrex сперва правильный вариант скрипта(и с хб его надо снимать):
подождет 10 секунд и сбежит :yes:
скрипт смерти: на мой взгляд, скрипт сильно запущен, хоть и трепыхается... :crazy: очень много лишнего, очень запутанно. а теперь основное: в скриптах смерти никто никогда не делает задержек при работе с объектом игрока - это верный путь к багам. если и надо что-то задержать, то соскреби с игрока все, что тебе нужно, отложи в сторонку, а потом уже делай задержки. работать потом, естественно, только с тем, что сохранил "в сторонке". вывод: убирай нах все delay свои! Сообщение отредактировал dumbo - Jul 14 2005, 21:03 |
||||
![]()
Сообщение
#1386
|
|||||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
dumbo, с хартбита я его убрал, и повесил на OnPerception, несколько изменив, и убрав цикл, потому что на самом НПС он уже не нужен. Один вопрос, если же оставлять скрипт с циклом, как же мне определить правильно "oDefender", если мне не нужен какой-то определенный НПС, а именно НПС, у которого в имени тэга которого только эти слова "npc_guard"? Воспримется ли нормально такой вид тэга?
Новый скрипт, не всегда срабатывает, потому что условие по расстоянию, но если его не делать, то НПС бежит с очень далекого расстояния. Можно опять же сделать цикл по сфере, но что не хочется громоздить лишний код.
Не нашел иного пути, как сбросить открытый диалог у персонажа, поэтому стираю ему действия и пытаюсь завязывать этим персонажем диалог со стражником, быстро останавливаю, включаю кутсцену, а дальше уже по скрипту. Не сбежит, диалог то уже запущен. А на выходе и входе в модуль у меня проверяется переменная, если она равна TRUE, то удалить, соответственно НПС снова обратится к персонажу игрока. Если же попробует просто скинуть диалог, отбежав подальше, опять-таки, на данный момент, обижается вся фракция "Defender". Мне такой путь не очень нравится, но пока по-другому не реализовал. Скрипт смерти был такой изначально, и даже хуже, когда я взялся за модуль. Работая с ним, начал доводить до идеальной работы, и от того скрипта мало уже что осталось. Запутанный он, потому что много всего, что надо учитывать при смерти. К тому же я взял все инклуды, и включил в один кусок скрипта, чтобы легче было разобраться. Буду еще отлаживать, главное, он работает, пока игрок не делает ничего, что может привести к ошибке. |
||||
![]()
Сообщение
#1387
|
|||||
Level 4 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Эльф ![]() |
Компилятор выдает мне ошибку: ОШИБКА: МНОГОКРАТНЫЙ СЛУЧАЙ ПОСТОЯННОГО УТВЕРЖДЕНИЯ В ПРЕДЕЛАХ ВЫКЛЮЧАТЕЛЯ в скрипте (место отмечено //*****):
Ему не нравится что у меня слишком много case? Добавлено в [mergetime]1121408064[/mergetime] И еще. Пусть меч дает бонус силы +12. Могу я получить это +12 следующей ф-ей? [NSS] int GetAbilityBonus (object oItem, int nAbility) { itemproperty ip = GetFirstItemProperty (oItem); while (GetIsItemPropertyValid (ip)) { if (GetItemPropertyType (ip) == nAbility) { return GetItemPropertySubType (ip); } ip = GetNextItemProperty (oItem); } } Добавлено в [mergetime]1121408138[/mergetime] И еще. Пусть меч дает бонус силы +12. Могу я получить это +12 следующей ф-ей?
|
||||
![]()
Сообщение
#1388
|
|
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
dumboДа расписал отлично, только я уже понял, метот похож на паскаль :)
Уже все зделал, значение стринг прилипил к предмету невыкидываемуму, затем одтуда счатываю перевожу в Локайшен и кидаю перса туда....Поидеи должно сохраниться после рэбута на шмотке, дома прийду проверю. А тебе спасибо! :good: |
![]() ![]()
Сообщение
#1389
|
|||||
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
minion, ну и скрипт, ты хотя бы привел инклуд с константами, где ты их определяешь, а то часть констант даже и не значится среди стандартных. Ошибку он тебе эту пишет только лишь потому, что у тебя разный тип констант в одном переключателе. И используй английский редактор, а то понять, что означает твоя ошибка в переводе, очень тяжко. Объясни подробнее, что именно ты хочешь сделать? Если желаешь бонус силы от меча, так пропиши подобное на модульные скрипты. Там есть эвент, который обрабатывает одеваемые и снимаемые вещи. Например так: На эвент модуля "OnPlayerEquipItem"
На эвент модуля "OnPlayerUnEquipItem"
Тут я немного не разобрался, как снять определенный эффект, т.е. в нашем случае снять только эффект изменной силы, поэтому скрипт снятия эффекта универсальный. |
||||
![]()
Сообщение
#1390
|
|||
Level 4 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Эльф ![]() |
Zirrex я хочу сделать кузнеца, который будет зачаровывать вещи за определенную плату. Нечто подобное есть в ХотУ. Но там не зачаровывает характеристики. Вот мне и пришла в голову идея. У меня не получается только зачарование Харизмы и проверка на уже зачарованный бонус (скажем +12 силы на мече). Вот выкладываю весь инклуд:
Найдете ошибки пишите. |
||
![]()
Сообщение
#1391
|
|||||
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
сделал простенькую систему вархаузов, стоит сундук,оа onOpen стоит
на onClose
|
||||
![]()
Сообщение
#1392
|
|||||
Level 3 ![]() Класс: Ниндзя Характер: Chaotic Evil Раса: Человек ![]() |
Помогите не работает чете =\....Вот скрипт: На ОнЕкзит
И на ОнЕнтер
Скрипты упростил на максимум что бы было проще разобраться... Непонемаю почему он не работает, вроде бы все правильно по логике... |
||||
![]()
Сообщение
#1393
|
|||||||||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
выражайся точнее. судя по всему, это таки "ОнКлиентЛив" и "ОнКлиентЕнтер"... что такое Lexicon знаешь? цитата оттуда:
да и ошибок в скриптах куча. :yes: особенно затейливо у тебя используются переменные, содержащие в имени ReturnValue. :crazy: короче, вот твои main'ы: OnClientLeave:
OnClientEnter:
|
||||||||
![]()
Сообщение
#1394
|
|||
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Так и не нашел скрипта смерти(ну точно видел, но повторнео найти так и не смог) написал свой код
Все компилируется, но отказывается работать, создается труп, в нем лежит итим труп и голд, который у игрока не изымается, игрок воскрешается и остается стоять около трупа :crazy: Сообщение отредактировал Batkom - Jul 18 2005, 19:26 |
||
![]()
Сообщение
#1395
|
|||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Batkom, сорри, там на второй странице - вот код.
|
||||
![]()
Сообщение
#1396
|
|||||||||||||||||||||||||
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Сделал шардовую деф систему: это первая более менее серьезная взаимосвязаная система скриптов которую я написал, потому может не работать(еще не проверял, всевроде компилируется) Если найдете ошибки, пишите, если все будет работать, выложу в базу скриптов. Поехали: Хертбит(работает):
onDying(совсем просто, тоже работает)
onPlayerDeath(как не странно, тоже работает)
OnEnter в фуге
на OnExit в фуге
на onenter в модуль
при открытии инвентаря трупа
на закрытие инвентаря трупа
Ну помоему стандартный скрипт на OnActivateItem
Предмет трупак имеет свойство ыть использованным один раз скрипт называется в честь тега предмета а именно corpseitem
Кусок райздеда(nw_s0_raisdead)
Кусок ресуректа(nw_s0_resserec)
Вот собственно и все, надеюсь ничего не пропустил. Не судите строго, не идеально, зато сам :D . Сообщение отредактировал Batkom - Jul 19 2005, 04:00 |
||||||||||||||||||||||||
![]()
Сообщение
#1397
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
Batkom, тут пока негде искать ошибки. советую таки не изобретать велосипед, а вопользоватся готовыми(которые, правда, порой оказываются инвалидными колясками): идешь сюда вводишь в поле title слово death и жмешь enter.
|
![]()
Сообщение
#1398
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
сорри за то, что было сначала, теперь все полностью
Добавлено в [mergetime]1121767396[/mergetime] тестинг показал, что при выходе из игры попутно выполняется скрипт выходаиз фуги....это не хорошо, можно ли сделать из него инклуд? (я правда никогда инклуды не делал) Добавлено в [mergetime]1121773445[/mergetime] игрок не воскрешается :unsure: пишет, что ошибка скрипта реса, слишком много инструкций Добавлено в [mergetime]1121777505[/mergetime] не работают флажки, что не делай, игрок либо все время в фуге, либо все время живой при перезаходе и рестарте |
![]()
Сообщение
#1399
|
|
Level 4 ![]() ![]() Класс: Маг Характер: Chaotic Evil Раса: Дракон ![]() |
Люди! Мне нужна такая хреновина: Например, с моим персом идет напарник. Мне надо, чтобы в определенном месте он остановился, и сказав типа "Я дальше не пойду" выбыл из компаниии уже НЕ ПРИСОЕДИНЯЛСЯ НИКОГДА.
и ещё: как сделать, чтобы непись после диалога ушёл В ДРУГУЮ ЛОКАЦИЮ, НЕ СМЕЖНУЮ С ИСХОДНОЙ? ......(я маг начинающий, в скриптах разбираюсь кое-как) заранее спасибо :crazy: |
![]()
Сообщение
#1400
|
|||||||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
zmey, есть функция
где oMaster - это тот от кого уходит хенчмен oHenchman - это хенчмен, каторый уходит То, что ты хочешь можно сделать с помощью тригера и скрипта на нем проверяющего кто наступил. Рисуешь тригер и на ОнЭнтер ставишь скрипт
Вот функция
С помощью нее кидаешь непися куда хочешь. Сообщение отредактировал -fenix- - Jul 21 2005, 12:26 |
||||||||
![]() ![]() |
Текстовая версия | Сейчас: 29th April 2025 - 16:00 |