Автор |
Сообщение |
Struck
Посты: 1946
Откуда:
Возраст:
| 22-06-2011 23:40 GMT3 час. #1494925 |
Вопрос по табличкам!
Ест**5001618d69873ce82a42**"item2","item3"...и т.д.} [/code]
Мне надо из неё получить несколько итемов(причем итем может повторятся) рандомно(количеству итемов можно тоже диапазон задать), и выдавать актору, это как сделать?
Вот как я думаю...:
[code]function textures()
for k in pairs(tbl) do
local items = tbl[math.random(table.getn(6,tbl))]
alife():create(items,
db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
end
end[/code]
Как запретить выдачу тайников с трупов?(Вроде существует какая-то вероятность выдачи в treasure_manager.script, вот её нужно свести на нет) |
Снова в строю.
l |
|
Gun12
Посты: 773
Откуда: СССР
Возраст: 52
| 22-06-2011 23:44 GMT3 час. #1494927 |
|
Не стань номинантом премии Дарвина. |
|
Artos
Посты: 4176
Откуда:
Возраст: 66
| 22-06-2011 23:44 GMT3 час. #1494928 |
Struck
Полистай архивы топика. Разбирались и давались универсалные варианты работы с таблицами с проверками по спискам/кол-вам и пр ...
Вроде бы в хурнале у erlik'a должны быть готовые варианты с объяснялками.
Или посмотри в Симбионе (в '_f.script') и выбери подходящий вариант.
P.S. О, Gun12 уже ссылку на готовую статью дал ...
P.P.S.
В инициализаторе биндера сталкеров ( stalker_binder:__init (obj) super(obj) ) имеется строка:
self.treasure_processed = false --/ метка 'труп не обыскивался'
Если не требуется ничего с трупов (тайники или деньги) - проще не заморачиваться с менеджером тайников, а изначально зарубить это дело на корню:
self.treasure_processed = true --/ метка 'труп обыскивался'
и никаких обращений к менеджеру тайников не будет.
Для сэйвов (уже начатой игры) - можно метку ставить при спавне непися (:net_spawn). |
отредактировал(а) Artos: 23-06-2011 01:35 GMT3 час.
"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени |
|
Ma$ter
Посты: 477
Откуда: Tamboff
Возраст:
| 23-06-2011 00:54 GMT3 час. #1494945 |
А можете пояснить за что отвечает функция vector_rotate_y(dir, angle) в _g.script?
И за что отвечает второй аргумент?
И есть ли готовый код, который спавнит объект ровно перед актором? Я смотрел разнообразные повелители зоны, но мне этот код не подходит, нужно чтобы объект появился в том месте, куда смотрит актор |
Знание assembler, C/C++, Pascal, Lua. |
|
Artos
Посты: 4176
Откуда:
Возраст: 66
| 23-06-2011 01:16 GMT3 час. #1494949 |
Ma$ter
А ты не пробовал 'в тупую' перевести имя второго аргумента?
С учетом уже оставленно разработчиками комментария и анализа кода получишь:
"Поворачивает вектор вокруг оси 'Y' против часовой стрелки на заданный (в градусах) угол."
Готовый код можно отыскать в архивах топика. Помнится MRN$ выкладывал свою наработку по 'scop_menu', где можно было спавнить по направлению взгляда.
Вот только все одно потребуется указывать д |
отредактировал(а) Artos: 23-06-2011 02:18 GMT3 час.
"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени |
|
singapur22
Посты: 2089
Откуда: Рубцовск
Возраст: 45
| 23-06-2011 04:54 GMT3 час. #1494965 |
Artos local Func = oPk[sFunc] --/ WARNING! для методов классов не применимо!
Немн**5008618d69873ce82a42**local Func = net_packet[sFunc][/code]
Далее изменяем и вызов метода, под передачу в него нужного объекта:
[code]table.insert( tTbl, Func(oPk) )[/code]
И никаких: --/ WARNING! для методов классов не применимо! не потребуется. :-) |
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта. |
|
Artos
Посты: 4176
Откуда:
Возраст: 66
| 23-06-2011 06:47 GMT3 час. #1494969 |
singapur22
Попытка чтения из нет |
"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени |
|
MRN$
Посты: 114
Откуда:
Возраст: 17
| 23-06-2011 10:45 GMT3 час. #1495029 |
Заинтересовался сочетанием клавиш "Shift + F" - "тащить, нести".
К каким объектам оно применимо в принципе? И к каким нет?
Вроде как не все мировые модели можно таскать...
И ещё. В xml-файлах есть некое "$$ACTION_USE$$". Что это такое? Как его правильно задействовать? И есть-ли ещё какие-нибудь "$$ACTION_"-ы ?
---------------
Ma$ter, посмотри в СКОП-е (file.qip.ru/file/xpXQ0Gdl/SCOP_08b101.html) функцию "Get_Point_Param". К ней ещё понадобиться функция "Get_LvidToGvid". Если надо дистанцию до "упора" взгляда ГГ, то это есть в "длл-ках Маландринуса". |
всё легко |
|
VOva-VIP
Посты: 325
Откуда: Миасс
Возраст: 28
| 23-06-2011 11:03 GMT3 час. #1495038 |
Есть одна проблемка: сделал диалог, приписал start_dialog в характер к нужному НПС, но диалога у него не появляется. Ранее к нему уже добавлял 2 диалога, они работают нормально. Может ошибка в чем?
Вот диалог:
И инфопоршень mil_shugan5_start выполняется 100%, т. к. по нему квест начинается. |
|
|
Ma$ter
Посты: 477
Откуда: Tamboff
Возраст:
| 23-06-2011 12:25 GMT3 час. #1495081 |
MRN$
Да, уже скачал SCOP и разбираюсь
Shift + F
Собственно список того что можно таскать задается в файле system секция ph_capture_visuals
$$ACTION_USE$$
Если я не ошибаюсь, то эта строка просто возвращает название клавиши. Например:
Обыскать тайник ($$ACTION_USE$$)
В игре мы видим Обыскать тайник (F(ну или какая нибудь другая кнопка, которая висит у нас на использование))
А список всех ACTION_*** я думаю можно узнать в файле user.ltx |
Знание assembler, C/C++, Pascal, Lua. |
|
singapur22
Посты: 2089
Откуда: Рубцовск
Возраст: 45
| 23-06-2011 12:43 GMT3 час. #1495100 |
Artos Попытка чтения из нет пакета с вариантом:
Код:
local Func = net_packet[sFunc]
- возвращает ошибку: "LUA error: pure virtual function called"
Довольно странное событие. При тестировании данного кода в другом месте, результат выдаётся положительный. Но стоит использовать его в net_utils, получаем матерную ругань. Интересно, и чем же данный файл отличается от других?! Я сначала подумал, что это изза того, что функции Get_Left() и Set_Left() локальные, но не тут то было. При установке функции на локальные, и в тестовом файле, результат так же выдаётся положительный.
По сути, данная ругань выводится при попытке переопределить метод базового класса (в теле дочернего класса), если онный (метод) не является виртуальным. Но тут то мы производим действие в теле обычной функции.
Короче говоря, я лично ничего не понял. Да собственно и бог с ним, ведь всегда можно определить метод через объект класса. Но всётаки хотелось бы узнать причину, почему так происходит в данном случае?!!! |
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта. |
|
| 23-06-2011 12:51 GMT3 час. #1495106 |
А как через hex прикрепить текстуру к оружию. |
|
|
Ma$ter
Посты: 477
Откуда: Tamboff
Возраст:
| 23-06-2011 15:14 GMT3 час. #1495194 |
А можно ли как нибудь повернуть объект? на подобие функции set_actor_direction() но только для физических объектов |
Знание assembler, C/C++, Pascal, Lua. |
|
| 23-06-2011 15:32 GMT3 час. #1495203 |
А из-за чего может быть безлоговый вылет при бинде и лоаде зомби в bind_monster? Вылет не на чистой игре, а в моде.
добавлено спустя 15 минут
Ma$ter, был такой вопрос от меня недавно. Говорили, что методов поворота нет. Но можно попробовать через нет-пакет изменить fixed_bones. |
отредактировал(а) SkyLoader: 23-06-2011 15:48 GMT3 час.
Хочешь работать нормально, работай один! |
|
VOva-VIP
Посты: 325
Откуда: Миасс
Возраст: 28
| 23-06-2011 16:13 GMT3 час. #1495220 |
Как добавить в игру возможность ремонтировать броню, оружие у НПС, например Бармена? |
|
|
Struck
Посты: 1946
Откуда:
Возраст:
| 23-06-2011 16:47 GMT3 час. #1495240 |
SkyLoader а чего делал то?
VOva-VIP напиши скрипт и диалог(динамический, если красивости нужны) |
Снова в строю.
l |
|
| 23-06-2011 17:52 GMT3 час. #1495278 |
Struck, никаких манипуляций в bind_monster я не делал.
Вылет у меня при загрузке сохранения, а секция зомби новая, с новой моделью. Если сделать этой секции просто унаследовать секцию m_zombie_e (без новой модели), то все-равно вылет будет. Но если унаследовать секцию патронов - все нормально. Кто-нибудь с таким сталкивался? |
Хочешь работать нормально, работай один! |
|
Struck
Посты: 1946
Откуда:
Возраст:
| 23-06-2011 18:31 GMT3 час. #1495299 |
SkyLoader т.е. хочешь сказать если спанвить его как пачку патронов то все нормально?...может дело в анимациях? |
Снова в строю.
l |
|
| 23-06-2011 19:32 GMT3 час. #1495320 |
Struck, Если сделать этой секции просто унаследовать секцию m_zombie_e (без новой модели), то все-равно вылет будет.
А модель на обычных анимках.
Вылеты бывают нестабильные, поэтому понятно, что сначала зомби нормально работают. Хотя и бывало то, что когда неписи стреляли по ним, был безлоговые вылеты. |
Хочешь работать нормально, работай один! |
|
Struck
Посты: 1946
Откуда:
Возраст:
| 23-06-2011 19:37 GMT3 час. #1495327 |
С чем могут быть связаны выл**5001618d69873ce82a42**t to compare number with nil
[/code]
У меня конкретно вылетает при загрузке сейва. |
Снова в строю.
l |
|
| 23-06-2011 20:32 GMT3 час. #1495352 |
Смотрел предыдущие ответы на вопросы. Там был вопрос о том, чтобы НПС не стрелял в ГГ.
Но мне то нужно, чтобы НПС стрелял во всех кроме ГГ, и оставался к ГГ нейтральным даже если пальнуть в НПСа.
Т.е. нужно чтобы НПС игнорировал хит от ГГ в схеме camp
Такое возможно? Если да, то как? |
|
|
Struck
Посты: 1946
Откуда:
Возраст:
| 23-06-2011 20:50 GMT3 час. #1495359 |
Mehanik Yar ты логику ему пишешь или просто скрипт?(если логику, то подсказать не смогу) |
Снова в строю.
l |
|
| 23-06-2011 20:52 GMT3 час. #1495361 |
Struck, версия патча отличная от 1.0004
Mehanik Yar, посмотри логику неписей, идущих по подземелью Юпитера. Там реакция на хит сделана интересно. |
Хочешь работать нормально, работай один! |
|
Struck
Посты: 1946
Откуда:
Возраст:
| 23-06-2011 21:01 GMT3 час. #1495364 |
SkyLoader а, всмысле сам дллки "тасовал"/"совмещал"? Ну и чего же ты хочешь?:-) |
Снова в строю.
l |
|
| 23-06-2011 21:09 GMT3 час. #1495374 |
SkyLoader а там логика этих вот НПСов в подземельях пишется в алл спавне или в ltx файле? |
|
|
| 23-06-2011 21:27 GMT3 час. #1495388 |
Struck, не, это я тебе про вылет твой говорю. Он бывает, если моды для одного патча, а у тебя другой патч.
Mehanik Yar, configs\underpass\pas_b400_canalisation |
Хочешь работать нормально, работай один! |
|
Struck
Посты: 1946
Откуда:
Возраст:
| 23-06-2011 21:37 GMT3 час. #1495390 |
SkyLoader а, логично...сам что-то не подумал:-)
добавлено спустя 11 минут
...нет, не спасло |
отредактировал(а) Struck: 23-06-2011 21:48 GMT3 час.
Снова в строю.
l |
|
Artos
Посты: 4176
Откуда:
Возраст: 66
| 23-06-2011 22:03 GMT3 час. #1495397 |
Struck
Сколь можно твердить: "Задавая вопрос - потрудитесь давать достаточно полную информацию касающуюся его!".
Вопрошая про вылет (не из 'чистой' игры) необходимо приводить скрипт (иль его кусок), на который ссылается лог ошибки и указывать, какие принципиальные изменения внесены в структуру скриптов.
Иначе ... начинаются предполагалки.
Твой вылет ('dialog_manager.script:393') наиболее вероятно из-за того, что исходный скрипт 'dialog_manager.script' от версии 1.0005/6, а биндер сталкеров 'xr_motivator.script' от 1.0004 иль в него внесена строка от 1.0004, которая обращается к менеджеру диалогов (см. motivator_binder:load(reader) и в частности: dialog_manager.load(self.object, reader, self.npc_script_version)). |
"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени |
|
| 23-06-2011 22:16 GMT3 час. #1495399 |
А нет ли случаем такой функции, при вызове которой в логике НПС, он, НПС, становится дружелюбным к ГГ?
И ещё, НПС почему-то не хочет стрелять по изломам, по полтергейстам стреляет, а по изломам не хочет.
От это группировки не зависит. |
|
|
Struck
Посты: 1946
Откуда:
Возраст:
| 23-06-2011 22:19 GMT3 час. #1495400 |
Mehanik Yar если метод чтобы сделать нпс другом(примени к гейм объекту), напиши функцию в xr_effects и вызывай в логике |
Снова в строю.
l |
|
Эта тема закрыта, публикация новых сообщений недоступна.