![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]() ![]()
Сообщение
#1166
|
|
Level 1 Класс: Чемпион Торма Характер: Lawful Good Раса: Человек ![]() |
Кто нибудь помогите. Делаю модуль по мотивам книг Ника Перумова - Хранитель мечей, точнее по миру описанному там.
Скриптер из меня никакой. Герой умирает и переносится в межреальность, там общается и его отправляют назад в место где он погиб. Нужен скрипт телепорта на место смерти героя. За основу я взял скрипты (помоему от Аваддон"а),и чуть переделал. OnPlayerDying Герой без сознания. void bleed(int iBleedAmt) { effect eShake=EffectVisualEffect(VFX_FNF_SCREEN_SHAKE); effect eBleedEff; if (GetCurrentHitPoints() <= 3) { SpeakStringByStrRef (110519); if (iBleedAmt > 0) { eBleedEff = EffectDamage(iBleedAmt); } else { eBleedEff = EffectDamage(iBleedAmt); } ApplyEffectToObject(DURATION_TYPE_INSTANT, eBleedEff, OBJECT_SELF); if (GetCurrentHitPoints() <= -10) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), OBJECT_SELF); return; } if (iBleedAmt > 0) { if (d10(1) == 1) { iBleedAmt = -iBleedAmt; } } } DelayCommand(6.0,bleed(iBleedAmt)); } void main() { effect eBlood=EffectVisualEffect(VFX_COM_CHUNK_RED_MEDIUM); object oDying = GetLastPlayerDying(); object oEnemy = GetLastAttacker(); float fWho = (GetFacing(oEnemy)); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,eBlood, GetLocation(oDying), 10.0); AssignCommand(oDying, ClearAllActions()); AssignCommand(oDying, bleed(1)); CreateObject(OBJECT_TYPE_PLACEABLE,"bloody",GetLocation(oDying),TRUE); } Далее OnPlayerDeath Герой умирает и переносится в межреальность. void main() { object oPlayer = GetLastPlayerDied(); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), GetLocation(oPlayer)); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR), oPlayer,6.0); DelayCommand(2.0,FadeToBlack(oPlayer)); DelayCommand(5.0,BlackScreen(oPlayer)); DelayCommand(5.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer)); DelayCommand(5.8,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPlayer)), oPlayer)); DelayCommand(6.0,AssignCommand(oPlayer,ClearAllActions())); DelayCommand(6.2,AssignCommand(oPlayer,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE"))))); } И еще в локации межреальности - куда перемещается мертвый игрок OnEnter void main() { object oPC = GetEnteringObject(); DelayCommand(2.0,FadeFromBlack(oPC,FADE_SPEED_SLOWEST)); } Огромная просьба, ПОМОГИТЕ!!! Допишите скрипт пожалуйста. |
![]() ![]()
Сообщение
#1167
|
|||
Лорд AxisTown'a ![]() Класс: Монах Характер: Lawful Good Раса: Дварф NWN: Маппинг ![]() |
...в последнем предложении кроется ответ на твою проблем :lol: "Скрипт ставится в OnHeartBeat НеПиСя. " наводящий вопрос : как часто выполняется скрипт на OnHeartBeat? |
||
![]()
Сообщение
#1168
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
JesterX
ты извини, конечно, но напрашивается пародия на твой вопрос: "я тут делаю модуль. вот нашел скрипт и немного его изменил: object oPC = OBJECT_SELF! помогите! допишите мне скрипт!" ps. телепаты в отпуске. :yes: pss. поясняю позицию - что там у тебя за диалоги? - остальное вроде интуитивно понятно, хотя конкретики тоже не помешает. что ты хочешь-то? Сообщение отредактировал dumbo - May 23 2005, 08:57 |
![]()
Сообщение
#1169
|
|
Level 1 Класс: Чемпион Торма Характер: Lawful Good Раса: Человек ![]() |
Просто мне нужно как-то пометить место смерти и написать скрипт телепорта для отправки игрока на это самое место смерти.
|
![]()
Сообщение
#1170
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
так кинь там трупак... только что ведь обсуждалась очень схожая ситуация! смотри наши терки с Лито.
ps. народ, вам когда что-то такое надо, сами не знаете что или если чувствуете, что предстоит такое вот общение в режиме чата - идите на irc-канал #wrg(как и что - написано вверху страницы). у меня такое ощущение, что модератор уже откинул крышечку с оптики... |
![]()
Сообщение
#1171
|
|
Level 1 Класс: Чемпион Торма Характер: Lawful Good Раса: Человек ![]() |
В том то и дело, что труп на месте смерти мне не нужен.
Еще раз - Игрок умирает в точке А, и переносится в точку Б, там он общается и его отправляют обратно в точку А. Нужен скрипт отправки из Б в А Я бы не писал все это если бы разбирался в скриптах. |
![]()
Сообщение
#1172
|
|||
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Мефистофель, Хартбит все время повторяется, не так ли? Вот и подумай, твоему неписю каждые 6 секунд идет команда присесть на стул :D Добавлено в [mergetime]1116832825[/mergetime] JesterX
|
||
![]()
Сообщение
#1173
|
|
Level 1 Класс: Чемпион Торма Характер: Lawful Good Раса: Человек ![]() |
#include "x0_i0_secret"
void main() { object oPC = GetLastPlayerDied(); object oJump = GetWaypointByTag("B");//Вэйпоинт с тэгом B TransportToWaypoint(oPC,oJump); } Я так понял, что это отправка на место смерти. А в инклюде что? Или я не прав? |
![]()
Сообщение
#1174
|
|||||||
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
JesterX, это отправка с места смерти. В инклюде в функция
. Если хочешь чтобы игрока портили при разговоре на место смерти то -
На скрипте смерти пишешь:
Подойдет скорее только для сингла. |
||||||
![]()
Сообщение
#1175
|
|
Level 1 Класс: Чемпион Торма Характер: Lawful Good Раса: Человек ![]() |
Спасибо!!! Щас буду пробовать. Потом отпишу.
|
![]()
Сообщение
#1176
|
|||||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
в данном случае все проще - надо место смерти тупо повесить на объект игрока. :yes: в конец скрипта OnPlayerDeath:
на "оживляющую" ветку диалога:
|
||||
![]()
Сообщение
#1177
|
|||
Восставший из пепла ![]() ![]() ![]() Класс: Бледный Мастер Характер: Neutral Evil Раса: Человек ПОДМАСТЕРЬЕ ![]() |
А куда ж его тогда пихать? Это самый подходящий слот. Темболее другие команды нормально работают. Все проверял раз 10, но НеПиСь застревает только на ActionSit!!! |
||
![]()
Сообщение
#1178
|
|
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Archangel, Значит именно на ActionSit, твой скрипт повторяется...
|
![]()
Сообщение
#1179
|
|||
Восставший из пепла ![]() ![]() ![]() Класс: Бледный Мастер Характер: Neutral Evil Раса: Человек ПОДМАСТЕРЬЕ ![]() |
Интересно... Даж не знаю... А может еще куда-нить запихнуть моно, чтоб работало? :this: |
||
![]()
Сообщение
#1180
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
// Уу..развели тут без меня..
- все, что выше я читать в поисках вопросов неотвеченных не буду. - пишите скрипты в NSS ([*]ТУТ СКРИПТ[/*], где * это NSS), а то хрен прочитаешь. |
![]()
Сообщение
#1181
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
Archangel
не надо его никуда "пихать" - все необходимые проверки для исключения повторного выполнения "действующих" кусков кода выполнены. что нужно сделать: 1. после блока объявления объектов поставь ClearAllActions(TRUE); 2. все нужно перетащить под DelayCommand, ибо иначе ты не имеешь возможности нормально управлять процессом - в частности, в существующем варианте, если ты после команды усадки на стул поставишь ClearAllActions(TRUE), чтобы поднять непися, то ничего не выйдет, потому как к моменту выполнения этого ClearAllActions непись успеет только первый Actionбла-бла отработать. и он встанет и больше ничего не сделает. :yes: после каждой ночной "усадки" нужно вставить DelayCommand(<время за которое непись уже сядет и успеет посидеть>, ClearAllActions(TRUE)); собственно и все. совет(и не только тебе) - еще пару раз перечитать доки и попытаться четко себе представить, как именно работают все функции, связанные с Actions. |
![]()
Сообщение
#1182
|
|
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
dumbo, поставил твой скрипт, ничего не меняя(ну всмысле сделал все как ты сказал)
Опыт снимается, чар рукой машет, но в локу к трупу не транпортируется :( Вопрос снимается повестки :) Сообщение отредактировал Лито - May 23 2005, 18:24 |
![]()
Сообщение
#1183
|
|||
Level 6 ![]() Класс: Страж Тьмы Характер: Lawful Good Раса: Баатезу ![]() |
Я не понел, я спрашивал про стул.????? Лито я ввожу эти полоски скрипта что вы мне дали, проавильно. но Мне всюравно выдаёт ошибку, я прошу, может ты знаеш. Напиши этот скрипт в настоящем размере, а то я сам немогу все эти ковычки и т.д я просто не понимаю. спасибо заранее. скрипт я ещё раз опишу. в ХотУ был момент когда жирный куб, сожрал дроу, и он дёргался сночало а потом превратился в скелета, продолжал дёргатся и умер, мне очень нужно чтоб у меня также сробатывал скрипт но талько, чтобы он запускался при смерти Непися. Пожалуйста последняя надежда на вас. Спасибо. Сообщение отредактировал Мефистофель - May 23 2005, 19:45 |
||
![]()
Сообщение
#1184
|
|||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
я так понял, что ты сам писать не хочешь, а хочешь, чтобы это тебе сделали...эх... это не есть гут. Напишу позже вечером. |
||
![]()
Сообщение
#1185
|
|
Level 6 ![]() Класс: Страж Тьмы Характер: Lawful Good Раса: Баатезу ![]() |
Lex Я знаю, что это не есть хорошо, нопросто этот скрипт мне очень нужен, а я просто не в состоянии его написать, я пробовал, много раз но ничё не выходило. и поэтому попросил у вас.
|
![]()
Сообщение
#1186
|
|||||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Слот onDamage в свойствах НПС поставь immortale (не проверял на работу, если убивать магией смерти :) )
Добавлено в [mergetime]1116893087[/mergetime]
а что про стул? Если ты в ХБ пишешь ActionSit() то будет вот что: - выполнится команда первый раз, но команда такого типа, что выполяется (те НПС/РС сидит) пока не будет удалена (ClearAllActions()) - через 6 сек у тебя в очереди (стеке) окажется 2 команды. 1 которая выполяется, другая следующая, ждущая своей очереди. - еще через 6 секунд, и уже 3 команды на персонаже. - ... - Доходим до ХХ команд и ловим глюки. :) Или не ловим. Для сингла ситуация не критична, для шарда это более серьезно. Добавлено в [mergetime]1116893506[/mergetime]
Выше написал, в чем проблема. Чтобы снять ее, юзай ClearAllActions() Там задержку нужную поставь. |
||||||
![]()
Сообщение
#1187
|
|
Level 6 ![]() Класс: Страж Тьмы Характер: Lawful Good Раса: Баатезу ![]() |
Респект тебе Lex, спасибо огромное, хы жалко мало таких людей которые что то для других делают.
|
![]()
Сообщение
#1188
|
|
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Вот такая идейка появилась. В теме одиночный вопрос - усложняют жизнь магам. У меня такой вариант. Ограничить кол-во щитов, которые маг может на себя наложить(оболочка местила, лементальный щит, броня смерти).
Если висит щит местилы, наложить death-armor уже не выйдет или элементальный щит, уже не выйдет. То есть либо, либо,либо. То что это делается через spell-hook, я знаю. Просьба написать основу, а дальше я уже по приведенному примеру будут писать сам. Конечно кроме благодарности ничего взамен предложить не могу, попытаюсь по мере сил, отвечать новичкам на более-менее не сложные вопросы :) Сообщение отредактировал Лито - May 24 2005, 15:58 |
![]()
Сообщение
#1189
|
|||
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Ок я конечно, что лень писать что то, самому не нужное. Но тогда прошу проверить последующий далее скрипт spell-hook и сказать, что в нем не правильно?
|
||
![]()
Сообщение
#1190
|
|
Level 9 ![]() ![]() ![]() Класс: Волшебник Характер: Neutral Good Раса: Эльф ![]() |
Хм... Могу сделать только одно замечание по поводу русских символов в скрипте. Лично я помню очень долго парился по поводу того, что не работал скрипт. Оказалось - мешает русский текст после двойного слеша(!). Так что не знаю, попробуй на всякий случай убрать ВСЕ русские символы из скрипта.
Хотя сам скрипт проверить нет времени (да и сам я пока не асс). Просто это первое что бросилось в глаза. |
![]() ![]() |
Текстовая версия | Сейчас: 14th May 2025 - 03:32 |