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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 96 97 98 99 100 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Mandrake
сообщение Aug 4 2006, 17:22
Сообщение #2426


Level 3
*

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



kreon, большое спасибо (IMG:style_emoticons/kolobok_light/thank_you.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 4 2006, 17:49
Сообщение #2427


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



QUOTE(kreon @ Aug 4 2006, 16:19) [snapback]89089[/snapback]

NSS
void main() {
object oKiller = GetLastKiller();
object oRays = GetObjectByTag("gore_ray");
object oTrap = GetObjectByTag("gore_trap");
object oRad = GetObjectByTag("radost");
DestroyObject(oRays);
DestroyObject(oTrap);
AssignCommand(oRad, ActionForceMoveToObject(oKiller, TRUE, 1.0, 5.0));
DelayCommand(10.0f, DestroyObject(oRad)); // 10.0 заменить на время, за которое он добегает.
SetLocalInt(oKiller, "cleanmind", GetLocalInt(oKiller, "cleanmind") + 1);
}

P.S.
NSS
AssignCommand(oRays, ActionDoCommand(DestroyObject(oRays)));
- не надо. Достаточно
NSS
DestroyObject(oRays);




Пробовал.. Таким оброзам лучи не дестроятся и не дестроится oRad. Вобщем я переписал скрипт, остались только эти лучи, незнаю как их заставить исчезнуть.. Может визуальные плэйсеблы не поддаются обычным командам типа дестроя? Или в свойствах их надо поковыряться.. я вот думаю насчет пункта Шум(статик) влияет он на скрипты или нет..
---
Ага, не влияет. Дело в самом обьекте чтоли? Не берёт его ничё... Их захайдить какнить можно?

Сообщение отредактировал xHageN - Aug 4 2006, 18:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 4 2006, 18:27
Сообщение #2428


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Хех, распространенная проблема. Убери галку "статик" с объекта и будет счастье. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 4 2006, 18:30
Сообщение #2429


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



QUOTE(-fenix- @ Aug 4 2006, 19:27) [snapback]89117[/snapback]

Хех, распространенная проблема. Убери галку "статик" с объекта и будет счастье. (IMG:style_emoticons/kolobok_light/wink3.gif)


Так я в предыдушем посте написал свою мысль про статик... Включал, убирал - не дестоится луч!
-----
Я понял свою ошибку. Действительно, без статика обьект дестроится.. Просто я задал один таг группе лучей и они не исчезали. Попробовал сейчас одному поставить и он исчес. Похоже придется всем этим лучам уникальные теги писать и утолщать скрипт... ё моё (IMG:style_emoticons/kolobok_light/nea.gif)

Сообщение отредактировал xHageN - Aug 4 2006, 18:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Aug 4 2006, 18:57
Сообщение #2430


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



QUOTE(xHageN @ Aug 4 2006, 19:30) [snapback]89118[/snapback]
Похоже придется всем этим лучам уникальные теги писать и утолщать скрипт... ё моё


(IMG:style_emoticons/kolobok_light/wizard.gif)
NSS
//--- удалить все объекты с тэгом "gore_ray"
  object oObj;
  int nIdx = 0;
  while (GetIsObjectValid(oObj = GetObjectByTag("gore_ray", nIdx)))
  {
    DestroyObject(oObj);
    nIdx++;
  }
//---
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 4 2006, 19:01
Сообщение #2431


Level 4
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить



Перед основной фун-цией поставь:

NSS
void DestroyRays()
{
int i=0;
object oObject = GetObjectByTag("gore_ray", i);

while (GetIsObjectValid(oObject))
    {
    DestroyObject(oObject);
    ++i;
    oObject = GetObjectByTag("gore_ray", i);
    }
}


Сообщение отредактировал Waromon - Aug 7 2006, 20:06
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 4 2006, 19:30
Сообщение #2432


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



Эээх, а я уже все по геморному сделал, поторопился видать.. А эти скриптины я на будущее учту (IMG:style_emoticons/kolobok_light/declare.gif) Спасибо за помощь, столько нового сегодня узнал! (IMG:style_emoticons/kolobok_light/yahoo.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noob_scripter
сообщение Aug 9 2006, 15:53
Сообщение #2433


Level 1


Класс: Монах
Характер: Lawful Neutral
Раса: Человек



Помогите!

Первое : Обновил игру до версии 1.62. Скачал конвертер MP3 to BMU - запускаю - пишет, что не может запустить, нужен какой-то патч 76. Что странно - до этого я его запускал, потом игру переустановил - и не запускается.

Второе : Как покрасить текст в меню диалога в : Синий, зеленый, красный.
Третье : У меня в редакторе не хватает много фоновых звуков (гроза, ливень и т.д.) Где их можно найти?

Заранее спасибо. Извините, если такие вопросы были - найти на 98 страницах уже ничего невозможно...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Aug 9 2006, 16:16
Сообщение #2434


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Noob_scripter, не 76, а 67. Если быть точным, то 1.67. Обнови игру до версии 1.67, тогда утилита у тебя должна заработать.

В диалоговом редакторе есть токены, которые можно ставить в любой части текста, чтобы выделить его другим цветом (<StartAction><StartHighlight><StartCheck>). Все они закрываются токеном "</Start>".

<StartAction> - красный
<StartHighlight> - синий
<StartCheck> - зеленый

Пример: <StartCheck>Убеждение</Start> Я думаю, что вы все же согласитесь на мое предложение!

А у тебя в каком порядке установлена игра? Есть ли в наличие Sou (первый аддон к игре)?

Сообщение отредактировал Zirrex - Aug 9 2006, 16:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 10 2006, 18:09
Сообщение #2435


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



Скажите пожалуйста:

1. Решил в модуле сделать эпизод тюремного заключения. В сявязи с этим появился вопрос - можно ли из
инвентаря перса как бы "скопировать" все шмотки, чтобы при попадании в тюрьму можно было очистить инвентарь, а потом перекинуть все, что было на персе в какойнить сундук (типа покидать в комнату отобранных вещей, чтоб их забрать можно было при побеге))? Если можно, пару команд скрипта. На запоминание вещей и закидвание их в сундук (ну или просто на землю).

2. Хотел еще сделать турнир. Нужно чтобы при смерти перса все начиналось заного. То есть появлялись все мобы, запирались все двери, кароче все приводилось к первоначальному виду. Можно такое провернуть? Если да, то подскажите опять же команды. (IMG:style_emoticons/kolobok_light/bb.gif)

Сообщение отредактировал xHageN - Aug 10 2006, 18:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 10 2006, 18:48
Сообщение #2436


Level 4
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить



Первый вопрос:

NSS
object oPC = ... // Игрок
object oBox = .... // Сундук

object oItem = GetFirstItemInInventory(oPC);
while (GetIsObjectValid(oItem))
{
   if(GetBaseItemType(oItem) == BASE_ITEM_LARGEBOX)    
   {
     CreateItemOnObject(GetResRef(oItem), oBox, 1);
     DestroyObject(oItem, 0.5);
   }
   else
   {
     CopyItem(oItem, oBox, TRUE);
     DestroyObject(oItem);
   }
oItem = GetNextItemInInventory(oPC);
}

int i=0;
for (i=0; i<14; i++)
{
     CopyItem(GetItemInSlot(i, oPC), oBox, TRUE);
    DestroyObject(GetItemInSlot(i, oPC));
}


Второй,

Гм... Команд то много каких есть, опиши подробнее, и из всего че ты перечислил:

Закрыть двери:
NSS
ActionCloseDoor(object oDoor)
// на замок: SetLocked(object oTarget, int bLocked))



Создать моба:
NSS
object CreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="")


Сообщение отредактировал Waromon - Aug 11 2006, 12:36
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 11 2006, 08:42
Сообщение #2437


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



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

А насчет первого вопроса спасиб большое!
Только есть одно но.
CreateItemOnObject(GetResRef(oItem), oBox, 1); на этой строке редактор ошибку выдает. Как я понял, ему не нравится GetResRef, у меня такой команды в списке редактора нет..
И тоже самое по отношению к команде CopyItem

Сообщение отредактировал xHageN - Aug 11 2006, 08:51
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 11 2006, 10:25
Сообщение #2438


Level 4
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить



Насчет второго вопроса, у тебя версия игры какая ??? ТОЧНО знаю что в 1.66 ети функции присутствуют. (IMG:style_emoticons/kolobok_light/wink3.gif)
Тогда, сделаем так:

NSS
object oPC = ...// Игрок
object oBox = ... // Сундук

object oItem = GetFirstItemInInventory(oPC);
while (GetIsObjectValid(oItem))
{
  AssignCommand(oBox, ActionTakeItem(oItem, oPC));

  oItem = GetNextItemInInventory(oPC);
}

int i=0;
for (i=0; i<14; i++)
{
    AssignCommand(oBox, ActionTakeItem(GetItemInSlot(i, oPC), oPC));
}


(да и вообще ниже 1.66 имхо нет смысла чтото делать... Патчись. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Aug 11 2006, 12:01
Сообщение #2439


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



Waromon, ты забыл в первом случае дестроить обьекты используемые игроком(они появляються в сундуке, но и остаються одеты на игрока) (IMG:style_emoticons/kolobok_light/smile.gif)

NSS
int i=0;
for (i=0; i<14; i++)
{
    CopyItem(GetItemInSlot(i, oPC), oBox, TRUE);
    DestroyObject(GetItemInSlot(i, oPC));
}


Извиняюсь, сам тоже ошибся. (IMG:style_emoticons/kolobok_light/biggrin.gif)

Сообщение отредактировал Milfes - Aug 11 2006, 12:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 11 2006, 12:38
Сообщение #2440


Level 4
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить



Функция ActionTakeItem, ЗАБИРАЕТ айтемы, т.е как они могут остатся если их заберут у игрока...? оО (IMG:style_emoticons/kolobok_light/crazy.gif)

Понял о чем ты - исправил.

Сообщение отредактировал Waromon - Aug 11 2006, 12:40
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noob_scripter
сообщение Aug 11 2006, 14:47
Сообщение #2441


Level 1


Класс: Монах
Характер: Lawful Neutral
Раса: Человек



HELP !

Я сделал диалог и четырех веток. В первой ветке при первом же сообщении говорю ,чтоб дали (set) PC Speaker'у локальную переменную voodoo равное константе 1.

Вторую ветку сказал, чтоб проверили: ifGetLocalInt(GetPCSpeaker() "voodoo", == 1); Return false Return TRUE ,короче использовал скрипты разработчиков прямо в диалоге (галочки ставил - дать переменную, проверить переменную).

В итоге (мой диалог полностью на английском, версия игры 1.67) ничо не работает. Сколько раз к челу не подходи - все равно кидает первую ветку. Что делать? Да еще, у меня пара надписей (записи в журнале, несколько надписей на "знаках" (предметы) они на русском и в игры выглядят как абракадабра, однако например скрип сидения на стуле работает, да и ваще все скрипты компилируются, а вот ета переменная не работает! HELP!!!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 11 2006, 14:54
Сообщение #2442


Level 4
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить



QUOTE
Вторую ветку сказал, чтоб проверили: ifGetLocalInt(GetPCSpeaker() "voodoo", == 1); Return false Return TRUE ,


Тут надо наоборот,

NSS
if (GetLocalInt(GetPCSpeaker(), "voodoo")==1)
   return TRUE;
return FALSE;


Кстати, ветки в диалоге нужно распологать в таком порядке,
"2 фраза" - проверка переменной,
"1 фраза" - установка переменной.


QUOTE
Да еще, у меня пара надписей (записи в журнале, несколько надписей на "знаках" (предметы) они на русском и в игры выглядят как абракадабра


А ты не забыл кинуть русские шрифты в папку ovveride ?


ЗЫ: чуть не забыл, скрипты написанные визардом могут не работать из-за наличия русских комментариев, поэтому удали их.

Сообщение отредактировал Waromon - Aug 11 2006, 14:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 11 2006, 15:52
Сообщение #2443


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



QUOTE(Waromon @ Aug 11 2006, 11:25) [snapback]89423[/snapback]

(да и вообще ниже 1.66 имхо нет смысла чтото делать... Патчись. (IMG:style_emoticons/kolobok_light/wink3.gif)


Нашел. Скачал. Поставил. Теперь не представляю, как без него жил (IMG:style_emoticons/kolobok_light/biggrin.gif)

Сообщение отредактировал xHageN - Aug 11 2006, 15:53
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noob_scripter
сообщение Aug 11 2006, 16:45
Сообщение #2444


Level 1


Класс: Монах
Характер: Lawful Neutral
Раса: Человек



Все комментарии английские, пробоовал менять местами return FaLse и return TRUE - все равно не работает. Вообщем визардовские скрипты не работают. Где можнео посмотреть пример такого диалога?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Aug 11 2006, 16:57
Сообщение #2445


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Noob_scripter, а в каком порядке размещаешь ветки диалога? Вначале первый ответ НПС, потом второй ответ НПС. Я правильно описываю? Если оно так, то это неверный подход. Ветку, которая проверяется скриптом, необходимо ставить выше ветки диалога, которую произносит НПС при первой встрече. Когда у тебя переменная переключится на 1, то после повторного обращения к НПС будет видна именно та ветка, которая проверяет твою переменную.

Если на всех ветках диалога стоят скрипты, которые проверяют те или иные условия, то они расставляются по приоритету обращения, когда же одна из веток ответа НПС не имеет скриптов вообще, то всегда должна быть ниже всех остальных его ответов.

Чтобы было понятно, и отложилось в голове, представь, что диалог у тебя дерево условий:
NSS
if (voodoo == 2)
{
// то такое-то будет
}
else if (voodoo == 1)
{
// то такое-то будет
}
else
{
// все остальные значения. В нашем случае, первый ответ НПС.
}

Waromon, ты не совсем верно ему объяснил (IMG:style_emoticons/kolobok_light/smile.gif) Просто есть один нюанс. Как правильно, я описал выше.

Сообщение отредактировал Zirrex - Aug 11 2006, 17:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 11 2006, 17:02
Сообщение #2446


Level 4
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить



Мдя... Я ведь говорил - диалог должен строится по такому принципу:

QUOTE
"2 фраза" - проверка переменной
"1 фраза" - установка переменной


Читай: http://www.city-of-masters.ru/forums/index...?showtopic=1752

Zirrex, опередил. (IMG:style_emoticons/kolobok_light/pardon.gif)

Гммм... Это просто пример. Грубый простой пример. Но РАБОЧИЙ что самое главное.

З.Ы: Noob_scripter, кстати визардские скрипты могут не работать, если строки в диалоге будут состоять из 1 ответа НПЦ, поэтому лучше все делать самому. "Ручками, ручками!" (с)
(просто там локалка вешается на игрока, который в свою очередь определен как GetPCSpeaker)

Сообщение отредактировал Waromon - Aug 11 2006, 17:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
windhover
сообщение Aug 15 2006, 18:46
Сообщение #2447


Level 3
*

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек



Доброго времени суток.
Назрело два вопроса:
1. Можно ли отключить миникарту(или сделать ее "темной") с помощью скриптов, или только редактированием контента?
2. Можно ли плейс статик сделать юзебл и наооборот с помощью скриптов, если да подскажите куда копать?
Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Aug 15 2006, 22:18
Сообщение #2448


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

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



1. Нет.
2. Опиши задачу. Нафик такое надо? Можно просто Удалить/Создать. Свойства соотвественно разные.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
windhover
сообщение Aug 15 2006, 23:25
Сообщение #2449


Level 3
*

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек



QUOTE(Aiwan @ Aug 15 2006, 22:18) [snapback]89697[/snapback]

1. Нет.
2. Опиши задачу. Нафик такое надо? Можно просто Удалить/Создать. Свойства соотвественно разные.


1. Тоесть только hak'ами? Или вообще нельзя? (На Сиале в ДБ карта не отображается)
2. Вопрос отпал.. действительно можно ведь удалить/создать (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Aug 16 2006, 02:34
Сообщение #2450


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



windhover, карта при этом белого цвета? Если да, то использован набор тайлов "Микросет". Иначе же можно карту затирать постоянно у персонажа, который вошел на локацию. Это делается с помощью функции:

NSS
// Expose/Hide the entire map of oArea for oPlayer.
// - oArea: The area that the map will be exposed/hidden for.
// - oPlayer: The player the map will be exposed/hidden for.
// - bExplored: TRUE/FALSE. Whether the map should be completely explored or hidden.
void ExploreAreaForPlayer(object oArea, object oPlayer, int bExplored=TRUE)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 96 97 98 99 100 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th April 2025 - 01:00