![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3061
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Talarasha, может быть просто привязать к каждой могилей свой "диалог"?
|
![]()
Сообщение
#3062
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Neverwinter Script int StartingConditional() { string sGrave = GetLocalString(OBJECT_SELF,"GRAVE"); int IsFirst = GetLocalInt(OBJECT_SELF, "GRAVE"); if (sGrave == "NEFZEN" && IsFirst) return TRUE; if (sGrave == "VESSEL" && !IsFirst) return TRUE; return FALSE; } На каждую могилу ставится переменная GRAVE целочисленного типа со значениями TRUE для NEFZEN и FALSE для VESSEL(вообще говоря, можно даже не ставить вторую). Хотя пара условий может была бы и лучше. Сообщение отредактировал greye - Mar 1 2009, 10:28 |
![]()
Сообщение
#3063
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата На каждую могилу ставится переменная GRAVE целочисленного типа со значениями TRUE для NEFZEN и FALSE для VESSEL. Хотя пара условий может была бы и лучше. Не работает, к сожалению (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) Обе могилы выдают первую строку диалога. Ведь если взять вторую могилу (VESSEL) и щелкнуть по ней, первое условие не срабатывает, а второе срабатывает и выводит первую строку диалога. Цитата Talarasha, может быть просто привязать к каждой могилей свой "диалог" Ну да, это проще реализуемо. Но зачем нужны кучи диалоговых файлов, если можно уместить все в один? Хм... Попробую без диалога вообще сделать, просто вывод строки в зависимости от переменной. Добавлено: Заработало =). Neverwinter Script void main() { string sGrave = GetLocalString(OBJECT_SELF,"GRAVE"); if(sGrave == "NEFZEN") { ActionSpeakString("Натали Нефзен, 1351 - 1390, покойся с миром."); } if(sGrave == "VESSEL") { ActionSpeakString("Курт Вессел, 1351 - 1390, покойся с миром."); } } Хотя если кто-нибудь сможет сделать для диалогового файла, с удовольствием погляжу. Сообщение отредактировал Talarasha - Mar 1 2009, 10:39 |
![]()
Сообщение
#3064
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Neverwinter Script int StartingConditional() { string sName = GetLocalString(OBJECT_SELF, "GRAVE"); int nCheck = GetLocalInt(OBJECT_SELF, "GRAVE"); if (!nCheck) if (sName == "NEFZEN") return TRUE; SetLocalInt(OBJECT_SELF, "GRAVE", !nCheck); return nCheck; } Работает только для диалога с 2 строками; ничего, кроме имен в переменных не нужно. ------------------------------------------------- Для общего случая: Neverwinter Script const int nCountMax = 99;
const string sVariableName = "<Variable_Name>"; int StartingConditional() { string sName = GetLocalString(OBJECT_SELF, sVariableName); int nPosition = GetLocalInt(OBJECT_SELF, sVariableName); int bTRUE = FALSE; switch (nPosition) { case 0: if (sName == "<Name_00>") bTRUE = TRUE; break; case 1: if (sName == "<Name_01>") bTRUE = TRUE; break; case 2: if (sName == "<Name_02>") bTRUE = TRUE; break; //... case nCountMax: if (sName == "<Name_nCountMax>") bTRUE = TRUE; break; } if (bTRUE || nPosition == nCountMax) nPosition = 0; else nPosition++; SetLocalInt(OBJECT_SELF, sVariableName, nPosition); return bTRUE; } Сообщение отредактировал greye - Mar 1 2009, 13:42 |
![]()
Сообщение
#3065
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Люди - Как создать некое подобие струи пара (огня?), которая бы через определенный промежуток времени выстреливала из одного вэйпоинта, проносилась бы по прямой до другого вэйпоинта и гасла. А если игрок попал бы в него, то его бы "ошпарило" - нанеслось бы 1d12 огненного урона.
|
![]()
Сообщение
#3066
|
|
Level 2 ![]() Класс: Самурай Характер: True Neutral Раса: Человек ![]() |
Добрый день скриптеры и семпаи =)
надеюсь поможете мудрыми словами. Есть модуль (нордок + сер 2.2) так вот нужно создать предмет который бы менял навсегда игроку внешний вид на модель входящую в состав сер'овских паков, видел на форуме скрипты на смену модели (в темах об оборотнях и не только) но скриптер из меня похоже никакой. может кто поможет разобраться в сути проблемы? (IMG:style_emoticons/kolobok_light/unsure.gif) нужно на несколько моделей, но думаю с остальными потом сам разберусь существо Guardinal: Ayala(в списке числиться так) в скрипте записывал так - GUARDINAL_AYALA правда в оригинале в названиях нету двоеточия... |
![]()
Сообщение
#3067
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Люди - Как создать некое подобие струи пара (огня?), которая бы через определенный промежуток времени выстреливала из одного вэйпоинта, проносилась бы по прямой до другого вэйпоинта и гасла. А если игрок попал бы в него, то его бы "ошпарило" - нанеслось бы 1d12 огненного урона. не просто. Визуальный эффект где-то в базе скриптов был. См феерверки. А чтобы еще урон был - тут есть несколько вариантов, и все довольно сложные. Проще создавать с интервалом огненную стену. Эффект примерно такой же, но делать заметно легче. Добрый день скриптеры и семпаи =) надеюсь поможете мудрыми словами. Есть модуль (нордок + сер 2.2) так вот нужно создать предмет который бы менял навсегда игроку внешний вид на модель входящую в состав сер'овских паков, видел на форуме скрипты на смену модели (в темах об оборотнях и не только) но скриптер из меня похоже никакой. может кто поможет разобраться в сути проблемы? (IMG:style_emoticons/kolobok_light/unsure.gif) нужно на несколько моделей, но думаю с остальными потом сам разберусь существо Guardinal: Ayala(в списке числиться так) в скрипте записывал так - GUARDINAL_AYALA правда в оригинале в названиях нету двоеточия... см функцию SetAppearanceType. Собсна кроме нее почти ничего и не нужно. Но имхо такое изменение внешности будет выходить боком при полиморфе (магия или способность, не суть). Лучше всего через лето поправить файл персонажа, поменяв ему внешность. Или, тк это шард, делать через NWNX, что еще лучше и эффектнее. Но с этим вопросом надо к шардовикам, к Вирусману например. |
![]()
Сообщение
#3068
|
|
Level 2 ![]() Класс: Самурай Характер: True Neutral Раса: Человек ![]() |
Lex, возможно я совсем туповат в плане скриптов, в принцепи весь скрипт по идее состоит из нее одной с прописаной кокраз моделькой и повесит на онклилк\онюсе предмета, но пока что у меня получался нулевой эфект.
Свойственно можно редактировать чаров и отдельно правда лето у меня как-то не работает. попробуем через "NWNX" и покопаюсь еще с скриптом. |
![]()
Сообщение
#3069
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
onClick|onUsed.. ты на плейс вешаешь чтоль?
если на юз, то кроме GetLastUsedBy и SetAppearanceType ничего и нет. Да, и учти что вбивать константу GUARDINAL_AYALA в параметры функции бесполезно, если эта константа не прописана или там, где все консты прописаны (script.nss или как-то так) или в той библиотеке, которая будет подключена к скрипту. Если влом прописывать - просто ставь вместо константы номер из табылицы appearance.2da, где у тебя эта внешность/существо описано. |
![]()
Сообщение
#3070
|
|
Level 2 ![]() Класс: Самурай Характер: True Neutral Раса: Человек ![]() |
Lex, спасибо, осталось одна мелочь выковырять это все из сер паков =)
вашаю я на предмет урной зовущийся... просто что первое попалось. |
![]()
Сообщение
#3071
|
|
Level 1 Класс: Варвар Характер: Lawful Good Раса: Полуорк ![]() |
Кто нибудь, пожалуйста, подскажите скрипт для шахида, он должен подбегать к NPC и взрываться.
|
![]() ![]()
Сообщение
#3072
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Помогите пожалуйста,у меня есть скрипт,и разговор,в котором должен этот скрипт действовать(хенч должен весь мой инвентарь положить себе)
Neverwinter Script void main() { object oMaster = GetPCSpeaker() object oItem = GetFirstItemInInventory(oMaster) object oNewMaster=GetNearestObjectByTag("HEN_GRORK",oMaster) CopyItem(oItem,oNewMaster,FALSE) { while(GetIsObjectValid(oItem)) { if(GetBaseItemType(oItem) == BASE_ITEM_LARGEBOX) { CreateItemOnObject(GetResRef(oItem), oNewMaster, 1); if(iDel==TRUE) DestroyObject(oItem, 0.5); } else { CopyItem(oItem, oNewMaster, TRUE); if(iDel==TRUE) DestroyObject(oItem); } oItem = GetNextItemInInventory(oMaster); } } } Скрипт ругается на четвертую строчку,уже пробовал убирать-добавлять точку с запятой,теги вродь object,int ,сам переписал весь код-все равно ругается.НА вся кслучай сразу говорю-скрипт ставил на совершение действия хенчем в разговоре Плиз,хелп (IMG:style_emoticons/kolobok_light/shout.gif) Помогите пожалуйста,у меня есть скрипт,и разговор,в котором должен этот скрипт действовать(хенч должен весь мой инвентарь положить себе) Neverwinter Script void main() { object oMaster = GetPCSpeaker() object oItem = GetFirstItemInInventory(oMaster) object oNewMaster=GetNearestObjectByTag("HEN_GRORK",oMaster) CopyItem(oItem,oNewMaster,FALSE) { while(GetIsObjectValid(oItem)) { if(GetBaseItemType(oItem) == BASE_ITEM_LARGEBOX) { CreateItemOnObject(GetResRef(oItem), oNewMaster, 1); if(iDel==TRUE) DestroyObject(oItem, 0.5); } else { CopyItem(oItem, oNewMaster, TRUE); if(iDel==TRUE) DestroyObject(oItem); } oItem = GetNextItemInInventory(oMaster); } } } Скрипт ругается на четвертую строчку(object oItem = GetFirstItemInInventory(oMaster)),уже пробовал убирать-добавлять точку с запятой,теги вродь object,int ,сам переписал весь код-все равно ругается.НА вся кслучай сразу говорю-скрипт ставил на совершение действия хенчем в разговоре Плиз,хелп (IMG:style_emoticons/kolobok_light/shout.gif) |
![]()
Сообщение
#3073
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Плиз,хелп shout.gif Не стоят точки с запятой в конце 3-5, 7 строк. Еще лишняя пара фигурных скобок - сразу после CopyItem и закрывающая в конце. К тому же не олределена переменная iDel типа int, насколько видно. Сообщение отредактировал greye - Mar 15 2009, 16:46 |
![]()
Сообщение
#3074
|
|
Level 1 ![]() Класс: Маг Характер: Lawful Evil Раса: Дракон NWN: Скриптинг [PW] ![]() |
Цитата Кто нибудь, пожалуйста, подскажите скрипт для шахида, он должен подбегать к NPC и взрываться. Ну вот например так Neverwinter Script float fDelay = GetDistanceToObject(GetNearestObjectByTag("npc_tag"))/15; //точно не помню эту формулу AssignCommand(OBJECT_SELF, ActionForceMoveToObject(GetObjectByTag("npc_tag"), TRUE)); DelayCommand(fDelay, ExecuteScript("detonate", OBJECT_SELF)); SetLocalInt(OBJECT_SELF,"ACTIVATED_OBJECT",TRUE); и в OnDamaged такое Neverwinter Script if(GetDamageDealtByType(DAMAGE_TYPE_FIRE) > 0 && GetCurrentHitPoints() < 0) ExecuteScript("detonate",OBJECT_SELF); detonate: Neverwinter Script void main() { object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 10.0, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_DOOR | OBJECT_TYPE_CREATURE | OBJECT_TYPE_PLACEABLE); while(GetIsObjectValid(oTarget)) { int nDamage = 450+d100(); nDamage = GetReflexAdjustedDamage(nDamage, oTarget, 45, SAVING_THROW_TYPE_FIRE); effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), oTarget); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_FLAME_M), oTarget); DestroyObject(OBJECT_SELF); oTarget = GetNextObjectInShape(SHAPE_SPHERE, 10.0, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_DOOR | OBJECT_TYPE_CREATURE | OBJECT_TYPE_PLACEABLE); } int nCount=0; while(nCount<4) { float fRandom = GetRandomDelay(0.3,1.0); DelayCommand(fRandom, ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVi sualEffect(VFX_COM_BLOOD_LRG_RED),oPC)); DelayCommand(fRandom, ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVi sualEffect(VFX_COM_BLOOD_REG_RED),oPC)); DelayCommand(fRandom, ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVi sualEffect(VFX_COM_CHUNK_RED_LARGE),oPC)); nCount++; } } |
![]()
Сообщение
#3075
|
|
Level 3 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Эльф ![]() |
ребята помогите. Начинаю грызть науку скриптования и главный вопрос по каст сценам. Пропишите ка создать как сцену которая наиналась бы с того что созданый вами персонаж лежал на кровати как бы в забытие и потом сцена переходила бы на воспоминания. похоже как в ПЛ, когда вас оттубасили два урка и вы валяетесь на кровати у Ви. Только наоборот. Сначала на кровати а потом сцена с забытием, которая переходит на новые и новые сценки?
СПС огромное. |
![]()
Сообщение
#3076
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
скриптовые сценки - одно из самых трудных. Не потому что там какие-то знания запредельные нужны, наоборот, там просто все. Но требует туеву кучу терпения.
Чтобы лежать на кровати - нужен специальный тайл с другим вокмешем, он у нас в хак-паке. В остальном то, что ты просишь обычно делают самостоятельно. На такой ролик может уйти несколько недель. Можешь для начала в ПЛ глянуть скрипты ролика забытья, чтобы проникнуться. Тут рядом есть темка для новичком по роликам, ознакомься с ней. Там Айв популярно разжевывает куда копать (IMG:style_emoticons/kolobok_light/smile.gif) |
![]() ![]()
Сообщение
#3077
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Не стоят точки с запятой в конце 3-5, 7 строк. Еще лишняя пара фигурных скобок - сразу после CopyItem и закрывающая в конце. К тому же не олределена переменная iDel типа int, насколько видно. Спасибо огромнейшее (IMG:style_emoticons/kolobok_light/yahoo.gif) все получилось! (IMG:style_emoticons/kolobok_light/thank_you.gif) Просто у мя не действует скрипт на копи инвентори =(а у мну как раз на него есть пример.пришлось самому все переделывать... Так,вот еще один вопросик:как сделать предмет бессмертным?Персонажа я умею таковым делать,а вот предмет не умею.плизз,хелп (IMG:style_emoticons/kolobok_light/help.gif) |
![]()
Сообщение
#3078
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
предмет в смысле placeable? Ящик там или дерево?
флажок plot в свойствах поставить. |
![]()
Сообщение
#3079
|
|
Level 3 ![]() Класс: Клерик Характер: Lawful Good Раса: Дварф ![]() |
А как реализовать прокачку героя до 60 лвл????
|
![]()
Сообщение
#3080
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
2da + скрипты. Но толку с этого немного, даже если пропишешь фиты 40-60 уровень.
Если в этой фразе ты ничего не понял - лучше не ломай над этим голову. наверняка есть другие задачи по модулю, более реалистичные и полезные. |
![]()
Сообщение
#3081
|
|
Level 3 ![]() Класс: Клерик Характер: Lawful Good Раса: Дварф ![]() |
Почему у меня не получается при диалоге с НПС (Продавец конец) немогу создать коня возле себя
пишу в диалоге в Action taken Neverwinter Script void main() { object oPC = GetPCSpeaker(); CreateObject(OBJECT_TYPE_CREATURE,"horse_ad1",GetLocation(oPC)); TakeGoldFromCreature(1000, oPC); НПС тока деньги забирает а коня нету. |
![]()
Сообщение
#3082
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
проверь res-ref лошади, который в скрипте "horse_ad1". У тебя в палитре должен быть такой объект с именно таким резрефом (не тэгом, а резрефом).
|
![]()
Сообщение
#3083
|
|
Level 3 ![]() Класс: Клерик Характер: Lawful Good Раса: Дварф ![]() |
хм....а я tag туда писал в место ResRef... его вроде уже нельзя изменить нада при создании менять
странно я думал tag уникальный индификатор я по нему переходы из локу в локу делал порталы. т.д. думал с обьектами также...Мда |
![]()
Сообщение
#3084
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
ты просто недопонимаешь смысл тэга и резрефа.
Если по простому: тэг - неуникальный идентификатор размещенного в модуле объекта. Неуникальный, значит что ты можешь задать нескольким объектам одинаковый тэг.. а можешь и не задавать. Уникальность тэга для каждого объекта зависит от тебя. резреф - уникальный идентификатор объекта в палитре. Те в палитре может быть только 1 объект с таким резрефом. При этом в модуле все эти размещенные объекты будут иметь одинаковый резреф. при работе с объектами уже размещенными на локациях - используется тэг. Можно в принципе использовать и резреф, но функционал крайне ограничен, тэг удобнее и покрывает весь спектр возможных задач. При скриптовом создании новых объектов из палитры, используется только резреф. понятнее стало? зы: да, реф задается при создании. Но если объект уже есть в палитре, настроенный и все такое и влом создавать новый с правильным рез-рефом, делай копию. У копии поле рез-реф будет доступно для редактирования. |
![]()
Сообщение
#3085
|
|
Level 3 ![]() Класс: Клерик Характер: Lawful Good Раса: Дварф ![]() |
Да спасиба очень помогло
|
![]() ![]() |
Текстовая версия | Сейчас: 1st May 2025 - 13:54 |