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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 10 11 12 13 14 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Aiwan
сообщение Oct 23 2004, 18:10
Сообщение #276


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

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



Shad я посмотрел твой модуль. МОЛОДЕЦ! :good:
Признаюсь честно, в ХоТУ я не гамал, эпик спеллы не знаю :crazy: Но то что видел у тебя мне понравилось!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 25 2004, 04:06
Сообщение #277


Level 3
*

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



QUOTE (Aiwan @ Oct 23 2004, 18:10)
Shad  я посмотрел твой модуль. МОЛОДЕЦ!  :good:
Признаюсь честно, в ХоТУ я не гамал, эпик спеллы не знаю  :crazy:  Но то что видел у тебя мне понравилось!

Спасибо, Aiwan. :yes: Значит я не зря старался. :D Осталость применение найти.
П.С. Можно удалять посты о модуле, дабы тему не зафлуживать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 25 2004, 10:01
Сообщение #278


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

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



Все нормально. Если уж наши слова спам, то я Испанский Летчик :pilot:
Может ты бы оформил свой модуль как ссылку и в тему полезных ссылок поставил?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
baskan
сообщение Oct 25 2004, 17:52
Сообщение #279


Level 7
**

Класс: Бард
Характер: Lawful Good
Раса: Фея



Вопросик..

В каком модульном свойстве стоит система лута? :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 25 2004, 18:35
Сообщение #280


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Лут не в модульных свойствах. Он в OnDeath крича.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
baskan
сообщение Oct 25 2004, 21:19
Сообщение #281


Level 7
**

Класс: Бард
Характер: Lawful Good
Раса: Фея



QUOTE (DBColl @ Oct 25 2004, 18:35)
Лут не в модульных свойствах. Он в OnDeath крича.

Ясно..Спасибо :yahoo:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 25 2004, 23:38
Сообщение #282


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

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



Не подскажут ли мастера тулсета: Как сделать цикл перебора всех карт в модуле? Что-то я рылся в функция, рылся - ничего не нашел. Вся беда в том, что невозможно присваивать свою величину перепенной типа object :(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 26 2004, 00:04
Сообщение #283


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

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



А нельзя циклом прогнать объекты, и определить их тип как area?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 26 2004, 01:19
Сообщение #284


Level 3
*

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



Тобур Если можно достучатся до файлов на диске, ResRef-ы карт в файле module.ifo хранятся подряд, возможно это можно использовать.
Можно использовать объекты со специфическим тегом ("sequence_xx") и пробегать по ним.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 26 2004, 03:34
Сообщение #285


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Shad
До ерф-файлов и module.ifo из игры не достучаться.
QUOTE (Тобур @ Oct 25 2004, 23:38)
Вся беда в том, что невозможно присваивать свою величину перепенной типа object

??? Это что значит нельзя?! Кто сказал такую чушь? SetLocalObject(...) нельзя делать??? Или я не понял?.. :this: :unsure:
QUOTE (Aiwan @ Oct 26 2004, 00:04)
А нельзя циклом прогнать объекты, и определить их тип как area?

Это будет слишком долго (если модуль довольно объемный)... Вообще имхо ЛУЧШИЙ вариант - поставить в КАЖДОЙ локе вейп с одинаковым тэгом, допустим "WP_ID_AREA". Потом просто циклом перебираем:
Neverwinter Script Source
object oWP, oArea;
while (GetIsObjectValid(oWP = GetObjectByTag("WP_ID_AREA", n)))
{
    oArea = GetArea(oWP);
    ....//здесь делаешь с локой то, что тебе надо от перебора
    n++;
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 26 2004, 07:41
Сообщение #286


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

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



QUOTE (DBColl @ Oct 26 2004, 03:34)
??? Это что значит нельзя?! Кто сказал такую чушь? SetLocalObject(...) нельзя делать??? Или я не понял?.. :this:  :unsure:

Эхх , если бы все было так просто :(
скриптик
object oMod = GetModule();
int i = 1;
SetLocalObject(oMod,"CurMap",i);
компилируется с ошибкой ERROR: DECLARATION DOES NOT MATCH PARAMETERS, хотя в Лексиконе ясно сказано "object - An integer that represents a particular object in the world (essentially a pointer to a real object)".

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

Через ресрефы тоже плохо - они все разные, через расставленные вэйпоинты - тоже: их надо расставлять.

Объясню для чего мне нужен цикл по картам: дело в том, что на Сиале при сохранении положения персонажа, запоминается тэг локации. Если тэг одинаковый у двух карт, то с восстановлением положения могут быть проблемы. Так как карт у нас около 470, просматривать в тулсете тэг очень долго и муторно. Поэтому я хотел вывести тэги всех карт в текстовый файл или файл БД и потом каким - нибудь стандартным средством определить задвоение.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 26 2004, 09:30
Сообщение #287


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Тобур @ Oct 26 2004, 07:41)
Объясню для чего мне нужен цикл по картам: дело в том, что на Сиале при сохранении положения персонажа, запоминается тэг локации. Если тэг одинаковый у двух карт, то с восстановлением положения могут быть проблемы.

Хех, так в чем проблема запоминать НЕ ТЭГ ЛОКИ, а ЕЕ ОБЪЕКТ?! Уникально. Независимо от тэга?.. Возвращение перса опять-таки делать не по тэгу локи, а по ее объекту...
Добавлено в [mergetime]1098772792[/mergetime]
К тому же, обрати внимание на функцию ObjectToString(object oObj); ;) :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Baal
сообщение Oct 26 2004, 10:51
Сообщение #288


Вечно исчезающий
Иконки Групп

Класс: Маг
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Тобур @ Oct 26 2004, 04:41)

object oMod = GetModule();
int i = 1;
SetLocalObject(oMod,"CurMap",i);

Это мне вобще непонятно %) Как это объекту можно присвоить числовое значение? :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 26 2004, 18:49
Сообщение #289


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

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



QUOTE (DBColl @ Oct 26 2004, 09:30)
Хех, так в чем проблема запоминать НЕ ТЭГ ЛОКИ, а ЕЕ ОБЪЕКТ?! Уникально. Независимо от тэга?.. Возвращение перса опять-таки делать не по тэгу локи, а по ее объекту...
<small>Добавлено в [mergetime]1098772792[/mergetime]</small>
К тому же, обрати внимание на функцию ObjectToString(object oObj); ;) :yes:

Потому что при добавлении новой карты все индексы перестраиваются и со сменой версии модуля игрок может оказаться или не там, где выходил или вообще в стартовой локации. ObjectToString ничего мне не дает - вот если бы была функция StringToObject - это бы все меняло :). Главный мой вопрос - как присвоить переменной типа Object какое то значение, не не пользуясь ссылкой.

QUOTE
QUOTE (Тобур @ Oct 26 2004, 04:41)

object oMod = GetModule();
int i = 1;
SetLocalObject(oMod,"CurMap",i);


Это мне вобще непонятно  Как это объекту можно присвоить числовое значение? 


Я же специально привел ссылку из лексикона - object содержит в себе натуральное число (иначе говоря просто номер объекта). Весь вопрос в том и состоит - как переменной типа object присвоить этот самый номер.

Еще раз повторю - нету в НВН ни функции типа GetNextObjectInArea (только InModule), ни константы OBJECT_TYPE_ для ареи, чтобы выделить из массы объектов именно карту.

Короче, я понял, что тут никто толкового сказать не может :(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 27 2004, 00:19
Сообщение #290


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Тобур @ Oct 26 2004, 18:49)
Короче, я понял, что тут никто толкового сказать не может

Спасибо за твою благодарность в сторону наших попыток помочь. Либо ты слишком умный, либо слишком много у нас времени и главное ДАННЫХ, которые ты представил в своей задаче... :xz: :this: Но так, как ты говоришь и высказываешь мнение о пытающихся помочь - не делается. Здесь, на форуме ВРГ, никто никому ничего не должен, а потерпеть и выудить решение все равно можно. Увы, твое терпение коротко...
QUOTE (Тобур @ Oct 26 2004, 18:49)
Еще раз повторю - нету в НВН ни функции типа GetNextObjectInArea (только InModule), ни константы OBJECT_TYPE_ для ареи, чтобы выделить из массы объектов именно карту.

Мне не нравится немного, что ты "еще раз повторяешь: НЕТУ РЕШЕНИЯ! ЧТО ВЫ МУЧАЕТЕСЬ?". Как будто, задавая вопрос и отвечая сам же на него потом нам, ты говоришь: НУ ВЫ И... КАК ВЫ МОГЛИ ПОДУМАТЬ ТОЛЬКО, ЧТО Я ТАКОГО НЕ ПРОБОВАЛ ДЕЛАТЬ?..
QUOTE (Тобур @ Oct 26 2004, 18:49)
Потому что при добавлении новой карты все индексы перестраиваются и со сменой версии модуля игрок может оказаться или не там, где выходил или вообще в стартовой локации.

Вообще-то индексы не перестраиваются. Они дописываются к последнему элементу.
QUOTE (Тобур @ Oct 26 2004, 18:49)
Главный мой вопрос - как присвоить переменной типа Object какое то значение, не не пользуясь ссылкой.

Ты бы лучше ПОДРОБНО объяснил задачу, а не задавал вопрос, ОТРИЦАТЕЛЬНЫЙ ответ на который, ты сам заранее уже знаешь и ждешь чтобы тебе его просто подтвердили.

Не спеши с выводами, а потерпи и решение придет. ;)

Я понял, тебе надо будет пробегать таким циклом по поиску лок лишь ОДИН раз, на старте модуля? Или я опять не догнал?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 27 2004, 00:34
Сообщение #291


Level 3
*

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



QUOTE (Тобур @ Oct 26 2004, 07:41)
Через ресрефы тоже плохо - они все разные

Можно сохранять ResRef для подтверждения правильности локации.
Но если пройти по модулю нужно один раз за версию - вопрос перешел в разряд теретических. Ведь какой-никакой метод, ты говришь, уже нашел.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 27 2004, 00:46
Сообщение #292


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Тобур @ Oct 26 2004, 07:41)
Поэтому я хотел вывести тэги всех карт в текстовый файл или файл БД и потом каким - нибудь стандартным средством определить задвоение.

Шо цэ есть, ЗАДВОЕНИЕ? :unsure:
Добавлено в [mergetime]1098827906[/mergetime]
QUOTE (Shad @ Oct 27 2004, 00:34)
Можно сохранять ResRef для подтверждения правильности локации.

Вот-вот. Отлично Shad! :yes: :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 27 2004, 07:52
Сообщение #293


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

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



Я извиняюсь за резкость. Я не правильно выразился и благодарен тем, кто откликнулся. Уважаю ваш сайт и форум за нейтральность по отношению к шардам и их разборкам и открытость по отношению к игрокам. Ваш форум - это своеобразная "нейтральная территория", накоторой могут общаться все коммьюнити НВН.
Решение я нашел такое: Я сохраняю в БД какую-то локацию, потом каким-то внешним редактором (в моем случае FoxPro) правлю DBF файл и соэдаю в нем 64000 записи с последовательно увеличивающимся индексом и названием переменной (В моем случае MAP1 , 2 и т.д.), в которой присутствует индекс. Затем в скрипте загрузки модуля вставляю следующий текст:

void CheckAreaTag()
{
object oMod = GetModule();
int iCur = GetLocalInt(oMod,"CurCount");
if (iCur < 64000)
{
WriteTimestampedLogEntry(" ~ Continue ~ "+IntToString(iCur));
int iBegin = iCur;
iCur = iCur +2000;
SetLocalInt(oMod,"CurCount",iCur);
object oArea;
object oTemp;
location lLoc;
string sVarName;
int i;
for (i = iBegin; i < iCur; i++)
{
sVarName = "MAP"+IntToString(i);
lLoc = GetCampaignLocation("TEST",sVarName);
oArea = GetAreaFromLocation(lLoc);
if (GetIsAreaNatural(oArea)!=AREA_INVALID)
WriteTimestampedLogEntry(sVarName + " id "+IntToString(i)+" ; "+"object "+ObjectToString(oArea)+" ; "+GetTag(oArea)+" ; "+GetName(oArea)+" ; "+GetResRef(oArea));
}
DelayCommand(2.0f, CheckAreaTag());

}
else
WriteTimestampedLogEntry(" ~ End ~ "+ IntToString(iCur));

}
void main()
{
WriteTimestampedLogEntry(" ~ Begin check area tag ~ ");
CheckAreaTag();
}

Получившийся текстовый лог-файл открываю в Exсel-e и сохраняю как таблицу (поля я специально разделяю знаком ; , так как Exсel понимает этот знак как разделитель. Дальше уже в Exсel-e можно сортировать , фильтровать и анализировать записи. Таким же образом можно получить сводную информацию обо всех объектах, находящихся на картах в модуле (не в палитре), например о НПС и плэйсэйблах
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 27 2004, 09:41
Сообщение #294


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

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



Тобур даже я вчера до двух ночи голову ломал. ;) Зря ты так :drag:
QUOTE (Тобур @ Oct 27 2004, 10:52)
Я извиняюсь за резкость. Я не правильно выразился и благодарен тем, кто откликнулся. Уважаю ваш сайт и форум за нейтральность по отношению к шардам и их разборкам и открытость по отношению к игрокам. Ваш форум - это своеобразная "нейтральная территория", накоторой могут общаться все коммьюнити НВН.

Все ок! ;) ТО что ты сейчас сказал настолько важно, к примеру для меня :crazy: Ты даже не представляешь :yes: Заходи к нам почаще! :drag: Все плохое забыли :good: И молодец, что победил проблему. Кинь ее в базу скриптов, очень людям поможешь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 27 2004, 17:53
Сообщение #295


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Тобур
Все ок ;). Ты - взрослый человек. :good:

По делу... А дальше что? Ну есть у тебя экселевский файл. И что с ним делать дальше? Я думал тебе данные нужны для обратного использования потом в скрипте... :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Oct 27 2004, 19:28
Сообщение #296


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

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



Изначально моя цель была найти карты, у которых совпадают тэги. Для этого мне надо было получить список тэгов всех карт в модуле - я его получил, хоть и извращенным способом. После этого достаточно отсортировать в экселе таблицу по полю тэга и пробежаться взглядом по ней, чтобы найти задвоенность (дубляж) тэга. Я нашел в 470 картах 4 дубляжа - это тот результат, который я и хотел получить :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
aleVandal
сообщение Oct 27 2004, 19:40
Сообщение #297


Level 4
**

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



Менее извратный способ - создать 2дашку и забивать в нее таги(или ресрефы) локаций. Всего то делов остается - пробежать все строчки одного столбца( с тагами карт ) :crazy:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Oct 28 2004, 01:07
Сообщение #298


Level 3
*

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



Вот, кстати, ещё одно решение. Придумал днём, пока в инет доступа небыло: Можно взять теги прямо из файлов *.are модуля, так сказать напрямую. Я просмотрел несколько (5) файлов карт, из кампаний и новосозданого модуля. Во всех теги хранились после последовательности Tile_AnimLoop3 ровно через 6 байт.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Oct 28 2004, 12:28
Сообщение #299


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Shad @ Oct 28 2004, 01:07)
Вот, кстати, ещё одно решение. Придумал днём, пока в инет доступа небыло: Можно взять теги прямо из файлов *.are модуля, так сказать напрямую. Я просмотрел несколько (5) файлов карт, из кампаний и новосозданого модуля. Во всех теги хранились после последовательности Tile_AnimLoop3 ровно через 6 байт.

А следуя из этого, программульку-анализатор на Сях или Дельфях написать - как 2 пальца... ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
altrush
сообщение Oct 30 2004, 12:42
Сообщение #300


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

Класс: Обыватель
Характер: True Neutral
Раса: Рептилия



Вопрос. Как убрать ВСЕ из инвентаря (нет ли функции соответствующей, аль чето такого)? :umnik:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 10 11 12 13 14 > » 
Ответить в эту темуОткрыть новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 25th April 2024 - 03:57