Пользователей: 2
Гостей: 1475
Всего: 1477

» Подробно
» Сегодня

Привет, гость!









Автор Сообщение
Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 15:12 GMT3 час. #1271810   
djslavikoz
Занимаясь модингом, стОит подготовить и использовать 'инструментарий'.
Любой вызов функции abort(fmt,...) "из _g.script" сопровождается пе**5006c54314580bda8be6**console = get_console()
if console then
console:execute(fmt)
console:execute("flush")
end
end
[/code]Однако в этом случае в лог будет сыпаться немало 'мусора' от разрабов и порой могут возникать ошибки, т.к. и разрабы не очень пеклись о безошибочности вывода в лог.
Иначе: Или писать усложненый вариант вывода в лог (с различными перепроверками на ошибки) или включать вывод в лог только тогда, когда ищешь причину ошибки!

Существенная поправка:
Для того, чтобы читать причины вызова функции прерывания (без модификации общего вывода в лог) следует изменить в "_g.script":

function abort(fmt, ...)
  local reason = string.format(fmt, ...)
  assert("ERROR: " .. reason)
  printf("ERROR: " .. reason) --/ можно закомментировать
  local console = get_console()
  if console then
    console:execute("ERROR:" .. reason) --/ вывод на консоль причины прерывания
    console:execute("flush") --/ принудительная запись в лог-файл
  end

  printf("%s") --/ собственно "вызов фатальной ошибки"
end

Информация по общему выводу в лог остается актуальной.

отредактировал(а) Artos: 16-06-2010 15:32 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
djslavikoz
    
Посты: 123
Откуда:
Возраст: 41
16-06-2010 15:40 GMT3 час. #1271841   
Artos
На сколько правильно я тебя понял , после правки скрипта в лог будет записываться более подробная инфрмация о ошибке:ye)


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Vin4ester
    
Посты: 36
Откуда: Челябинск
Возраст: 30
16-06-2010 15:41 GMT3 час. #1271843   
Привет всем! хотел бы узнать есть ли возможность добавлять музыку при загрузке игры stalker тч


Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 15:49 GMT3 час. #1271848   
djslavikoz
После правки скрипта '_g':
1. Если только abort() - в лог будет выводиться ПРИЧИНА/ИСТОЧНИК вызова прерывания игры. Полнота и пр. зависят от того, что записано в аргументах вызова прерывания.
Однозначно можно сказать будет - откуда идет прерывание, ну а причину понять - все зависит от "откуда вызвано прерывание".
2. При правке общего вывода в лог - будет много различной информации, в том числе и не нужной. По информации об ошибке - см. п.1.


Vin4ester
Есть. Запускаешь игру и ... пока грузится - надеваешь наушники от МП-плеера и ... добавляешь сколь угодно музыки.

Плз, не задавай 'глупых' вопросов, расписанных в любом ФАК'е.

отредактировал(а) Artos: 16-06-2010 15:53 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 17:22 GMT3 час. #1271889   
ВОПРОС:
НПС-торгаш стоит боком "в режиме ожида**5001c54314580bda8be6**= actor
meet = meet
combat_ignore_cond = always[/code]


хотя он с любой логикой так стоит в чем может быть проблема?


sevitov_yura
    
Посты: 79
Откуда: Брест
Возраст: 30
16-06-2010 17:26 GMT3 час. #1271892   
незнаю может такое быть, но у меня вот чт


Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
16-06-2010 17:34 GMT3 час. #1271900   
Artos
Понятно, спасибо.

Николай ФеНиКс
Ну, я постараюсь посоветовать:-):была у меня один раз подобная проблема.Я просто переснял координаты, и координаты снимал в том положении, в котором НПС должен стоять, то есть не боком, а как нужно, и потом все нормально было.

У меня простенький вопрос: Чтоб сделать переход, который, например, переводил бы ГГ со Свалки на Арм.Склады и с Арм.Складов на Свалку, нужно просто заспавнить переход на Свалке или потом нужно заспавнить еще и на Арм.Складах?
Спавню all.spawn'ом.


Новые фишки для сталкера(см. журнал)
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
16-06-2010 17:58 GMT3 час. #1271917   
sevitov_yura
Прочитай вики "Настройка логики". А то что ты читал "Логика НПС" это AI схема (медик).


sevitov_yura
    
Посты: 79
Откуда: Брест
Возраст: 30
16-06-2010 18:07 GMT3 час. #1271923   
Darien Fx, а AI-схема это типа чего? тож, как я понимаю, логика NPC.. я не совсем в этом разбираюсь, поясни...


Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 18:14 GMT3 час. #1271929   
sevitov_yura
AI НПС -- это их поведение.


Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 18:43 GMT3 час. #1271945   
AI (Artificial Intelligence) - искусственный интеллект.

AI-схема => схема/модуль, в котором реализован 'искусственный интеллект' объекта применительно к некоторому частному случаю/области (метание гранат, собирательство, обход аномалий, ...).

Логика (в Сталкере) - условное название логических элементов/алгоритмов, использованных в реализации 'искусственного интеллекта'.

То, что в Сталкере прописано в различных "логических" *.ltx и секциях all.spawn'а - параметры/коэффициенты логики (ее настройки), которые совместно с "логическими" функциями (см. в xr_logic.script, xr_conditions.script, xr_effects.script. ...) собственно и реализуют "логические" алгоритмы (поведение объекта).

отредактировал(а) Artos: 16-06-2010 19:05 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
16-06-2010 18:45 GMT3 час. #1271946   
Я заспавнил переход с Кордона на Арм.Склады - этот переход работает, но на карте не отобра


Новые фишки для сталкера(см. журнал)
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 18:48 GMT3 час. #1271951   
верно ли у меня эти функции(относятся ко вчерашним постам, про сообщение на расстоянии)
проверка на дистанцию + выдача**5001c54314580bda8be6** math.random(1000, 2000), -- задержка появления сообщения. корейский рандом)))
5000 -- сколько продержится это сообщение.
)
end
end
end
end[/code]

не врубился, как прописать sid... Может: level.object_by_sid(номер сида)?
и может попроще можно сделать?

добавлено спустя 2 минут

Stalk15

нужно зайти в файл level_tasks.script и в конце функции add_lchanger_location дописать свои переходы по примеру предыдущих.

Вот так:

-- новый переход с кордона на свалку
obj = sim:story_object(31400)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_Garbage")
end



Artos

ну может быть и надо было=)

отредактировал(а) Николай ФеНиКс: 16-06-2010 19:05 GMT3 час.

Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
16-06-2010 18:53 GMT3 час. #1271955   
Николай ФеНиКс, Artos
Спасибо.Совсем забыл про это.


Новые фишки для сталкера(см. журнал)
FLIKER
    
Посты: 1047
Откуда: Краснодар
Возраст: 30
16-06-2010 19:10 GMT3 час. #1271972   
НЕ подскажите ,что за лог !
Expression : fatal error
Function : CInifile::r_section
File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
Line : 342
Description :
Arguments : Can't open section 'postprocess_fog'


Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 19:17 GMT3 час. #1271980   
FLIKER
ты так и не научился читать простые логи?
открывай файлы

zone_tornado.ltx
zone_smoke.ltx
zone_clouds.ltx
zone_fog.ltx
и меняй там эти строчки:
postprocess = postprocess_fog
на эту:
postprocess =postprocess_gravi

Artos
ну не знаю, а какая разница-то в принципе?


Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 19:18 GMT3 час. #1271983   
Николай ФеНиКс
Сорри, но на кой ляд ты вводишь всякие 'sactor|сactor', ежели уже выше используешь 'db.actor:position()'?

Да и прервать перебор айдишников не помешает (break), ежели уже нашел искомого ...

По sid'у - догадка верна, хотя 'попроще' от контекста зависит!


P.S. Разница - а) в ресурсах игры (лишние тайминги в сотни-тысячи-лимоны складываются) и б) 'грязный' код - источник текущих и будущих ошибок! (помимо 'характеристики' самому "кодеру-программеру")

P.P.S. если еще 'h.draftsman = obj;' на 'h.draftsman = npc' (иль 'db.actor') заменишь, может и заработает. ;-)

отредактировал(а) Artos: 16-06-2010 19:45 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 19:34 GMT3 час. #1271997   
Artos
Ой блин точняк!=) я про h.draftsman = obj; **5001c54314580bda8be6**

отредактировал(а) Николай ФеНиКс: 16-06-2010 19:49 GMT3 час.

Mehanik Yar
    
Посты: 469
Откуда: Уфа
Возраст:
16-06-2010 19:35 GMT3 час. #1271998   
А как сделать так чтобы инфопоршень давался если ГГ подобрал определенный объект?


Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 19:51 GMT3 час. #1272019   
Николай ФеНиКс[**5001c54314580bda8be6**ойти нельзя! Опасная зона!%c[default]", 0, "default", 8000)
end
end
end[/code]

'номер_сида' - или внутри прописываешь или даешь на вход функции в качестве аргумента при ее вызове.



Mehanik Yar
Добавляешь в коллбек на взятие предмета актером (function actor_binder:on_item_take (obj) в bind_stalker.script) проверку на 'подобратый предмет' и если 'подходящий' - выдаешь нужный инфопоршень.

отредактировал(а) Artos: 16-06-2010 20:22 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 19:58 GMT3 час. #1272025   
Darien Fx
видать ты не въехал=) как использовать-то я знаю... а это я не въехал &P

вопросец.
сработает удаление НПСа вот так:

alife():release(объект)


добавлено спустя 2 минут

Artos
Ага Спасибо=) я чё-то торможу сёдня, с ночи напишешь скрипт, а вот на утро думаешь чё накорябал такое :prankster:

отредактировал(а) Николай ФеНиКс: 16-06-2010 20:00 GMT3 час.

Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
16-06-2010 20:01 GMT3 час. #1272030   
Artos
level_object_by_sid(номер_сида)


Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 20:03 GMT3 час. #1272031   
Николай ФеНиКс
Советую прив**5001c54314580bda8be6**
alife():release(object, true)
end[/code]проверка иногда и 'лишняя', но зато иногда ... спасет от безлоговых вылетов (которые ой как нелегко искать/исправлять).
И(!) 'object' - обязательно серверный объект!


Darien Fx
Ой, спасибо. Поправился ... Лоханулся, скопипастнув и непроверив.

отредактировал(а) Artos: 16-06-2010 20:09 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 20:11 GMT3 час. #1272035   
Artos
Ок =) ну дак сработает всё же?= )


Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 20:22 GMT3 час. #1272043   
Николай ФеНиКс
Эт ты у меня спрашиваешь??? Думаешь я что-то ваше запускаю? ;-)
Подскажи, да еще и проверь - это несколько через-чур.

Вот еще уберешь из 'level.add_pp_effector' лишний пробел - тогда синтаксических ошибок в коде не будет.

Для 'себя' я подобное не пишу. Минус твоего варианта как минимум в том, что: один раз нарвавшись на предупреждение - ничего не мешает неписи повторить попытку без каких-либо последствий (до перезагрузки игры)!


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 20:32 GMT3 час. #1272050   
Artos

да я и не прошу проверять=)
-----------------
пробел-то я сразу удалил=) level.add_pp_effector
-----------------
почему НПСу если хит ГГ атакует?
хотя разницы нет... а как сделать цикличность этой функции? хоть ты тысячу раз так будешь рваться к НПСу то каждый раз будешь получать хит и сообщение? (тогда у же можно и рандомное...

отредактировал(а) Николай ФеНиКс: 16-06-2010 20:40 GMT3 час.

Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 20:44 GMT3 час. #1272057   
Николай ФеНиКс
Есть такое понятие "гистерезис". Почитай где-нить на свежую голову, пригодится ...
Ну а кратко и применительно к контексту:
а) добавь проверку на 'отход' далее чем, например, 12 метров и возвращай свой флаг срабатывания хита;
б) введи таймер, который будет вместо одноразового флага долбить хитом раз в XXX (мили)секунд при приближении на твою дистанцию.

а) попроще, но ... ежели НЕ отойдет - долбить повторно НЕ будет. б) требует доп.таймера.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
16-06-2010 20:52 GMT3 час. #1272062   
жалуется на эту строчку в мативаторе:
if who and amoun > 0.01 and bone_index > 0 then
вот лог:
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\xr_motivator.script:215: attempt to compare number with nil


добавлено спустя 4 минут

___**5001c54314580bda8be6**с может быть как вредным, так и полезным свойством, и порой такое свойство системе добавляют искусственно.
Гистерезис проявляется в механике, в электронике, в биологии, в экономике, и во многих других областях.[/code]


ну ключевое я выделил= )

отредактировал(а) Николай ФеНиКс: 16-06-2010 20:57 GMT3 час.

erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
16-06-2010 20:57 GMT3 час. #1272066   
Николай ФеНиКс

почему НПСу если хит ГГ атакует?

не очень внятно спросил, однако сделай драфтсменом не ГГ , а NPC.

attempt to compare number with nil - попытка сравнения числа с nil
у тебя похоже что индексу кости присваивается nil. почему - думай сам.
или не кости, а amoun.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Artos
    
Посты: 4176
Откуда:
Возраст: 65
16-06-2010 20:58 GMT3 час. #1272067   
Николай ФеНиКс
А самому догадаться, что на входе в коллбэк аргумент 'amount', а у тебя "amoun' - сложно?
(хотя это я присоветовал, но и перепроверять стОит! Все мы ошибаемся, оЧепятываемя).

отредактировал(а) Artos: 16-06-2010 21:07 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени


Форумы Архив » Свалка Вопросы и ответы (по 15.07.10)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»