Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
DEM
QUOTE
2. А точно делей нужен более 150 секунд? (165.0 = 165сек. )


Возможно я тебя не так понял, но отвечу так как я понял...

Delay и число после него отвечают за время прошедшее после действия (если вставил в появление в локе, то сколько должно пройти времени что бы пошла та команда)...

Вроде так... this.gif
MasterMage
Это дурдом! Я уже десять раз про это спрашивал, но все равно дурдом. Люди, почему одежда не отображается?! Любая, даже тряпки без магических свойств. Какую не одень, ее нет, стоит загрузить. И еще мистика ужасная. Инвентарь чист у НПСа. Но в игре он достает АРБАЛЕТ. ОТКУДОВА?????? dntknw.gif dntknw.gif dntknw.gif black eye.gif
Zirrex
MasterMage и ты считаешь, что тебе с таким вопросом помогут? Ты бы подробно описал, что ты делаешь, и уж тогда бы тебе смогли объяснить, в чем может быть причина.

Чтобы точно удостовериться, чистый ли инвентарь у НПС, надо посмотреть его с Дм клиента.
DEM
MasterMage, мож ты пытаешься одеть вещь на существо с уже готовой моделью? Ну там драйдер, дрой, лизард с кнутом и т.д.?
Zirrex
DEM если бы он одевал вещи на такие модели, то это было бы видно сразу. Тут дело скорей всего в ином. Первое, что приходит в голову, это разное мировоззрение НПС и вещи, т.е. на вещи есть ограничение по мировоззрению. Хотя, как он утверждает, что не отображаются даже простые вещи, даже и не знаю что можно предположить.
MasterMage
Дело вот в чем. Яталкиваюсь не в первый раз, но оно само вдруг проходит.
НЕЧЕГО НЕ ДЕЛАЮ такого. Одна локация, один скрипт-ролик. Два НПСа. Оба в одежде, которая не требует специальной направленности, или еще чего-то там. Запускаю ролик, одежды нет. НПСы полностью мной созданы (мастером персонажей). Все в настройках сделано нормал. Я модуль свой скоро доделаю, никаких проблем не вознкало. Все скрипты проверил (дефолтные). А в инвентаре нет ничего кроме свитков. Персы - маги. Я в тупике, так как это в первый раз такое. Чтобы НПС доставал что-то, чего у него нет...
Zirrex
Чтобы быстро тебе ответить, пришли мне кусочек этого модуля. Кажется, я догадываюсь, в чем может быть загвоздка, но пока в точности не уверен. Сам с подобным не сталкивался никогда, но что-то подобное было с инвентарем, когда у монстров ни как не мог изъять бутылки smile.gif
MasterMage
кусочек не смогу, так как это всего одна лока. Я скоро выложу ее... Я просто не понимаю. Это не первый мой модуль, но происходит такое в первый раз... black eye.gif Счас я еще подумаю... Может дело в персах... Я ставлю персов уже созданных, все ок. А с этими не пашет... Я попробую заново создать.
Добавлено в [mergetime]1123168162[/mergetime]
Так, вопрос снимается. я так увлекся роликом и скриптом, что совсем голову отшибло. Я изменял персов в палитре, а они стояли в локе, посему изменения на них не воздействовали. Вроде я все правильно сделал, но персы вс равно голые, отсюда и тупик. Но теперь бошка прояснилась. Но все равно спасибо... biggrin.gif biggrin.gif biggrin.gif lol.gif
zmey
Блин! где сообщения с 31 июля по 2 августа!!!
Dik Morris
Змей, все сообщения безвозратно утеряны, из-за одного идиота, загляни в Тему: ВЗЛОМ ФОРУМА, и все поймешь.
Aiwan
QUOTE (MasterMage @ Aug 4 2005, 20:22)
Так, вопрос снимается. я так увлекся роликом и скриптом, что совсем голову отшибло. Я изменял персов в палитре, а они стояли в локе, посему изменения на них не воздействовали. Вроде я все правильно сделал, но персы вс равно голые, отсюда и тупик. Но теперь бошка прояснилась. Но все равно спасибо...

rofl.gif Приз Дарвина на этой неделе ТВОЙ! Я ржал! lol.gif lol.gif Весь форум ломает голову и строит свои сценки с голыми мужиками! MasterMage - good.gif

Кто знает, можно заменить (не в оверрайд а в хак), лого загрузки и сохранения.
Proydoha
Что я сделал: Я беру первый предмет в области в которой находится РС и сохраняю его местоположение в 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
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
Я извиняюсь. Просто сегодня эта мысль как-то спонтанно ударила мне в голову и стало интересно:"А это в принципе возможно?". Решил попробовать. Руководствуясь ранее неизвестными порывами (а я вообще не очень в скриптах понимаю) стал сохранять все подряд в CampaignLocation. При проверке как оно сохраняет выдало про бесконечный цикл (суть проблемы не понял так как комплитилось без ошибок crazy.gif ). При попытке выгрузить все это опять в модуль меня стопорнуло.(Я создал два пусто-порожних модуля и ходил между ними в попытке осуществить свой "гениальный" план) Решил написать сюда, а вот теперь сижу и думаю:"А оно мне ВООБЩЕ зачем-то надо было?" Спасибо, что остановил меня пока я не натворил делов.
Мефистофель
QUOTE
Блин! где сообщения с 31 июля по 2 августа!!!

MySQL Ченили, все пропало.
Айван: ты что, Меф, слепой? Уже ответили. Пред за флуд.
Siril Vilode
САБЖ извиняюсь за тему такие уже были, но там ниче не разобрать Надеюсь вы не накричите и мне поможете

помогите мне плиз. Во 1 я не шарю нифига в скриптах как их вводить и т.д.
так вот такие вопросы у меня:
1. Как делать в модуле органичения по рассе классу имени ???
2. Как сделать так чтобы играю за одного игрока можно было переключится на второго
3. Как сделать другого человека свим спутником
4. Как сделать так чтоб в разговор встпуали еще пара человек
5. Как сделать так чтобы чтобы выходя из таверны за тобой гнались другие?
Dik Morris
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
1. Я имею ввиду, вот када Колдуном пса вызваешь ты можешь играть за пса, можно ли так же с ХенчМэном?
2. А де скрипты Хенчманов есть?
3. Я имею ввиду чтоб 2 горят а к ним тертий подбегает и тож базарит
4. Я имею ввиду вот выходишь из тверны с тобой базарят охрана и после последних угрожающих слов кидаеттся на тебя и ты со всей своей командой должден матать пока не выйдешь за пределы города.
5. Ещзе появился вопрос: как сделать так чтобы можно было брать с собой не одного Хенчмэна а человека 3-4?
6. Да и ты не знаешь как делать чтоб ты уже начинал самим НПЦ и им бегаешь а не нового создавать
Добавлено в [mergetime]1123397889[/mergetime]
да и я хотел бы чтоб он стал моим помощниколм после опредленного диалога эо как сделать?
Zirrex
Siril Vilode

1. Нужно смотреть скрипты фамилиара. Учитывая то, что не все классы, которые вызывают фамилиаров, могут в них вселятся, значит есть ограничения. У хенчмана свои скрипты, и соответственно, чтобы подобное осуществить, надо что-то изменить. Что именно, я не смогу так сразу сказать, так как надо смотреть, возможно ли вообще такое.

2. Скрипты хенчманов есть в редакторе. Тебе надо зайди в редактор, открыть скриптовый редактор, и поискать скрипты, начинающиеся "nw_ch_ac". Советую также посмотреть Lexicon. В нем есть раздел, посвященный хенчманам.

3. С этим не очень понял, кто говорит, кто подбегает?

4. На выходе из таверны нужно поставить триггер, при активации которого к тебе подбежит стражник. Коротенький диалог, или на твое усмотрение, и определенная развязка.

5. Тебе необходимо в модульном эвенте "OnModuleLoad" изменить количество доступных хенчманов для игрока. По умолчанию разрешен только 1.

6. Начинаешь самим НПС? Это как?

Пиши точнее, иначе тебя понять очень сложно.
Aiwan
Siril Vilode почитай мануалы пожалуйста. Ты настолько не владеешь тулсетом, что не можешь сформулировать свои вопросы. В каждом вопросе заметно что ты ноль. Но что бы тебе объяснить что-то ты должен знать базовые вещи. Иначе как тебе объяснить что надо растянуть енкаучер и перекинуть фракцию скриптом и прочее. Почитай мануалы и возможно что-то сразу поймешь сам. И добро пожаловать wink.gif
Daemonix
Короче, я тут ТАК торможу! Помогите, пожалуйста. Я никак не могу построить МОСТ через ручей так, чтобы через него проходила дорога. Раньше получалось, но забыл, как... this.gif
Aiwan
Мост это одиночный тайл. Ищи в разделе где у тебя модели из одного квадратика на местности.
Daemonix
QUOTE (Aiwan)
Мост это одиночный тайл. Ищи в разделе где у тебя модели из одного квадратика на местности.

Нет, это я знаю. Я о другом: когда я делаю мост через ручей, мне нужно, чтобы по мосту проходила ещё и дорога. А когда я строю тайл моста на дороге, то он обрезает дорогу...
Aiwan
Дорогой ты мой. Посмотри на мост, если на нем нет текстуры дороги, то это твои фантазии. Либо мы не понимаем друг друга, а значит ты неправильно ставишь вопрос. Ну ка мне имена тайлов на английском давай. А то гадаем как в анегдоте, что то видел а что то нет...
Добавлено в [mergetime]1123447886[/mergetime]
Как вариант, покликай на одном месте несколько раз мышкой с тайлом моста.
Daemonix
Ну я лучше постараюсь переформулироваться... Вот смотри: (пример) есть такие тайлы: ворота и ворота с дорогой. Через вторые проходит дорога. Так ведь? И ещё с перпендикулярной дороге стороны можно построить стену, к которой эти ворота будут принадлежать. А я вот ищу такой мост, чтобы он был с дорогой, прямо как ворота, и пересекал ручей (на то он и мост! yes.gif) Вот...
DEM
а непробовал начать ставить этоот тайл на мосте...
Leon PRO
Поставь мост, и зажав кисть с дорогой проведи по нему туда, обратно... обычно так появляются тайлы, если они предусмотрены.

Только что вспомнил, и проверил, рецепт такой.
1. Делаешь поток.
2. Подводишь к нему с 2х сторон дорогу.
3. Зажимаешь кисть с дорогой и пару раз проводишь через поток, примерно на 1-2 тайла в одну и другую сторону.
4. Готово!

Daemonix
Leon PRO
Огромное спасибище. Всё работает!
Batkom
Neverwinter Script Source
object sArmor = GetItemInSlot(INVENTORY_SLOT_*, oPC);

INVENTORY_SLOT_ARMOR я не нашел, INVENTORY_SLOT_СARMOR на сколько я понимаю шкурка а вовсе не армор
dumbo
Batkom, INVENTORY_SLOT_CHEST
Batkom
я думал это сундук..)))) lol.gif
Aiwan
QUOTE (Batkom @ Aug 9 2005, 17:38)
я думал это сундук.

А почитать Лексикон не судьба? biggrin.gif Что за инертность? dntknw.gif Такие вопросы даже стыдно было бы задавать. Возьмите за правило. Юзаете новую для вас функцию, почитайте Лексикон. Там у каждой функции больше ремарок на баги чем описаний что она делает.
Batkom
Я написал скриптик под сеп, чтобы когда одеваешь плащ, устанавливалась моделька шеи 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, в то время как в стандартном крафтовом диалоге да и собственно в тулсете их намного больше.
Aiwan
Видишь ли, константы кастомные надо знать из сера, для моделек.
DEM
Скажите, как сделать что бы при нажатии ESC (кнопка на клаве), кат-сцена заканчивалась?
Batkom
dntknw.gif
Сеповские константы?
Когда редактируешь свойства армора как предмета плащу соответствует моделька шеи 6 если ты об этом.
Если это чтото другое, тогда что и где мне ее искать?
Scaled
Здравствуйте. Вот у меня вопрос. Как при респавне, сделать чтобы труп возрожденного игрока удалялся. Заранее благодарю. Вот скрипты :
на ОнДеад
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-
QUOTE (Scaled @ Aug 9 2005, 21:47)
Здравствуйте. Вот у меня вопрос. Как при респавне, сделать чтобы труп возрожденного игрока удалялся. Заранее благодарю. Вот скрипты :


А он разве не удаляется?????
Если нет, то попробуй переделать стандартный скрипт смерти вставив, что тебе нужно.
А вообще труп должен удалиться, или я чего не понимаю?!
Если нет объясните и мне.

QUOTE (Scaled @ Aug 9 2005, 21:47)
У меня там ошибка во втором скрипте с обозначением обьекта oCorpse, я не знаю как зделать


Neverwinter Script Source
object oCorpse = GetLocalObject(oRespawner,"oOwner");

Интересная строчка biggrin.gif
Я имею ввиду таг! Врятли у тебя такой. Наверное это имя переменной, в которой должен стоять таг, только она у тебя не объявлена. А если и объявлена, то она пишется без кавычек.
Пользуйся кнопкой NSS.

Хм. Чета я не то сказал user posted image . Наверное ты что-то другое имел ввиду, тогда Что?
А зачем два раза удалять?
Neverwinter Script Source
DestroyObject(oCorpse);
DelayCommand(1.0,DestroyObject(oCorpse));
Aiwan
QUOTE (DEM @ Aug 9 2005, 21:54)
Скажите, как сделать что бы при нажатии ESC (кнопка на клаве), кат-сцена заканчивалась?

Посомтри слот на модуле есть. Я не пробовал но логика мне подсказывает там надо рыться. yes.gif
DEM
QUOTE
Здравствуйте. Вот у меня вопрос. Как при респавне, сделать чтобы труп возрожденного игрока удалялся. Заранее благодарю. Вот скрипты :


Я конечно не уверен, но по моему скромному мнению, я уверен на 100% что труп исчезает... А если нет (или это шард или что), то выкинь свй NWN biggrin.gif
Red Devil
Здравстуйте. Значит у меня 3 вопроса.
1) Как сделать, чисто черную краску и белую. В палитре же их нет, или может быть для них есть хак пак, как он называется ?
2) Как узнать уровень игрока ? Просто скажите как функция называется, беглым взглядом лексикон пробежал getlevel(), как я ожидал не нашел.
3) Есть ли русская документация к утилите NWN duplicator ? (просто лекь переводить, надеюсь я ее скоро поборю).
Aiwan
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
Как ни странно труп - не удаляеться. По идее когда ты воскрешаешься -он должен исчезнуть. Останеться только сумочка с вещами.
Случайно два раза удаляю труп, по не внимательности своей.
Строчка object oCorpse = GetLocalObject(oRespawner,"oOwner"); Это просто попытка как-то обозвать труп игрока который воскрешаеться в данный момент. Так как мне сделать чтобы труп удалялся? Я просто не первый день сижу мучую этот скрипт.
Добавлено в [mergetime]1123646210[/mergetime]
QUOTE
Я имею ввиду таг! Врятли у тебя такой. Наверное это имя переменной, в которой должен стоять таг, только она у тебя не объявлена. А если и объявлена, то она пишется без кавычек.

Так что же это - просто не назвал труп?
Ferst
1. SetLocalObject(oCorpse, "oOwner", oPlayer);

2. object oCorpse = GetLocalObject(oRespawner,"oOwner");

В первом скрипте Вы устанавливаете локальный объект на _труп_.
А во втором берете переменную с _игрока_.

SetLocalObject(oPlayer, "oOwner", oCorpse);

Так будет верно.

ЗЫ.
При работе с объектами, чтобы проверить существует ли вообще объект, сделайте себе дебаг строки на имя объекта:
SendMessageToPC(oPlayer, "CorpseName="+GetName(oCorpse));
Если у Вас после "CorpseName=" будет пустое значение в логе чата, то объекта просто нет и нужно искать почему wink.gif
Естессно имя у объекта должно быть обязательно.
-fenix-
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)));
}
Ferst
QUOTE (-fenix- @ Aug 10 2005, 09:53)
Зачем в скрипте на смерть мудрить со слотами и деньгами?

Эффект, как в Дьябло - скидывание вещей с игрока и денег.
QUOTE
У ПС при смерти трупа та и нет. Он какбы валяется а при нажатии на респаун он просто встает с полными хитами. В стандартных скриптах про удаление трупа ни слова. Откуда у тебя труп появляется, у меня скажем ничего не появлялось.

1. Трупа нет скорее всего потому, что Скалед делал костомный объект-труп, который Вы не создали усебя wink.gif
2. Встает с хилами, т.к. нет в модуле у Вас объекта с нужным тэгом, к которому телепортируется игрок при респе.
QUOTE
Сумочка с вещами остается при убийстве монстров!

Именно поэтому Сумочку с вещами опять же он создает сам, чтобы она валялась рядом с трупом.
У Вас она скорее всего не появляется(если это так), из-за отсутствия в костомной палитре.


ЗЫ. Надеюсь не страшно, что ответил за Скаледа smile.gif Я подумал, что он долго будет разбираться почему у Вас ничего не работает. Сорри, если помешал вашей дискуссии smile.gif
ЗЫЫ. А почему не работало удаление у автора вопроса, написал чуть выше.
-fenix-
Блин. Да я чета совсем запутался!
Сам он создает труп или тот сам появлялся, если создает труп, то зачем мешочек с вещами да и вообще, что конкретно он хотел от скрипта только щаз понял. Я конечно не спец в скриптах но помоему в скриптах много всего, без чего можно обойтись(может я и ошибаюсь dntknw.gif ).
Делай труп с вещами и удаляй смотря скрипт, который я приводил выше.
DEM
Мдя-я-я-я-я.... Я с тобой согласен -fenix- ...


Посмотри скрипт на оставление вещей и на респавны наших спутников (хенчманов)...
Scaled
Хм, по порядку:

Труп, для чего он?

Когда игрок умирает он переноситься в Святилище(фуга), труп остаеться на месте смерти и мешочек с предметами которые были надеты в данный момент, на нем, и деньги. В фуге выходит таблица, где игрок может нажать кнопку - Респаун.
Труп можно украсть, что бы,скажем,игрок не смог реснуться, или же принести в город и там реснуть в храме за деньги.
На труп можно наложить спелл ресуректа и воскресить игрока, переместив на место, где валялся труп.

Почему я делаю мешочек и труп, а не труп с инвентарем? Потому что у меня в модуле планируеться возможность взять труп и утащить, а мешочек с предметами не брать.)))

Так вот у меня проблема в том что труп не удаляеться, когда происходит воскрешение посредством нажатия кнопки Респауна. И я не знаю как это сделать.Когда кастишь ресурект - все ок, а посредством менюшног воскрешения не получаеться. Да, извините я спешил и перепутал конечно же OnPlayerDeath и OnPlayerRespawn.)))
Что еще обьяснить?))) Я правда не знаю как доделать до ума, если есть другие варианты - подскажите.


Добавлено в [mergetime]1123670399[/mergetime]
Ах, да забыл еще вот что как бы мне не хотелось, чтобы труп разлогался через 250 сек....как вы предлогаете. Труп - это как бы точка прыжка, когда воскрешают спеллом.
dumbo
Scaled
насчет бага с переменными тебе уже указали. кстати, по смыслу, если уж переменная-объект трупа вешается на PC, то имя ей должно быть "oCorpse" wink.gif
а вот этот кусок тебе следует явно переделать:
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));

если игрок через секунду после смерти выйдет из игры, то избежит "наказания"
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.