![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3836
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Спасибо обоим (IMG:style_emoticons/kolobok_light/smile.gif)
Что то меня эти скрипты пугают, не берусь их учить, только лазию и ПОРОШАЙНИЧЯЮ да и варую чюжые скрипты (IMG:style_emoticons/kolobok_light/crazy.gif) |
![]()
Сообщение
#3837
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
shadowdweller, а это еще почему? Такая система работает уже несколько лет, и ничего с бедного игрока не сдирали. Переменная стирается рестартом, а игрок входит на шард всегда через стартовую локацию, поэтому твоя правка бесполезна. Достаточно двух строк:
Neverwinter Script void main() { ... if (GetXP(oPC) == FALSE) { SetXP(oPC, TRUE); } } Даже если игрок и не покинет эту локацию сразу, а перезайдет на ней, то он останется ровно с тем, что ему дали. Если уж говорить о полной надежности, то персонажу игрока нужно выдавать вещь, на которую сохранять стартовую переменную и потом ее проверять вместе со значением опыта. Одно условие может быть FALSE, оба - сомневаюсь. Сообщение отредактировал Zirrex - Jul 29 2008, 09:12 |
![]()
Сообщение
#3838
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Zirrex, ну, если о шарде речь - тогда совсем другое дело. Я-то сингл имела в виду. (IMG:style_emoticons/kolobok_light/smile.gif) Причем, я так боялась, что это будет каждый раз происходить, что в моде на стартовую локацию можно только один раз зайти, если вышел - все, не вернешься (IMG:style_emoticons/kolobok_light/biggrin.gif)
|
![]()
Сообщение
#3839
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
shadowdweller, а причем тут одиночная игра? Там еще проще. Можно всегда сохранить статус игры. Потом, именно в одиночной игре подобные скрипты вешаются на события модуля, а не локации, чтобы, как ты описала выше, не было подобных эксцессов.
|
![]()
Сообщение
#3840
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Вопрос есть скрипт который позволяет не сбивать действия? К примеру у меня НПС посли диалога идёт в указанное место, но при попытке поговорить с ним ВСЁ он стоит ступором и несоберается выполнять задоный скрипт.
P.S Надеюсь я не сильно много задают вопросов? С таким темпом могу быстро вам надоесть (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3841
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Тебе нужно в хербите НПС ставить проверку GetDistanceToObject(бла,бла) >=1.0 до объекта куда нужно и если он не там пинать его командой AssignCommand(<НПС>, ActionMoveToObject(бла)); ну и соответсвующие проверки на - болтает ли, дерется, идет ли
что-то типа такого: Neverwinter Script ....
if(GetLocalInt(...)==...)это ты в диалоге вешаешь...а в хербите если есть локалка запуститься следующие { oObject = <твоя точка назначения> if(!GetIsInCombat(OBJECT_SELF) && !IsInConversation(OBJECT_SELF)) { if(GetDistanceToObject(oObject)>=1.5) { AssignCommand(OBJECT_SELF, ActionMoveToObject(oObject)); } } } .... Сообщение отредактировал Melisse - Jul 29 2008, 22:43 |
![]()
Сообщение
#3842
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
А можно как нибудь поподробней для чайника. можно целый скрипт?
|
![]()
Сообщение
#3843
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Берешь с слота OnHerbit у НПС скрипт и в самом начале пишешь:
Neverwinter Script if(GetLocalInt(OBJECT_SELF,"QUEST")==TRUE) { object oObject = GetObjectByTag("СЮДА ТЭГ ОБЪЕКТА, К КОТОРОМУ НАДО ИДТИ"); if(!GetIsInCombat(OBJECT_SELF) && !IsInConversation(OBJECT_SELF)) { if(GetDistanceToObject(oObject)>1.0) { AssignCommand(OBJECT_SELF, ActionMoveToObject(oObject)); } else DeleteLocalInt(OBJECT_SELF,"QUEST"); } } и в диалоге на в тот скрипт что заставляет НПС идти к точке назначения вставь Neverwinter Script SetLocalInt(OBJECT_SELF,"QUEST",TRUE); должно сработать Сообщение отредактировал Melisse - Jul 30 2008, 08:08 |
![]()
Сообщение
#3844
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Спасибо сейчас буду тыкать (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3845
|
|
Level 2 ![]() Класс: Оборотень Характер: True Neutral Раса: Эльф ![]() |
Куча вопросов по реализации некоторых идей =)
Буду благодарен если мне подскажут как все сделать или кинут ссылку где это описано. 1. Появление разных рас в разных местах при первом заходе в модуль. То есть например эльфы начинают в одной локации, а люди в другой. 2. Видел в каком то модуле что была настроена рассовая агрессия. Тк модуль будет ориентирован на мультиплеер нужно сделать так чтобы союз одних рас был агрессивен по отношению к союзу других. 3. Еще хотел бы узнать как реализовать отдельный респаун каждого союза в своем городе. 4. Начисление опыта и золота за убийство игрока. ну например по формуле lvl убитого игрока x 50 , если если убитый игрок на 5 уровней ниже то опыт и золтто не дается. Фух, пока все, надеюсь что сильные скриптеры мира сего помогут =) |
![]()
Сообщение
#3846
|
|
Level 4 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Цитата 1. Появление разных рас в разных местах при первом заходе в модуль. То есть например эльфы начинают в одной локации, а люди в другой. было-бы не плохо не только по рассе, но еще и по классу(мне для сингла). Цитата Еще хотел бы узнать как реализовать отдельный респаун каждого союза в своем городе. тоже было-бы интересно. |
![]()
Сообщение
#3847
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
1. Да это то просто.
тригер ставишь в локе где появляются игроки и прямо под точку захода в модуль. Таких скриптов тут на форуме множество - поищите поиском. На онЭнтер тригерра ставить что-то типа такого: Neverwinter Script object oPC = GetEnteringObject(); object oPoint; int nRace = GetRaticalType(oPC); switch(nRace) { case RATICAL_TYPE_ELF://Если еще и по классам то сюда еще один switch просто с классами и все { oPoint = GetObjectByTag("Тэг точки"); DelayCommand(1.0,AssignCommand(oPC,JumpToObject(oPoint)); break; } case RATICAL_TYPE_HUMAN: ..... } 2. Не поняла, чего надо? Сообщение отредактировал Melisse - Aug 13 2008, 07:38 |
![]()
Сообщение
#3848
|
|
Level 2 ![]() Класс: Оборотень Характер: True Neutral Раса: Эльф ![]() |
Допустим сделать так чтобы игроки-люди по умолчанию были агрессивны к игрокам-полуоркам.
За первое спасибо большое. Сообщение отредактировал Lordeath - Aug 17 2008, 14:57 |
![]()
Сообщение
#3849
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Второе - ставим на onClientEnter модуля
Neverwinter Script void main() За способность скомпилиться не ручаюсь - не тестил. Остальное завтра - хочу спать (IMG:style_emoticons/kolobok_light/smile.gif)
{ object oPC = GetEnteringObject(); object oOtherPC = GetFirstPC(); int nRace = GetRacialType(oPC); int nOtherRace; while(GetIsObjectValid(oOtherPC)) { nOtherRace = GetRacialType(oOtherPC); if((nOtherRace == RACIAL_TYPE_HUMAN && nRace == RACIAL_TYPE_HALFORC) || (nRace == RACIAL_TYPE_HUMAN && nOtherRace == RACIAL_TYPE_HALFORC)) SetPCDislike(oPC, oOtherPC); oOtherPC = GetNextPC(); } } Сообщение отредактировал Ilerien - Aug 17 2008, 23:56 |
![]()
Сообщение
#3850
|
|
Level 2 ![]() Класс: Оборотень Характер: True Neutral Раса: Эльф ![]() |
Благодарю, попробую.
Цитата #include "botd_teams" int StartingConditional() { object oPC = GetPCSpeaker(); int nTeam = GetTeamNumber(oPC); int nToken; if (nTeam == BOTD_ANIEL) nToken = 5101; else if (nTeam == BOTD_ROSHNAK) nToken = 5201; else return FALSE; switch (GetBonusLevel(nTeam)) { case 0: SetCustomToken(nToken,"unexperience. We need more funds to adequately train them."); break; case 1: SetCustomToken(nToken,"junior. We need more funds to adequately train them."); break; case 2: SetCustomToken(nToken,"novice. We need more funds to increase their skills."); break; case 3: SetCustomToken(nToken,"advanced. More funds will ensure they are in superb condition."); break; case 4: SetCustomToken(nToken,"experienced. More funds will ensure they are in superb condition."); break; case 5: SetCustomToken(nToken,"superior. More funds will ensure they are in superb condition."); break; case 6: SetCustomToken(nToken,"vertan. More funds will ensure they are in superb condition."); break; case 7: SetCustomToken(nToken,"elite. More funds will ensure they are in superb condition."); break; case 8: SetCustomToken(nToken,"ultra-elite. More funds will ensure they are in superb condition."); break; case 9: SetCustomToken(nToken,"maximized. There is no more advancement available."); break; } return TRUE; } Вот разбирал тут по кусочкам один модуль, возник вопрос - не могу заменить в скрипте фразы которые в кавычках русскими словами. Это галюн именно моего редактора или Авроры в целом? Сообщение отредактировал Lordeath - Aug 18 2008, 08:28 |
![]()
Сообщение
#3851
|
|
Level 1 Класс: Убийца Характер: True Neutral Раса: Человек ![]() |
Подскажите чайнику (IMG:style_emoticons/kolobok_light/crazy.gif) .
Вот у меня есть хак с новыми моделями. Могу ли я его прикрепить к офф. игре NWN или к адону? И как это сделать? Если нет, то можно ли к примеру изъятые из .hak файла .mdl, .plt и прочие запихнуть в .bif файлы официальной игры? Чем просматривать .bif я разобрался, а чем редактировать не знаю. Зарание прошу прощения за идеотский вопрос. Сам на форуме найти не смог. Заодно подскажите, как .hak одного модуля прикрепить к другому. (я пробовал просто содержимое одного хака перекидывать в другой - иногда работало. Но вот если у нового модуля нету своего хака - тут все и закнчивалось) Еще раз сори за дурацкие вопросы, сами понимаете - лето, жара, новых игр нету (IMG:style_emoticons/kolobok_light/shout.gif) |
![]()
Сообщение
#3852
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Вот разбирал тут по кусочкам один модуль, возник вопрос - не могу заменить в скрипте фразы которые в кавычках русскими словами. Это галюн именно моего редактора или Авроры в целом? Глюк авроры. Лечится вот этим патчем. Подскажите чайнику (IMG:style_emoticons/kolobok_light/crazy.gif) . Вот у меня есть хак с новыми моделями. Могу ли я его прикрепить к офф. игре NWN или к адону? И как это сделать? Если нет, то можно ли к примеру изъятые из .hak файла .mdl, .plt и прочие запихнуть в .bif файлы официальной игры? Чем просматривать .bif я разобрался, а чем редактировать не знаю. Зарание прошу прощения за идеотский вопрос. Сам на форуме найти не смог. Заодно подскажите, как .hak одного модуля прикрепить к другому. (я пробовал просто содержимое одного хака перекидывать в другой - иногда работало. Но вот если у нового модуля нету своего хака - тут все и закнчивалось) Еще раз сори за дурацкие вопросы, сами понимаете - лето, жара, новых игр нету (IMG:style_emoticons/kolobok_light/shout.gif) Да, можете. Если уже прошли в игре официальные модули, то в тулсете, в окне доступных модулей появится галочка внизу "Модули кампаний". Щелкните ее, и сможете открыть официальные кампании. Если кампании не пройдены, то их надо перетащить из папки "nwm" в папку "modules" и поменять расширение на mod, тогда они появятся в окне модулей. Либо скачать патч, который внесет нужные изменения в реестр, либо внести их самому. Хаки подключаются к модулю так. Открываете любой модуль, вверху будет пункт меню "Редактировать", в нем - "Модульные свойства". В появившемся окне выберите вкладку "Настройки пользователя". Появится список (пустой) и выпадающий список под ним, в котором вы можете выбрать любой из хаков, которые лежат в папке "hak". Выбирайте нужный, щелкайте "Добавить", и хак подключится к модулю. Сообщение отредактировал Talarasha - Aug 19 2008, 08:27 |
![]()
Сообщение
#3853
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Я долго пытался справляться сам, но наконец наткнулся на проблему, которая мне н по зубам...
Neverwinter Script object oItem = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItem)) { if(GetPlotFlag(oItem) == TRUE) DelayCommand(0.2,DestroyObject(oItem)); object oItem = GetNextItemInInventory(oPC); } По идее, сей скрипт (т.е. его кусок), подразумевался изничтожать лишние plot item'ы, которые могут оказаться у сохраненного перса (ну, чтоб не было 2 одинаковых айтема потом=)). Но а) он пытается срабатывать каждый раз при загрузке сейва, хотя надо бы тока в начале; б) максимум уничтожает один айтем, потом орет что too many instructions=( Как его поправить? (стоит он в OnClientEnter). |
![]()
Сообщение
#3854
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Neverwinter Script if(GetLocalInt(GetModule(),"z") == 0) { object oItem = GetFirstItemInInventory(oPC); while(oItem != OBJECT_INVALID) { if(GetPlotFlag(oItem)) { DestroyObject(oItem); oItem = GetNextItemInInventory(oPC); } else { oItem = GetNextItemInInventory(oPC); } } SetLocalInt(GetModule(),"z",1); } Вот так должно работать. Переменная "z" не дает повторяться скрипту, а ошибка была в повторном определении oItem (не надо каждый раз писать тип перед переменной). Сообщение отредактировал Talarasha - Aug 19 2008, 10:00 |
![]()
Сообщение
#3855
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script object oItem = GetFirstItemInInventory(oPC);
while(GetIsObjectValid(oItem)) { if(GetPlotFlag(oItem)) { SetPlotFlag(oItem, FALSE); DestroyObject(oItem); } oItem = GetNextItemInInventory(oPC); } |
![]()
Сообщение
#3856
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Ilerien, а зачем флаг снимать? И без этого ведь уничтожает.
|
![]()
Сообщение
#3857
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Хз (IMG:style_emoticons/kolobok_light/smile.gif) Не обязательно, конечно. Привычка - некоторое время назад я честно думал, что DestroyObject не убивает плотовые итемы.
|
![]()
Сообщение
#3858
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Спасибо! Попробую...
Хз (IMG:style_emoticons/kolobok_light/smile.gif) Не обязательно, конечно. Привычка - некоторое время назад я честно думал, что DestroyObject не убивает плотовые итемы. А те, которые Undroppable, можно таким способом убить? Или они не только неубираемые, но и неубиваемые? Сообщение отредактировал Lirulin - Aug 19 2008, 18:03 |
![]()
Сообщение
#3859
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата А те, которые Undroppable, можно таким способом убить? Или они не только неубираемые, но и неубиваемые? Можно (IMG:style_emoticons/kolobok_light/smile.gif)
Сообщение отредактировал Ilerien - Aug 19 2008, 21:29 |
![]()
Сообщение
#3860
|
|
Level 3 ![]() Класс: Псионик Характер: Neutral Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Хз (IMG:style_emoticons/kolobok_light/smile.gif) Не обязательно, конечно. Привычка - некоторое время назад я честно думал, что DestroyObject не убивает плотовые итемы. Оно так и было. Плотовые предметы не убивались. |
![]() ![]() |
Текстовая версия | Сейчас: 6th August 2025 - 14:55 |