Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 27 28 29 30 31 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Guest_Maniac_*
сообщение Feb 13 2005, 18:46
Сообщение #686








Всем привет, я новенький на этом форуме.Так что если чё не так, то не обижайтесь.
Не подскажет ли мне кто нибудь,как сделать так, чтобы только ночью стражники
ходили с факелами, а днём нет. :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 13 2005, 18:55
Сообщение #687


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



добавка в скрипт на слоте onHeartBeat стражника:
Neverwinter Script Source
void GetItem(string sTag, object oCreature )
{
  object oItem = GetFirstItemInInventory(oCreature);
  while (GetTag(oItem)!=sTag)
  {
  oItem = GetNextItemInInventory(oCreature);
  if (!GetIsObjectValid(oItem)) return OBJECT_INVALID;
  }
return oItem;
}
/// тут стандартный скрипт ХБ
if (GetIsDay())&&(GetLocalInt(OBJECT_SELF,"TORCH"))
{
  ClearAllActions();
  ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND,OBJECT_SELF);
  SetLocalInt(OBJECT_SELF,"TORCH",FALSE);
}
if (GetIsNight())&&(!GetLocalInt(OBJECT_SELF,"TORCH"))
{
  ClearAllActions();
  ActionEquipItem(GetItem("ITM_TORCH",OBJECT_SELF),INVENTORY_SLOT_LEFTHAND);
  SetLocalInt(OBJECT_SELF,"TORCH",TRUE);
}


что-то типа этого...тулсета под рукой нет
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 13 2005, 20:13
Сообщение #688


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Maniac, необижайся, но ты новенький, так, что лучше те в тему "Вопросы новичков" заглянуть. Ничего личного, просто совет...... :yahoo: :yahoo: :yahoo: :yahoo:

Сообщение отредактировал Archangel - Feb 13 2005, 20:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Feb 13 2005, 20:23
Сообщение #689


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



QUOTE
И еще вопросик как мне соединить в скрипте на локации 4 заклинания Луч Мороза
Например 4 Точки маршрута и из 1 точки бьёт луч во 2 и т.д

На вейпоинты, по-моему, вообще ничего накладывать нельзя. На не статичные невидимые плейсаблы - можно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 13 2005, 21:26
Сообщение #690


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Lex! У мня че-то не получается! Я сделал все как ты сказал, а охраннику хоть бы хны!
Это я че-то недопираю или может ты где-то ошибся? :xz:
Скорее всего Я че-то не так делаю.....

ПОДСКАЖИ ПЖАААЛУЙСТА...
:swoon: :swoon: :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 13 2005, 21:30
Сообщение #691


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



а что именно не сработало? Он не напал, он не говорит? Ситуацию описывай подробнее
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 13 2005, 22:28
Сообщение #692


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Если точно, то он и не говорит и не нападает..........
:vava: :vava: :vava:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 13 2005, 22:33
Сообщение #693


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Хм, странно. Дома попробую сделать
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 14 2005, 03:48
Сообщение #694


Level 10
Иконки Групп

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



QUOTE
На вейпоинты, по-моему, вообще ничего накладывать нельзя. На не статичные невидимые плейсаблы - можно.


Можно в аддоне Ундердарк есть где калдовали на веапон, а ты незнаеш как невобект поставить?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
MasterMage
сообщение Feb 14 2005, 11:59
Сообщение #695


Level 8
***

Класс: Маг
Характер: Lawful Good
Раса: Полуэльф



Nokoll ЧТО???? ничего не понятно!!! :this:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 14 2005, 11:59
Сообщение #696


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Угу Lex. Попытайся пЖалуйста! :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 14 2005, 12:41
Сообщение #697


Level 10
Иконки Групп

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



QUOTE
Nokoll ЧТО???? ничего не понятно!!!


Я говорил что в Аддоне Underdarc был скрипт где кастовали каклинание на Точку Маршрута.
И спосил еще как соеденить например 4 лединых луча например 1 бёт во 2, и т.д с помощю невидемого обекта. :D
<small>Добавлено в 12:57</small>
Это вапрос Дарк Принца:

Самым злобным образом приветствую всех многоуважаемых участников форума. :DB:
Возник небольшой вопрос по скриптам - мне в определенный момент времени нужно "потрясти экран" - эффект землетрясения. Каким образом можно это реализовать? Чесно говоря неохота перерывать Lexicon и родные NWN-новские скрипты. Может подскажет кто?

Сообщение отредактировал Nokoll - Feb 14 2005, 13:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
MasterMage
сообщение Feb 14 2005, 13:24
Сообщение #698


Level 8
***

Класс: Маг
Характер: Lawful Good
Раса: Полуэльф



QUOTE (Nokoll @ Feb 14 2005, 12:41)
Самым злобным образом приветствую всех многоуважаемых участников форума. 
Возник небольшой вопрос по скриптам - мне в определенный момент времени нужно "потрясти экран" - эффект землетрясения. Каким образом можно это реализовать? Чесно говоря неохота перерывать Lexicon и родные NWN-новские скрипты. Может подскажет кто?

знаю, вопрос не твой, так вот ответ
Neverwinter Script Source
effect eEf=EffectVisualEffect(не помню, но вместо этой строки ставь константу,что-то связанное со "screen");
object oWp=GetWaypointByTag("Тэг твоей точки");//а можно GetObjectByTag("Тэг"); - если ты на объект ставишь//
ApplyEffectAtLocation(DURATION_TUPE_TEMPORARY,eEf,GetLocation(oWp),2.5);

ставишь на триггер или дверь, куда нужно в общем...
Тут я точно не помню(так как тула нет при себе) что сотоит раньше eEf, или loc(GetLocation(oWp).
<small>Добавлено в 13:27</small>
DBColl
дело в том, что эта функция находит эффект только в данном скрипте, а если еффект уже наложен, а снять хочешь другим, то ОН НЕ РАБОТАЕТ!! =)
Вот в чем дело.... Думается, он просто не может работать, будучи разорванным...
Remove удаляет только в одном скрипте.... :vava:

<small>Добавлено в 13:32</small>
Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Created By: MasterMage ©
//:: Created On: 30.01.05
//::///////////////////////////////////////////////
void main()
{
    object oPC=GetPCItemLastUnequippedBy();
    object oRing=GetPCItemLastUnequipped();
    object oNPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,oPC,1,
                                  CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,
                                  CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC);

    if (GetTag(oRing)=="Ring")
    {
    effect eEf = GetFirstEffect(oPC);
    while (GetIsEffectValid(eEf))
{
  if (GetEffectType(eEf) == EFFECT_TYPE_IMPROVEDINVISIBILITY)
        RemoveEffect(oPC, eEf);
  eEf = GetNextEffect(oPC);
}   
}
    return;
}


Сообщение отредактировал MasterMage - Feb 14 2005, 13:32
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 14 2005, 13:33
Сообщение #699


Level 10
Иконки Групп

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



С Позволения МастераМагии Подправлю.. :D
Поставъ Так effect eEf=EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
Или VFX_FNF_SCREEN_BUMP
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Grazzt, Dark Pri...
сообщение Feb 14 2005, 14:00
Сообщение #700


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



Спасибки. Приду домой - опробую фичу. :D Крайне полезный эффект. :DB:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Grazzt, Dark Pri...
сообщение Feb 14 2005, 17:22
Сообщение #701


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



:DB: И еще один мааленький вопросец :swoon: - можно ли манипулировать очередью actions обьектов? Утрировано - NPC по скрипту перемещается к тэгу А, потом к тэгу B, потом к тэгу C. Можно ли каким-то образом выяснить, есть ли к примеру в очереди для этого объекта комманда "переместиться к тэгу B" и очередность её выполнения относительно других комманд очереди? Можно ли каким-то образом "вручную" менять очередность? :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 14 2005, 18:34
Сообщение #702


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Grazzt, Dark Prince зачем такие заморочки. Скрипт то ты сам пишешь. Вот и определись к каждому посту свои условия, к примеру дистанцию или вешавй локалку на НПС. А выуживание акций на кой?
Добавлено в [mergetime]1108395396[/mergetime]
Опиши твою ЗАДАЧУ. Мы подскажем как ее реализовать. А твои домыслы могут быть ужасно не в кассу...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Grazzt, Dark Pri...
сообщение Feb 14 2005, 19:24
Сообщение #703


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



->Aiwan: Меня интересует сама возможность. :xz: И нужно это мне скорее в целях более эффективной отладки сценариев игры. Понятное дело, что можно послать какой нибудь ClearAllActions, и попробовать сформировать цепочку событий самостоятельно. Но есть один тонкий момент - если цепочку событий для обьекта одновременно формируют несколько различных довольно обьемистых скриптов, то логика работы системы становится достаточно интересной и не всегда до конца предсказуемой в силу довольно таки высокой сложности этой самой логики и недостатка времени на бетатестирование. Как правило приходится довольно страшно изголяться с очисткой буфера комманд и локальными переменными, что не всегда (ну во всяком случае из моей скудной практики программирования под Аврору) есть гуд. Конечно можно сказать, что надо по возможности избегать таких моментов. Но увы и ах - не всегда это удается. И тогда наступают муки адовы, выражающиеся в длительных попытках найти логическую ошибку в собственных скриптах не имея нормальных средств отладки. Разобраться в этом помогло бы что-то вроде лога всех скриптовых комманд с результатами отработки, посланных во время игрового процесса. Но увы - этого видимо нет (а было бы удобно...). По этому на худой конец подошли бы и некие функции получения мгновенного состояния буфера комманд. Это был бы просто луч света в темном царстве. :drag:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 14 2005, 21:18
Сообщение #704


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



Здрастеся все.
У меня тут небольшой косяк, помогите пжАААлуйста: :swoon: :swoon:

Neverwinter Script Source
void main()
{
object oGuard =GetObjectByTag("Guard_1");
object oMech = GetObjectByTag("Mech");
while (GetTag(oItem)!=sTag)
{
object oItem = GetNextItemInInventory(oMech);
if (!GetIsObjectValid(oItem)) return OBJECT_INVALID;
  }
return oItem;
}
int nInventorySlot = GetInventoryDisturbItem(oMech);


// Здесь должна быть эта долбаная проверка :this:



ActionEquipItem(GetItem("Mech",OBJECT_SELF),INVENTORY_SLOT_RIGHTHAND);
SetLocalInt(OBJECT_SELF,"Mech",FALSE);
}


Этот скрипт вствляется в OnDamage(или как его там, непомню. Вообщем мысля понятна)НеПиСя.
И когда НеПиСь получает повреждение(т.е. его атакуют), то он должен достать меч.
В принципе все получается, но я не знаю как сделать проверку на, то, что НеПиСя атакуют.
Помогите.Плизззззз! :mamba:

P.S.: КУДА ВСЕ РАЗБЕЖАЛИСЬ?

Сообщение отредактировал Archangel - Feb 14 2005, 21:22
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 15 2005, 11:03
Сообщение #705


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE
Меня интересует сама возможность.

Скорее всего нет.
QUOTE
И нужно это мне скорее в целях более эффективной отладки сценариев игры. Понятное дело, что можно послать какой нибудь ClearAllActions, и попробовать сформировать цепочку событий самостоятельно.

Извини, но твои запросы непонятны с точки зрения необходимости. Зачем выуживать то что там накопилось? И пытаться разобраться? ТЫ что, будешь сам ковырять стэк? Или доверишься СКРИПТУ? По твоей логике, ты делаешь подсластитель сахару. Ты и отличаешься от компьютера, что можешь сам задать логику своих скриптов и прочее. И вообще, ОПИШИ хоть ОДНУ ситуацию, когда тебе это действительно НАДО. В стэк помещается 75 акций. Ты получил 50 разных. Что делаешь? :D Все что ты описал это не аргумент, это сожаления неумелого скриптера. Когда ты научишься писать скрипты хорошо, твой вопрос будет снят сам собой. Как что то в модуле работает без твоего ведома??? Я не пойму ты тогда зачем там? :D
Давай конкретную ситуацию. Ты делаешь то то, а происходит то-то и ты не знаешь почему. И поговорим.

QUOTE
P.S.: КУДА ВСЕ РАЗБЕЖАЛИСЬ?

Мы тут сидим от нечего делать и правим всем скрипты. Все остальное для нас пустой звук в мире. :dirol:
О! Ну наконец я могу помочь страждущему! :SM:
Поставь это на ОнДамадж НПС.
Neverwinter Script Source
void main()
{
object oItem = GetItemPossessedBy(OBJECT_SELF, "Mech");
ActionEquipItem(oItem, OBJECT_SELF, INVENTORY_SLOT_RIGHTHAND);
}

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Feb 15 2005, 12:27
Сообщение #706


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



QUOTE
Мы тут сидим от нечего делать и правим всем скрипты. Все остальное для нас пустой звук в мире.


Да, ладно Aiwan...
Это я ж так, шуча.....

А за скрипт спасибушки!
%) %) %)
Добавлено в [mergetime]1108460998[/mergetime]
Aiwan!
Че-то твой скрипт не фурычит!
Я,конечно, мало че в этом понимаю, но вроде бы тута еще переменная нужна......
Пытался сам енто исправить, но не получилось. Ибо мозгов не хватает.

P.s.: Не компилится во 2й строчке. :ph34r: :ph34r: :ph34r:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Feb 15 2005, 13:21
Сообщение #707


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



Archangel
я конечно не уверен, бо не проверял, но есть подозрение,
что при каждом попадании по NPC он будет делать доставание меча,
что, имхо, негативно скажется на его боеспособности...

правильнее, наверное, так:
Neverwinter Script Source
void main()
{
  object oSword = GetItemPossessedBy(OBJECT_SELF, "Mech");
  object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND);
  if (oItem != oSword)
    AssignCommand(OBJECT_SELF, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND));
}


кстати, Archangel знаком с такой штукой - лексикон?

ps. по поводу "доставания меча" - во времена "игры запоем" обнаружил такую штуку:
если во время боя постоянно менять "набор оружия", процент попадания сильно
увеличивается... это, конечно, субъективно, но так показалось. :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Feb 15 2005, 13:46
Сообщение #708


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



dumbo
AssignCommand(OBJECT_SELF, ...) - это бессмысленная строка. Достаточно просто
ClearAllActions();
ActionEquipItem(...);
DetermineCombatRound(...);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Feb 15 2005, 14:16
Сообщение #709


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



DBColl
каюсь. AssignCommand применительно к селфу - лишнее стопудово :yes:
взял из первого попавшегося скрипта, особо не раздумывая... а надо было.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Grazzt, Dark Pri...
сообщение Feb 15 2005, 15:25
Сообщение #710


Level 5
**

Класс: Маг
Характер: Chaotic Evil
Раса: Танар'ри



>Aiwan: Немного флуда (непреднамереного) и вопрос. :DB:
Необходимость простая - отладка. Другой нет (пока). Ничего предосудительного в том, чтобы если уж существует буфер акций, то иметь возможность полноценной работы с ним, я не вижу (можно отнести к разделу моих пожеланий по второму NWN :D ). Ну впрочем вчера я и без этого разобрался. Проблема была в синхронизации действий "босса" и его "подручных" во время боя с PC и была связана с несколько некорректным планированием боевой ситуации с моей стороны. Нужно было точно синхронизировать работу трех скриптов, в одном из которых была ветка, завязяная на здоровье "босса". Из-за разности наносимого демеджа в конкретный момент времени в различных тестовых боях в некоторых случаях возникало рассогласование действий актеров. И в результате получалось тоже неплохо, но не так, как я хотел (в основном из-за не вовремя посланных DelayCommand). Решилось все просто изменением значения двух локальных переменных. Чисто (на мой непросвященный взгляд) логическая ошибка, на которую я угробил 8,5 часов своего драгоценного времени и чего бы не было, знай я содержимое буфера. А так пришлось сендить все имеющиеся переменные и долго и упорно ловить мелкий(?!) но гадский глюк. На счет опытности ты прав - на Авроре я програмлю всего неделю, по этому скрипты у меня вероятно еще не очень хорошие :D Впрочем ничего особенного в Авроре нет кроме массы нюансов (а в них вся соль!), которых о которых я еще (пока!) не знаю. Например (это уже вопрос!) 75 акций - это для всех обьектов или для одного?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 27 28 29 30 31 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 12th May 2025 - 16:16