Sine Не поршен, а вызов чтения указанных функций в файле xr_effect.script.
Stalk15 Ищи тут ошибку. Правильно ли указываются имена функций?!
Извини. Я многих казусов уже не помню. Например правильно ли sr_idle_2? Или же всётаки sr_idle2?
А лучше, как я обычно делаю, через собаку. Тут уже точно без проблем.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
Ну правильно все, проверял.Еслиб функция была не правильна, то игра ругалась бы на эту функцию.Вроде так.А по моим наблюдениям вылет ...bad argument #2 to 'format'...происходил у меня только, если я логику не правильную писал.Значит что-то в логике...
Что-то вопросы поперли:-):
В ОГСЕ сделали лечение аптечками медленным.Скажите примерно на каком принципе так сделали, скриптами?А если скриптами, то таймером каждую секунду по немножку жизек добавляли?
Stalk15 Ты разве не смотрел у меня в журнале "Супер...Броник"? Та же схема. Ну или почти та же. Вобщем по тому же принципу., только при использовании аптечки. Предварительно в конфигах аптечек отключаем лечение.
P.S. Если ошибка в конфиге, лог никогда тебе не выдаст место её нахождения, так как конфиг для C++ и для Lua тоже, всеголишь текстовая информация.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
После спавна метки на переходе, получаем данную весч:
Expression : I != levels().end()
Function : GameGraph::CHeader::level
File : e:\stalker\patch_1_0004\xr_3da\xrgame\game_graph_inline.h
Line : 171
Description : there is no specified level in the game graph : 107
singapur22
Сорри, но ... 'db.actor.health' - это параметр (значение), а не функция (метод). Соответственно он ничего сам не добавляет.
db.actor.health = db.actor.health + 0.0005 --/ добавление здоровья
db.actor.health = 0.0005 --/ установка здоровью конкретного значения.
Artos В том то и дело, что ничего эта переменная не устанавливает. Она только добавляет, или отнимает указанное значение, в зависимости от потенциала. Можешь сам проверить.
А убедиться просто. Протести вот это:
db.actor.health = -0.3
И твоё здоровье устан**50016ea8aab1bb10eeba**файла
if obj:section() == "medkit" then
alife():create("medkit", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
_my_proxy.test_scripts()
end
--============================================
То, что ты видишь между продолжительными знаками равно, и есть отслеживание использования аптечки.
Как ты наверно уже понял, это нужно вставить в функцию дропа.
отредактировал(а) singapur22: 12-08-2010 20:35 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
У тебя на дропе должна стоять проверка на секцию нужного предмета которые был использован либо выкинут. И без всяких eat() - тем боле что неправильно метод применил. Во первых, он, насколько я помню, для возврата boolean не годится, так как просто производит действие кушанья предмета . Во вторых - если уж производить действие кушанья, то объект для действия нужно определить как гейм обжект db.actor:eat(db.actor:object("medkit")).
Вот пример - вызов стоит на дропе, а сама функция в том же файле, где находится и главная апдейтовая функция
function on_actor_drop(obj) -- должен передаваться объект проверки
if obj:section() == "mag_pult" then
thing = obj
end
end
======================
опоздал singapur22 уже оказывается ответил.
---------------------------------------------------
Сделал кодовый замок - обошелся даже без логики - чисто скриптом. :-)
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
Сейчас не за компом с игрой и перепроверить нет возможности, но ... у меня в сборке немало скриптов, которые обрабатывают этот параметр ...
Твой же пример не совсем корректен. Поясню:
Значение должно лежать в интервале 0...1. Хотя возможно и превышение (2...4...10), т.к. в конфигах неписей заметны установки в '2'.
Можно предположить, что работает некая схема контроля корректности параметра и корректировки при необходимости.
Мы не знаем как работает схема корректировки за границами рабочего диапазона. Возможно даже как ты сказал (добавляет/убавляет), но ... это уже из разряда 'недокументированных особенностей'.
Точно помню, когда возился с лечащими комбезами, то именно указанным выше способом корректировал 'здоровье'.
erlik
Надо будет подумать, как воспользоваться твоими кодовыми наработками :-)
erlik
Все равно спасибо за ответ, а можно одним глазком глянуть на скрипт про блок ящика?:-)
Извеняюсь, но что-то седня вопросы накопились ...Как можно опредилить как/какой хит получил ГГ?Вот например, нужно опредилить получил ГГ хит прыгнув с большой высоты или нет, вообщем, что-то типа если ГГ получил хит прыгнув с высоты то действие...Возможно опредилить?Хотя возможно, ведь когда ГГ падает играет звук, но только как, не подскажете?
Artos
У меня замок собственно как объект игры пока не существует(возможно позже введу его для ГГ), так как является его скриптовой имитацией - на юз ящика с визуалом сейфа или дипломата(на них замки и так как бы есть - а на рюкзак или картонный ящик нелогично ставить) вызывается дефолтная менюшка ввода кода из ui_numpad (сам код замка пока не генерится динамически - это завтра допишу - а просто считывается из переменной), ящик становится неюзабельным, далее вводим код и если верный - менюшка убирается, а ящик становится юзабельным. В ui_numpad пришлось поставить пару заглушек на нештатный вызов класса - так что функция считывания кода для ящика вызывается только когда ящик юзается.
Весь код скрипта - строчек 15 :-)
Stalk15
Насчет кода - вот доделаю разработку и увидишь. А пример использования метода блокировки юзанья ящика я приводил. Там требуется клиентское определение объекта ящика.
отредактировал(а) erlik: 12-08-2010 21:10 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Artos Хорошо. Лечащий, это одно. Тут ты устанавливаешь переменной здоровья значение единица, так? В итоге к текущему значению прибавляется единица, а так как схема корректировки ограничивает переполнение значения здоровья, то его величина никогда не превышает своего максимального порога. А ты не лечи, а наоборот, попробуй установить актору значение здоровья ниже текущего своим способом. И ты убедишься в моей правоте.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
У меня просто мелькнула мысль разнообразить квесты типа 'убил - забирай документ' осложнением ...
Документ положить в сэйф/ящик/... и условием будет: 'взять живым/раненым владельца кода' ... а не как с трупов тех же экологов в х18 ... ну и т.п. singapur22
Лечащий - это когда здоровье упало ниже 1 (подранили/...) и медленно восстанавливается без применения аптечек/... (к текущему добавляется малая толика).
Ладно, пока предлагаю отложить, перепроверю ... может совсем зациклился на офф-лайновом управлении/установке здоровья неписям нет-пакетами.
Artos
Идея насчет осложнения квестов хорошая - я вот тоже думаю, что надо б некоторые коды неписям в диалоги заснуть - то бишь пообщался так под водочку с NPC - а они тебе либо наводочку на тайник(знаю что уже реализовано, однако все равно думаю добавить в свои тайники) либо подсказку кода тайника выдадут.
Надо б для этого дела освоить скриптовый конструктор диалогов - чтобы на лету их формировать и случайным npc присва**50016ea8aab1bb10eeba**
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
АнархОПанк
Да вроде как всё нормально... Кстати, только щас заметил - вместо того, что бы поставить один раз 'серверные' метки, разрабы поставили на апдейт огромную функцию с 'клиентскими' метками. Что за...
Тебе тоже посоветовал бы ставить метку, не требующую обновления - 'level.map_map_add_object_spot_ser(...). И без всяких лишних нагрузок на апдейт. Ставить лучше где-нибудь в net_spawn'е, или друг ф-ях, которые вызываются при старте игры. SkyLoader
НПСов небось удаляешь?
отредактировал(а) Darien Fx: 13-08-2010 00:02 GMT3 час.
Darien Fx спасибо за совет. А вешаю, я метку, на инфопоршень который дается при старте игры - работает. Только вот возникает косяк с одним переходом :dry:
Когда на него метку вешаешь, такой вылет при старте игры:
Expression : I != levels().end()
Function : GameGraph::CHeader::level
File : e:\stalker\patch_1_0004\xr_3da\xrgame\game_graph_inline.h
Line : 171
Description : there is no specified level in the game graph : 107
Что он значит? Вроде бы переход сделан так же, без новшеств..
PS: Перейти не пробовал.... Т.е на работоспособность не проверял, но ведь 20 переходов создал - работает.
erlik, это проделки грави пушки?;-) А по ящикам: Прикольно. Там постоянно даются разные сообщения?
А не подскажете случайно как сделать так чтобы после соответствующей фразы диалога(пусть это будет оскорбление)волк менял своё отношение к ГГ с нейтрала на врага, вот!!!????
АЛЯ lost world 3
И если не трудно можно все по шагам расписать я в этом деле новенький!!!!:)
А И ЕЩЁ ВОПРОСИК КАК СДЕЛАТЬ ЧТОБЫ БОЛТОМ МОЖНО БЫЛО УБИТЬ!!!???
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.