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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
135 страниц V  « < 68 69 70 71 72 > »   
Ответить в эту темуОткрыть новую тему
> ОДИНОЧНЫЙ ВОПРОС, на любую тулсетовскую тему
azathoth
сообщение Jul 24 2006, 18:39
Сообщение #1711


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

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



Zirrex, дело может быть не в получении, а в потере вещей. Во многих системах есть такая вещь: при выходе персонажа с него снимаются все вещи с "Plot" флагом и отадются другому первому попавшемуся игроку. Это сделано для того, чтобы важные вещи не терялись, а оставались на сервере, и в сюжет не застопорился бы из-за их исчезновения. Симптомы похожи.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 24 2006, 20:35
Сообщение #1712


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

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



azathoth, вещи не Plot. Я вообще на сервере этот флажок не использую. С ним есть некоторые проблемы. Потом, вещи исчезают не в момент выхода, а в момент входа, причем перед этим должен произойти рестарт. dumbo правильно привел описание эвента, все вещи заново выдаются персонажу, когда он входит после рестарта на шард. Очень похоже, что в момент входа нескольких игроков, определенные вещи, какие именно, я знаю, теряют своих хозяев, и выдаются случайным образом. Если в новой версии не проявится подобный "глюк", значит удалось найти причину.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 27 2006, 22:57
Сообщение #1713


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

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



Как обмануть функцию Random? Существует цикл, в который встроен переключатель (switch). В зависимости от настроек с уровнем, изменяется число от 1 до 5. Чем выше уровень персонажа, тем больше число. Чем выше число, тем больше case используется в переключателе. Т.е., если уровень ниже 7, то case всего 4. Цикл прокручивается 1 раз, а если уровень выше 7 уровня, то case 8, и цикл прокручивается 2 раза. Функция Random встроена в цикл, а значит, значение каждый раз новое. Но есть большой шанс, что цифра повторится. Когда цикл прокручивается 2 раза, изменить вторую цифру, если она совпадет с первой, легко, но когда таких чисел становится больше 2, то тут уже сложнее.

Для примера, берем Random(4)+1, и прокручиваем цикл 4 раза. Каждый раз должно получиться другое число, и числа не должны повториться. Но как этого добиться?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jul 27 2006, 23:59
Сообщение #1714


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

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



QUOTE(Zirrex @ Jul 27 2006, 23:57) [snapback]88468[/snapback]
берем Random(4)+1, и прокручиваем цикл 4 раза. Каждый раз должно получиться другое число, и числа не должны повториться

это уже не случайное число. делай массив и на каждом проходе клади туда число. потом сверяй.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jul 28 2006, 00:00
Сообщение #1715


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

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



Вот, что говорит Яндекс.
http://www.yandex.ru/yandpage?&q=13740...%25D3%25D4%25C9
Но отсутствие массивов в NWN сильно мешает это реализовать.
В конце концов, можно сделать псевдомассив, расположить там числа и перемешать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Jul 28 2006, 00:15
Сообщение #1716


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



По вещам. Если скрипт стоит на OnAcquire, то цикл там лишний, ибо тогда скрипт пробегает по итему Н раз при Н итемах. Если на входе в мод/локу, то попробуй перенести его на триггер, который нельзя обойти. Как-то пробовал давно - некоторые функции в OnEnter локи или мода не работали помнится. Это я к тому, что у нас тоже стоит удаление вещей на входе, на триггере (в основном это ключи), но проблем никогда не было.


По рандому. Варианта 2.

- попроще. Написать свой рандом (на базе нвновского) на сишный аналог. Т.е. берем Random() от большого уникального семени - время в секундах, другие рандомы и т.п., можно кучу разных результатов складывать, умножать на коэффициент, не важно, важно получить уникальное число побольше (скажем десятки тысяч), потом делим вывод рандома на нужный нам дайс с остатком. Что-то типа Random(nSeed) % 6 (получим число 0-5), дальше думаю все понятно.
Конечно тоже не идеал, но совпадений становится меньше, проверно.

- посложней. Записывать все выпадающие варианты. Скажем на локалку на вэйпоинте. В качестве строки. Если чисел до 10 (0-9), то все просто - просто пишем подряд в строку, и пока FindSubstring() выдает что-то отличное от -1 гоняем рандом в цикле. Если числа по 2+ цифр, то ставим между ними к примеру банальный прочерк при записи. Вроде так (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 28 2006, 05:34
Сообщение #1717


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

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



НВН ский рандом очень привязан к локациям и прочему. В итоге на малой локе рандом будет одни и тем же числом почти всегда. Я с этим столкнулся при случайных боях. У меян было 7 локаций примерно одного размера. В итоге почти неделю я искал ошибку в скрипте, всегда выдавало одно число. Скажем почти всегда. Из 10 раз 9 выпадало одно. Так что с рандомом поосторожней.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 28 2006, 08:59
Сообщение #1718


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

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



Я сделал проще, у меня 20 case строк. В зависимости от требуемого числа (1-5) к стартову числу Random(4)+1 стал прибавлять 5, 9, 13, 17. В итоге у меня получилось, что когда цикл прокручивается 2 раза, число сначала берется в промежутке от 1 до 4, далее от 5 до 8, и т.д. Т.е., даже если цикл прокручивается 5 раз, числа никогда не повторятся.

denis0k, никаких эвентов, отдельный скрипт, который будет срабатывать только в момент смерти существа. А что касается предложения, то тут то все просто. Чтобы получилось уникальное число, можно написать такую строчку: Random(20) + (Random(20) / 20.00).

Про запись уже думал. Только это лишняя проверка, и она заставит цикл прокручиваться лишний раз. А если не выпадет иное число очень долго, то цикл подвесит игру (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 30 2006, 22:22
Сообщение #1719


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

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



Столкнулся с такой ситуацией, когда невозможно рестартовать модуль. Доступа к серверу нету, скрипта для рестарта тоже нету. И что же? Такой возможности нет даже среди консольных команд. Спрашивается, а почему за время существования игры туда их не внесли? Есть ли вообще возможность рестарта с помощью консоли?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Aug 1 2006, 16:20
Сообщение #1720


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

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



Для генерации двух несовпадающих чисел из N можно использовать такую хормулу:
NSS
int var1 = Random(N);
int var2 = (1 + var1 + Random(N - 1)) % N;

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

Можно вывести хормулу и для большего количества чисел, но, к примеру, на моем компьютере выбор 3х уникальных вариантов из 5 происходил мгновенно, когда это когда-то делал.

---

NSS
void StartNewModule(string sModuleName)

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

Сообщение отредактировал azathoth - Aug 1 2006, 16:21
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Aug 1 2006, 19:08
Сообщение #1721


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



1. Рестарт из игры возможен только способом, написанным выше. Например, с дмской палки (но ее на данный момент конечно же нет, иначе проблемы бы не было).
2. Положить серв грубо, нвнх его должен поднять. Народных умельцев полно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Aug 4 2006, 11:08
Сообщение #1722


Level 5
**

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



У меня такой вопрос. В диологе NPS должен сказать определённую фразу несколько раз. Как сделать что бы не писать её ещё раз, то есть как обратиться к уже написаной фразе в разных местах.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Aug 4 2006, 11:23
Сообщение #1723


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

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



Читай туториал Айвана. Там всё написано.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Aug 4 2006, 14:17
Сообщение #1724


Level 5
**

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



Спасибо разобрался, а как сделать, что бы после смерти NPS в журнале появлялась запись.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 4 2006, 15:10
Сообщение #1725


Level 4
**

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



Переделай ЭТОТ скрипт под свои нужды, то есть:

NSS
GiveXPToCreature(oKiller, 500);

Замени на:
NSS
AddJournalQuestEntry("Таг_квеста", Номер_задания, oKiller);


З.Ы: ЛУЧШАЯ_В_МИРЕ_КНОПКА
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Aug 4 2006, 15:56
Сообщение #1726


Level 5
**

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



Огромное спасибо! (IMG:style_emoticons/kolobok_light/thank_you.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение Aug 9 2006, 11:17
Сообщение #1727


Level 5
**

Класс: Убийца
Характер: Chaotic Neutral
Раса: Полуэльф



Привет!У меня вопрос,что нового в версии 1.66 чем она лучше предыдущих?Кто знает напишите.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Aug 9 2006, 11:20
Сообщение #1728


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

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



QUOTE(Noah @ Aug 9 2006, 12:17) [snapback]89299[/snapback]

Привет!У меня вопрос,что нового в версии 1.66 чем она лучше предыдущих?Кто знает напишите.
Смотри файл NWNv166.txt в своей папке с НВНом или раздел патчей на сайте Bioware.
Кстати, последний патч - 1.67.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
helvene
сообщение Aug 9 2006, 11:24
Сообщение #1729


Mystery
Иконки Групп

Класс: Маг
Характер: Lawful Evil
Раса: Тварь
NWN: Контент
Амен



QUOTE(virusman @ Aug 9 2006, 12:20) [snapback]89300[/snapback]
Кстати, последний патч - 1.67.

Скоро уже 1.68 будет
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Aug 9 2006, 16:20
Сообщение #1730


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

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



Неужели мы наконец-то увидим в игре официальных лошадок? (IMG:style_emoticons/kolobok_light/smile.gif) Именно в этом патче обещали их, да и многие другие вкусности. Странно, когда известили, что поддерживать НВН больше не будут, и мы не увидим патча 1.68, пропала всякая надежда на дальнейшие косметические улучшения игры.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Aug 9 2006, 16:39
Сообщение #1731


Level 5
**

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



При помощи како функции можно определить тег только что купленного предмета?

Сообщение отредактировал Milfes - Aug 9 2006, 16:40
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 9 2006, 17:14
Сообщение #1732


Level 4
**

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



В смысле только что купленного ????

NSS
string GetTag(object oObject);


QUOTE
Description:

Returns the tag of oObject. Returns an empty string if oObject is not a valid object.
PC's do return a valid value - an empty string! This is because they have no string defined as thier tag (Even GetObjectByTag("") may return a PC object).

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Aug 9 2006, 17:33
Сообщение #1733


Level 5
**

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



QUOTE
В смысле только что купленного ????


Последний купленый в магазине обьект. Я правда не уверен, что это возможно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Aug 9 2006, 17:49
Сообщение #1734


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

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



Milfes, не совсем тебя понятно, если честно. Тэги у вещей такие, какие ты назначил вещам в палитре, когда их делал. Узнать же тэг можно с помощью вышеописанной функции. Тебе надо сделать какую-нибудь вещь с возможностью использования уникальной силы на любой объект, и после использования этой вещи, запускать скрипт, с помощью которого узнавать тэг объекта, на который был наведен предмет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Neo
сообщение Aug 9 2006, 18:22
Сообщение #1735



Иконки Групп

Класс: Пьяный Мастер
Характер: Lawful Good
Раса: Тварь
MySQL, PHP, JavaScript
Порядок Времени



QUOTE(Milfes @ Aug 9 2006, 18:33) [snapback]89313[/snapback]
Последний купленый в магазине обьект. Я правда не уверен, что это возможно.

Почему же (IMG:style_emoticons/kolobok_light/wink3.gif) возможно.
Правда вариант нетривиален (IMG:style_emoticons/kolobok_light/spiteful.gif)
Объект торговца,
скрипт onOpenStore ставим флаг, указывающий на то, что идет торговля
скрипт onStoreClose снимаем этот флаг
модуль onAcquireItem - проверяем флаг торговли, если true определяем тег предмета (функция указана выше (IMG:style_emoticons/kolobok_light/wink3.gif) ) и запоминаем в локалку, на тот же модуль к примеру. имхо.

ну или это, onOpenStore - запоминаем весь инвентарь, onStoreClose - сравниваем текущий с запомненным (IMG:style_emoticons/kolobok_light/rofl.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

135 страниц V  « < 68 69 70 71 72 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



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