QUOTE |
2. А точно делей нужен более 150 секунд? (165.0 = 165сек. ) |
Возможно я тебя не так понял, но отвечу так как я понял...
Delay и число после него отвечают за время прошедшее после действия (если вставил в появление в локе, то сколько должно пройти времени что бы пошла та команда)...
Вроде так...
MasterMage
Aug 3 2005, 18:22
MasterMage и ты считаешь, что тебе с таким вопросом помогут? Ты бы подробно описал, что ты делаешь, и уж тогда бы тебе смогли объяснить, в чем может быть причина.
Чтобы точно удостовериться, чистый ли инвентарь у НПС, надо посмотреть его с Дм клиента.
MasterMage, мож ты пытаешься одеть вещь на существо с уже готовой моделью? Ну там драйдер, дрой, лизард с кнутом и т.д.?
DEM если бы он одевал вещи на такие модели, то это было бы видно сразу. Тут дело скорей всего в ином. Первое, что приходит в голову, это разное мировоззрение НПС и вещи, т.е. на вещи есть ограничение по мировоззрению. Хотя, как он утверждает, что не отображаются даже простые вещи, даже и не знаю что можно предположить.
MasterMage
Aug 4 2005, 12:51
Дело вот в чем. Яталкиваюсь не в первый раз, но оно само вдруг проходит.
НЕЧЕГО НЕ ДЕЛАЮ такого. Одна локация, один скрипт-ролик. Два НПСа. Оба в одежде, которая не требует специальной направленности, или еще чего-то там. Запускаю ролик, одежды нет. НПСы полностью мной созданы (мастером персонажей). Все в настройках сделано нормал. Я модуль свой скоро доделаю, никаких проблем не вознкало. Все скрипты проверил (дефолтные). А в инвентаре нет ничего кроме свитков. Персы - маги. Я в тупике, так как это в первый раз такое. Чтобы НПС доставал что-то, чего у него нет...
Чтобы быстро тебе ответить, пришли мне кусочек этого модуля. Кажется, я догадываюсь, в чем может быть загвоздка, но пока в точности не уверен. Сам с подобным не сталкивался никогда, но что-то подобное было с инвентарем, когда у монстров ни как не мог изъять бутылки
MasterMage
Aug 4 2005, 17:22
Блин! где сообщения с 31 июля по 2 августа!!!
Dik Morris
Aug 5 2005, 11:10
Змей, все сообщения безвозратно утеряны, из-за одного идиота, загляни в Тему: ВЗЛОМ ФОРУМА, и все поймешь.
QUOTE (MasterMage @ Aug 4 2005, 20:22) |
Так, вопрос снимается. я так увлекся роликом и скриптом, что совсем голову отшибло. Я изменял персов в палитре, а они стояли в локе, посему изменения на них не воздействовали. Вроде я все правильно сделал, но персы вс равно голые, отсюда и тупик. Но теперь бошка прояснилась. Но все равно спасибо... |

Приз Дарвина на этой неделе ТВОЙ! Я ржал!

Весь форум ломает голову и строит свои сценки с голыми мужиками!
MasterMage -
Кто знает, можно заменить (не в оверрайд а в хак), лого загрузки и сохранения.
Proydoha
Aug 5 2005, 22:04
Что я сделал: Я беру первый предмет в области в которой находится РС и сохраняю его местоположение в CampaignLocation названную его(предмета) РесРэф-ом, затем я беру следующий предмет на локации и делаю с ним то же самое и так до тех пор пока не переберу все предметы (плэйсы, айтемы) в локе. Всю эту бадью я вешаю на хербит плэйса в закрытой локе. Это легко. Кажется
вот так:
Neverwinter Script Source |
void main() { object oPC = GetFirstPC(); object oArea = (GetArea(oPC)); object oObject = GetFirstObjectInArea(oArea);
while (GetIsObjectValid(oObject) == TRUE) { SetCampaignLocation("Имя модуля",GetResRef(oObject), GetLocation(oPC),oObject); object oObject = GetNextObjectInArea(oArea); } } |
Что осталось сделать: При загрузке модуля необходимо что бы создавались все эти предметы(плэйсы и айтемы) по РэсРэфу, который в свою очередь являеться именем CampaignLocation на этих самых CampaignLocation. И еще, если айтем/плэйс сохраненный в CampaignLocation был взят/уничтожен или уже присутствует там, то при следующей загрузке не создавался(в идеале удалялся этот самый CampaignLocation с РэсРэф-ом взятого/уничтоженного или существующего айтема/крича из модуля). Это возможно? И если да, то как это организовать?
Или это в тему скрипты?
azathoth
Aug 5 2005, 23:24
Proydoha, по пунктам
1.
Neverwinter Script Source |
object oObject = GetFirstObjectInArea(oArea);
while (GetIsObjectValid(oObject) == TRUE) { SetCampaignLocation("Имя модуля",GetResRef(oObject), GetLocation(oPC),oObject); object oObject = GetNextObjectInArea(oArea); } |
даст бесконечный цикл из-за строки
Neverwinter Script Source |
object oObject = GetNextObjectInArea(oArea); |
, она создаст новую локальную переменную oObject, заменящую глобальную в цикле, а при проверке условия цикла будет использована старая переменная. тут нужна строка
Neverwinter Script Source |
oObject = GetNextObjectInArea(oArea); |
2.
Neverwinter Script Source |
SetCampaignLocation("Имя модуля",GetResRef(oObject), GetLocation(oPC),oObject); |
последний параметр - объект - должен быть игроком или OBJECT_INVALID. в базе данных объект сохранится для игрока с данным аккаунтом и именем.
3. В качестве имени переменной ты используешь ResRef, однако предметов с одинаковым ResRef'ом может быть много (напремер деревья или сложенные в кучу мечи), сохранится лишь локация последнего предмета. при загрузке ты получишь, например, только одно дерево и один меч.
4. Зачем вообще это надо? (напиши, если хочешь получить внятный ответ) при сохранении оно и так все останется, а при загрузке сломанное исчезнет. если это шард с рестартами - то сделай предметы которые должны оставаться неразрушимыми, а делать что-то вроде этого, да еще и на ОнХатбит - получишь ужжжаснейшие лаги.
5. В принципе это можно воплотить, сохрания переменные со списками вещей, их локаций (при этом уже стандартная SetCampaignLocation не пройдет - она использует внутренний номер локации как он хранится внутри модуля), текущих инвентарей, локальных переменных этих объектов, используя уникальный тэг локации, и меняя эти переменные в случаях добавления или удаления плейсэйблов, "важных" вещей и пр.
Proydoha
Aug 6 2005, 00:04
Я извиняюсь. Просто сегодня эта мысль как-то спонтанно ударила мне в голову и стало интересно:"А это в принципе возможно?". Решил попробовать. Руководствуясь ранее неизвестными порывами (а я вообще не очень в скриптах понимаю) стал сохранять все подряд в CampaignLocation. При проверке как оно сохраняет выдало про бесконечный цикл (суть проблемы не понял так как комплитилось без ошибок

). При попытке выгрузить все это опять в модуль меня стопорнуло.(Я создал два пусто-порожних модуля и ходил между ними в попытке осуществить свой "гениальный" план) Решил написать сюда, а вот теперь сижу и думаю:"А оно мне ВООБЩЕ зачем-то надо было?" Спасибо, что остановил меня пока я не натворил делов.
Мефистофель
Aug 6 2005, 08:51
QUOTE |
Блин! где сообщения с 31 июля по 2 августа!!! |
MySQL Ченили, все пропало.
Айван: ты что, Меф, слепой? Уже ответили. Пред за флуд.
Siril Vilode
Aug 7 2005, 09:02
САБЖ извиняюсь за тему такие уже были, но там ниче не разобрать Надеюсь вы не накричите и мне поможете
помогите мне плиз. Во 1 я не шарю нифига в скриптах как их вводить и т.д.
так вот такие вопросы у меня:
1. Как делать в модуле органичения по рассе классу имени ???
2. Как сделать так чтобы играю за одного игрока можно было переключится на второго
3. Как сделать другого человека свим спутником
4. Как сделать так чтоб в разговор встпуали еще пара человек
5. Как сделать так чтобы чтобы выходя из таверны за тобой гнались другие?
Dik Morris
Aug 7 2005, 09:45
QUOTE |
2. Как сделать так чтобы играю за одного игрока можно было переключится на второго |
Наврят ли это ВООБЩЕ осуществимо...
QUOTE |
3. Как сделать другого человека свим спутником |
Дык, как я понял тебе нужен, хенчман? Если да, тогда создай нужного тебе перса, и "воткни" ему скрипты хенчманов (Помощников, СОЗДАНИЯ -> ДРУГИЕ ->) И подредактируй диалог (Убери журнал, не нужные тебе записи т.п).
QUOTE |
4. Как сделать так чтоб в разговор встпуали еще пара человек |
Просто создай диалог, и в нужной тебе фразе, вставь ТЭГ, нужного тебе чела ("Другова"), с помощью кнопки: ТЭГ ГОВОРЯЩЕГО.
QUOTE |
5. Как сделать так чтобы чтобы выходя из таверны за тобой гнались другие? |
В смысле другие? Выражайся по точнее! Рискну предположить, что ты имеешь в виду, при выходе из здания с тобой начинал диалог НПС. Если это так тогда создай триггер, и на onEnter вешай вот этот скрипт:
Neverwinter Script Source |
void main() { object oPC = GetEnteringObject(); object oNPC = GetObjectByTag("ТЭГ НПС"); if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") == 1) return; SetLocalInt(OBJECT_SELF, "TRIGGER",1); ActionDoCommand(AssignCommand(oNPC, ActionStartConversation(oPC))); } |
Siril Vilode
Aug 7 2005, 09:53
1. Я имею ввиду, вот када Колдуном пса вызваешь ты можешь играть за пса, можно ли так же с ХенчМэном?
2. А де скрипты Хенчманов есть?
3. Я имею ввиду чтоб 2 горят а к ним тертий подбегает и тож базарит
4. Я имею ввиду вот выходишь из тверны с тобой базарят охрана и после последних угрожающих слов кидаеттся на тебя и ты со всей своей командой должден матать пока не выйдешь за пределы города.
5. Ещзе появился вопрос: как сделать так чтобы можно было брать с собой не одного Хенчмэна а человека 3-4?
6. Да и ты не знаешь как делать чтоб ты уже начинал самим НПЦ и им бегаешь а не нового создавать
Добавлено в [mergetime]1123397889[/mergetime]
да и я хотел бы чтоб он стал моим помощниколм после опредленного диалога эо как сделать?
Siril Vilode
1. Нужно смотреть скрипты фамилиара. Учитывая то, что не все классы, которые вызывают фамилиаров, могут в них вселятся, значит есть ограничения. У хенчмана свои скрипты, и соответственно, чтобы подобное осуществить, надо что-то изменить. Что именно, я не смогу так сразу сказать, так как надо смотреть, возможно ли вообще такое.
2. Скрипты хенчманов есть в редакторе. Тебе надо зайди в редактор, открыть скриптовый редактор, и поискать скрипты, начинающиеся "nw_ch_ac". Советую также посмотреть Lexicon. В нем есть раздел, посвященный хенчманам.
3. С этим не очень понял, кто говорит, кто подбегает?
4. На выходе из таверны нужно поставить триггер, при активации которого к тебе подбежит стражник. Коротенький диалог, или на твое усмотрение, и определенная развязка.
5. Тебе необходимо в модульном эвенте "OnModuleLoad" изменить количество доступных хенчманов для игрока. По умолчанию разрешен только 1.
6. Начинаешь самим НПС? Это как?
Пиши точнее, иначе тебя понять очень сложно.
Siril Vilode почитай мануалы пожалуйста. Ты настолько не владеешь тулсетом, что не можешь сформулировать свои вопросы. В каждом вопросе заметно что ты ноль. Но что бы тебе объяснить что-то ты должен знать базовые вещи. Иначе как тебе объяснить что надо растянуть енкаучер и перекинуть фракцию скриптом и прочее. Почитай мануалы и возможно что-то сразу поймешь сам. И добро пожаловать
Daemonix
Aug 7 2005, 22:00
Короче, я тут ТАК торможу! Помогите, пожалуйста. Я никак не могу построить МОСТ через ручей так, чтобы через него проходила дорога. Раньше получалось, но забыл, как...
Мост это одиночный тайл. Ищи в разделе где у тебя модели из одного квадратика на местности.
Daemonix
Aug 7 2005, 23:45
QUOTE (Aiwan) |
Мост это одиночный тайл. Ищи в разделе где у тебя модели из одного квадратика на местности. |
Нет, это я знаю. Я о другом: когда я делаю мост через ручей, мне нужно, чтобы по мосту проходила ещё и дорога. А когда я строю тайл моста на дороге, то он обрезает дорогу...
Дорогой ты мой. Посмотри на мост, если на нем нет текстуры дороги, то это твои фантазии. Либо мы не понимаем друг друга, а значит ты неправильно ставишь вопрос. Ну ка мне имена тайлов на английском давай. А то гадаем как в анегдоте, что то видел а что то нет...
Добавлено в [mergetime]1123447886[/mergetime]
Как вариант, покликай на одном месте несколько раз мышкой с тайлом моста.
Daemonix
Aug 8 2005, 00:38
Ну я лучше постараюсь переформулироваться... Вот смотри: (пример) есть такие тайлы: ворота и ворота с дорогой. Через вторые проходит дорога. Так ведь? И ещё с перпендикулярной дороге стороны можно построить стену, к которой эти ворота будут принадлежать. А я вот ищу такой мост, чтобы он был с дорогой, прямо как ворота, и пересекал ручей (на то он и мост!

) Вот...
а непробовал начать ставить этоот тайл на мосте...
Leon PRO
Aug 8 2005, 01:32
Поставь мост, и зажав кисть с дорогой проведи по нему туда, обратно... обычно так появляются тайлы, если они предусмотрены.
Только что вспомнил, и проверил, рецепт такой.
1. Делаешь поток.
2. Подводишь к нему с 2х сторон дорогу.
3. Зажимаешь кисть с дорогой и пару раз проводишь через поток, примерно на 1-2 тайла в одну и другую сторону.
4. Готово!
Daemonix
Aug 8 2005, 12:26
Leon PRO
Огромное спасибище. Всё работает!
Neverwinter Script Source |
object sArmor = GetItemInSlot(INVENTORY_SLOT_*, oPC); |
INVENTORY_SLOT_ARMOR я не нашел, INVENTORY_SLOT_СARMOR на сколько я понимаю шкурка а вовсе не армор
Batkom, INVENTORY_SLOT_CHEST
я думал это сундук..))))
QUOTE (Batkom @ Aug 9 2005, 17:38) |
я думал это сундук. |
А почитать Лексикон не судьба?

Что за инертность?

Такие вопросы даже стыдно было бы задавать. Возьмите за правило. Юзаете новую для вас функцию, почитайте Лексикон. Там у каждой функции больше ремарок на баги чем описаний что она делает.
Я написал скриптик под сеп, чтобы когда одеваешь плащ, устанавливалась моделька шеи 6
Neverwinter Script Source |
void main() {
object oItem = GetPCItemLastEquipped(); object oPC = GetPCItemLastEquippedBy(); if(GetBaseItemType(oItem) == BASE_ITEM_CLOAK) { object sArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC); object nItem = CopyItemAndModify(sArmor, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, 6); DestroyObject(sArmor); AssignCommand(oPC, ActionEquipItem(nItem, INVENTORY_SLOT_CHEST)); }
} |
Но когда одевал плащь устанавливалась совсем другая моделька.
Я написал скрипт, чтобы слушающий непись ставил модельку шеи игроку по последнему сказаному игроком номера и выяснил, что моделек шеи всего 6, в то время как в стандартном крафтовом диалоге да и собственно в тулсете их намного больше.
Видишь ли, константы кастомные надо знать из сера, для моделек.
Скажите, как сделать что бы при нажатии ESC (кнопка на клаве), кат-сцена заканчивалась?
Сеповские константы?
Когда редактируешь свойства армора как предмета плащу соответствует моделька шеи 6 если ты об этом.
Если это чтото другое, тогда что и где мне ее искать?
Здравствуйте. Вот у меня вопрос. Как при респавне, сделать чтобы труп возрожденного игрока удалялся. Заранее благодарю. Вот скрипты :
на ОнДеад
CODE |
void main() { object oPlayer = GetLastPlayerDied(); location lDiedHere = GetLocation(oPlayer); string sHelpString="Вы мертвы, если желаете реинкарнироватьсЯ нажмите кнопку Респавн."; object oCorpse = CreateObject(OBJECT_TYPE_PLACEABLE,"pc_corpse", lDiedHere,FALSE); object oBag = CreateObject(OBJECT_TYPE_PLACEABLE,"pc_bag", lDiedHere,FALSE); SetLocalObject(oCorpse, "oOwner", oPlayer); SetImmortal(oPlayer, TRUE); int nGP = GetGold(oPlayer); int i=0; while(i<14) { AssignCommand(oBag,ActionTakeItem(GetItemInSlot(i, oPlayer),oPlayer)); i++; } AssignCommand(oBag,TakeGoldFromCreature(nGP,oPlayer,FALSE));
DelayCommand(0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer)); DelayCommand(1.0,AssignCommand(oPlayer,ClearAllActions())); DelayCommand(1.5,AssignCommand(oPlayer,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE"))))); DelayCommand(6.0,PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH)); } |
на ОнРеспаун
CODE |
#include "nw_i0_plot"
void ApplyPenalty(object oDead) { int nXP = GetXP(oDead); int nPenalty = 250 * GetHitDice(oDead); int nHD = GetHitDice(oDead); // * You can not lose a level with this respawning
int nNewXP = nXP - nPenalty;
SetXP(oDead, nNewXP);
} void main() { object oRespawner = GetLastRespawnButtonPresser(); object oCorpse = GetLocalObject(oRespawner,"oOwner"); DestroyObject(oCorpse); DelayCommand(1.0,DestroyObject(oCorpse)); AssignCommand(oRespawner,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE01")))); ApplyPenalty(oRespawner); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner); RemoveEffects(oRespawner); DeleteLocalInt(oRespawner,"oOwner"); SetImmortal(oRespawner,FALSE);
} |
Добавлено в [mergetime]1123613353[/mergetime]
У меня там ошибка во втором скрипте с обозначением обьекта oCorpse, я не знаю как зделать
-fenix-
Aug 9 2005, 21:59
QUOTE (Scaled @ Aug 9 2005, 21:47) |
Здравствуйте. Вот у меня вопрос. Как при респавне, сделать чтобы труп возрожденного игрока удалялся. Заранее благодарю. Вот скрипты : |
А он разве не удаляется?????
Если нет, то попробуй переделать стандартный скрипт смерти вставив, что тебе нужно.
А вообще труп должен удалиться, или я чего не понимаю?!
Если нет объясните и мне.
QUOTE (Scaled @ Aug 9 2005, 21:47) |
У меня там ошибка во втором скрипте с обозначением обьекта oCorpse, я не знаю как зделать |
Neverwinter Script Source |
object oCorpse = GetLocalObject(oRespawner,"oOwner"); |
Интересная строчка
Я имею ввиду таг! Врятли у тебя такой. Наверное это имя переменной, в которой должен стоять таг, только она у тебя не объявлена. А если и объявлена, то она пишется
без кавычек.
Пользуйся кнопкой NSS.
Хм. Чета я не то сказал

. Наверное ты что-то другое имел ввиду, тогда Что?
А зачем два раза удалять?
Neverwinter Script Source |
DestroyObject(oCorpse); DelayCommand(1.0,DestroyObject(oCorpse)); |
QUOTE (DEM @ Aug 9 2005, 21:54) |
Скажите, как сделать что бы при нажатии ESC (кнопка на клаве), кат-сцена заканчивалась? |
Посомтри слот на модуле есть. Я не пробовал но логика мне подсказывает там надо рыться.
QUOTE |
Здравствуйте. Вот у меня вопрос. Как при респавне, сделать чтобы труп возрожденного игрока удалялся. Заранее благодарю. Вот скрипты : |
Я конечно не уверен, но по моему скромному мнению, я уверен на 100% что труп исчезает... А если нет (или это шард или что), то выкинь свй NWN
Red Devil
Aug 10 2005, 00:06
Здравстуйте. Значит у меня 3 вопроса.
1) Как сделать, чисто черную краску и белую. В палитре же их нет, или может быть для них есть хак пак, как он называется ?
2) Как узнать уровень игрока ? Просто скажите как функция называется, беглым взглядом лексикон пробежал getlevel(), как я ожидал не нашел.
3) Есть ли русская документация к утилите NWN duplicator ? (просто лекь переводить, надеюсь я ее скоро поборю).
2 Red Devil
1. Зажми в палитре красок (набор квадратиков) любой цвет мышкой и тяни его ниже списка вниз. Внизу спрятан еще ряд цветов.
2.
Neverwinter Script Source |
// Get the number of hitdice for oCreature. // * Return value if oCreature is not a valid creature: 0 int GetHitDice(object oCreature) |
3. Не думаю...
Scaled
Aug 10 2005, 06:54
Как ни странно труп - не удаляеться. По идее когда ты воскрешаешься -он должен исчезнуть. Останеться только сумочка с вещами.
Случайно два раза удаляю труп, по не внимательности своей.
Строчка object oCorpse = GetLocalObject(oRespawner,"oOwner"); Это просто попытка как-то обозвать труп игрока который воскрешаеться в данный момент. Так как мне сделать чтобы труп удалялся? Я просто не первый день сижу мучую этот скрипт.
Добавлено в [mergetime]1123646210[/mergetime]
QUOTE |
Я имею ввиду таг! Врятли у тебя такой. Наверное это имя переменной, в которой должен стоять таг, только она у тебя не объявлена. А если и объявлена, то она пишется без кавычек. |
Так что же это - просто не назвал труп?
1. SetLocalObject(oCorpse, "oOwner", oPlayer);
2. object oCorpse = GetLocalObject(oRespawner,"oOwner");
В первом скрипте Вы устанавливаете локальный объект на _труп_.
А во втором берете переменную с _игрока_.
SetLocalObject(oPlayer, "oOwner", oCorpse);
Так будет верно.
ЗЫ.
При работе с объектами, чтобы проверить существует ли вообще объект, сделайте себе дебаг строки на имя объекта:
SendMessageToPC(oPlayer, "CorpseName="+GetName(oCorpse));
Если у Вас после "CorpseName=" будет пустое значение в логе чата, то объекта просто нет и нужно искать почему

Естессно имя у объекта должно быть обязательно.
-fenix-
Aug 10 2005, 09:53
Scaled, ТЫ СМОТРЕЛ СТАНДАРТНЫЕ СКРИПТЫ?
Что значит ты их ставешь на на ОнДеад и на ОнРеспаун? У ПС слотов нет, а ставется это в слоты модуля OnPlayerDeath и OnPlayerRespawn.
Скрипты у тебя странные, я поставил и у меня какой-то ужас стал твориться, у тебя все правельно работает, кроме трупа?
Зачем в скрипте на смерть мудрить со слотами и деньгами?
У ПС при смерти трупа та и нет. Он какбы валяется а при нажатии на респаун он просто встает с полными хитами. В стандартных скриптах про удаление трупа ни слова. Откуда у тебя труп появляется, у меня скажем ничего не появлялось.
QUOTE (Scaled @ Aug 10 2005, 06:54) |
Как ни странно труп - не удаляеться. По идее когда ты воскрешаешься -он должен исчезнуть. Останеться только сумочка с вещами. |
Сумочка с вещами остается при убийстве монстров! Если у тебя шард, то для копирования вещей в труп или куда там, можно использовать скрипт из базы скриптов. Там на труп копируются все вещи и деньги, а труп исчезает через 250 секунд
QUOTE |
Скрипт на смерть НПС. НПС исчезает, а на его месте появляется труп на который переносятся все вещи покойного. Сам труп исчезает через 250 секунд.
"low_plc_loot" - резреф трупа в палитре.
|
Neverwinter Script Source |
//::Created by Лито //::Modificated by Lex void Clear(object oBag = OBJECT_SELF) { object oItem = GetFirstItemInInventory(oBag); while (GetIsObjectValid(oItem)) { DestroyObject(oItem); oItem = GetNextItemInInventory(oBag); } DestroyObject(oBag,1.0); } void main() { string sTemplate = "low_plc_loot"; string sTag = GetTag(OBJECT_SELF); location lLoc = GetLocation(OBJECT_SELF); object oloot = CreateObject(OBJECT_TYPE_PLACEABLE, sTemplate, lLoc, TRUE, sTag); int i = 0; object oItem = GetFirstItemInInventory(OBJECT_SELF); while (GetIsObjectValid(oItem)) { if (GetDroppableFlag(oItem)) CopyObject(oItem,lLoc,oloot); DestoyObject(oItem); oItem = GetNextItemInInventory(OBJECT_SELF); } oItem = GetItemInSlot(i,OBJECT_SELF); while (i<14) { if (GetDroppableFlag(oItem)) CopyObject(oItem,lLoc,oloot); DestoyObject(oItem); i++; oItem = GetItemInSlot(i,OBJECT_SELF); } AssignCommand(oloot,DelayCommand(250.0,Clear(oloot))); } |
QUOTE (-fenix- @ Aug 10 2005, 09:53) |
Зачем в скрипте на смерть мудрить со слотами и деньгами? |
Эффект, как в Дьябло - скидывание вещей с игрока и денег.
QUOTE |
У ПС при смерти трупа та и нет. Он какбы валяется а при нажатии на респаун он просто встает с полными хитами. В стандартных скриптах про удаление трупа ни слова. Откуда у тебя труп появляется, у меня скажем ничего не появлялось. |
1. Трупа нет скорее всего потому, что Скалед делал костомный объект-труп, который Вы не создали усебя

2. Встает с хилами, т.к. нет в модуле у Вас объекта с нужным тэгом, к которому телепортируется игрок при респе.
QUOTE |
Сумочка с вещами остается при убийстве монстров! |
Именно поэтому Сумочку с вещами опять же он создает сам, чтобы она валялась рядом с трупом.
У Вас она скорее всего не появляется(если это так), из-за отсутствия в костомной палитре.
ЗЫ. Надеюсь не страшно, что ответил за Скаледа

Я подумал, что он долго будет разбираться почему у Вас ничего не работает. Сорри, если помешал вашей дискуссии

ЗЫЫ. А почему не работало удаление у автора вопроса, написал чуть выше.
-fenix-
Aug 10 2005, 11:12
Блин. Да я чета совсем запутался!
Сам он создает труп или тот сам появлялся, если создает труп, то зачем мешочек с вещами да и вообще, что конкретно он хотел от скрипта только щаз понял. Я конечно не спец в скриптах но помоему в скриптах много всего, без чего можно обойтись(может я и ошибаюсь

).
Делай труп с вещами и удаляй смотря скрипт, который я приводил выше.
Мдя-я-я-я-я.... Я с тобой согласен -fenix- ...
Посмотри скрипт на оставление вещей и на респавны наших спутников (хенчманов)...
Scaled
Aug 10 2005, 13:36
Хм, по порядку:
Труп, для чего он?
Когда игрок умирает он переноситься в Святилище(фуга), труп остаеться на месте смерти и мешочек с предметами которые были надеты в данный момент, на нем, и деньги. В фуге выходит таблица, где игрок может нажать кнопку - Респаун.
Труп можно украсть, что бы,скажем,игрок не смог реснуться, или же принести в город и там реснуть в храме за деньги.
На труп можно наложить спелл ресуректа и воскресить игрока, переместив на место, где валялся труп.
Почему я делаю мешочек и труп, а не труп с инвентарем? Потому что у меня в модуле планируеться возможность взять труп и утащить, а мешочек с предметами не брать.)))
Так вот у меня проблема в том что труп не удаляеться, когда происходит воскрешение посредством нажатия кнопки Респауна. И я не знаю как это сделать.Когда кастишь ресурект - все ок, а посредством менюшног воскрешения не получаеться. Да, извините я спешил и перепутал конечно же OnPlayerDeath и OnPlayerRespawn.)))
Что еще обьяснить?))) Я правда не знаю как доделать до ума, если есть другие варианты - подскажите.
Добавлено в [mergetime]1123670399[/mergetime]
Ах, да забыл еще вот что как бы мне не хотелось, чтобы труп разлогался через 250 сек....как вы предлогаете. Труп - это как бы точка прыжка, когда воскрешают спеллом.
Scaledнасчет бага с переменными тебе уже указали. кстати, по смыслу, если уж переменная-объект трупа вешается на PC, то имя ей должно быть "oCorpse"

а вот этот кусок тебе следует явно переделать:
Neverwinter Script Source |
DelayCommand(0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer)); DelayCommand(1.0,AssignCommand(oPlayer,ClearAllActions())); DelayCommand(1.5,AssignCommand(oPlayer,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE"))))); DelayCommand(6.0,PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH)); |
если игрок через секунду после смерти выйдет из игры, то избежит "наказания"