Помощь - Поиск - Пользователи - Календарь
Полная версия: Скрипты
Город Мастеров > РЕДАКТОРЫ > 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
Lemegeton
QUOTE
а где этот мануал почитать ?

Мануал называется Lexicon. Поискать на Ваулте по ключевому слову и скачать за ноябрь. yes.gif

QUOTE
ибо линукс ненамного быстрее винды

Ага. Особенно с Винищем. Такие ТОРМОЗА бывают... swoon.gif

QUOTE
правад он не стоит у меня голой жопой в инет

Вот-вот. biggrin.gif

Все. Ухожу на каникулы. До 11.01.2005. Всем удачно встретить Новый Год!user posted image drinks.gif alcoholic.gif friends.gif
Oksivarus
скажите чт не так в скрипте, а именно почему при загрузке шарда востанавливается только "час" а месяц и неделя сбрасываются на 1 и 1 соответственно

скрипт запоминания:
Neverwinter Script Source
//**
// sohranenie vremeni modulya
//**

void SaveTime(int minutes)
{
  object oMod = GetModule();
  int iHour = GetTimeHour();
  int iDay = GetCalendarDay();
  int iMonth = GetCalendarMonth();
  int iYear = GetCalendarYear();
  SetCampaignInt("time", "YEAR", iYear, oMod);
  SetCampaignInt("time", "MOUTH", iMonth, oMod);
  SetCampaignInt("time", "DAY", iDay, oMod);
  SetCampaignInt("time", "HOUR", iHour, oMod);

}


Neverwinter Script Source
void main()
{
SaveTime(5);
}

скрип задания сохраненного времени:
//**
//zadanie sohranennogo vremeni modulya
//**

void main()
{
  object oMod = GetModule();
  int iMonthNew = GetCampaignInt("time", "MONTH", oMod);
  int iDayNew = GetCampaignInt("time", "DAY", oMod);
  int iYearNew = GetCampaignInt("time", "YEAR", oMod);
  int iHourNew = GetCampaignInt("time", "HOUR", oMod);
  SetCalendar(iYearNew, iMonthNew, iDayNew);
  SetTime(iHourNew,0,0,0);
}
2GoDoom
может потмоу что надо:
SetTime(iHourNew,iDayNew,iMonthNew,iYearNew);
??? (функцию в тулсете не смотрел - просто предположил) pardon.gif

и вдруг стало интересно, что в функции SaveTime делает int Minutes (в коде не вижу) pardon.gif
Alexisss
Помогите срачно нужен простенький скрипт с камерами, ну всмысле мультиплекация, написал сам чёртовы градусы камер всегда тупят я в них не разбираюсь мажет вы знаете как сделать красивую мульплекацию? this.gif
DBColl
QUOTE (Oksivarus @ Jan 4 2005, 21:06)
скажите чт не так в скрипте, а именно почему при загрузке шарда востанавливается только "час" а месяц и неделя сбрасываются на 1 и 1 соответственно

Дело в том, что сохранить то ты можешь текущее время полностью - от миллисекунд до года. А вот восстановить ты сможешь только час, минуту, секунду, миллисекунду... sad.gif

Я так и не понял почему разработчики до сих пор не ввели функции SetYear(...), SetMonth(...), SetDay(...).... dntknw.gif Дурацкий пробел в разработке данного языка. swoon.gif Может поправят в каком очередном патче?.. dntknw.gif unsure.gif
Добавлено в [mergetime]1104910864[/mergetime]
QUOTE (Alexisss @ Jan 5 2005, 03:10)
Помогите срачно нужен простенький скрипт с камерами, ну всмысле мультиплекация, написал сам чёртовы градусы камер всегда тупят я в них не разбираюсь мажет вы знаете как сделать красивую мульплекацию?

Почитай внимательно описание функции... Следует отметить, что когда локация загружается в тулсете, то по дефолту она имеет такие стороны: верх - север (90.0), низ - юг (270.0), слева - запад (180.0), справа - восток (0.0). А вот наклон камеры (TILT), ставь 50.0 - не ошибешься.

А вообще лезь в тему СКРИПТОВЫЕ СЦЕНКИ. Там задавай подобные вопросы. yes.gif
Oksivarus
Немного я не пойму. Выходит что функция есть (взял из лексикона) SetCalendar(int, int, int) но она не работает ??? Но работает только по заданию "часа". Тогда может попробывать переводить все время в часы и потом приплюсовывать именно часы???

void SetCalendar(
int nYear,
int nMonth,
int nDay
);
Twin
DBColl
Хм-хм... Я протестировал - у меня работает.

Скрипт висит на триггере:
Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();
    int nDay = GetCalendarDay();
    int nMonth = GetCalendarMonth();
    int nYear = GetCalendarYear();

    SendMessageToPC(oPC, "Current date: "+
        IntToString(nDay) +" day, "+
        IntToString(nMonth) +" month "+
        IntToString(nYear) +" year"
    );

    nDay += 3;
    nMonth += 2;
    nYear += 1;

    SendMessageToPC(oPC, "New date must be: "+
        IntToString(nDay) +" day, "+
        IntToString(nMonth) +" month "+
        IntToString(nYear) +" year"
    );

    SendMessageToPC(oPC, "Change calendar...");

    SetCalendar(nYear, nMonth, nDay);

    nDay = GetCalendarDay();
    nMonth = GetCalendarMonth();
    nYear = GetCalendarYear();

    SendMessageToPC(oPC, "New date: "+
        IntToString(nDay) +" day, "+
        IntToString(nMonth) +" month "+
        IntToString(nYear) +" year"
    );
}


Результат:
http://ma-gavet.ntpfr.int-nt.ru/user/twin/nwn/calendar.jpg

У вас наверное не работало из-за:
Neverwinter Script Source
// 1) Time can only be advanced forwards; attempting to set the time backwards
//    will result in no change to the calendar.
Falcon
ребятки обьясните как модно сделать чот бы скрпит продолжал выполняться только поле того как отигает анимашка. нужно для крафта, что бы пц сначало крутил руками там че надо и токло потом давлся опыт и итем. воть кусок кода
CODE
ActionPauseConversation();
       AssignCommand(oPC, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0));
       //PlaySound("blahblahblah");
       DelayCommand(3.0, ActionResumeConversation());
   GiveXPToCreature(oPC, XP);
   CreateItemOnObject("food",oPC);
   ClearAllActions();
DBColl
QUOTE (Twin @ Jan 5 2005, 12:52)
SetCalendar(nYear, nMonth, nDay);

shok.gif shok.gif shok.gif Похоже, я отстал от жизни... Это в ХотУ так наверное... У меня стоит СоУ... Я не встречал там такой функции. unsure.gif

В любом случае спасибо, что просветили. good.gif pardon.gif
Добавлено в [mergetime]1104925762[/mergetime]
QUOTE (Falcon @ Jan 5 2005, 13:26)
ребятки обьясните как модно сделать чот бы скрпит продолжал выполняться только поле того как отигает анимашка. нужно для крафта, что бы пц сначало крутил руками там че надо и токло потом давлся опыт и итем. воть кусок кода

Поставь команды в очередь на OBJECT_SELF (то есть, на того, с кем диалог собсна).
Neverwinter Script Source
ActionPauseConversation();
   ActionDoCommand(AssignCommand(oPC, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
     //PlaySound("blahblahblah");
     GiveXPToCreature(oPC, XP);
    CreateItemOnObject("food",oPC);
  ActionWait(1.0); 
   ActionDoCommand(ActionResumeConversation());
   ActionDoCommand(ClearAllActions());  // но зачем чистить акции в диалоге? это же выкинет из него! dntknw.gif
Oksivarus
Twin - можеш поконкретней что "это" и где "это" включяется или отключается ??? я смог решить эту проблему токолько частичьно через перевод года и месяцев в часы а потом заданием времени но это слишком геморно. можеш скрипт привязать к сохранаямым переменным или исправить 2 моих первых скрипта сохранения времени????
Twin
Oksivarus
Да твои скрипты правильно работают (оцениваю на глаз, не проверял). В установке даты есть 1 условие. Её (год) можно проматывать только вперед, но не назад. Если крутишь назад от текущего года, то работать не будет. Так что минимальный год у нас 1352. Максимальный что-то вроде 30000. Остальное должно работать нормально.
Аваддон
Хех, интересно а в зависимости от года возраст персонажей увеличивается? this.gif
Falcon
QUOTE (DBColl @ Jan 5 2005, 14:43)

Поставь команды в очередь на OBJECT_SELF (то есть, на того, с кем диалог собсна).
Neverwinter Script Source
ActionPauseConversation();
   ActionDoCommand(AssignCommand(oPC, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
     //PlaySound("blahblahblah");
     GiveXPToCreature(oPC, XP);
     CreateItemOnObject("food",oPC);
   ActionWait(1.0);  
   ActionDoCommand(ActionResumeConversation());
   ActionDoCommand(ClearAllActions());  // но зачем чистить акции в диалоге? это же выкинет из него! dntknw.gif

Спасибо, тока нифига не пашет всравно. я жму 15 раз на котел он мне дает 15 кусокв мяса 15 оптыа и начинает себе неторопливо играть анимацию. pilot.gif
я просто немонимаю как вообще эти скрипты работают. вроде пишу чето пашет а на какихто мелочах спотыкаюсь и бин аж желание пропадает, токак моя хохловская зависть не дает закинуть smile.gif как это шоб я не понимал smile.gif если другие могут crazy.gif
Tarre Talliorne
Falcon, попробуй так:

Neverwinter Script Source
ActionPauseConversation();
DelayCommand(0.7, AssignCommand(oPC, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));           
DelayCommand(2.1, GiveXPToCreature(oPC, XP);
DelayCommand(2.5, CreateItemOnObject("food",oPC);
DelayCommand(2.9, ClearAllActions();
DelayCommand(4.0, ActionResumeConversation());
Oksivarus
Твин в том то и прикол что вроде дожны но почему они не работают вернее работают но не правильно. Годы я назад точно не мотаю.
Ну вот загружается шард время пошло вперед при этом сохраняется вроде как новое время, а значить годы назад не мотаются. Проверил скрипт на тригер работает, значит год и месц поменять можно.

Исходя из всего этого новый вопрос по старой проблеме есть ли какойто приоритет или запреты на совершение действий записанных в скриптах если эти скрипты запускаются:
1 при загрузке модуля;
2 при срабатывании тригера;
3 совершении действия обычным юзером приведшее к запуску скрипта (в данном случяе наступил на тригер)???

ВСЕМ кто удили время спасибо, но проблема очень большая так как из за этой крохи постоянно переносится старт шарда. sad.gif
DBColl
Neverwinter Script Source
ActionCreateItemOnObject(string sRes, object oObj)
{
   CreateItemOnObject(sRes, oObj);
}  

void main()
{
   object oPC = GetPCSpeaker();
   ActionPauseConversation();    
   ActionDoCommand(AssignCommand(oPC, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
   //PlaySound("blahblahblah");      
   ActionWait(3.0);    // соответственно длительности анимации
   ActionDoCommand(GiveXPToCreature(oPC, XP));     
   ActionCreateItemOnObject("food",oPC);  
   ActionResumeConversation();
   //ActionDoCommand(ClearAllActions());
}


Попробуй так.
Falcon
QUOTE (Tarre Talliorne @ Jan 5 2005, 17:36)
Falcon, попробуй так:

Neverwinter Script Source
ActionPauseConversation();
DelayCommand(0.7, AssignCommand(oPC, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));            
DelayCommand(2.1, GiveXPToCreature(oPC, XP);
DelayCommand(2.5, CreateItemOnObject("food",oPC);
DelayCommand(2.9, ClearAllActions();
DelayCommand(4.0, ActionResumeConversation());

спасибо конечно огомное, заработало в таком виде.
CODE
ctionPauseConversation();
DelayCommand(0.7, AssignCommand(oPC, PlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(2.1, GiveXPToCreature(oPC, XP));
CreateItemOnObject("food",oPC);
DelayCommand(2.9, ClearAllActions());
DelayCommand(4.0, ActionResumeConversation());

там скобки ыли пропцщены видно писал без тусета. но ...........
всеравно нету того результата. тоесть если нажать мышью бытро 15 раз то получишь 15 кусков еды и 15 оптыа а анимация себе играет отдельно. я уже думал может паузу както ставить или брейком прерывать скрипт. может отшвиривать пц от плейса короче незнаю я. тыкаюсь как обезьяна носом в стекло.
-------------------------------
в догонку, вообще от как выход можно диалог сделать но...... говоряший котел чето меня не впечатляет.
DBColl
QUOTE (Falcon @ Jan 5 2005, 18:32)
в догонку, вообще от как выход можно диалог сделать но...... говоряший котел чето меня не впечатляет.

Хм... Так ты бы сразу и сказал, что у тебя ОДНА строка в диалоге! Дело все именно в этом. ActionPauseConversation не сработает, если у тебя НЕТ следующей строки! swoon.gif

Что тебе мешает в возникающем диалоге описать сам котел или то, что собственно происходит, когда чел подошел к нему (зелененьким цветом)?! Больше фантазии! this.gif
fali
Ой, прошу прощения. Не в ту тему забралась...
Перенесла сообщение сюда.

ЗЫ: Странно, серый цвет не работает... о_О
ЗЫЫ: И подчеркивание. О_О Может у меня в настройках что не так... о_О

Добавлено:
Разобралась. =) Всё работает. :)
Aiwan
QUOTE (fali @ Jan 5 2005, 22:52)
ЗЫ: Странно, серый цвет не работает... о_О
ЗЫЫ: И подчеркивание. О_О Может у меня в настройках что не так... о_О

ПРОВЕРКА
Добавлено в [mergetime]1104947070[/mergetime]
fali все пахает...
Falcon
QUOTE (DBColl @ Jan 5 2005, 19:42)
Хм... Так ты бы сразу и сказал, что у тебя ОДНА строка в диалоге! Дело все именно в этом. ActionPauseConversation не сработает, если у тебя НЕТ следующей строки! swoon.gif

Что тебе мешает в возникающем диалоге описать сам котел или то, что собственно происходит, когда чел подошел к нему (зелененьким цветом)?! Больше фантазии! this.gif

а всетаки, скриптом неполучиться никак ??? я разбирал крафт абозиевский, не могу понять как там реализованно. тоже самое при резке камней чар начинает крутить руками, но скока на запускай, он все скидывает пока не отиграет свою анимашку.
Вишес
Просто интересно,
как они прыгают?
В третьей главе орд Андердарка есть такие крылатые мужики, которые скачут с островка на островок.
кто - ни будь знает, как это сделано? Было бы здорово сделать какие-ни бдь сапоги -прыгуны или кеще лучше, специальный фит. это бы увеличело тактические возможности.
Alexisss
Еще рас прошу помогите мне с камерами пожалуйста немогу незнаю что делать cray.gif вообще не знаю застрелица можно swoon.gif , ...........и напишите плизз евис эффект адского шара!
Добавлено в [mergetime]1104975025[/mergetime]
Ой Twin я вижу ты на этом форуме помоги мне а пожалуйстааа.
Chimeric
Так... что-то не ладится. Делаю я, значит, разговор на нескольких NPC. Принцип тот, что персонажа телепортируют из другой зоны прямо на триггер, а триггер запускает разговор со стоящим неподалёку NPC. Дальше по ходу дела говорящие меняются через Speaker Tag. Вроде бы всё должно работать, скрипт запускается, но после первоначальной реплики, стоит только щёлкнуть на CONTINUE, как диалог обрывается. К следующему спикеру не переходит. Почему - непонятно. no.gif
Vhall
Спикеры стоят рядом? unsure.gif
DBColl
QUOTE (Q'elt'rine @ Jan 6 2005, 02:07)
Просто интересно, как они прыгают? В третьей главе орд Андердарка есть такие крылатые мужики, которые скачут с островка на островок. кто - ни будь знает, как это сделано? Было бы здорово сделать какие-ни бдь сапоги -прыгуны или кеще лучше, специальный фит. это бы увеличело тактические возможности.

Они скрываются как бы в небе, а потом приземляются? Тогда это EffectDisappearAppear();.
QUOTE (Chimeric @ Jan 6 2005, 06:08)
К следующему спикеру не переходит. Почему - непонятно.

Может разговаривающие слишком далеко стоят друг от друга и от PC?
Falcon
хлопчики ответть всеткаи на вопрос, мождет ктото знает. как скриптом сделать что бы по окончании работы скипта все последующие действия сбрасывлась.
тмеей такое дело на он-юзед плейса
CODE

int XP =2;
int XXP=3;

int iRollFour = d4(1);


void main()

{
   object oPC = GetLastUsedBy();


   if (!GetIsPC(oPC)) {

   return;

                       }
switch(iRollFour)    //Generated Number
{

case 1:
ActionPauseConversation();
DelayCommand(1.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(2.1, GiveXPToCreature(oPC, XP));
CreateItemOnObject("food",oPC);
DelayCommand(3.8, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_FIREFORGET_VICTORY3, 1.0, 3.0)));
DelayCommand(4.9, ClearAllActions());
DelayCommand(6.0, ActionResumeConversation());

break;

case 2:
ActionPauseConversation();
DelayCommand(1.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(2.1, GiveXPToCreature(oPC, XXP));
CreateItemOnObject("food",oPC);
DelayCommand(3.8, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_FIREFORGET_VICTORY3, 1.0, 3.0)));
DelayCommand(4.9, ClearAllActions());
DelayCommand(6.0, ActionResumeConversation());
break;

case 3:
ActionPauseConversation();
DelayCommand(1.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(3.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_TIRED, 1.0, 3.0)));
DelayCommand(4.9, ClearAllActions());
DelayCommand(6.0, ActionResumeConversation());
break;

case 4:
ActionPauseConversation();
DelayCommand(1.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(3.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_TIRED, 1.0, 3.0)));
DelayCommand(4.9, ClearAllActions());
DelayCommand(6.0, ActionResumeConversation());
break;

}
}

но если нажать 15 раз бысто то этот скрипт начинает 15 раз выполняться.а к4ак сделать так что бы даже если нажал 15 раз, он отигрывает тока один раз а потом брастывает все действия в 0. может ктото знает. ну нехочу я блин диалог на плейс вешать, хоть стреляйте. pilot.gif
mamuc
хмм ...ну вешай локальную перерменную с шагом 2 степеней..и проверяй величину ее при выполнении скрипта
Falcon
QUOTE (mamuc @ Jan 6 2005, 13:23)
хмм ...ну вешай локальную перерменную с шагом 2 степеней..и проверяй величину ее при выполнении скрипта

мне бы кода кусочек я бы сам разобрался уже.
mamuc
CODE

int XP =2;
int XXP=3;

int iRollFour = d4(1);


void main()

{
  object oPC = GetLastUsedBy();


  if (!GetIsPC(oPC)) {

  return;

                      }
// -->
int nUseCheck = GetLocalInt(oPC,"use_foyr");
// <--

switch(iRollFour)    //Generated Number
{

case 1:
// -->
if (nUseCheck & 1) return; //uzhe eto ispoljzoval(2 v stepeni 0)
// <--
ActionPauseConversation();
DelayCommand(1.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(2.1, GiveXPToCreature(oPC, XP));
CreateItemOnObject("food",oPC);
DelayCommand(3.8, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_FIREFORGET_VICTORY3, 1.0, 3.0)));
DelayCommand(4.9, ClearAllActions());
DelayCommand(6.0, ActionResumeConversation());
// -->
SetLocalInt(oPC,"use_foyr",GetLocalInt(oPC,"use_foyr")+1);
// <--
break;

case 2:
// -->
if (nUseCheck & 2) return; //uzhe eto ispoljzoval(2 v stepeni 1)
// <--
ActionPauseConversation();
DelayCommand(1.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(2.1, GiveXPToCreature(oPC, XXP));
CreateItemOnObject("food",oPC);
DelayCommand(3.8, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_FIREFORGET_VICTORY3, 1.0, 3.0)));
DelayCommand(4.9, ClearAllActions());
DelayCommand(6.0, ActionResumeConversation());
// -->
SetLocalInt(oPC,"use_foyr",GetLocalInt(oPC,"use_foyr")+2);
// <--

break;

case 3:
// -->
if (nUseCheck & 4) return; //uzhe eto ispoljzoval(2 v stepeni 2)
// <--
ActionPauseConversation();
DelayCommand(1.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(3.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_TIRED, 1.0, 3.0)));
DelayCommand(4.9, ClearAllActions());
DelayCommand(6.0, ActionResumeConversation());
// -->
SetLocalInt(oPC,"use_foyr",GetLocalInt(oPC,"use_foyr")+4);
// <--

break;

case 4:
// -->
if (nUseCheck & 8) return; //uzhe eto ispoljzoval(2 v stepeni 3)
// <--
ActionPauseConversation();
DelayCommand(1.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 3.0)));
DelayCommand(3.7, AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_TIRED, 1.0, 3.0)));
DelayCommand(4.9, ClearAllActions());
DelayCommand(6.0, ActionResumeConversation());
// -->
SetLocalInt(oPC,"use_foyr",GetLocalInt(oPC,"use_foyr")+8);
// <--

break;

}
}


примерно так ..проверь( у меня сейчас нет возможности это сделать..п.с. коментарии и прочее лишнее потом уберешь)
Falcon
неа, точнее пашеть вроде но после 3- раза перестает вообще выполнять скипт на плейсе. black eye.gif
Chimeric
QUOTE (Vhall’rafein @ Jan 6 2005, 10:59)
Спикеры стоят рядом? unsure.gif

Спикеры, кроме первого, стоят рядом друг с другом, но не со мной. Впрочем, не думаю, что в этом дело (но проверю). Нужен стоящий вплотную NPC для начала разговора, но сомневаюсь, что ВСЕМ нужно стоять рядом. Иначе как, например, возможны диалоги наподобие разговора Дестнера с Фенвиком во 2-ой главе кампании? Там Фенвик уж точно не вплотную стоит... да и прочие...
Аваддон
!Alexisss Отредактируй сообщение свое! Скрипты надо писать с помощью кнопки NSS! Выдели весь скрипт что ты написал и нажми на форуме NSS. И сохрани свое сообщение, а то в твоей белиберде разобрать ничего не могу - время то 6 утра.

ПРИМЕР КАК ПИСАТЬ СКРИПТЫ НА ФОРУМЕ
Пишу скрипт:

void main ()
{
object oSelf = (OBJECT_SELF);
ActionSit(GetLastUsedBy(),oSelf); //Игрок садитсЯ OnUsed стула
}

Выделяю его, и нажимаю на форуме нопку NSS (Neverwinter Script Source)

Результат:

Neverwinter Script Source
void main ()
{
object oSelf = (OBJECT_SELF);
ActionSit(GetLastUsedBy(),oSelf); //Игрок садитсЯ OnUsed стула
}


Всем все сразу понятно.
Alexisss
Ой извените все! спасибо Аваддон действительно даже сам немогу разобрать вот он


Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Name uletet v drug mesn
//:: Copyright © 2005 www.zardas@pochta.ru
//:://////////////////////////////////////////////
/*
    teleport druga mesnost.
*/

//:://////////////////////////////////////////////
//:: Created By: Alexisss
//:: Created On: Sept 25, 2005
//:://////////////////////////////////////////////
void ResolveOldCrystals(object oSelf = OBJECT_SELF);
void main()
{
    location lLoc;
    object oSound = GetNearestObjectByTag("hx_crsyt_snd");

    if(GetTag(OBJECT_SELF) == "hx_crystal_1")
    {
        lLoc = GetLocation(GetObjectByTag("hx_crystal_pc_start_wp"));
        //Ensure that it's the Scrivener's Master who left.
        object oPC = GetPCSpeaker();
        object oScrivener = GetObjectByTag("H2_Scrivener");
        object oMaster = GetMaster(oScrivener);
        if (oPC == oMaster)
        {
            //Remove the Scrivener from the party.
            RemoveHenchman(oPC, oScrivener);
            AssignCommand(oScrivener, ClearAllActions());
            SetLocalInt(oScrivener, "X2_JUST_A_FOLLOWER", FALSE);
        }
    }
    else if(GetTag(OBJECT_SELF) == "hx_crystal_2")
    {
        lLoc = GetLocation(GetObjectByTag("hx_crystal2_pc_start_wp"));
    }
    else
    {
        lLoc = GetLocation(GetObjectByTag("hx_crystal3_pc_start_wp"));
    }

    SetLocalInt(GetArea(OBJECT_SELF), "HX_CRYSTAL1_CUTSCENE", 1);
    PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE);
    SoundObjectStop(oSound);
    ResolveOldCrystals();
    AssignCommand(GetPCSpeaker(), ActionJumpToLocation(lLoc));
}

void ResolveOldCrystals(object oSelf = OBJECT_SELF)
{
    object oCrystal1;
    object oCrystal2;
    object oSound1;
    object oSound2;
    string sTag = GetTag(oSelf);

    if(sTag == "hx_crystal_2")
    {
        oCrystal1 = GetObjectByTag("hx_crystal_1");
        oSound1 = GetNearestObjectByTag("hx_crsyt_snd", oCrystal1);
        // Deactivate them.
        SetLocalInt(GetArea(oCrystal1), "HX_CRYSTAL1_CUTSCENE", 1);
        AssignCommand(oCrystal1, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
        SoundObjectStop(oSound1);
    }
    else if(sTag == "hx_crystal_3")
    {
        oCrystal1 = GetObjectByTag("hx_crystal_1");
        oSound1 = GetNearestObjectByTag("hx_crsyt_snd", oCrystal1);
        // Deactivate them.
        SetLocalInt(GetArea(oCrystal1), "HX_CRYSTAL1_CUTSCENE", 1);
        AssignCommand(oCrystal1, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
        SoundObjectStop(oSound1);

        oCrystal2 = GetObjectByTag("hx_crystal_2");
        oSound2 = GetNearestObjectByTag("hx_crsyt_snd", oCrystal2);
        // Deactivate them.
        SetLocalInt(GetArea(oCrystal2), "HX_CRYSTAL1_CUTSCENE", 1);
        AssignCommand(oCrystal2, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
        SoundObjectStop(oSound2);
    }
    else
    {
        return;
    }
}
Аваддон
Alexisss чего то я наверное туплю.. .А зачем столько прибабахов? Ты этот скрипт сам писал или выдрал откудаль? Скажи что тебе нужно, проще новый написать.
Aiwan
Аваддон полегче с молодежью smile.gif Я свои то скрипты начальные с краской на лице смотрю...
Alexisss опиши КОНКРЕТНО задачу и условия. Возможно такой скрипт уже есть у кого.
Warcat
Всем привет!

Мой первый пост. Так что извиняйте, если в правильную тему не попал.

Подскажите, пожалуйста, как можно программно запустить "отдых" для персонажа. Нашел функцию ForceRest, но она просто восстанавливает все спелы. А как запустить именно стандартный отдых, чтобы сработало событие OnPlayerRest?
Хелп, честное слово, читал, но, видимо, я в нем еще плохо разбираюсь smile.gif

aleVandal
void ActionRest();
Warcat
Спасибо за быстрый ответ. Я пробовал ActionRest запустить, но она у меня не отрабатывала. Похоже, дело все-таки в конфликте с наложенными эффектами, а не в имени функции smile.gif Но теперь хоть знаю в какую сторону копать.
aleVandal
Я пробовал - все ОК.
Если у тебя никаких сообщений не выдается при вызове функции о невозможности отдыха - значит сам косячишь. Ты уверен что на персонажа ставил ActionRest? - если ты вызывал функцию не из событий персонажа - то она не на него срабатывала.
То есть нужно - AssignCommand(oPC,ActionRest());
- где oPC - нужный перс.
Если и так не попрет попробуй
AssignCommand(oPC,ClearAllActions());
AssignCommand(oPC,ActionRest());
Dark Lord
Люди, очень нужно yes.gif . Как скриптом запретить атаковать дальнему оружию ? Т.е. имеется у него (т.е. на нем) переменная, если значение 1 атаковать можно если ноль нельзя. Для скрипта ручной перезарядки.
Лито
Как сделать чтобы при использовании предмета с целью, допустим палочки, игроку начислялся опыт.Сам скрипт который опыт дает я могу написать, но в предметах нет слотов для скрипта this.gif я думаю надо сделать что то в OnAcquirelItem
Warcat
2 al'Vandal

Спасибо. Я уже разобрался. У меня рест не вызывался, потому что несколько эффектов было наложены. Ну, хотелось сон понатуральней сделать smile.gif Лучшее - враг хорошего. Убрал эффекты - все заработало. Просто не был уверен, что правильный action вызываю.

Alexisss
Скрипт писал сам, мне нужен переход в другую местность через разговор!
Может проблема в


Neverwinter Script Source
void ResolveOldCrystals(object oSelf = OBJECT_SELF);
void main()
{
    location lLoc;
    object oSound = GetNearestObjectByTag("hx_crsyt_snd");

    if(GetTag(OBJECT_SELF) == "hx_crystal_1")
    {
Аваддон
Alexisss А зачем функции то всякие замутил? Для красивости? Переход сделай так
Neverwinter Script Source
AssignCommand(GetPCSpeaker(),JumpToLocation(GetLocation(GetObjectByTag("OBJECT_TAG"))));
Aiwan
Alexisss твой скрипт стоит на он юзет объекта. Тебе нужно в разговоре.

Neverwinter Script Source
oPC = GetPCSpeaker(); // Опиши игрока

if(GetTag(OBJECT_SELF) == "hx_crystal_1") // киляй
if (GetIsPC(oPC)) // вот это вставь.

Писал без тулсета проверь синтаксис в редакторе скриптов.

QUOTE (Лито @ Jan 7 2005, 17:57)
Как сделать чтобы при использовании предмета с целью, допустим палочки, игроку начислялся опыт.Сам скрипт который опыт дает я могу написать, но в предметах нет слотов для скрипта  я думаю надо сделать что то в OnAcquirelItem

Едементрарно. В том месте где твой предмет описан то что он делает, добавь строчку дать хр
DBColl
QUOTE (Лито @ Jan 7 2005, 13:57)
Как сделать чтобы при использовании предмета с целью, допустим палочки, игроку начислялся опыт.Сам скрипт который опыт дает я могу написать, но в предметах нет слотов для скриптая думаю надо сделать что то в OnAcquirelItem

В OnActivateItem скрипт.
Для твоего предмета выбери свойство в ветке CastSpell - UniquePower.
Falcon
Neverwinter Script Source
void main()
{
    object oPC=GetPCSpeaker();
    effect eVis = EffectVisualEffect(VFX_IMP_HOLY_AID);
    // Give the speaker the items
    CreateItemOnObject("begma_stone",oPC);
    // Apply visual effect on PC
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
}

не киетится камень. эффект накладывается а камень не созадется. тег итема правильный, итем - краф матириал, гем. в чем могет быть проблемма. я сутки колупаюсь немогу понять.
--------------------
в догонку скрипты вызывается другим скриптом при он_юзд плейса.
Aiwan
QUOTE (Falcon @ Jan 8 2005, 02:58)
не киетится камень.

Надеюсь ты правильно писал ResRef объекта А НЕ ТЕГ.
Neverwinter Script Source
CreateItemOnObject("ResRef(!!!)_stone",oPC, 1);

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