Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 40 41 42 43 44 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Lex
сообщение Apr 8 2005, 21:30
Сообщение #1011


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (Amellun @ Apr 8 2005, 20:46)
Срочно нужны скрипты, которые описаны ниже...

перенес в эту тему. :)
Читай правила раздела перед тем, как почтить или создавать темы.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Apr 8 2005, 21:52
Сообщение #1012


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



][umepa Знаешь как заставить ходить НПС по вэйпоинтам в одной локации?
Делаешь точно так же, только эти же вэйпоинты расставляешь в разных локах. ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Apr 9 2005, 21:32
Сообщение #1013


Level 3
*

Класс: Некромант
Характер: Neutral Evil
Раса: Человек



эээ Лито не уловил :swoon: в одной локе я умею ставить вэйпоинты а как в другую вейпоинт этого же непися вставить :swoon: ? а можно ли заставить непися ходить по вэйпоитнам с замедлением т е подошел к вэйпоинту постоял определённое время и дальше?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Apr 9 2005, 22:03
Сообщение #1014


Level 10
Иконки Групп

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Помогите народ, у меня скрипт, такой маленький злой карлик, спрятан за стеной, поставлен правильно лицом на ПК, я его даже скриптом поверачивал, никак!!Помогите он джампится и стоит боком, всёвремя боком. как его поставить в нужную сторону.
Чуть не забыл вот скрипт.
Neverwinter Script Source
void main()
{
object oPC = GetPCSpeaker();
object oPivi = GetObjectByTag("Piviga");
//--------------------------------------
effect eCutIn = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
effect eE1 = EffectVisualEffect(VFX_FNF_UNDEAD_DRAGON);
effect eE2 = EffectVisualEffect(VFX_FNF_SUMMONDRAGON);
effect eSt = EffectParalyze();
//---------------------------------------
object oCam2 = GetWaypointByTag("era2");
object oCam3 = GetWaypointByTag("era3");
//--------------------------------------
object oEFE = GetObjectByTag("EFFECT");
object oSU1 = GetWaypointByTag("SU1");
object oSU2 = GetWaypointByTag("SU2");
object oSU3 = GetWaypointByTag("SU3");
//-------------------------------------
DelayCommand(2.0, AssignCommand(oPC, ActionJumpToObject(oCam2)));
DelayCommand(2.0, AssignCommand(oPC, SetCameraFacing(90.0, 0.0, 90.0, CAMERA_TRANSITION_TYPE_MEDIUM)));
DelayCommand(3.0, AssignCommand(oPC, ActionForceMoveToObject(oSU1)));
DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_INSTANT,eE1,oEFE));
DelayCommand(6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT,eE2,oEFE));
DelayCommand(9.0, AssignCommand(oPivi, ActionJumpToObject(oEFE)));
DelayCommand(11.5,AssignCommand(oPivi,ActionSpeakString("Чиво зырете падлы ща всех драть буду мразюги")));
DelayCommand(16.0, AssignCommand(oPC, ActionJumpToObject(oCam3)));
DelayCommand(17.0, AssignCommand(oPC, SetCameraFacing(270.0, 0.0, 70.0, CAMERA_TRANSITION_TYPE_SNAP)));
DelayCommand(16.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,eSt,oPivi));
ActionDoCommand(AssignCommand(oPivi, SetFacingPoint(GetPosition(oPC))));
DelayCommand(19.5, AssignCommand(oPC, ActionStartConversation(oPC, "givi_talk2", FALSE,TRUE)));
}


Сообщение отредактировал Nokoll - Apr 9 2005, 22:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 9 2005, 23:33
Сообщение #1015


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



вместо
Neverwinter Script Source
ActionDoCommand(AssignCommand(oPivi, SetFacingPoint(GetPosition(oPC))));


Эта строчка выбивается из скрипта. Откуда вообще этот бред?

меня на
Neverwinter Script Source
DelayCommand(12.0,AssignCommand(oPivi,ActionDoCommand(SetFacingPoint(GetPosition(oPC)))));



100 раз уже говорили что такое Action и как с ним работать. И тебе не раз объясняли...не надоело на одни и те же грабли наступать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Apr 10 2005, 09:44
Сообщение #1016


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



2][umepa, а ты создай нужное кол-во вэйпоинтов в одной локации, а потом по порядку переноси в нужные локи :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Apr 12 2005, 10:14
Сообщение #1017


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Я так и не разобрался с температурным скриптом Mileza
Может я им не так пользуюсь?
Ставлю на OnEnter локи скрипт. На локацию вешаю переменную int с названием Temperature и стоимостью -18(чтобы холодно было)
+
В скрипте написано 0 заменить на -1, это я тоже делаю, но все равно система не пашет :sen:
ПОмогите разобраться. Да и другим будет полезно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 12 2005, 11:52
Сообщение #1018


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Так..поехали.
1. Я потестил скрипт и у меня сложилось впечатление, что он не работает.
2. Я слегка модифицировал сам скрипт, добавил пару моментов и вот что получилось:
- у костра теперь можно греться. Постоял рядом и ДС мороза упало
- при переходах между локами счетчик температуры не сбрасывается. Он сбрасывается при смене температурного режима. (холод-жара)

Neverwinter Script Source
void DealTemperatureDamage(object oPC)

{
   // Игрок без сознаниЯ
   if (GetCurrentHitPoints(oPC)<1) return;
   // Где находитсЯ игрок?
   object oArea=GetArea(oPC);
   // И какаЯ там температура?
   int iT=GetLocalInt(oArea,"Temperature");
   // Температура комфортабельна или не установлена
   // (значение 0 рассматриваетсЯ как неустановленнаЯ температура. Вместо 0 ставьте -1)
   if (((iT<=32) && (iT>=4)) || (iT==0))  return;
   // ОпределЯем переменные
   int iDamType;
   int iDamAmount;
   int iSaveType;
   float iInterval;
   object oFire;
   int iSlow=FALSE;
   int iFortSave;
   int i;
   effect eDam;
   // Носим тЯжелую броню и/или плащ?
   int iArmor  =  GetItemACValue(GetItemInSlot(INVENTORY_SLOT_CHEST,oPC))>5;
   int iCloak  =  GetIsObjectValid(GetItemInSlot(INVENTORY_SLOT_CLOAK,oPC));
   // Сколько раз мы уже "стучали" по игроку?
   int iTimes=GetLocalInt(oPC,"TemperatureDamageTimer");
   int iDC=15+iTimes; // Подсчет DC
   if (iT>32)
        { // Жарко!
        FloatingTextStringOnCreature("Мне жарко!",oPC);
        iDamType=DAMAGE_TYPE_FIRE;
        if (GetLocalInt(oPC,"TemperatureType")==2)
            {
            iTimes = 0;
            iDC = 15;
            }
        SetLocalInt(oPC,"TemperatureType",1); // HOT
        iSaveType=SAVING_THROW_TYPE_FIRE;
        iDamAmount=d4();
        if (iArmor) iDC=iDC+4;
        if (iCloak) iDC=iDC+4;
        if (iT>60)
            {
            eDam=EffectDamage(d6(),iDamType);
            ApplyEffectToObject(DURATION_TYPE_INSTANT,eDam,oPC);
            DelayCommand(2.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eDam,oPC));
            DelayCommand(4.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eDam,oPC));
            iSlow=TRUE;
            }
        else if (iT>43)
            { // Очччень жарко!
            FloatingTextStringOnCreature("Очччень жарко!",oPC);
            iSlow=TRUE;
            }
        else
            { // Просто жарко
            iInterval=120.0;
            }
        }
    else if (iT<4)
       {
       oFire=GetNearestObjectByTag("ku_campfire",oPC);
       if ((GetIsObjectValid(oFire)) && (GetDistanceBetween(oFire,oPC)<5.0))
           {
           iDC=0;
           if (iTimes>=3)
               SetLocalInt(oPC,"TemperatureDamageTimer",iTimes-3);
           FloatingTextStringOnCreature("Отогреваюсь",oPC);
           }
       else
           {
           if (GetLocalInt(oPC,"TemperatureType")==1)
               {
               iTimes = 0;
               iDC = 15;
               }
           SetLocalInt(oPC,"TemperatureType",2); // COLD
           iDamType=DAMAGE_TYPE_COLD;
           iSaveType=SAVING_THROW_TYPE_COLD;
           iDamAmount=d6();
           FloatingTextStringOnCreature("Мне холодно!",oPC);
           if (iT<-18)
               { // Жуткий мороз
               if (iArmor) iDC=iDC+4;
               if (iCloak) iDC=iDC-4;
               iSlow=TRUE;
               }
           else
               { // Very cold
               if (iCloak) iDC=0;
               }
           }
       }
   if (iDC>0)
       {
       iFortSave=FortitudeSave(oPC,iDC,iSaveType);
       SetLocalInt(oPC,"TemperatureDamageTimer",iTimes+1);
       if (iFortSave==0)
           {
           ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iDamAmount,iDamType),oPC);
           if (iSlow) ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectSlow(),oPC,6.2);
           }
       }
}

void main()
{
   object oPC=GetFirstPC();
   AssignCommand(oPC,DealTemperatureDamage(oPC));
}

Ставится на ХБ МОДУЛЯ. (или какого-нить особого объекта)

Не забудте поставить на локациях локалки Temperature со значениями.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Apr 12 2005, 12:30
Сообщение #1019


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Сенкс Lex.
Полет нормальный...
Правда не понял, как можно спастись от мороза, одеждой...

Мне интересно, можно ли наложить на игрока эффект ранение.
То есть есть проклятый меч. игрок берет его в руки и ему наносится урон...но я не нашел эффекта ранения, константы тоже нет, хотя я мог проглядеть:unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 12 2005, 13:00
Сообщение #1020


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (Лито @ Apr 12 2005, 13:30)
Правда не понял, как можно спастись от мороза, одеждой...

правь это по своему усмотрению
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ferst
сообщение Apr 12 2005, 15:35
Сообщение #1021


Level 2
*

Класс: Клерик
Характер: Neutral Good
Раса: Человек



QUOTE
Ставится на ХБ МОДУЛЯ. (или какого-нить особого объекта)

Даже если все верно работает, то вариант совершенно не приемлем для онлайн модулей.

А жаль. Я смогу его переделать, если мне понадобится, но вот остальные, как понял, с трудом... Сам не смогу пока смотреть как переделать - море и так скриптов :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 12 2005, 15:47
Сообщение #1022


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Да, это не для мультиплеер модулей, это вариант ессно для сингла. (я не шардовик)
И ессно что этот скрипт нуждается в корректировке и улучшении в части одежды. Я не ставил себе целью его кардинально улучшить, надо было сделать его рабочим. :)
Переделать под мультик можно, надо просто подумать немного.
Даже если и переделать, то имхо (я не шардовик, повторюсь. Это только мое предположение) грузновато для серевера такое делать. Всех игроков просчитывать и дамажить, если надо. Притом делать это довольно часто..

ГЫ: поправил баг с бюпом денег у торговца?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Алексашка
сообщение Apr 12 2005, 19:31
Сообщение #1023


Level 3
*

Класс: Клерик
Характер: True Neutral
Раса: Человек



У меня в тулсете помимо свойства "Активировать предмет", "Использовать собственную силу" есть еще "Поговорить с предметом" :D Пробовал при этом свойстве предмета готовый скрипт, который работает при активации предмета, не пашет. Какая комнда этим свойством управляет? :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Apr 12 2005, 22:46
Сообщение #1024


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Алексашка у тебя какой-то перевод. Говори на английском все подскажем. Русский тулсет закинь, если не хочешь мертвого модуля по прошествии времени...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Apr 13 2005, 09:29
Сообщение #1025


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Можно наверное сделать суб-арею для каждой локи...но это слишком муторно...
Можно и на OnEnter повесить снова, по другому я не знаю как улучшить.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Apr 13 2005, 18:53
Сообщение #1026


Level 3
*

Класс: Некромант
Характер: Neutral Evil
Раса: Человек



ээээ Лито я слишком ещё новичок но я не знаю как переносить вэйпойнты из локу в локу мож поможешь? :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 13 2005, 19:07
Сообщение #1027


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



ctrl+c
ctrl+v
Добавлено в [mergetime]1113408477[/mergetime]
Не, ну народ вы хоть сами думайте чуток. :D :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Apr 13 2005, 19:21
Сообщение #1028


Level 3
*

Класс: Некромант
Характер: Neutral Evil
Раса: Человек



сенки :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Алексашка
сообщение Apr 13 2005, 22:14
Сообщение #1029


Level 3
*

Класс: Клерик
Характер: True Neutral
Раса: Человек



QUOTE (Aiwan @ Apr 12 2005, 22:46)
Алексашка у тебя какой-то перевод. Говори на английском все подскажем. Русский тулсет закинь, если не хочешь мертвого модуля по прошествии времени...

Свойство предмета: Cast spell: Talk to(Unlimited Uses\Day) Пробовал скрипт на OnActivateItem, не работает. Скрипт ниже.

Neverwinter Script Source
object oItem = GetItemActivated();
object oActivator = GetItemActivator();
object oUser = oActivator;
object oTarget = GetItemActivatedTarget();
string sRes = GetResRef(oItem);
location lLoc = GetItemActivatedTargetLocation();
location lTarget = lLoc;
void main()
{
if (GetIsPC(oActivator)&&(GetTag(oItem)=="az_sword1"))
  {
        if (GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oActivator)!=oItem)
            AssignCommand(oActivator,ActionEquipItem(oItem,INVENTORY_SLOT_RIGHTHAND));
        DelayCommand(1.0,ExecuteScript("sword_skript2",oActivator));
  }
}


P.S. Больше года уже. 23мб, 130000 слов, больше 1000 скриптов (5\6 "косых" остальные ненужные) :D Пока жив модуль. Это же только диалог русский, а все остальное "родное". :yes:
Добавлено в [mergetime]1113420384[/mergetime]
Взял готовый скрипт отдыха в полевых условиях. (Аваддон) Немножко подредактировал под свои нужды.
Все работает ОК. Сначала я добавил отдыхать только в рест зонах все работало нормально, но герои начали разводить костер в гостиницах :D Куда строчку впихнуть проверяющую условие гостиница или улица? Скрипт вписать не могу, я с чужого компа. Он есть на вашем сайте. Я изменял только эффекты и внес строку
Neverwinter Script Source
if(GetLocalInt(oPC, "RESTZONE") !=1)

Ну и далее отмена отдыха с фразой типа: "Найди место поприличнее"
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 13 2005, 23:08
Сообщение #1030


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (Алексашка @ Apr 13 2005, 23:14)
Свойство предмета: Cast spell: Talk to(Unlimited Uses\Day)

поставь уникальное свойство, точно будет работать.

2. Я бы проверял наличие в локации валидного вэйпоинта
Neverwinter Script Source
if (GetIsObjectValid(GetNearestObjectByTag("WP_TAVERNREST",oPC))) // если в таверне
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ferst
сообщение Apr 14 2005, 18:43
Сообщение #1031


Level 2
*

Класс: Клерик
Характер: Neutral Good
Раса: Человек



QUOTE (Aiwan @ Apr 12 2005, 22:46)
Русский тулсет закинь, если не хочешь мертвого модуля по прошествии времени...

Это к чему?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Алексашка
сообщение Apr 14 2005, 20:51
Сообщение #1032


Level 3
*

Класс: Клерик
Характер: True Neutral
Раса: Человек



QUOTE (Lex @ Apr 13 2005, 23:08)
поставь уникальное свойство, точно будет работать.

2. Я бы проверял наличие в локации валидного вэйпоинта 
Neverwinter Script Source
if (GetIsObjectValid(GetNearestObjectByTag("WP_TAVERNREST",oPC))) // если в таверне

С уникальным свойством у меня работает. Мне было интересно, что с этим можно сделать. :yes:

Что писать я знаю, я спрашивал где вписать. :yes: Впрочем это уже неважно. Нашел второй скрипт Аваддона, на отдых в гостинице. Слепил из двух один. Красиво отдыхают. :D Мне бы еще кто -нибудь скрипт на крафтинг так доходчиво расписал. Интересно же не просто скопировать, а понять, для чего строчки написаны. :yes: Работающий скрипт привожу ниже. Может быть кому сгодиться. :yes:
Neverwinter Script Source
////////////////////////////////////
//////Created By: Avaddon///////////
//////Date: 04. 12. 2004////////////
//////Подкорректирован Алексашка////
///////Дата: 14.04.2005/////////////
///////////////////////////////////
#include "nw_i0_tool"
#include "nw_i0_generic"
#include "lib_colortext"
void main()
{
effect eBlack = EffectVisualEffect(VFX_DUR_BLACKOUT);
effect eZzz =  EffectVisualEffect(VFX_IMP_SLEEP);
effect eSlow = EffectSlow();

object oPC = GetLastPCRested();


object oBed = GetNearestObjectByTag("BED",oPC);


object oSleep = GetNearestObjectByTag("SLEEP",oPC);


object oArmor =GetItemInSlot(INVENTORY_SLOT_CHEST,oPC);
object oRightHand = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC);
object oLeftHand = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC);
object oBoots = GetItemInSlot(INVENTORY_SLOT_BOOTS,oPC);
object oHelmet = GetItemInSlot(INVENTORY_SLOT_HEAD,oPC);
object oBelt = GetItemInSlot(INVENTORY_SLOT_BELT,oPC);
object oCloak = GetItemInSlot(INVENTORY_SLOT_CLOAK,oPC);
object oArms = GetItemInSlot(INVENTORY_SLOT_ARMS,oPC);


string sFree = GetTag(GetArea(oPC));
string sArmor = GetLocalString(oPC,"armor");
string sRightHand = GetLocalString(oPC,"right");
string sLeftHand = GetLocalString(oPC,"left");
string sHelmet = GetLocalString(oPC,"helmet");
string sBoots = GetLocalString(oPC,"boots");
string sBelt = GetLocalString(oPC,"belt");
string sCloak = GetLocalString(oPC,"cloak");
string sArms = GetLocalString(oPC,"arms");


    if(GetStringLeft(sFree,4)=="free")
    {

        if(GetLocalInt(GetLastPCRested(),"on_bed")!=1)
        {

        SetLocalString(oPC,"armor",GetTag(oArmor));
        SetLocalString(oPC,"right",GetTag(oRightHand));
        SetLocalString(oPC,"left",GetTag(oLeftHand));
        SetLocalString(oPC,"helmet",GetTag(oHelmet));
        SetLocalString(oPC,"boots",GetTag(oBoots));
        SetLocalString(oPC,"belt",GetTag(oBelt));
        SetLocalString(oPC,"cloak",GetTag(oCloak));
        SetLocalString(oPC,"arms",GetTag(oArms));


        DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oArmor)));
        DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oRightHand)));
        DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oLeftHand)));
        DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oHelmet)));
        DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oBoots)));
        DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oBelt)));
        DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oCloak)));
        DelayCommand(2.0,AssignCommand(oPC,ActionUnequipItem(oArms)));


            if (GetLastRestEventType()==REST_EVENTTYPE_REST_STARTED)
            {

            AssignCommand(oPC,ClearAllActions());


            AssignCommand(oPC,ActionMoveToObject(oBed));


            DelayCommand(2.0,AssignCommand(oPC,ActionJumpToObject(oSleep)));


            DelayCommand(2.5,SetLocalInt(oPC,"on_bed",1));


            DelayCommand(3.0,AssignCommand(oPC,ActionRest()));


            DelayCommand(3.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eZzz,oPC,10.0));
            DelayCommand(4.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBlack,oPC,60.0));
            }
        }
    }
    else
    {
    object oPC = GetLastPCRested();
    object oCamp = GetNearestObjectByTag("camp",oPC);
    object oBedroll = GetNearestObjectByTag("krovatka",oPC);
    effect eSleep = EffectVisualEffect(VFX_IMP_SLEEP);
    effect eBlind = EffectBlindness();
    effect eDisease = EffectDisease(DISEASE_SOLDIER_SHAKES);

  if (GetLocalInt(oPC, "RESTZONE") != 1)
  {
    AssignCommand(oPC,ClearAllActions());
    FloatingTextStringOnCreature("Это неудачное место для лагеря. Нужно поискать место поукромнее.",oPC,FALSE);
    }
    else
    {
if (GetLastRestEventType() == REST_EVENTTYPE_REST_STARTED)
{
if(GetIsObjectValid(oCamp)!=TRUE)
{
  FloatingTextStringOnCreature("Надо бы развести костер",oPC,FALSE);
  AssignCommand(oPC,ClearAllActions());
}
  else
  {
  if(GetDistanceBetween(oPC,oCamp)>3.0)
  {
  FloatingTextStringOnCreature("Зачем тогда костер? Если ты отправляешь меня спать так далеко от него.",oPC,FALSE);
  AssignCommand(oPC,ClearAllActions());
  }
  else
  {
if (HasItem(oPC,"bedroll")==TRUE)
{
if (HasItem(oPC,"NW_IT_MMIDMISC05")==TRUE)
{
CreateObject(OBJECT_TYPE_PLACEABLE,"krovatka",GetLocation(oPC));
DestroyObject(GetItemPossessedBy(oPC,"NW_IT_MMIDMISC05"));
DestroyObject(GetItemPossessedBy(oPC,"bedroll"));
SetLocalInt(oPC,"slept",1);
DelayCommand(1.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eSleep,oPC,30.0));
DelayCommand(2.0, FadeToBlack(oPC, FADE_SPEED_SLOW));
}
else
{
FloatingTextStringOnCreature("Есть охота! На голодный желудок не уснешь.",oPC,FALSE);
AssignCommand(oPC,ClearAllActions());
}
}
else
{
FloatingTextStringOnCreature("Куда делась моя подстилка? На голой земле я спать не буду.",oPC,FALSE);
AssignCommand(oPC,ClearAllActions());
}
}
  }
}
if (GetLastRestEventType() == REST_EVENTTYPE_REST_FINISHED)
  {
  FadeFromBlack(oPC, FADE_SPEED_SLOW);
  SetLocalInt(oPC,"slept",0);
  CreateItemOnObject("bedroll", oPC,1);
  SetTime(GetTimeHour() + 8, GetTimeMinute(), GetTimeSecond(), GetTimeMillisecond());
  DelayCommand(1.0, AssignCommand(oPC, SpeakString(colorText("Прошло 8 часов", TXT_COLOR_GREEN))));
  DelayCommand(1.5, DestroyObject(oCamp));
  DelayCommand(2.5, DestroyObject(oBedroll));
  if (GetWeight(GetItemInSlot(INVENTORY_SLOT_CHEST,oPC))>20)
  {
  effect eDamage = EffectDamage(d20(1) + 20);
  ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPC);
  FloatingTextStringOnCreature("Спать в доспехах было плохой идеей.",oPC,FALSE);

  }
  }

}
}


  //////////////////////////////////////////////////////////////////////
  /*Если Отдых Окончен или Прерван в арене с тегом начинающимсЯ с "free"
  и игрок находитсЯ на кровати.*/
/////////////////////////////////////

    if(GetStringLeft(sFree,4)=="free" && GetLocalInt(oPC,"on_bed")==1)
    {
        //Если Отдых Завершен
        if (GetLastRestEventType()==REST_EVENTTYPE_REST_FINISHED)
        {
        //Одеваем игрока обратно (теги предметов бывших на нем одетыми читаем из локалок игрока)
        DelayCommand(2.0,AssignCommand(oPC, ActionEquipItem(GetItemPossessedBy(oPC,sArmor), INVENTORY_SLOT_CHEST)));
        DelayCommand(2.0,AssignCommand(oPC, ActionEquipItem(GetItemPossessedBy(oPC,sRightHand), INVENTORY_SLOT_RIGHTHAND)));
        DelayCommand(2.0,AssignCommand(oPC, ActionEquipItem(GetItemPossessedBy(oPC,sLeftHand), INVENTORY_SLOT_LEFTHAND)));
        DelayCommand(2.0,AssignCommand(oPC, ActionEquipItem(GetItemPossessedBy(oPC,sBoots), INVENTORY_SLOT_BOOTS)));
        DelayCommand(2.0,AssignCommand(oPC, ActionEquipItem(GetItemPossessedBy(oPC,sHelmet), INVENTORY_SLOT_HEAD)));
        DelayCommand(2.0,AssignCommand(oPC, ActionEquipItem(GetItemPossessedBy(oPC,sBelt), INVENTORY_SLOT_BELT)));
        DelayCommand(2.0,AssignCommand(oPC, ActionEquipItem(GetItemPossessedBy(oPC,sCloak), INVENTORY_SLOT_CLOAK)));
        DelayCommand(2.0,AssignCommand(oPC, ActionEquipItem(GetItemPossessedBy(oPC,sArms), INVENTORY_SLOT_ARMS)));

        //Встаем с кровати
        AssignCommand(oPC,ActionJumpToObject(oBed));

        //Стираем с игрока все локалки предметов и того что он был на кровати.
        DeleteLocalInt(oPC,"on_bed");
        DeleteLocalString(oPC,"armor");
        DeleteLocalString(oPC,"right");
        DeleteLocalString(oPC,"left");
        DeleteLocalString(oPC,"helmet");
        DeleteLocalString(oPC,"boots");
        DeleteLocalString(oPC,"belt");
        DeleteLocalString(oPC,"cloak");
        DeleteLocalString(oPC,"arms");

        //Убираем эффекты сна
        RemoveEffect(oPC,eBlack);
        SetTime(GetTimeHour() + 8, GetTimeMinute(), GetTimeSecond(), GetTimeMillisecond());
        DelayCommand(1.0, AssignCommand(oPC, SpeakString(colorText("Прошло 8 часов", TXT_COLOR_GREEN))));

        }//Заканчиваем условие "Если Отдых Завершен

}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
fali
сообщение Apr 15 2005, 05:06
Сообщение #1033


Level 3
*

Класс: Бард
Характер: Chaotic Good
Раса: Полуэльф



Давно не была, решила заглянуть. =)
Заодно и вопросы новые задать, пока еще не заснула. %)

Надеюсь, что не ошибаюсь с темой... Итак. :)

Вопросы:
1. Как сделать переключатель музыки на локации? Минимум -- включить/выключить музыку, максимум -- с выбором из нескольких заранее определенных мелодий. :) Лучше всего было бы в двух вариантах -- для предмета в инвентаре и для переключателя на локации. =) Хотя и за один, любой, буду благодарна. :)
2. Как сделать "предмет", с помощью которого можно было бы провести что-то вроде соревнования? Объясняю на примере. :) Есть мишень. Есть несколько лучников. Каждый выпускает по стреле, а мишень в ответ выдает результат -- чей выстрел точнее. Такое можно сделать? :)
3. Продолжение второго. =) То же самое, но, к примеру, стол для борьбы... Эмс... Как там она называется... Ну, когда руку противника к столу припечатать стараются. %) В обчем, на силу проверка идет. Это чтобы сообразить, чем такие соревновательные предметы будут отличатся между собой. :)
4. Не знаю даже, возможно ли такое. =) Тоже переключатель, навроде первого пункта. Но при переключении изменяется не музыка, а сама локация. Например, добавляются столы-стулья, иллюминация разная. =) Впрочем, музыку тоже сюда можно приделать. =) Это возможно? :)

Заранее благодарю за любую помощь. :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение Apr 15 2005, 11:02
Сообщение #1034


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



1. С музыкой еще не работал, сказать затрудняюсь.
2. Ну с мишенью можно по количеству дамага попробовать сделать, а так в НВН либо попал, либо нет...
3. Армреслинг она называется :)Хм, тут даж незнаю, можно попробовать на стол вешать как локал обжект одного из соревнующихся, и когда подойдет второй сравнить их силу, у кого больше, тот и соответственно победил, можно еще довавить кубик, тот же д20, всетаки не всегда решает только сила. Ну еще поставить проверку на расстояние, что бы не соревновались участники в разных локациях :)
4. Это можно, заготовить необходимых плэйсейблов и места, куда их расставлять, а потом, при использовании рычага, объеты "расставлять" куда надо.

Скриптов приложить не могу, ничего такова еще не делал :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 15 2005, 17:56
Сообщение #1035


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (fali @ Apr 15 2005, 06:06)
1. Как сделать переключатель музыки на локации? Минимум -- включить/выключить музыку, максимум -- с выбором из нескольких заранее определенных мелодий. :) Лучше всего было бы в двух вариантах -- для предмета в инвентаре и для переключателя на локации. =) Хотя и за один, любой, буду благодарна. :)

вроде бы нельзя. Гляну что там по этому поводу.
QUOTE (fali @ Apr 15 2005, 06:06)
2. Как сделать "предмет", с помощью которого можно было бы провести что-то вроде соревнования? Объясняю на примере. :) Есть мишень. Есть несколько лучников. Каждый выпускает по стреле, а мишень в ответ выдает результат -- чей выстрел точнее. Такое можно сделать? :)

только если дамаж смотреть, но это не очень верно. Так как сила разная.
QUOTE (fali @ Apr 15 2005, 06:06)
3. Продолжение второго. =) То же самое, но, к примеру, стол для борьбы... Эмс... Как там она называется... Ну, когда руку противника к столу припечатать стараются. %) В обчем, на силу проверка идет. Это чтобы сообразить, чем такие соревновательные предметы будут отличатся между собой. :)

Buldog хороший вариант привел.
QUOTE (fali @ Apr 15 2005, 06:06)
4. Не знаю даже, возможно ли такое. =) Тоже переключатель, навроде первого пункта. Но при переключении изменяется не музыка, а сама локация. Например, добавляются столы-стулья, иллюминация разная. =) Впрочем, музыку тоже сюда можно приделать. =) Это возможно? :)

Можно, но немного мутновато и с ограничениями.

Вариант 1 как описал Buldog, те креатить плейсы в поинтах. Но это мутно.

Вариант 2 - обставь локу как надо. Плейсы все, что нужны. Теперь те, которые должны появиться позже уничтожь (в предмете закладка advanced там есть состояния. В тч там есть и destroyed). Они окажутся под локацией, нивидимые для игроков. Теперь когда надо, вытаскиваем их оттуда посредством например ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 40 41 42 43 44 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 5th May 2025 - 16:26