![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3536
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
Привет!
И снова я с вопросами о скриптах на респавн мобов! Вот есть рабочий скрипт под НВН1-НВН2(Меня интересует сейчас НВН2), вроде ставиться в OnDeath мобов(Скрипт сохраяеться без ошибок на F7, но ничего не происходит в игре-мобы не спавняться на точку, через заданные 6 секунд в скрипте), что задавать в WayPoint? Код #include "nw_i0_2q4luskan" void main() { object oSelf = OBJECT_SELF; string sResRef = GetResRef(oSelf); string sResPoint = GetLocalString(oSelf, "RESPAWN_POINT"); location lLoc = GetLocation(GetWaypointByTag(sResPoint)); AssignCommand(GetModule(), DelayCommand(6.0f, SetLocalString(CreateObject(OBJECT_TYPE_CREATURE, sResRef, lLoc), "RESPAWN_POINT", sResPoint))); } Подскажите пожалуйста, в чём загвоздка?! Просто я всё подзабыл, помню, что в НВН1-всё получалось-без проблем, но сейчас занялся НВН2, и там не выходит респавн моба на точку, после убийства... Уже второй день мучаюсь, подскажите, пожалуйста... Заранее спасибо! Добавлено позже: Уже сам разобрался... Сообщение отредактировал Sugo77 - Jan 7 2013, 10:29 |
![]()
Сообщение
#3537
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
Добавил позже(Пару дней спустя):
Всё, сам во всём разобрался! Всем спасибо! Всех с праздниками! Пока больше нету вопросов... Хотя есть маленький, про замки, пока никак не могу сообразить, как сделать так, чтобы двери снова закрывать можно было на ключ, без воровских умений, ну чтобы любой класc мог проделывать это с помощью ключа, без прокаченных скиллов... Даже про фракции уже всё вспомнил, и про спавны, и про многое другое, а вот замки пока не научился, не вспомнил как обратно запирать на ключ, без прокаченных скиллов... Может есть какой-то скрипт для выполнения данной задачи? Заранее спасибо! Сообщение отредактировал Sugo77 - Jan 7 2013, 10:44 |
![]()
Сообщение
#3538
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
Подскажите такой скрипт.
Чтобы после убйства моба, не оставался лут, или, чтобы выпавший лут, самостоятельно исчезал, через заданное время. И куда его вставлять? Заранее спасибо! Потому что без скрипта, в тулсете НВН 2-не нашёл другого способа, как такое сделать, изменение Body Bag на None-не помогает, лут всё равно остаётся с убитых мобов. Потчитал форумы на английском, там кто пишет, что, что-то нужно менять в On Death, кто в On Spawn, что-то связанное с Random Treasure, но не один, не написал, что... Добавлю, в On Death мобов у меня ужа забит скрипт на респавн мобов... Промежуточный результат: http://youtu.be/k7bxz0PxKow Сообщение отредактировал Sugo77 - Jan 8 2013, 08:16 |
![]()
Сообщение
#3539
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Neverwinter Script //::////////////////////////////////////////////////// //:: Чистка локации от предметов, слот ХБ //:: Created By: Gennady //:: Name: de_chistka_loc //::////////////////////////////////////////////////// #include \"ludi\" void ChistkaLoc(int iD, object oSelf = OBJECT_SELF) { object oItem = GetFirstObjectInArea(oSelf); int iFut = Day()+iD; int iDes = Day(); SetLocalInt(oSelf, 092;"day\", iFut); while(GetIsObjectValid(oItem)) { if(GetLocalInt(oItem,092;"day\")==0) SetLocalInt(oItem, 092;"day\", iFut); if(GetLocalInt(oItem,092;"day\")<= iDes) { if(GetTag(oItem)==092;"BodyBag\") { object oItemB = GetFirstItemInInventory(oItem); while(GetIsObjectValid(oItemB)) { if(GetPlotFlag(oItemB)==FALSE) DestroyObject(oItemB); oItemB = GetNextItemInInventory(oItem); } } else { if(GetObjectType(oItem)==OBJECT_TYPE_ITEM && GetPlotFlag(oItem)==FALSE) DestroyObject(oItem); } } oItem = GetNextObjectInArea(oSelf); } } //////////////////////////////////////////////////////////////////////////////// void main() { object oPC = GetFirstPC(); object oSelf = OBJECT_SELF; int iD = StringToInt(GetLockKeyTag(oSelf)); if(GetArea(oPC)==GetArea(oSelf)) // если ПС в локе ChistkaLoc(iD); else if(GetLocalInt(oSelf,092;"day\") <= Day() && GetLocalInt(oSelf,092;"day\")!=0) ChistkaLoc(iD); } // Тэг ключа, врямя в днях до удаления предметов Neverwinter Script ///////////////////////////////////////////////
// *** БИБЛИОТЕКА *** #include \"ludi\" /////////////////////////////////////////////// // _______________ Текущий день _______________________________________________ int Day() { int nDay = GetCalendarDay(); int nMes = 28*GetCalendarMonth(); int nYear = GetCalendarYear(); int iDay = 336*nYear+nMes+nDay; return iDay; } Сообщение отредактировал gennady - Jan 9 2013, 16:25 |
![]()
Сообщение
#3540
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Я так понял вышеприведенный скрипт после заданного промежутка времени чистит все контейнеры на локации, на которой запущен. Однако особенность дефолтных лутбэгов (в НВН1 по крайней мере) такова, что они не подпадают в определение всех имеющихся в распоряжении движка идентификаторов – данный скрипт их не очистит.
Недавно сам такое делал и проверял: носитель лутбэга монстра отвечает определению самого монстра (имеет тот же таг и статус «мертвого существа» - фактически его мертвое тело), но после смерти носителя его лутбэг никакому влиянию не поддается (для стандартных скриптов на существе типа «онхертбита» после его смерти оно перестает «херт-бит» буквально и «ондэф» - это последний эвент которым можно что-то сделать) и его невозможно ничем «подцепить» в скрипте так, чтоб навязать манипуляции с ним. Они не выполняются. Попросту говоря сей объект в игре далее доступен только для ПС – сам движок лутбэг никак не видит. Можно удалить мертвое тело по тагу, заставить его исчезнуть или даже перенести в «лимбо» (что приведет к утрате всяческого доступа к его лутбэгу), но на полу при подсветке по табу все еще можно будет наблюдать силуэт его никуда не девшегося лутбэга. Единственный способ избавиться от стандартного лутбэга – вынуть все содержимое ПС-персонажем вручную. Решается эта дилемма классически заменой дефолтного лутбэга искусственным, который спавнится в момент смерти существа (по триггеру «ондэф») и в который копируются все предметы из инвентаря умирающего существа; последние в свою очередь после копирования тут же удаляются, чтоб очистить инвентарь создающегося трупа и избежать создания дефолтного лутбэга. Далее вы можете скриптами управлять трупом существа и искусственным лутбэгом с его содержимым вполне нормально и как вам заблагорассудится. А так же настроить время автоматического исчезновения трупа через настройки НПС. |
![]()
Сообщение
#3541
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Попросту говоря сей объект в игре далее доступен только для ПС – сам движок лутбэг никак не видит. Можно удалить мертвое тело по тагу, заставить его исчезнуть или даже перенести в «лимбо» (что приведет к утрате всяческого доступа к его лутбэгу), но на полу при подсветке по табу все еще можно будет наблюдать силуэт его никуда не девшегося лутбэга. Единственный способ избавиться от стандартного лутбэга – вынуть все содержимое ПС-персонажем вручную. Неверно. Все стандартные лутбеги имеют тег "BodyBag", по нему можно получить доступ к объекту (видимому или нет), очистить от итемов и удалить, что и наблюдается в скрипте gennady. Единственное, лутбег ещё не создан на момент срабатывания OnDeath, поэтому его либо приходится искать с задержкой, либо запускать чистку с "внешних" событий. Сообщение отредактировал greye - Jan 10 2013, 09:56 |
![]()
Сообщение
#3542
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Ну, тогда все еще проще – можно поставить в локации блок на «онхеартбит» с заглушкой на выполнение скажем раз в игровые сутки, который попросту будет очищать все объекты с этим тагом на локации:..
Neverwinter Script void main()
{ object oArea = OBJECT_SELF; object oTarget = GetFirstObjectInArea(oArea); object oItem; if (GetTimeHour() == 0) { if (GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF))== 0) { SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 1); } else { return; } } else { if (GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF))== 1) { SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 0); } return; } while(GetIsObjectValid(oTarget)) { if (GetTag(oTarget) == "BodyBag") { oItem = GetFirstItemInInventory(oTarget); while(GetIsObjectValid(oItem)) { DestroyObject(oItem); oItem = GetNextItemInInventory(oTarget); } } oTarget = GetNextObjectInArea(oArea); } } Сообщение отредактировал Flaristan - Jan 10 2013, 10:50 |
![]()
Сообщение
#3543
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
При большой загрузке модуля локациями, больше 100+ и большим кол-вом мобов ии других штук зависает время. Что будет в этом случае?))) - ты используешь GetTimeHour() (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3544
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Ну это вообще не проблема:
1) счетчик вообще можно поставить принципиально какой удобно; 2) зависающее время в модуле вроде чинят перематывая его искусственно, если оно заедает естественно. |
![]()
Сообщение
#3545
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
1.: gennady , при сохранении Вашего скрипта, указывает на какую-то неточность\ошибку в данной строчке:
int iFut = Day()+iD; И ещё, куда вставляется Ваш скрипт? 2.: А вот скрипт от Flaristan-прекрасно работает под НВН2, но!, уменьшить бы время задержки на исчезновения лута с локации, в его скрипте(Пока не могу дотумкать, как это сделать), а то сутки-это много, мне бы меньше минуты, то есть в секундах(Секунд: 30)... Предпологаю, что что-то связанное с DelayCommand 6.0f(Значение времени, выдернутое мною из скрипта на респавн мобов), но куда это вставить, что на что заменить?, и будет ли это правильно работать в скрипте от Flaristan? Заранее спасибо! Сообщение отредактировал Sugo77 - Jan 10 2013, 20:00 |
![]()
Сообщение
#3546
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Верхний блок скрипта:..
Neverwinter Script if (GetTimeHour() == 0) { if (GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF))== 0) { SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 1); } else { return; } } else { if (GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF))== 1) { SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 0); } return; } Если его заменить на такой блок:.. Neverwinter Script int iCount = GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF)); …он каждые 6 секунд «онхеартбита» будет считать переменную присваиваемую его локации с ее же мименем – как только досчитает до 5 (5 «онхеартбитов» по 6 секунд = 30 секунд) сбросит счет в «0» и выполнит дальнейший скрипт.if (iCount==5) { SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), 0); } else { iCount++; SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), iCount); return; } Можно через «DelayCommand» тоже, но мне показалось так проще и надежней. Сообщение отредактировал Flaristan - Jan 11 2013, 04:21 |
![]()
Сообщение
#3547
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
Спасибо за помощь!
То что надо!, и всё работает! Ещё бы с замками разобраться(В НВН2), ранее уже спрашивал: Можно ли вообще, в принципе, сделать так, чтобы дверь снова закрыть на тот же ключ, которым открывал, любому классу, без соответствующих скиллов? Может, через какой-то скрипт? Так как облазил весь тулсет, не дотумкал, как это сделать обычным способом, получается только открывание замка, и дверь уже потом постоянно открыта-входи любой, а хотелось бы получить возможность, и снова закрыть эту же самую дверь, на этот же самый ключ... Сообщение отредактировал Sugo77 - Jan 11 2013, 08:23 |
![]()
Сообщение
#3548
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Чистка локации от предметов
Тут что-то глючат коды NNS. Кому нужно смотрим здесь: http://remmgen.narod.ru/tmodul.html |
![]()
Сообщение
#3549
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Могу лишь предложить сделать на ключи «уникальную силу предмета» которая по юзу на дверь будет проверять ее ли это ключ, и если да – то закрывать ее на замок.
Если нужно просто чтоб двери через какое-то время закрывались и запирались – можно сделать соответствующий скрипт с задержкой на «онопен» и раздать его нужным дверям. P.S.: И да - если уж отсылать то тогда еще мои две любимые ссылки на ресурсы которые помогли мне достигнуть того уровня скриптинга который сейчас имею: - скрипт-генератор Лилака; - Лексикон. Сообщение отредактировал Flaristan - Jan 11 2013, 10:08 |
![]()
Сообщение
#3550
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
gennady, а вот скрипт с Вашего сайта-сработал!
Но там он в днях, а у меня трейниг модуль для спелл кастеров, где мобы с 10-100 ХП, убиваются за секунды, и спавняться, через 6 секунд, поэтому скрипт от Flaristan, мне более подходит! А вообще, обоим участникам большое спасибо за помощь, и отзывчивость! Сообщение отредактировал Sugo77 - Jan 11 2013, 14:18 |
![]()
Сообщение
#3551
|
|
Level 1 Класс: Монах Характер: True Neutral Раса: Рептилия ![]() |
В общем дело такое. Скрипт отвечающий за бардовскую песню, не помню точное название, вроде X0_nw_что-то. Суть в том что я сделал так, что при поднятии уровня Тайного Лучника и ученика дракона учитывались их уровни при определении силы песни (int GetLevelByClass кажется). Так же: в feat_archer дописал что Арчер получает песню барда так же как если бы он был бардом (допустим бард 8 арчер 4 - 12 песен в день). Сделал исполнение классовым навыком для Арчера. В чем проблема - кастую песню. Она работет, растет вместе с персонажем бард-лучник, дает как надо все параметры, работает сколько нужно по времени, могу кастовать сколько надо раз в день (1уровень=1каст\день). НО! Иногда при получении большого урона (выше 10 единиц, как я понял) все эффекты песни спадают, однако над головой сохраняются нотки, как будто песня продолжается.
В чем может быть проблема? |
![]()
Сообщение
#3552
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Навскидку: песня может давать группу связанных (link) эффектов, один из которых - временные хитпоинты. Вполне возможно, что нвн при снятии временных хп удаляет весь набор эффектов (багофича т.е.). Лечение, если я угадал: накладывать хиты отдельным эффектом.
|
![]()
Сообщение
#3553
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
Проверьте, и подскажите, что не так в скрипте на возможность садиться игроку на стул\скамейку\кресло?(В Neverwinter Nights 2):
Код void main() { object oChair = OBJECT_SELF; if (!GetIsObjectValid(GetSittingCreature(OBJECT_SELF))) { AssignCommand(GetLastUsedBy(), ActionSit(oChair)); } } Игрок садиться, и тут же соскавкивает\встаёт, даже не успев сесть, что не так? Подправте, пожалуйста! Разумеется вставлял в On Used Script, и делал предметы Usable Добавлю: -Тестил на всех видах скамеек, стульев, кресел-везде, один и тот же эффект, как будто что-то не срабатывает, буд-то скрипт не доработан, хотя ошибок при сохранении(На F7)-не выдаёт! Добавлено позже!: -Отбой!, игрок всё же "садится" на стул, после задержки, где-то в секунд: 10(Если ждать, и не шевелиться), плюс, криво "садится", иногда вообще помимо скамейки! (IMG:style_emoticons/kolobok_light/sad.gif) Это что, так в НВН2 система сажания на стулья-настроена?!, или данный скрипт для НВН2-не совсем подходит?! Есть другие варианты? Заранее спасибо! Сообщение отредактировал Sugo77 - Mar 17 2013, 20:42 |
![]()
Сообщение
#3554
|
|
Level 1 Класс: Монах Характер: True Neutral Раса: Рептилия ![]() |
Навскидку: песня может давать группу связанных (link) эффектов, один из которых - временные хитпоинты. Вполне возможно, что нвн при снятии временных хп удаляет весь набор эффектов (багофича т.е.). Лечение, если я угадал: накладывать хиты отдельным эффектом. К сожалению немного мимо =) я разобрался. Взял скрипт из оригинала, а там нет как я понял параметра Duration, и песня обрывалась при снятии хитов (ваша версия). С скриптом из HotU проблем нет |
![]()
Сообщение
#3555
|
|
Level 7 ![]() Класс: Обыватель Характер: True Neutral Раса: Человек NWN: Модмейкер Начало Войны ![]() |
Проверьте, и подскажите, что не так в скрипте на возможность садиться игроку на стул\скамейку\кресло?(В Neverwinter Nights 2): В NWN2 с ActionSit проблемы, функция изначально не работала и ее вроде не пофиксили, хотя могу ошибаться. На ваулте есть куча решений этой проблемы, например, вот. |
![]()
Сообщение
#3556
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Обсидианы добавили в нвн2 немало клёвых ништяков, при этом, как водится, похерив немало старых (IMG:style_emoticons/kolobok_light/smile.gif) ActionSit - один из них.
|
![]()
Сообщение
#3557
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
Да, спасибо!
Скрипт по ссылке, от Alian REXis, работает без задержек, и без сбоев!: NWN2, Drow At Picnic\НВН2, Дроу На Пикнике Меня сейчас волнует другая проблема, с визуальным эффектами(В NWN2), под названиями: fx_willowisp_blue fx_willowisp_green fx_willowisp_red fx_willowisp_yellow Так вот, если в самом тулсете, ставишь эти эффекты на мобов(Или в любые, другие прдметы, вещи, оружия), всё работает отлично, но стоит зайти в игру, почему-то, сразу выкидывает, интересно почему?!(Особенно если вставить данные, визуальные эффекты, в мобов, или в оружие, и когда пытаешься взять оружие в руки, сразу выбрасывает из игры, с неизвестной ошибкой, Windows 7 Максимальная 64-bit SP1-не может её определить\устранить!) Другие визуальные эффекты, работают без сбоев, потестил уже больше половины! С чем это может быть связано, и как можно решить данную проблему, есть идеи? -И интересует, это только у меня одного так, или у всех? Настройки видео, в самой игре, менял по разному, не помогает... Версия игры: Neverwinter Nights 2 Gold от Акеллы(На русском языке) + Патч от Акеллы: Akella_SoZ_1231765(На русском языке) Добавлю: -Хочу позже переустановить игру, с версии Gold от Акеллы, на Platinum от Акеллы, но, сомневаюсь, что поможет... Просьба!, у кого установлена игра: Neverwinter Nights 2, можете, пожалуйста, проверить данные визульные эффекты, будут у вас работать в модуле, или нет?! Желательно потестить на оружии... Заранее спасибо! Сообщение отредактировал Sugo77 - Mar 20 2013, 19:28 |
![]()
Сообщение
#3558
|
|
Level 6 ![]() ![]() Класс: Друид Характер: Chaotic Neutral Раса: Гном ![]() |
Кстати, это ветка авроры, а не электры
|
![]()
Сообщение
#3559
|
|
Level 5 ![]() ![]() Класс: Паладин Характер: Chaotic Good Раса: Человек ![]() |
В общем прошу пояснить почему не у меня не работает этот http://www.city-of-masters.ru/forums/index...amp;#entry31706 скрипт. Точнее его первая часть. Я так думаю это потому что у меня версия 1.69, хотя кто знает... Я недавно начал осваивать написание скриптов и очень прошу помочь мне с моими вопросами.
|
![]()
Сообщение
#3560
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Подробнее что именно не работает?
Не создается объект, нет эффекта? Neverwinter Script // Может не компилироваться если у тебя не стоит патч Дамбо для буквы "я". Т.к. из-за нее не компилировалось раньше.
void Raise(object oNPC = OBJECT_SELF) { effect eVisDead = EffectVisualEffect(VFX_IMP_HEAD_ACID);///Эффект с которым объект будет воскресать. В данном случае это кислота! // Объект, который будет появляться (воскресать). Там надо вставлять не тэг а РЕСРЕФ объекта, потому что тэг и ресреф могут различаться // Если тэг и ресреф одинаковы - тогда без разницы. А вообще пиши тэги всегда верхним регистром, а ресреф нижним :З. Функции подобные этой // сами переводят верхний регистр в нижний, но для различия всегда удобнее тэг - верхним, ресреф - нижним object oNew = CreateObject(OBJECT_TYPE_CREATURE,"ZombieWeak07", GetLocation(oNPC )) ; ApplyEffectAtLocation(DURATION_TYPE_INTSTANT, eVisDead, GetLocation(oNew)); } void main() { object oCleric = GetNearestObjectByTag("Nekrolog01");// Тег объекта который будет оживлять. И которого надо убить чтобы остальные больше не оживали. // Объект есть, не мертвый и не дерется ни с кем if (GetIsObjectValid(oCleric) && !GetIsDead(oCleric) && !GetIsInCombat(oCleric)) { AssignCommand(oCleric, ClearAllActions()); // Чистка стэка действий объекта //Действия, которые выполняет "оживитель" как только умирает один из объектов. В данном случае становится на колени. AssignCommand(oCleric, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 1.0, 3.0f)); // Анимация призыва/моления effect eVisCleric = EffectVisualEffect(VFX_IMP_AURA_NEGATIVE_ENERGY);// Эффект, с которым клирик воскрешает. В данном случае появляется красного цвета аура. Но эффекты можно менять! ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVisCleric, oCleric, 3.0f); // TEMPORARY тип для продолжительных во времени, INSTANT для мгновенных, а PERMANENT - постоянных DelayCommand(3.0f, Raise(OBJECT_SELF)); // Функция сверху void main() DelayCommand(0.2f,AssignCommand(oCleric, SpeakOneLinerConversation())) ; // Что-то типа воспроизвести 1-ю неветвящуюся строку диалога. } } Сообщение отредактировал Melisse - Jul 4 2013, 11:42 |
![]() ![]() |
Текстовая версия | Сейчас: 4th May 2025 - 14:11 |