![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#4576
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Как-то так:
Neverwinter Script #include "nw_i0_generic" Скрипт не проверял, могут быть опечатки.
void main() { object oPC = GetPCSpeaker(); object oHenchman = GetObjectByTag("tag"); RemoveHenchman(oPC, oHenchman); AdjustReputation(oPC, oHenchman, -100); AssignCommand(oHenchman, DetermineCombatRound(oPC)); } |
![]()
Сообщение
#4577
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Благодарю Вас, всё прекрасно работает.
|
![]()
Сообщение
#4578
|
|
Level 3 ![]() Класс: Воин Характер: True Neutral Раса: Эльф ![]() |
Спасибо, я уже разобрался.
Кстати, если что, я разобрался наконец-то с портретами, хотя делал все как и раньше, только последнюю букву в имени файлов заглавной писал. (IMG:style_emoticons/kolobok_light/rolleyes.gif) |
![]()
Сообщение
#4579
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Я создал модуль, где с двух сторон создаются монстры, идут друг навстречу другу и начинают драться. Что-то вроде Dota Allstars. Стороны вполне сбалансированы, если какая-то сторона проигрывает, то ей присылают подкрепление. Короче он работает нормально. Если запустить, то битва будет происходить бесконечно, примерно по 10-13 монстров с каждой стороны.
Проблема в том, что если запустить его на dedicated server'е, то монстры продолжат спавниться, однако драться между собой будут только в присутствии игроков. Таким образом локация переполняется живностью и зайти посмотреть "как дела" не представляется возможным. Никаких обработчиков на onClientEnter и т.д. не стоит. Можно ли как-то сделать чтобы монстры дрались на dedicated сервере, даже если игроков нет? |
![]()
Сообщение
#4580
|
|
Level 5 ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Good Раса: Человек ![]() |
Можно, конечно.
Судя по тому, что говорит вирусман - то хербит имеет тенденцию отключатся в локах, в которых нет игроков, через какой-то промежуток времени (если я правильно понял) - можно сделать искусственый запуск через курсирующий на модуле скрипт (каждые 6 сек) - это единственное, что мне приходит в голову. Сообщение отредактировал Laajin - Aug 4 2011, 09:15 |
![]()
Сообщение
#4581
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Можно, конечно. Судя по тому, что говорит вирусман - то хербит имеет тенденцию отключатся в локах, в которых нет игроков, через какой-то промежуток времени (если я правильно понял) - можно сделать искусственый запуск через курсирующий на модуле скрипт (каждые 6 сек) - это единственное, что мне приходит в голову. Так хербит вон, работает походу, монстры то спавняться! Да кстати, скрипт на драку у меня в onPerception. Там просто, проверки на враждебность цели, проверка переменных свободен\нет, ну и ActionAttack. А в хертбите у меня задача идти вперед, если бить некого. Монстры просто не дерутся! [offtop: не вижу кнопки редактировать сообщение (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif) (IMG:style_emoticons/kolobok_light/crazy.gif) ] |
![]()
Сообщение
#4582
|
|
Level 5 ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Good Раса: Человек ![]() |
Дык АI хербит и останавливается
|
![]()
Сообщение
#4583
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата Судя по тому, что говорит вирусман - то хербит имеет тенденцию отключатся в локах, в которых нет игроков, через какой-то промежуток времени (если я правильно понял) virusman дело говорит, да и в описаниях стандартных функций сказано, что ХБ отключается, когда игрок не в зоне. Не занимался этим вопросом специально, но видел освещение подобной темки в лексиконе. Вот этот абзац: Цитата Remarks When used for a creature, conditions set within the OnSpawn script are checked and executed if they are applicable; these include "fast buff" for enemies (used when a PC draws within a certain range to simulate preparation), day/night postings for the WalkWayPoints() function, and the standard ambient animations used by creatures when standing around. Though the PC doesn't have an OnHeartbeat event, if you create a script called "default", it will automatically trigger every PC heartbeat. It would be wiser to use the modules OnHeartbeat however. Setting the AI level to AI_LEVEL_HIGH on a creature will force the heartbeat to fire as if a PC was in the area. This is useful for monsters you want to travel across multiple area's with waypoints, but is costly on the CPU. Area of effects can have a Heartbeat script defined, and can apply damage (such as Acid Fog does) to everyone in the area, each combat round. Т.е. по идее, отключение хертбита при отсутствии игрока убирается с помощью функциии SetAILevel() с параметром AI_LEVEL_HIGH, но это должно стоить производительности. Описание констант там дано. Цитата Таким образом локация переполняется живностью Это странно. Если ты говоришь, что стороны балансируются в зависимости от того, какая проигрывает, а в отсутствие игрока боя не происходит, то почему тогда идет переполнение? В моем представлении, балансировка подразумевает проверку числа живых мобов. Нет боя - нет потерь - нет подкреплений. Разве нет? Сообщение отредактировал Talarasha - Aug 5 2011, 02:04 |
![]()
Сообщение
#4584
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Спасибо за наводки. Как будет возможность проверю.
Цитата Цитата Цитата Таким образом локация переполняется живностью Это странно. Если ты говоришь, что стороны балансируются в зависимости от того, какая проигрывает, а в отсутствие игрока боя не происходит, то почему тогда идет переполнение? В моем представлении, балансировка подразумевает проверку числа живых мобов. Нет боя - нет потерь - нет подкреплений. Разве нет? Просто нет ограничения на количество спавнящихся мобов, однако проигрывающая сторона всегда получает больше войск чем доминирующая. Если мобы дерутся, то все нормально подкрепления приходят, старые воины умирают чаши весов постоянно прыгают, но победу не может одержать ни одна сторона. А вместо проверки числа живых, я просто веду учет: заспавнился +1 в переменную, сдох -1 в переменную. Мне просто интересно наблюдать за ними (IMG:style_emoticons/kolobok_light/wink3.gif) сижу, пишу скрипты, пью чаек, болею за кого-нибудь. P.S. так и не нашел где тут на этой борде кнопка "редактировать сообщение" (IMG:style_emoticons/kolobok_light/ph34r.gif) |
![]()
Сообщение
#4585
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата P.S. так и не нашел где тут на этой борде кнопка "редактировать сообщение" Если не ошибаюсь, возможность редактирования появляется при получении второго вроде бы уровня. От количества сообщений, в общем, зависит. |
![]()
Сообщение
#4586
|
|
Level 3 ![]() Класс: Теневой Танцор Характер: Lawful Neutral Раса: Человек ![]() |
Первое что пришло в голову, что мона поставить проверку на локалку, и принудительно запускать. а если нет никого на арене, ни ДМов, ни игроков, то просто на мобов ПВК, при заходе игрока на арену КВП и далее батл, стек команд на пустых локах запущенный принудительно не айс. как только игрок выходит из зоны видимости через турн выключается АИ, и моб выходит в режим "по дефолту" (даже когда в камне, т.е. в позе появления)
|
![]()
Сообщение
#4587
|
|
Level 5 ![]() ![]() Класс: Паладин Характер: Chaotic Good Раса: Человек ![]() |
Как поставить режим монстру, чтобы он разрушал все плэйсы в пределах своей видимости?
|
![]()
Сообщение
#4588
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
|
![]()
Сообщение
#4589
|
|
Level 5 ![]() ![]() Класс: Паладин Характер: Chaotic Good Раса: Человек ![]() |
Цитата Использовать GetNearestObject(OBJECT_TYPE_PLACEABLE) в аи-скриптах моба. Можно подробнее. (IMG:style_emoticons/kolobok_light/wacko.gif) |
![]()
Сообщение
#4590
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Можно подробнее. wacko.gif Neverwinter Script //::////////////////////////////////////////////////// //:: NW_C2_DEFAULT1 /* Default OnHeartbeat script for NPCs. This script causes NPCs to perform default animations while not otherwise engaged. This script duplicates the behavior of the default script and just cleans up the code and removes redundant conditional checks. */ //::////////////////////////////////////////////////// //:: Copyright © 2002 Floodgate Entertainment //:: Created By: Naomi Novik //:: Created On: 12/22/2002 //::////////////////////////////////////////////////// #include "nw_i0_generic" void main() { // * if not runnning normal or better Ai then exit for performance reasons if (GetAILevel() == AI_LEVEL_VERY_LOW) return; // Buff ourselves up right away if we should if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY)) { // This will return TRUE if an enemy was within 40.0 m // and we buffed ourselves up instantly to respond -- // simulates a spellcaster with protections enabled // already. if(TalentAdvancedBuff(40.0)) { // This is a one-shot deal SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE); // This return means we skip sending the user-defined // heartbeat signal in this one case. return; } } if(GetHasEffect(EFFECT_TYPE_SLEEP)) { // If we're asleep and this is the result of sleeping // at night, apply the floating 'z's visual effect // every so often if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT)) { effect eVis = EffectVisualEffect(VFX_IMP_SLEEP); if(d10() > 6) { ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF); } } } // If we have the 'constant' waypoints flag set, walk to the next // waypoint. else if ( GetWalkCondition(NW_WALK_FLAG_CONSTANT) ) { WalkWayPoints(); } // Check to see if we should be playing default animations // - make sure we don't have any current targets else if ( !GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()) // && !GetIsPostOrWalking()) && !GetIsObjectValid(GetNearestSeenEnemy())) { if (GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) || GetBehaviorState(NW_FLAG_BEHAVIOR_OMNIVORE) || GetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE)) { // This handles special attacking/fleeing behavior // for omnivores & herbivores. DetermineSpecialBehavior(); } else if (!IsInConversation(OBJECT_SELF)) { if (GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVI AN) || GetIsEncounterCreature()) { PlayMobileAmbientAnimations(); } else if (GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIM ATIONS)) { PlayImmobileAmbientAnimations(); } // addition to original onHeartbeat else if (GetLocalInt(OBJECT_SELF, "AI_HAVE_TO_DESTROY_PLACEABLES")) { object placeable = GetNearestObject(OBJECT_TYPE_PLACEABLE); if (GetIsObjectValid(placeable)) { ActionAttack(placeable); } } // addition ends } } // Send the user-defined event signal if specified if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_HEARTBEAT)); } } Самый простой, а потому почти наверное далеко не лучший способ. |
![]()
Сообщение
#4591
|
|
Level 5 ![]() ![]() Класс: Паладин Характер: Chaotic Good Раса: Человек ![]() |
На что ставить? (IMG:style_emoticons/kolobok_light/ph34r.gif)
|
![]()
Сообщение
#4592
|
|
Level 5 ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Good Раса: Человек ![]() |
Цитата Neverwinter Script //::////////////////////////////////////////////////// //:: NW_C2_DEFAULT1 /* Default OnHeartbeat script for NPCs. This script causes NPCs to perform default animations while not otherwise engaged. This script duplicates the behavior of the default script and just cleans up the code and removes redundant conditional checks. */ //::////////////////////////////////////////////////// //:: Copyright © 2002 Floodgate Entertainment //:: Created By: Naomi Novik //:: Created On: 12/22/2002 //::////////////////////////////////////////////////// |
![]()
Сообщение
#4593
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Neutral Раса: Человек ![]() |
Приветствую всех на этом прекрасном форуме!
У меня небольшой вопрос, в каком 2да файле или может скрипте, редактируется система опыта? Скажем я хочу увеличить себе длительность игры небольшим модом, как увеличить порог до 45-50 уровня? |
![]()
Сообщение
#4594
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: Lawful Evil Раса: Человек ![]() |
Насколько я знаю (раньше вроде задавались подобные вопросы), увеличить порог нельзя. Можно растянуть получение опыта, вроде бы как через xptable.2da (не знаю, к чему приведет добавление в нее строк за 40, скорее всего к ошибке при попытке подняться на уровень/на добавленный уровень, ибо есть куча таблиц классов, которые наверняка связаны с уровнями, класс/кросс-класс скиллы и так далее. К чему приведет оное добавление во все таблицы, которые связаны с уровнями, не знаю тем более, но можно попытаться. Кстати, на пг какой-то товарищ выкладывал xptable, отредактированный на ускорение кача - http://www.playground.ru/cheats/14583/ ). Кстати под 2da имеется отдельная тема, может найдешь там что-нибудь себе полезное. http://www.city-of-masters.ru/forums/index.php?showtopic=78
|
![]()
Сообщение
#4595
|
|
Level 5 ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Good Раса: Человек ![]() |
Цитата Скажем я хочу увеличить себе длительность игры небольшим модом, как увеличить порог до 45-50 уровня? Нафиг вам это? Если хотите +100500 лвл, лучше поиграйте в Пэрфэкт форд или Ла2 или Еверквест 2 или хз, чего там еще... там все это + лучше чем можно сделать тут. |
![]()
Сообщение
#4596
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Neutral Раса: Человек ![]() |
большое спасибо, но именно онлайн игры мне надоели, хочу быть королём сингла (IMG:style_emoticons/kolobok_light/rolleyes.gif)
насчёт опыта, спасибо, помогло.. Так же у меня есть один вопрос, которым я очень давно интересовался. Почему базовый урон в этой игре ограничен числом 20? Со спеллами не уверен, но с оружием так. Можно ли увеличить эти цифры и какими последствиями это можем обернуться? Со спеллами к примеру, мы работает в спеллс.2да и скрипты(в скриптах и изменяем характеристики магии), с оружием сложнее, в том же редакторе стоит ограничение на числа, и поставить сколько хочешь - нельзя. Конкретно интересует как изменить характеристики оружия(ограничения) и как на работоспособность игры, повлияет правка цифр в скриптах о спеллах, неужели так всё просто, изменить там пару строчек и урон магий изменится? заранее благодарен пользователям этого форума (IMG:style_emoticons/kolobok_light/declare.gif) дело в том, что с друзьями разрабатываем патч для совместной игры онлайн. Хотим немного подправить баланс, под себя так сказать (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#4597
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: Lawful Evil Раса: Человек ![]() |
Цитата Почему базовый урон в этой игре ограничен числом 20? Не понял.Вроде бы урон в скриптах ограничивается только ограничениями типа, наиболее вероятно, что это от -32768 до 32767. |
![]()
Сообщение
#4598
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Neutral Раса: Человек ![]() |
ну например оружие, свыше 3d6(=18) или просто Урон20 сделать в тулсете нельзя.
Это ограничение игры или можно в ручную прописать сколько хочешь? (через 2да файл baseitems или где итемы искать, если не в нём? ещё интересует место где можно вручную отредактировать файл от моего модуля, обходя ограничения тулсета) И что дают нам эти цифры? -32768 до 32767. в каком скрипте ты их встречал? судя по этому, пока мы их не изменим, урон выше не сделать (IMG:style_emoticons/kolobok_light/declare.gif) |
![]()
Сообщение
#4599
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Цитата большое спасибо, но именно онлайн игры мне надоели, хочу быть королём сингла Цитата дело в том, что с друзьями разрабатываем патч для совместной игры онлайн Взаимоисключающие параграфы.К слову, увеличение левелкапа и урона - это один конец палки. Второй конец палки - "старые" мобы. К примеру, если речь о сингле нвн1, какой смысл делать 50 уровней и 50 урона от оружия, когда финального босса можно убить на 13м уровне с мечом 1д8+2? Я сам проходил сингл нвн1 в компании 3х друзей, там на любом уровне халява нереальная, даже когда опыт на четверых делится. |
![]()
Сообщение
#4600
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Neutral Раса: Человек ![]() |
ну смысл в том, чтобы уметь.
И эта игра больше сингл для меня. Неважно с каким мечом ты проходишь кампанию, ты просто не думал, что в моде можно сделать босса которого 13ым лвлом не убьёшь (IMG:style_emoticons/kolobok_light/prankster2.gif) |
![]() ![]() |
Текстовая версия | Сейчас: 27th April 2025 - 16:21 |