Скрипты, Все вопросы и ответы по скриптам |
Здравствуйте, гость ( Вход | Регистрация )
Скрипты, Все вопросы и ответы по скриптам |
May 6 2004, 14:24
Сообщение
#26
|
|
Level 11 Класс: Обыватель Характер: True Neutral Раса: Человек NWN: Маппинг |
Заинтерисовала идея Элвен Кинга... Начал реализовывать...
Атакует не из хайда (хотя в хайд на долю секунды уходит - когда двигается ко мне - из хайда опять же выходит). Не подскажите как написать чтобы моб из хайда долбил? Код писал сам. (IMG:style_emoticons/kolobok_light/smile.gif) Код //Ставиться в OnPerception (При замечении). void main() { object oPC = GetLastPerceived(); //Определяем Объект как ПОСЛЕДНИЙ УВИДЕННЫЙ if(GetIsPC(oPC)) //Проверяем является увиденный объект ПС { ClearAllActions(FALSE); //Убираем все действия из списка действий к моба (кроме АТАКИ - если он уже дерется) ActionUseSkill(SKILL_HIDE,OBJECT_SELF); //Моб уходит в хайд ActionWait(1.5); //Ждет долю секунды ActionMoveToObject(oPC, FALSE, 1.0f); //Медленно двигается к ПС ActionAttack(oPC, FALSE); //Атакует (Агрессивно) } else { ActionSpeakString("Хух, напугал!", TALKVOLUME_TALK); //Если это не ПС говорит фразу "Хух, напугал!" в talk (разговор). } } Моб - гоблин, 7 вора и 1 шадоуденсер. |
May 6 2004, 18:25
Сообщение
#27
|
|
4-х Кубовый Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора |
Попробуй через SetSpawnInCondition(NW_FLAG_STEALTH_MODE); вроде так пишется...
А еще у тебя ошибка в определении Perception. Надо делать дополнительную проверку на GetIsPerseptionSeen();. GetLastPerceived срабатывает, когда объект увиден-услышан-перестал быть видимым-перестал быть слышимым. Поэтому надо дополнительно проверять. |
May 7 2004, 10:12
Сообщение
#28
|
|
Level 11 Класс: Обыватель Характер: True Neutral Раса: Человек NWN: Маппинг |
Окей, спасибо! (IMG:style_emoticons/kolobok_light/smile.gif)
Будем разбираться дальше (IMG:style_emoticons/kolobok_light/smile.gif) |
May 10 2004, 19:53
Сообщение
#29
|
|
Стилспатер Класс: Воин Характер: Chaotic Good Раса: Человек |
Народ, всвязи с моим не оч хорошим знанием правил AD&D, разъясните глупому, как правильно кидаются кости. Например, на убеждение при диалоге.
|
May 10 2004, 21:49
Сообщение
#30
|
|
Level 11 Класс: Обыватель Характер: True Neutral Раса: Человек NWN: Маппинг |
хм... На убеждение при диалоге? Это типа в тех что в Сингле? (обычно кубики там кидаются как укажешь). (IMG:style_emoticons/kolobok_light/smile.gif)
|
May 10 2004, 23:04
Сообщение
#31
|
|
Стилспатер Класс: Воин Характер: Chaotic Good Раса: Человек |
Цитата обычно кубики там кидаются как укажешь Вот это я как раз понял. Существуют ли какие-то ограничения, кроме здавого смысла, по поводу того, сколько у какого перса могет быть конретного скилла (типа Persuade)? |
May 12 2004, 00:26
Сообщение
#32
|
|
4-х Кубовый Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора |
Это система зовется d20(). Кидается d20() + скилл, против d20() непися.
|
May 13 2004, 16:41
Сообщение
#33
|
|
Level 11 Класс: Обыватель Характер: True Neutral Раса: Человек NWN: Маппинг |
Ага...
Цитата Вот это я как раз понял. Существуют ли какие-то ограничения, кроме здавого смысла, по поводу того, сколько у какого перса могет быть конретного скилла (типа Persuade)? Если я понял - это имеется ввиду какие ограничения на скилл? (IMG:style_emoticons/kolobok_light/smile.gif) Когда я ДМил, через Лето повышал себе все статы - помойму 125 - максимум (IMG:style_emoticons/kolobok_light/smile.gif) |
May 25 2004, 20:55
Сообщение
#34
|
|
Level 2 Класс: Рейнджер Характер: Lawful Good Раса: Человек |
1. Как попросить своего вора обокрасть какого-нибудь гражданина?
А как самому обокрасть его? Я воров обычно не перевариваю, но сделал как-то для проверки вора 15 уровня, нарастил ему воровство по максимуму, а все равно при попытке ограбить происходит облом. (Спросил в другом месте, но тут вроде более по теме) Как сделать так, что бы sir/madam (и т.п.) выдавали не "sir" или "мадам", а другие определенные мной слова? |
May 25 2004, 21:20
Сообщение
#35
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Цитата Как сделать так, что бы sir/madam (и т.п.) выдавали не "sir" или "мадам", а другие определенные мной слова? Это надо делать свои <CUSTOM>, насколько я знаю. Но я их не делал, посему звиняй. Жди БДа или Лекса с Баалом. |
May 26 2004, 08:24
Сообщение
#36
|
|
Level 2 Класс: Рейнджер Характер: Lawful Good Раса: Человек |
Конкретизирую про вора:
У вас есть хенчмен Томми. Вы сами воровать не умеете. 1) Вы говорите "Томми, проверь этого господина". И он кидается проверять господина, на которого укажешь мышкой. Либо, если это невозможно, то он сам определяет ближайшего господина в радиусе 1-5 метров либо вообще ближайшего. Примерно так. 2) Дополнительное условие - чтобы не было обломов. То биш Томми, получив приказ, кидает кости. Если результат не в его пользу, то он говорит "облом, сир". Если нормально, то {ворует колечко и т.д.} |
May 28 2004, 01:11
Сообщение
#37
|
|
4-х Кубовый Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора |
Сарлес, я когда-то начинал писать эту системку, но боюсь не дописал и она де-то у меня потерялась... На самом деле здесь ничего сложного нет. Один диалоговый скриптик средних размеров. Скажу сразу, кликать мышой, указывая цель вора, не получится. Придется делать что-то вроде "поиска ближайшего нейтрала к PC" и броски костей. Сам я сейчас не сяду писать этот скрипт (банально нет времени), ты уж попробуй сам. Что будет в упор непонятно - спрашивай. Если надо могу расписать по броскам:
[d20 + скилл PickPocket за вора] против [d20 за непися]. |
May 29 2004, 22:28
Сообщение
#38
|
|
Level 2 Класс: Рейнджер Характер: Lawful Good Раса: Человек |
Как называются функции "украсть что-то у кого-то" и "получить результат броска?"
|
May 30 2004, 16:31
Сообщение
#39
|
|
Level 7 Класс: Воин Характер: Lawful Good Раса: Человек NWN: Тексты |
Начал разбираться в днём и ночью. в OnSP простолюдинов повесил скрипт
#include "NW_O2_CONINCLUDE" #include "NW_I0_GENERIC" void main() { SetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING); SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS); SetSpawnInCondition(NW_FLAG_ESCAPE_RETURN); SetListeningPatterns(); WalkWayPoints(); } Осталось дело за малым, создать дневные и ночные POST-ы, а вот как это сделать я не понимаю. Помогите пожалуйста. Спасибо. |
May 30 2004, 17:11
Сообщение
#40
|
|
4-х Кубовый Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора |
Sir_Sarles А зачем тебе это???
ActionUseSkill(SKILL_PICKPOCKET, ...), но я бы писал собственную функцию с ActionTakeItem(...) с посылом далее кастомного Event'а этому неписю, у которого крадут. Этот эвент и сам процесс кражи обрабатывается уже само собой неписем (можно даже подвязать к OnDisturb непися). Результат броска делаешь сам, внешний. Пример: Код if (d20() < d20() + скилл кражи хенча) { ....... кража удачна } else { ....... облом-с } Osiris Ставишь пост с таким тэгом: Дневной - POST_[тэг непися] Ночной - NIGHT_[тэг непися] Можно тоже самое сделать с вейпами (чтобы ходили по-разному днем и ночью) Дневной - WP_[тэг непися]_[номер вейпа] Ночной - WN_[тэг непися]_[номер вейпа] Само собой это все без квадратных скобок. (IMG:style_emoticons/kolobok_light/wink3.gif) |
May 30 2004, 18:29
Сообщение
#41
|
|
Level 2 Класс: Рейнджер Характер: Lawful Good Раса: Человек |
В моем модуле, у одного типа есть кольцо регенерации, которое следует украсть. (IMG:style_emoticons/kolobok_light/smile.gif) На весь модуль это единственный предмет, поддающийся краже, поэтому надо бросить игроку подсказку на эту тему. (IMG:style_emoticons/kolobok_light/smile.gif)
Спасибо, попробую разобраться |
May 30 2004, 23:39
Сообщение
#42
|
|
4-х Кубовый Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора |
Тогда 100% тебе надо писать единичный (не универсальный скрипт!). Это проще. Ты можешь вообще привязаться жестко к скиллу игрока или хенча и написать скрипт через диалог, всплывающий в том месте локи, де ты планируешь украсть это кольцо. Через триггер всплывет (IMG:style_emoticons/kolobok_light/wink3.gif) . Помоему проще и быстрее всего. В конце диалога проверка скиллов и прочего и соответственно результирующие ветки. Удачи! (IMG:style_emoticons/kolobok_light/wink3.gif)
|
Jun 3 2004, 19:35
Сообщение
#43
|
|
Level 5 Класс: Некромант Характер: Chaotic Evil Раса: Нежить |
Вот здесь есть пара скриптов.
|
Jun 8 2004, 19:59
Сообщение
#44
|
|
Сивоха Класс: Некромант Характер: Lawful Evil Раса: Человек |
Вот вопрос. Какая функция(если такая есть) возвращает тип робы. Вообщем ситуация такая: нужен скрипт, который запрещал бы использование предмета, если на ПС одета роба не первого типа.
|
Jun 11 2004, 15:41
Сообщение
#45
|
|
Level 5 Класс: Некромант Характер: Chaotic Evil Раса: Нежить |
Такой функции нет.
|
Jun 11 2004, 19:06
Сообщение
#46
|
|
Level 12 Класс: Мастер Оружия Характер: Lawful Good Раса: Эльф NWN: Маппинг |
Нужен ну ооочень простой скрипт, но я не знаю как его сделать (IMG:style_emoticons/kolobok_light/smile.gif)
Вобщем игрок наступает на тригер и у него начинается разговор с неписем (это я знаю как сделать) После разговора этот тригер должен удаляться для того чтобы повторное наступление на тригер не привело к повторному разговору, как это сделать? Сообщение отредактировал Elven king - Jun 11 2004, 19:07 |
Jun 11 2004, 19:28
Сообщение
#47
|
|
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
удали триггер сразу после наступания
Добавлено в [mergetime]1086971357[/mergetime] те так: ..... AssignCommand(oNPC,ActionStartConversation(..)); DestroyObject(OBJECT_SELF,0.5); ..... Добавлено в [mergetime]1086971480[/mergetime] надеюсь система триггер-диалог у тебя универсальна, не под каждого НПС отдельный скрипт? |
Jun 11 2004, 19:58
Сообщение
#48
|
|
Level 12 Класс: Мастер Оружия Характер: Lawful Good Раса: Эльф NWN: Маппинг |
Нет, скрипт вобще так выгледет:
Код void main() { object oPC = GetEnteringObject(); object oNPC = GetObjectByTag("TAG_SIGILSTUDENT"); if (GetIsPC(oPC)) { AssignCommand(oNPC, ActionMoveToObject(oPC, FALSE)); AssignCommand(oNPC, ActionStartConversation(oPC)); DestroyObject(OBJECT_SELF,0.5); } } А как сделать что бы он был уневерсальным не подскажешь? Сообщение отредактировал Elven king - Jun 11 2004, 19:58 |
Jun 11 2004, 20:13
Сообщение
#49
|
|
Level 5 Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
из
object oNPC = GetObjectByTag("TAG_SIGILSTUDENT"); сделай object oNPC = GetNearestObjectByTag(GetTrapKeyTag(OBJECT_SELF)); тогда этот скрипт будет для любого НПС, если в поле KeyTag ты запишешь ТЭГ нужного тебе НПС для ДАННОГО тригера |
Jun 12 2004, 07:55
Сообщение
#50
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Elven king вот простое решение твоей проблемы.
Код void main() { object oPC = GetEnteringObject(); object oNPC = GetObjectByTag("TAG_SIGILSTUDENT"); if (GetIsPC(oPC) && !GetLocalInt(OBJECT_SELF, "STOP")) { SetLocalInt(OBJECT_SELF, "STOP", TRUE); AssignCommand(oNPC, ActionMoveToObject(oPC, FALSE)); AssignCommand(oNPC, ActionStartConversation(oPC)); } } Удаление триггера черевато боком (IMG:style_emoticons/kolobok_light/lol.gif) Может рухнуть набор акций, если у тебя длинный код. |
Текстовая версия | Сейчас: 27th September 2024 - 08:56 |