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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 134 135 136 137 138 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
virusman
сообщение Oct 27 2010, 15:00
Сообщение #3376


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



На самом деле, там ещё 2 переменные вешаются:
NW_JOURNAL_DATE*
NW_JOURNAL_TIME*

Более того, если я ничего не пропустил при беглом взлягде на код, он кроме установки переменных вообще ничего не делает.
То есть можно просто вешать локалки с тем же успехом. Обновление журнальных данных происходит в самой функции SetLocalInt.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Oct 27 2010, 15:14
Сообщение #3377


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Цитата
Более того, если я ничего не пропустил при беглом взлягде на код, он кроме установки переменных вообще ничего не делает.
То есть можно просто вешать локалки с тем же успехом.

Это абстрактный пример. Подразумевается, что вместо AddEntry() там код, реализующий обновление журнала.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Oct 27 2010, 15:15
Сообщение #3378


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Я имел в виду реальный код, реализующий эту функцию.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Oct 27 2010, 15:20
Сообщение #3379


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Реальный код какой функции, AddEntry()? Так я такого вроде на рассмотрение не представлял. Реальный код, реализующий AJQE? Тоже не представлял. Реальный код, использующий AJQE в полной мере просто будет меньше, чем код, игнорирующий включенную в AJQE установку переменных.

Реальный код, реализующий AJQE как минимум будет содержать кучу проверок из тех, что передаются функции, они же будут передаваться и AddEntry, и будут соответственно установки NW_JOURNAL_DATE*, NW_JOURNAL_TIME*, просто мы же не занимаемся переписыванием оригинальных функций, мы показываем, откуда берется переменная для проверки.

Сообщение отредактировал Talarasha - Oct 27 2010, 15:28
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Laajin
сообщение Oct 27 2010, 15:26
Сообщение #3380


Level 5
**

Класс: Пьяный Мастер
Характер: Chaotic Good
Раса: Человек



Да он про сам код игры, а не язык нвнскриптинг
Цитата
На самом деле, там ещё 2 переменные вешаются:
NW_JOURNAL_DATE*
NW_JOURNAL_TIME*

А время и дата возвращаются в каком виде? Просто у времени там часы, минуты, сек, а дата, дни месяцы и тд.

Сообщение отредактировал Laajin - Oct 27 2010, 15:27
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Oct 27 2010, 15:29
Сообщение #3381


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Цитата
Да он про сам код игры, а не язык нвнскриптинг

А, понял.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Oct 27 2010, 15:31
Сообщение #3382


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Цитата(Laajin @ Oct 27 2010, 16:26) *
Да он про сам код игры, а не язык нвнскриптинг

А время и дата возвращаются в каком виде? Просто у времени там часы, минуты, сек, а дата, дни месяцы и тд.
Не смотрел.. Судя по всему, какой-то свой числовой формат.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Laajin
сообщение Oct 27 2010, 15:43
Сообщение #3383


Level 5
**

Класс: Пьяный Мастер
Характер: Chaotic Good
Раса: Человек



Можно в принципе через IntToString посмотреть, наверное
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ollone5
сообщение Jan 1 2011, 15:29
Сообщение #3384


Level 5
**

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



Как сделать так чтобы если игрок зайдет в тень в режиме скрытности его никто не видел?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kiruhs
сообщение Jan 1 2011, 16:41
Сообщение #3385


Level 6
**

Класс: Клерик
Характер: Chaotic Neutral
Раса: Животное



Цитата(Ollone5 @ Jan 1 2011, 14:29) *
Как сделать так чтобы если игрок зайдет в тень в режиме скрытности его никто не видел?

Нарисовать по контурам тени триггер и на онентер вешать скрипт. Например дающий эффект инвиза или санок
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Jan 1 2011, 19:07
Сообщение #3386


Level 7
**

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



Цитата(kiruhs @ Jan 1 2011, 17:41) *
Нарисовать по контурам тени триггер и на онентер вешать скрипт. Например дающий эффект инвиза или санок

Ага, особенно это проканает в экстериорах при смене положения источников света, в тенях от персонажей, да и просто при внесении новых источников света вроде факелов.
Скорее всего никак. Впрочем, человека в стелсе и так не должно быть видно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ollone5
сообщение Jan 3 2011, 09:54
Сообщение #3387


Level 5
**

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



А можно скрипт?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
elsefalse
сообщение Feb 4 2011, 23:04
Сообщение #3388


Level 2
*

Класс: Псионик
Характер: Chaotic Evil
Раса: Чудовище



Помню на кормире у ассасина был запрет на хайд при освещении, только не помню как реализован был.
Вот, может это поможет:
http://www.nwnlexicon.com/compiled/functio...lumination.html
http://www.nwnlexicon.com/compiled/categor...ingeffects.html
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение May 22 2011, 23:54
Сообщение #3389


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



Код
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
object oArea2 = GetObjectByTag(FVgreatbridge);
AssignCommand(oPC, ActionJumpToLocation(oArea2, vector Vector(315.0,GetDistanceBetweenLocations(location Loc1(oArea1,vector vec(0.0, 0.0, 0.0),0.0),GetLocation(oPC)),0.0),0.0));
}

Хотел сделать перемещение между локациями (идешь в триггер на краю локации по, например, дороге, выходишь на другой локации на ту же дорогу, а не на заранее заданный вэйпоинт, например).
Ругается на строчку с ассигнкомманд (ERROR: UNKNOWN STATE IN COMPILER)
Мне кажется, что напортачил в
Код
vector Vector(315.0,GetDistanceBetweenLocations(location Loc1(oArea1,vector vec(0.0, 0.0, 0.0),0.0),GetLocation(oPC)),0.0)

а именно в
Код
GetDistanceBetweenLocations(location Loc1(oArea1,vector vec(0.0, 0.0, 0.0),0.0),GetLocation(oPC))

но где - не понимаю.
Там, где 315 - координата по х (подразумевался переход с левого края одной локации на левый другой, где-то вычитал, что размер тайла - 10х10м, обе локации 32х32 тайла)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение May 23 2011, 06:06
Сообщение #3390


Level 7
**

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



Neverwinter Script
AssignCommand(oPC, ActionJumpToLocation(oArea2, vector Vector(315.0,GetDistanceBetweenLocations(location Loc1(oArea1,vector vec(0.0, 0.0, 0.0),0.0),GetLocation(oPC)),0.0),0.0));


Neverwinter Script
AssignCommand(oPC, ActionJumpToLocation(oArea2, Vector(315.0, GetDistanceBetweenLocations(Loc1(oArea1, vec(0.0, 0.0, 0.0), 0.0), GetLocation(oPC)), 0.0), 0.0));


Зачем-то поставил типы возвращаемых значений при вызове.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение May 23 2011, 08:24
Сообщение #3391


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



Попытася описать
Код
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
object oArea2 = GetObjectByTag(FVgreatbridge);
vector vec = GetPosition(GetObjectByTag("WPfoJumpto"));
location Loc1 = SetLocalLocation(oPC,"Var4locj1",oArea1,vec,0.0);
location l = SetLocalLocation(oPC,"Var4locj2",oArea2,315.0,GetDistanceBetweenLocations(Loc1, GetLocation(oPC)),0.0,0.0);
//vector vect = 315.0,GetDistanceBetweenLocations(Loc1, GetLocation(oPC),0.0);
AssignCommand(oPC, ActionJumpToLocation(l);
}

или
Код
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
object oArea2 = GetObjectByTag(FVgreatbridge);
vector vec = GetPosition(GetObjectByTag("WPfoJumpto"));
location Loc1 = SetLocalLocation(oPC,"Var4locj1",oArea1,vec,0.0);
vector vect = 315.0,GetDistanceBetweenLocations(Loc1, GetLocation(oPC)),0.0);
AssignCommand(oPC, ActionJumpToLocation(oArea2, vect, 0.0);
}

или
Код
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
object oArea2 = GetObjectByTag(FVgreatbridge);
vector vec = GetPosition(GetObjectByTag("WPfoJumpto"));
location Loc1 = SetLocalLocation(oPC,"Var4locj1",oArea1,vec,0.0);
AssignCommand(oPC, ActionJumpToLocation(oArea2, 315.0, GetDistanceBetweenLocations(Loc1, GetLocation(oPC)), 0.0, 0.0);
}

Во всех случаях ругается на строчку с
Код
GetDistanceBetweenLocations(Loc1, GetLocation(oPC))

UNKNOWN STATE IN COMPILER или PARSING VARIABLES LIST, в зависимости от месстонахождения оной
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение May 23 2011, 13:45
Сообщение #3392


Level 11
***

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



Такая ностальгия сейчас...
Жаль, что времена NWN 1 прошли...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение May 23 2011, 17:03
Сообщение #3393


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



попробовал еще вариант
Neverwinter Script
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
object oArea2 = GetObjectByTag("FVgreatbridge");
vector Loc1 = GetPosition(oPC);
vector vec;
location loc;
float f = Loc1.y;
vec = 315,f,0;
loc = oArea2, vec, 0;
AssignCommand(oPC,ActionJumpToLocation(loc));
}

Теперь ругается на отсутствие точки с запятой (ERROR: NO SEMICOLON AFTER EXPRESSION) после
Neverwinter Script
vec = 315,f,0;
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение May 23 2011, 17:31
Сообщение #3394


Level 7
**

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



Neverwinter Script
vec = 315,f,0;
loc = oArea2, vec, 0;

Мой разум отказывается понимать, чего ты хотел этим добиться. В примерах выше такая же ошибка: ты почему-то записываешь не вызов функции для формирования вектора или положения (Vector(float x, float y, float z), Location(object oArea, vector vPosition, float fOrientation)), а только их параметры, удивляясь, что ничего не работает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение May 23 2011, 19:19
Сообщение #3395


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



попробовал описать так:
Neverwinter Script
void main()
{
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
vector Loc1 = GetPosition(oPC);
vector vec = Vector(315.0f,Loc1.y,0.0f);
object oArea2 = GetObjectByTag("FVgreatbridge");
AssignCommand(oPC,ActionJumpToLocation(oArea2, vec(vek.x,vek.y,vek.z), 0.0f));
}

в ассигнкомманде vec с любыми параметрами (пробовал vec(vek.x,vek.y,vek.z), vec(315.0f,Loc1.y,0.0f) и vec(), так же 2й вариант с Loc1.y выраженным отдельной переменной) выдаёт неизвестный индификатор (UNDEFINED IDENTIFIER (vec)), без параметров же ругается на отсутствие, собственно, параметров (DECLARATION DOES NOT MATCH PARAMETERS)

записал по аналогу Лексикона
Neverwinter Script
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
vector Loc1 = GetPosition(oPC);
object oArea2 = GetObjectByTag("FVoutcastle");
vector vec = Vector(315.0f,Loc1.y,0.0f);
float fAngle = 0.0;
location loc = Location(oArea2,vec,fAngle)
AssignCommand(oPC,JumpToLocation(loc);
}

На строчку ассигнкомманд ругается PARSING VARIABLE LIST
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение May 23 2011, 19:26
Сообщение #3396


Level 7
**

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



Neverwinter Script
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
vector Loc1 = GetPosition(oPC);
object oArea2 = GetObjectByTag("FVgreatbridge");
vector vec = Vector(315.0, Loc1.y, 0.0);
AssignCommand(oPC,ActionJumpToLocation(Location(oArea2, vec, 0.0)));
}
или
Neverwinter Script
void main()
{
object oPC = GetEnteringObject();
object oArea1 = GetArea(oPC);
vector Loc1 = GetPosition(oPC);
object oArea2 = GetObjectByTag("FVgreatbridge");
AssignCommand(oPC,ActionJumpToLocation(Location(oArea2, Vector(315.0, Loc1.y, 0.0), 0.0f)));
}

А в твоём последнем вариант скобка не закрыта после AssignCommand.

Сообщение отредактировал greye - May 23 2011, 19:26
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение May 23 2011, 19:48
Сообщение #3397


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



Огромное спасибо, особенно за терпение, работает
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение May 24 2011, 20:24
Сообщение #3398


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



Neverwinter Script
int StartingConditional()
{

    if(!HasItem(GetPCSpeaker(), "Mmodacid")||!HasItem(GetPCSpeaker(), "Mmodacid_long")||!HasItem(GetPCSpeaker(), "Mmodacid_strong"))
        return TRUE;

    return FALSE;
}

Задумка: проверка в диалоге наличия в инвентаре PC одной из трех вещей. (Немного модифицированный скрипт из мастера)
Назначение: на реплику PC
Симптомы: наличие реплики (возможность PC сказать ее) при полном отсутсвии данных предметов или при наличии всех трех
Предостережение: в тэгах предметов несовпадений нет; правильно работает при одном либо двух предметах
Предварительный диагноз: напортачено в логике
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение May 24 2011, 21:12
Сообщение #3399


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Судя по коду, если все теги написаны без ошибок, фраза должна появляться, если отсутствует хотя бы 1 предмет. Если хотя бы 1 тег написан неправильно, то фраза будет появляться всегда. Может, все-таки перепроверить теги? В частности, теги чувствительны к регистру.
Кстати, код намного легче читается, если операторы (вроде ||) выделять пробелами.

Сообщение отредактировал Ilerien - May 24 2011, 21:14
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение May 24 2011, 21:33
Сообщение #3400


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



А такой вопрос, возможно глупый: "!" случаем не обозначает отрицание?

Вопрос снимается, извиняюсь за беспокойство, именно так. Убрал - работает
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 134 135 136 137 138 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27th April 2024 - 18:29