2GoDoom
Jul 13 2004, 14:18
Если так - то это супер! Облегается много фишек (и тоже самое создание стац. квестов)
DBColl
Jul 13 2004, 14:39
Neverwinter Script Source |
string sCheck = "1234567890"; int iCheck1 = GetStringLength(sCheck); |
Попробуй так

. Найди ошибку в своем коде

.
2GoDoom
Jul 13 2004, 14:51
хы... прокатило

а в слудеющей строчке? (та жа ошибка)
int iCheck2 = GetStringLenght(GetTag(GetItemActivatedTarget()));
Вестель
Jul 13 2004, 16:11
Цитата
Кусок вырван из всего скрипта... Но ругается именно на вторую строку в приведенном примере. Говорит: PARSING VARIABLE LIST.
Переводить не надо - лучше скажите что это означает и как лечится
Просто исправляется
GetStringLength и все...
2GoDoom
Jul 13 2004, 17:32
хыхы
дык правильно написано (если рядом поставить - один в один)
Добавлено в [mergetime]1089729395[/mergetime] string sCheck2 = GetStringRight(GetTag(GetItemActivatedTarget(), iCheck2-iCheck1-1);
Терь тута
UNKNOWN STATE IN COMPILER
DBColl
Jul 13 2004, 17:42
Цитата
дык правильно написано (если рядом поставить - один в один)
Не правильно.
GetStringLenght - ты писал
GetStringLength - правильно
Цитата
string sCheck2 = GetStringRight(GetTag(GetItemActivatedTarget(), iCheck2-iCheck1-1);
Следи за скобками.
Вот правильно.
Neverwinter Script Source |
string sCheck2 = GetStringRight(GetTag(GetItemActivatedTarget()), iCheck2-iCheck1-1); |
Элементарные ошибки, а ты и про них спрашиваешь...
2GoDoom
Jul 13 2004, 19:02

Ну привык я к вашему темному фону - на белом ничег оне вижу

ЗЫ
Зато повод получить +ННое кол-во постов
Цитата(DBColl @ Jul 12 2004, 09:37)
Лекс, ты "Начало Пути" видел ваще?!

Скажи чем тя не устроило, как это дело выпадает у меня? С глобальной карты...
кидай в меня скрипты.
Видел, но скриптов то не было.
DBColl
Jul 14 2004, 10:09
Лекс, ты мне скажи, тебе нужна глобальная карта в модуле? Можно подключить... Тогда проще и случайные боевки прилепить будет...
Нет, мне карта не нужна...если только Айс не сделает большую карту Тсурла и окрестностей, чтобы можно было по ней ходить...
Скрипты стычек мне нужны (точнее просто локи пришли, я гляну). Надеюсь там ты не руками писал спавн-скрипт! Потому как так я тоже могу. Я хочу через энкаунтер.
Dark Lord
Jul 15 2004, 18:59
А мой скромный постинг на предыдущей странице так и остался незамеченным...

ДБ будь человеком объясни мне неразумному где ж лежат чертовы фиты вернее их скрипты а лучше - ознакомся с моим постингом выше. Надеюсь на понимание.
DBColl
Jul 15 2004, 19:45
Цитата(Lex @ Jul 15 2004, 18:39)
Нет, мне карта не нужна...если только Айс не сделает большую карту Тсурла и окрестностей, чтобы можно было по ней ходить...
Думаю вряд ли... Ибо рисовать ее все равно придется мне...

Цитата(Lex @ Jul 15 2004, 18:39)
Скрипты стычек мне нужны (точнее просто локи пришли, я гляну). Надеюсь там ты не руками писал спавн-скрипт! Потому как так я тоже могу. Я хочу через энкаунтер.
Пояснил в асе.
Цитата(Dark Lord @ Jul 15 2004, 18:59)
ДБ будь человеком объясни мне неразумному где ж лежат чертовы фиты вернее их скрипты а лучше - ознакомся с моим постингом выше. Надеюсь на понимание.
Признаюсь, не знаю... Иначе бы ответил сразу. Мне кажется это все-таки ближе Айсу... Хотя я посмотрю, мож и откопаю чего...
Dark Lord
Jul 15 2004, 20:53
Цитата(DBColl @ Jul 15 2004, 19:45)
Признаюсь, не знаю...
Офигеть. Я в загоне. Убит наповал столь же верно как очередью из калаша :mamba:
Ну хоть где скрипты фитов лежат ты знаешь ? Или айс ? А--а-айс ? :this:
DBColl
Jul 15 2004, 21:30
Скорее всего это все же движковое... Скриптов на фиты нету... Обрати внимание сам и сделай вывод:
Анимация при некоторых фитах есть такая, которой нет даже среди анимационных констант. Среди скриптов я тоже не нашел ничего, что было бы похоже на "обрисовку" фитов...

Так что надо ждать Айса или орать в Гильдии...
Dark Lord
Jul 15 2004, 22:15
ФЕрштайн. Я пришел к таким же виводам после ОСНОВАТЕЛЬНОГО потрошения в Биф-анпакере. Тогда хоть расскажи как свой фит сделать такой как я просил...
DBColl
Jul 16 2004, 11:57
АЙС!
VOLAND
Jul 16 2004, 14:27

Что нужно делать,чтобы наёмник присоединялся к герою?
См. www.nwnlexicon.com
Lyceum->Tutorial->Advanced Scripting-> Celowin part X Henchmen
Dark Lord
Jul 16 2004, 14:45
Гы...
// Add oHenchman as a henchman to oMaster
// If oHenchman is either a DM or a player character, this will have no effect.
void AddHenchman(object oMaster, object oHenchman=OBJECT_SELF)
Так понятно ? Только это из стандартной помощи Тулсета (там где подсказки в редакторе скрипта), мог бы и поиском по слову henchman или открыв любой модуль кампаний НвН.
DBColl
Jul 16 2004, 14:50
Цитата(VOLAND @ Jul 16 2004, 14:27)

Что нужно делать,чтобы наёмник присоединялся к герою?
Хех, только зашел и уже наблевал. :nono:
Dark Lord
Jul 16 2004, 14:58
Tarre Talliorne
Jul 16 2004, 20:35
Итак, очередные мои вопросы:
1. Есть скрипт:
Neverwinter Script Source |
void main() { object oObject = GetFirstObjectInArea(OBJECT_SELF); while (GetIsObjectValid(oObject)&& GetObjectType(oObject)==1) { if (GetTag(oObject)=="bw_prayer") { AssignCommand(oObject, ActionPlayAnimation(ANIMATION_LOOPING_MEDITATE, 1.0, 9999.9)); DelayCommand(1.0, SetCommandable(FALSE, oObject)); } oObject = GetNextObjectInArea(OBJECT_SELF); } } |
Он должен заствлять всех созданий в локе (он_энтр которй и стоит этот скрипт) с тэгом "bw_prayer" проигрывать анимацию медитации и при этом не реагировать на действия ПС. Ну, молитвенный транс. Так вот. Анимацию они проигрывают, но все же остаются комэндэйбл, собаки! В чем проблема?
2. Каково расстояние, на котором НПС воспринимает других НПС? Т.е. видит? а слышит?
Добавлено в [mergetime]1089999466[/mergetime]
И не пихайте мне под нос он_перцепшн - я имею ввиду риал. Просто эти футы мне поперек жабр встают уже. Задолбался реакции для АИ писать. Хотя вродь ничего выходит.
Добавлено в [mergetime]1089999564[/mergetime]
VOLAND - ты поклонник Булгакова или действительно ТОТ САМЫЙ?!
Ragnor
Jul 19 2004, 19:16
Есть скрипт:
void main()
{
object OS = OBJECT_SELF;
object oPC = GetLastPerceived();
if (!GetIsPC(oPC)) return;
string s1 = "69687";
string s2 = "68787";
string s3 = "234234324324";
string s4 = "24323324";
string sResult;
while (GetDistanceBetween(OS, oPC)<50.0)
{
switch (Random(4))
{
case 0: sResult = s1; break;
case 1: sResult = s2; break;
case 2: sResult = s3; break;
case 3: sResult = s4; break;
}
float fDelay = IntToFloat(Random(5));
DelayCommand(fDelay, SpeakString(sResult));
DelayCommand(fDelay, PlayAnimation(ANIMATION_FIREFORGET_TAUNT));
}
}
но как сделать чтоб строки появлялись с интервалом 15 секунд
Аваддон
Jul 20 2004, 07:54
пффф... У меня с этим скриптом вообще НВН висит

))Попробуй вывод строчек поставить в очередь действий с помощью ActionDoCommand а потом ставь ActionWait(15.0).
Или вообще я не бонял зачем fDelay=IntToFloat ? поставь ее 15 сек.
Tarre Talliorne
Jul 20 2004, 09:15
Т.е. хочешь, чтоб строчки выводились с промежутком в 15 сек, а не по ходу обработки цикла? Тогда делай зарубки на времени: надыбай в базе скриптов на рельсах функцию времени в секундах. Затем заводишь локалку, при начале скрипта присваиваешь ей значение текущего времени в секундах. А к цикул добавляешь условие: если текущее время минус та локалка больше 15. Вот и все.
Добавлено в [mergetime]1090304527[/mergetime]
И вообще зачем тебе это? Разные анимации НПС можно сделать с помощью спавн-флагов, а твоя насмешка ИМХО вообще не нужна...
DBColl
Jul 20 2004, 10:07
Тарре, попробуй:
Neverwinter Script Source |
void main() { object oObject = GetFirstObjectInArea(OBJECT_SELF); while (GetIsObjectValid(oObject) && GetObjectType(oObject)==1) { if (GetTag(oObject)=="bw_prayer") { AssignCommand(oObject, ActionPlayAnimation(ANIMATION_LOOPING_MEDITATE, 1.0, 9999.9)); AssignCommand(DelayCommand(1.0, SetCommandable(FALSE, oObject))); } oObject = GetNextObjectInArea(OBJECT_SELF); } } |
Ice Blade
Jul 20 2004, 10:08
Dark Lord & Co Ну вы даёте млин.

подобный фит "нормально" сделать в принцепе нельзя:
- Сама система ДнД реализованная в НВН, не позволяет так вести огонь очередями, разве что если стрельба является своего рода mass effect-ом.
- сколько раз можно объяснять, что есть два типа фитов: активные - т.е те что действуют как заклинания (песня барда там, или дыхание дракона) и пасивные - т.е те которые работают сами по себе например та же специализация в оружии или приведённый тобой быстрый выстрел, разница в том что первые имеют скрипт (он же спелл), вторые используют всякие genеric и вызовы движка,- т.е редактированию не подлежат

, единственное что позволенно это использовать самопальные константы фитов в модульных скриптах.
Что можно сделать? в теории:
В ХотУ у оружия появилось свойство onHitCastSpell(конечно по умолчанию, никаких арбалетов или луков там не предусмотренно, - но это поправимо

) Суть, идеи - данное свойство выполнит скрипт помимо всего дав нашим скриптерам location цели, с помощью которого они без труда смогут расчитать массовые повреждения в округе. Но возникает проблемма с визуальным оформлением, в частности как заставить заставить все эти пули попасть в цель?.
Выхода я "пока" 2-а:
1. Делать это дело невидимым

, помнишь как в старых игрушках огонь из ствола и искры из цели, но ничего между ними.
2. Извращения с системами частиц - что в принцепе может дать тот самый "ожидаемый" результат, но потребует мнооооого гемороя.
Dark Lord
Jul 20 2004, 12:18
В общем ясно сделать полноценно очередь даже в форме быстрого выстрела с увеличенным числом пуль нельзя. Ладно, если понадобится сделаю пулей из нескольких частей (роем пуль) и анимацией самого випона. Кстати, Айс, растолкуй как сделать вот такое :
есть в инвентарике объект, штык, вернее багинет. Есть винтарик. Задача : с помощью УникПауэра на штыке нацепить его на винтарик. Ну все ясно да : проверитьт есть ли в инвентаре винтарик с нужным тегом, удалить штык удаолить винтарик и дать копье сделанное в форме винтарика. У копья УникПауэр который возвращает винтарик и штык. НО ! На одну и ту же винтовку можно надеть разные штыки ! Более того штык и винтарик могут быть КВЕСТОВЫМИ ! Т.е. надо как-то "запоминать" образы винтарика и штыка а затем их восстанавливать в инвентаре причем уже из ДРУГОВО скрипа. ВОТ как ? Заодно расскажи как повесить ЮникПауэр ибо стыдно но до сих пор не допер

скрип написать на уник пауэр так-то смог а вот проверить повесив немогу...
Ragnor
Jul 20 2004, 12:56
У меня такой вопрос: Как сделать так, чтобы стояло 5 камней и от них друг к другу отходил луч, или чтобы он был направлен на NPC.
Tarre Talliorne
Jul 20 2004, 16:39
Подробней, пожалуйста. Вообще, эффект луча - это VFX_BEAM_*** , напр. VFX_BEAM_COLD.
DBColl
Jul 20 2004, 16:50
EffectBeam(...);
Ragnor
Jul 20 2004, 17:42
А как сделать чтобы он от камней был направлен на НПС.
Tarre Talliorne
Jul 20 2004, 20:13
Neverwinter Script Source |
effect EffectBeam( int nBeamVisualEffect, object oEffector, int nBodyPart, int bMissEffect = FALSE ); |
nBeamVisualEffect
VFX_BEAM_* константа, озбозначающая эффект, напр. VFX_BEAM_COLD.
oEffector
эффектор (ПС, НПС, камни)
nBodyPart
часть тела, в которую эффект направлен
bMissEffect
оставь как есть
Ragnor
Jul 20 2004, 22:17
Большое спасибо
Tarre Talliorne
Jul 20 2004, 22:48
Всегда пожалуйста. Приятно иметь дело с вежливым человеком. Все ведь за "спасибо" работаем...
Ragnor
Jul 20 2004, 22:54
Наверное я прогоняю, но мне пишет "неправильная переменная", если не сложно напишите пример.
Tarre Talliorne
Jul 20 2004, 23:41
Могу ошибаться (пишу в отрыве от тулсета), но вроде так, где oPC - твой ПС, oStone - твой камень.
Neverwinter Script Source |
ApplyEffectToObject(1, EffectBeam(VFX_BEAM_COLD, oStone, 1), oPC); |
Ragnor
Jul 21 2004, 09:16

Неполучается у меня, или пишет нет точки с запятой, или нет левой скобки,(хотя это всё на месте),или пишет потеря анализатора переменной, или просто ничего в игре не происходит, напишите скрипт уже с переменными, и куда его ставить.
DBColl
Jul 21 2004, 09:42
Попробуй на OnHeartbeat камня...
Neverwinter Script Source |
object oPC = GetFirstPC(); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_CHEST), oPC); |
Цитата(DBColl @ Jul 21 2004, 09:42)
Попробуй на OnHeartbeat камня...
Neverwinter Script Source |
object oPC = GetFirstPC(); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_CHEST), oPC); |
Если я правильно помню - камень обязан быть НЕ static, иначе ничего не выйдет. Хотя это было давно, до 1.3х и может что-то изменилось
Ragnor
Jul 21 2004, 14:30
Спасибо, скрипт работает отлично, но мне нужно чтобы он на НПС был направлен, а не на ПК
Аваддон
Jul 21 2004, 14:37
Тогда
Neverwinter Script Source |
object oNPC = GetNearestObjectByTag("TAG_NPC",OBJECT_SELF); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_CHEST), oNPC); |
TAG_NPC это тэг твоего НеПиСя. Придумай ему что нить оригинальное
M@ster_o_B
Jul 21 2004, 17:41
Помогите! Срочно! Плиииззз!
Написал совсем детский скрипт на OnUsed стула
Neverwinter Script Source |
void main() { object oPC = GetPCSpeaker(); object oChair = OBJECT_SELF; AssignCommand(oPC, ActionSit(oChair)); } |
Вроде простой, но он не работает! Скрипт должен сажать перса на стул при его использовании. Перс к стулу подходит но на него не садится!
object oPC = GetLastUsedBy();
А фапще лучше фот:
Neverwinter Script Source |
void main() { object oPC = GetLastUsedBy(); object oChair = OBJECT_SELF; if (GetIsPC(oPC)) { if (GetIsObjectValid(oChair) && !GetIsObjectValid (GetSittingCreature(oChair))) { AssignCommand(oPC, ActionSit(oChair)); } } } |
M@ster_o_B
Jul 21 2004, 18:18
Auren, большое сенькс! Заменил GetPCSpeaker на GetLastUsedBy и все заработало! Но я так и не понял в чем разница!
Tarre Talliorne
Jul 21 2004, 18:25
GetPCSpeaker(); - это ПС, участвующий в диалоге.
А GetLastUsedBy(); - это последний использовавший стул.
M@ster_o_B
Jul 21 2004, 18:29
Цитата
GetPCSpeaker(); - это ПС, участвующий в диалоге.
То, что только в диалоге я не знал. Спасибо, Тарр, разъяснил!
Tarre Talliorne
Jul 21 2004, 18:45
Для всех:Обращайте внимание в первую очередь на ее(функции)
название и описание (чтобы увидеть его, клините 2 раз по функции, описание появится в субокне редактора). Назначение можно понять уже на этой стадии.
пример: GetPCSpeaker(. . . );
get -
вернутьPC -
ПСплейерSpeaker -
говорящий.
Итого: вернуть ПС, участвующего в диалоге. Все просто.
Если назначение функции вам непонятно, смотрите в
Лексиконе. Если у вас его нет, обязательно скачайте, без него у вас не получиться освоить скриптинг даже на среднем уровне.
Цитата
То, что только в диалоге я не знал. Спасибо, Тарр, разъяснил!
Всегда рад помочь.
Dark Lord
Jul 23 2004, 19:59
ВОПРОС ! Какое событие происходит (если происходит) при ЗАКАНЧИВАНИИ стрел в обойме заряженной в слот и как его отследить ? Очень надою.
Добавлено в [mergetime]1090602099[/mergetime] Ну или хотя бы при заряжании в СЛОТ очередной обоймы при заканчивании старой.
Tarre Talliorne
Jul 23 2004, 21:09
Хех. Авто перезарядку делаешб? :-)
Как я разумею, каждый раз когда ты берешь стрелу из пучка, срабатывает событие на избятие этой вещи из инвентаря. Тебе надо отследить последнюю стрелу... Хм... Тогда делай так: на это событие ставь фильтр "Если в слоте стрел больше ничего нет", то ДЕЙСТВИЕ. В твоем случае - взять в этот слот еще одну пачку стрел.
Не проверял, но имхо должно работать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.