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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
14 страниц V  < 1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты: Все вопросы, Алгоритмы, оптимизация, особености и хитрости в скриптинге
-fenix-
сообщение Dec 4 2006, 13:30
Сообщение #11


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

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



Ну, если компилица, но не работает, то вот что может быть:
NSS
void main(int iAction)
{
    switch(iAction)
    {
    case 1:
        object oPC = GetPCSpeaker(); //Это тут откудавы? (IMG:style_emoticons/kolobok_light/smile.gif) Надо GetLastUsedBy()!
        ActionStartConversation(oPC);
        break;
    case 2:
        .....
        .....
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение Dec 4 2006, 13:36
Сообщение #12


Стилспатер
**

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



QUOTE
Ну, если компилица, но не работает, то вот что может быть:

Не, это я пример набирал - ошибся... там у меня через свои функции сделано, но смысл (вернее принцип такой). Судя по всему не отрабатывает запуск скрипта из листа свойств плэйсибла. Т.е. если я пишу там ИмяСкрипта(параметр), то оно не работает, а если я убиваю параметры и скрипте и при его вызове, то все нормально.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 4 2006, 13:38
Сообщение #13


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

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



Plut, передавать параметр таким образом в скрипт нельзя. Делай через локальные переменные на игроке/объекте или модуле.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение Dec 4 2006, 13:44
Сообщение #14


Стилспатер
**

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



QUOTE
Plut, передавать параметр таким образом в скрипт нельзя. Делай через локальные переменные на игроке/объекте или модуле.

Спасибо за кратки и содержательный ответ. А жаль, все-таки...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Dec 4 2006, 13:46
Сообщение #15


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

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



Эээ, ну это, не мешало бы увидеть пациента целиком. (IMG:style_emoticons/kolobok_light/smile.gif) А на теории я хз че там как отрабатывает, я в НВН 2 не играл и Обсидиановский Тулсет не видел.
Но есть еще момент. В case низя объявлять или инициализировать переменные, делай это до него.

QUOTE(Lex @ Dec 4 2006, 13:38) [snapback]99775[/snapback]
Plut, передавать параметр таким образом в скрипт нельзя. Делай через локальные переменные на игроке/объекте или модуле.

Ой, так вот в чем суть вопроса была. (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал -fenix- - Dec 4 2006, 13:59
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 4 2006, 14:05
Сообщение #16


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

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



QUOTE(Plut @ Dec 4 2006, 13:44) [snapback]99777[/snapback]
пасибо за кратки и содержательный ответ. А жаль, все-таки...

не знаю, чего тебе жаль то. Там и нет возможности вписать, да и как? Если переменная статичная, то нафиг она тебе не нужна, а если динамическая, то на каком этапе ты собираешься ее формировать? Непосредственно перед запуском эвента ? Никак (IMG:style_emoticons/kolobok_light/pardon.gif) Единственное место, где параметры бы пригодились - диалоги, чтобы передавать например номер ответа и от него плясать.. но насколько я знаю в новом тулсете что-то по этому поводу сделано.. посмотреть тока не могу.

QUOTE(Plut @ Dec 4 2006, 12:29) [snapback]99761[/snapback]
Вопрос такой: можно ли на Event плэйсибла, например On Used, навесить скрипт с параметром

можно по другому. В локалку плейса вгоняешь параметр. Например "BLOCK" и разные значения туда, а в скрипте
NSS
..
int nBLOCK = GetLocalInt(OBJECT_SELF,"BLOCK");
switch (nBLOCK)
{
case 1: // ---- //
    break;
case 2: // ---- //
    break;
// И так далее
}
...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение Dec 4 2006, 17:30
Сообщение #17


Стилспатер
**

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



CODE
Единственное место, где параметры бы пригодились - диалоги, чтобы передавать например номер ответа и от него плясать.. но насколько я знаю в новом тулсете что-то по этому поводу сделано.. посмотреть тока не могу.

Да, по этому поводу там усе сделано. Даже можно строку выводить или в экшн писать по несколько скриптов... Тут все ок. Можно теперь вообще всю обработку диалогов в 1 скрипт запихать... Чтоб не рыть потом тоннами.

QUOTE
В case низя объявлять или инициализировать переменные, делай это до него.

А я в нем и не пытался инициализировать. Я в него пытался передавать входящий параметр...

Согласен, можно и так написать. Идея была сделать скрипт, в котором хранятся On Used, например, всех плэйсиблов или всех дверей... разных... в зависимости, например, от тега... ну и т.д. Это все к сокращению количества скриптов.

Сообщение отредактировал Plut - Dec 4 2006, 17:42
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 4 2006, 18:34
Сообщение #18


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

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



QUOTE(Plut @ Dec 4 2006, 17:30) [snapback]99809[/snapback]
А я в нем и не пытался инициализировать.

пытаешься:
QUOTE(Plut @ Dec 4 2006, 12:29) [snapback]99761[/snapback]
case 1:
object oPC = GetPCSpeaker();

так ни нада. Объявляй object oPC в начале, а в кейсах уже работай с ней.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение Dec 4 2006, 20:51
Сообщение #19


Стилспатер
**

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



QUOTE
так ни нада. Объявляй object oPC в начале, а в кейсах уже работай с ней.

Ну нормально! Ты хочешь сказать, что внутри ветвления нельзя объявлять переменные?!?! Это - бред! 8 лет занимаюсь написанием программ - такого еще не видел... Не знаю, видел ли ты второй тулс, но багов с этим пока не замечено...

Господа... Есть проблема. Проблема в файлике http://www.hotfile.ru/30533/ (1,2Мб - модуль для НВН2)
Там есть диалог с лежаком. Если при первом подходе нажать отдохнуть, то следующая фраза этого лежака не выводится... Не понимаю...

Сообщение отредактировал Plut - Dec 4 2006, 20:52
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Dec 5 2006, 00:06
Сообщение #20


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Если очень хочется, то можно:
NSS
...
case 0:
{
      object oPC = GetPCSpeaker();
}
case 1:
...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 5 2006, 00:56
Сообщение #21


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

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



посмотрел еще раз.. можно в НВН так делать. А затык у меня когда-то был из-за попытки в разных ветках объявить переменную с одним именем.. поэтому я ее и до свича ставлю (IMG:style_emoticons/kolobok_light/smile.gif) Но тебе в данном случае все равно лучше сделать как я написал, ибо игрок у тебя во всех ветках одинаковый (IMG:style_emoticons/kolobok_light/smile.gif)

зы: но вот что-то в свичах нельзя делать точно.. а что, я уже и забыл.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Dec 5 2006, 06:34
Сообщение #22


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

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



QUOTE(Lex @ Dec 5 2006, 00:56) [snapback]99838[/snapback]
зы: но вот что-то в свичах нельзя делать точно.. а что, я уже и забыл.

переменные объявленные в свитчах глючили испокон веков, поддавались неоднократной правке, но не факт что залечились до конца. поэтому, во избежание, так сказать, их лучше не использовать вообще.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение Dec 5 2006, 10:09
Сообщение #23


Стилспатер
**

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



QUOTE
Господа... Есть проблема. Проблема в файлике http://www.hotfile.ru/30533/ (1,2Мб - модуль для НВН2) Там есть диалог с лежаком. Если при первом подходе нажать отдохнуть, то следующая фраза этого лежака не выводится... Не понимаю...

Поставил патч 1.03 - все исправилось. Так что - это глюк тулса.... был.

Сообщение отредактировал Plut - Dec 5 2006, 10:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Dec 5 2006, 10:55
Сообщение #24


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

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



Хз, как там во втором тулсете, но в первом и правда переменные объявленные в свичах глючили, да и инфа о том, что их объявлять там низя, из Лексекона взята.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Dec 5 2006, 12:48
Сообщение #25


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



QUOTE
Да, по этому поводу там усе сделано. Даже можно строку выводить или в экшн писать по несколько скриптов... Тут все ок. Можно теперь вообще всю обработку диалогов в 1 скрипт запихать... Чтоб не рыть потом тоннами.

...ммм а пгодробнее об этом можно и в деталях как именно...для тех, кто пока в обсидиановском тулсете не работает....
насколько все удобней.. итд итп ...плз (IMG:style_emoticons/kolobok_light/biggrin.gif)



Сообщение отредактировал mamuc - Dec 5 2006, 12:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Dec 5 2006, 14:36
Сообщение #26


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



QUOTE(mamuc @ Dec 5 2006, 12:48) [snapback]99860[/snapback]
QUOTE
Да, по этому поводу там усе сделано. Даже можно строку выводить или в экшн писать по несколько скриптов... Тут все ок. Можно теперь вообще всю обработку диалогов в 1 скрипт запихать... Чтоб не рыть потом тоннами.

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


Берешь ветку диалога, выбираешь Экшн -> Добавить и суешь туды скрипт (ну пока как обычно), далее впечатываешь в появившиеся поля переменные для этого скрипта (появляются если он их поддерживает). Если мало - добававить еще таких скриптов к той же ветке, выполнятся они будут по очереди. В игре уже есть пачка простеньких кирпичиков типа "Заставить (таг1) напасть на объект (таг2)", "Забрать итем (таг)" и т.п. Так что можно выстроить комбинацию из них вместо написания отдельного скрипта для каждой ветки.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Dec 5 2006, 15:49
Сообщение #27


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



azathoth большое спасибо за информацию.... (IMG:style_emoticons/kolobok_light/hi.gif)
меня больше всего заинтересовал вот такой нюанс
QUOTE
Даже можно строку выводить

это что-то действительно новое и больше не надо будет с SetCustomToken() работать? или это и есть то самое...

...или я чего-то не так понял... (IMG:style_emoticons/kolobok_light/pardon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vhall
сообщение Dec 5 2006, 16:20
Сообщение #28


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

Класс: Обыватель
Характер: True Neutral
Раса: Дварф
NWN: Контент



Мамук, я не в теме, но думаю, строка это "string". Т.е. можно выводить строку в фразу из тлк.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Gloom
сообщение Dec 5 2006, 18:26
Сообщение #29


Level 2
*

Класс: Псионик
Характер: True Neutral
Раса: Рептилия



Вопрос косвенно связанный со скриптами... а сколько спелов(spells) в NWN2?

Griffon: Открой spells.2da и посчитай.

Сообщение отредактировал Griffon - Dec 6 2006, 10:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение Dec 6 2006, 11:28
Сообщение #30


Стилспатер
**

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



QUOTE
это что-то действительно новое и больше не надо будет с SetCustomToken() работать? или это и есть то самое...

Этого я делать пока не пробовал... попробуем возвращать строку....
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ShadowKeeper
сообщение Dec 15 2006, 11:53
Сообщение #31


Level 1


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



Народ, а не кто не знает, как поменять расу, пол и класс игрока при входе в локацию и желательно при этом и внешний вид?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 15 2006, 12:52
Сообщение #32


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

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



если не урезали это в НВН2, то по идее SetCreatureAppearance или что-нить в этом роде. А если урезали - полиморфом тока наверное (IMG:style_emoticons/kolobok_light/unknw.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ShadowKeeper
сообщение Dec 16 2006, 12:14
Сообщение #33


Level 1


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



NSS
void SetCreatureAppearanceType(object oCreature, int nAppearanceType);

Только меняет внешний вид, при этом, если игрок менял при создании персонажа лицо прическу и из-за некоторой одежды персонаж просто исчезает, но все равно спасибо.
Будим исследовать дальше.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Dec 16 2006, 12:58
Сообщение #34


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Класс не поменять точно, максимум, что можно сделать - это сбить уровни до 1, а затем пролевелять РС обратно до того уровня, на котором он был нужным классом(см функции SetXP() и LevelUpHenchman()). Т.е, к примеру, если меняем на файтера, то Маг(20) превратится в Маг(1)-Воин(19). Если игрок 1го уровня, то этот трюк, конечно, не даст вообще никаких результатов.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ShadowKeeper
сообщение Dec 16 2006, 13:23
Сообщение #35


Level 1


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



Просто по ходу сюжета игрок вспоминает свои прошлые жизни, где он был воином магом и творил великие дела. Попробую обойтись только внешним видом и Cut-Сценами вместо боев (IMG:style_emoticons/kolobok_light/sad.gif) . Отсюда следует следующая проблема, как запретить ему просмотр персонажа?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

14 страниц V  < 1 2 3 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16th July 2025 - 17:28