Ulman 5 Опубликовано 24 Февраля 2011 Скажите пожалуйсто, как заспавнить огонь в керосиновой лампе. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 18 Марта 2011 Люди, вот такая у меня проблема, при старте игры на Кордоне такой вылет [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...game$\s.t.a.l.k.e.r\gamedata\scripts\xr_logic.script:126: attempt to index local 'st' (a nil value) . Скажите как исправить, если надо могу залить свои скрипты. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 7 Мая 2011 (изменено) Люди, что делать, если ACDC при запаковке что то пропускает, из за чего all.spawn каждый раз становится меньше и меньше, да и игра с ним уже не запускается. Изменено 7 Мая 2011 пользователем Ulman Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 12 Мая 2011 Ребята, а можно как то отдельному НПС прописать логику, что бы он допустим в 23.00 шел спать, а в 5.00 вставал? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 12 Мая 2011 _Призрак_, а можно, пожалуйсто, точнее с проверкой на время, а то самому не получается написать. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 15 Мая 2011 (изменено) Ребята, подскажите пожалуйсто что это за вылет и как с ним бороться? [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...:\my game$\s.t.a.l.k.e.r\gamedata\scripts\amk.script:303: attempt to concatenate local 'params' (a table value) Случился он на новой локации. Происходило так, я ранил свободовца гранатой, подбежал к нему, дал аптечку, с далека начали стрелять другие свободовцы по мне, он прошелся рядом, дал мне по морде с кулака и вылет. Изменено 15 Мая 2011 пользователем Ulman Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 14 Июня 2011 (изменено) Ребята, я пытаюсь написать скрипт для ТЧ, что бы при определённо одетом котюме проигрывался звук "дыхания", я "очень не сильно" рабираюсь в скриптах, но с горем пополам что то написал, но в итоге оно не работает, подскажите пожалуйсто, где ошибка? Заранее спасибо. Собственно вот он: local outfits={ "stalker_gas_outfit", "military_stalker_commander_outfit" } local snd = xr_sound.get_safe_sound_object([[actor\sopit]]) function protivogaz_sound() if db.actor and db.actor:alive() then local outfit = db.actor:item_in_slot(6) if outfit and outfit:section() and outfits[outfit:section()] then if not snd:playing() then snd:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) end end end end Изменено 14 Июня 2011 пользователем Ulman Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 15 Июня 2011 Люди, я опять по поводу своего скрипта, ничего не изменял, только теперь всё время такой вылет, да и не работает: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...$\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:302: attempt to index global 'ulman_outfit_sound' (a nil value) Саму функцию вызываю через бинд сталкер так: game_stats.update (delta, self.object) ulman_outfit_sound.sound_update() Уже не знаю что делать, помогите пожалуйсто. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 16 Июня 2011 _Призрак_, ZeeK, а хоть где именно, и вообще скрипт работоспособный? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 16 Июня 2011 KD87, да, он на той странице, просто я функцию переименовал, сейчас он выглядит так, в конце дописал ещё 2 end`aи вылета теперь нет: local outfits={ "stalker_gas_outfit", "military_stalker_commander_outfit" } local snd = sound_object([[alexmx\helicopter]]) function sound_update() if db.actor and db.actor:alive() then local outfit = db.actor:item_in_slot(6) if outfit and outfit:section() and outfits[outfit:section()] then if not snd:playing() then snd:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) end end end end Вызываю так, как написал ранее. Но он так и не работает... Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 16 Июня 2011 Ребята, с огромной помощью, всё таки мой скрипт заработал, но со звуком появился глюк. Вот ссылка, которая демонстрирует собственно проблему. Кто то с таким сталкивался? P.S. Сам по себе звук нормальный, в звуковом файли один цикл дыхания. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 16 Июня 2011 Я знаю, что я надоел, извините. Я вот хочу попробовать написать скрипт для ТЧ, что бы когда ГГ был голоден, проигрывался звук, желательно рандомный, я примерно что то написал, но вот незнаю как сделать, что бы функция вызывалась каждые 2-3 минуты нормального времени, то есть что бы звук проигрывался при условии голода через определённый промежуток времени. Можете пожалуйсто рассказать на примере. Заранее спасибо. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 16 Июня 2011 Shadows, да со скриптом мне уже помогли, но спасибо и за такой способ, буду теперь знать. А вот на счёт голода, вроде бы в моём случае надо ковырять от _g.script да и какая то более чем странная функция там есть: function on_actor_satiety() end Что то мне кажется, что она и была задумана для чего то подобного. Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 17 Июня 2011 (изменено) Ребята, я был прав, функция: function on_actor_satiety() end отвечает за голод. Я переделал её вот так: snd = sound_object([[ambient\underground\rnd_giant]]) function on_actor_satiety() if not snd:playing() then snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d) end end И звук проигрывался, но к сожалению только один раз за всю игру. Можно ли как то исправить это недоразумение? Изменено 17 Июня 2011 пользователем Ulman Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 18 Июня 2011 (изменено) К сожалению больше ни в каком скритпе функция "on_actor_satiety" нигде не вызывается и нигде больше даже такое название не встречается, получается движком вызывается... А вообще с этим что то можно сделать? Хотя я тут наткнулся на скрипт game_stats.script и он как раз ссылается на "satiety". Собственно вот такие функции: function shutdown () printf ("GAME STATS START AT LEVEL [%s]", level.name ()) local l_name = level.name () for a = 1, table.getn (stats), 1 do if stats[a].id == actor_position then printf ("[stats][%s][%s][%d][%f,%f,%f][%f, %f, %f]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].health, stats[a].radiation, stats[a].satiety) elseif stats[a].id == actor_item_take then printf ("[stats][%s][%s][%d][%f,%f,%f][%s]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].item_name) elseif stats[a].id == actor_item_drop then printf ("[stats][%s][%s][%d][%f,%f,%f][%s]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].item_name) elseif stats[a].id == actor_money_trade or stats[a].id == actor_money_quest or stats[a].id == actor_money_total then printf ("[stats][%s][%s][%d][%f,%f,%f][%d]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].money) end end stats = {} end и такая: function update (delta, actor) additional_time = additional_time + delta if additional_time < filter_time then return end additional_time = 0 local t = { time = game.get_game_time ():timeToString (game.CTime.TimeToSeconds), id = actor_position, position = actor:position (), health = actor.health, radiation = actor.radiation, satiety = actor.satiety } table.insert (stats, t) end Может это как то использовать можно? Изменено 18 Июня 2011 пользователем Ulman Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 18 Июня 2011 Real Wolf, мне точно тяжело, я ведь пока только начинаю учиться... А вообще просто интересно, из имеющихся данных, что то можно сделать? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 19 Июня 2011 dragunof, кстати, у меня такое было, я про это рассказывал, а игра сама запускается, или вылет при самой загрузке? И на счёт того скрипта, звук играется, но всегда, то есть независимо от голода...но всё же не пойму почему встречается переменная "satiety" в других скриптах. И ещё, от каких скриптов может быть такое, что сейвы не загружаются? Просто на синхронизации зависает игра и всё, только процесс выключать надо. И кстати, существуют ли на ТЧ вообще какие то отладочные скрипты? Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 19 Июня 2011 (изменено) dragunof, у меня такое было, когда в bind_stalker, скорее не туда куда надо, я вписывал функцию, но у меня было по другому, у меня работали только жизненно важные скрипты, всегда было время 00.00, и при попытке вызова функции связанной с "actor" проходил именно такой вылет. Я тут написал скрипт и как всегда из-за него не загружались сейвы, что с ним не так, кто знает? function spawn_parts(obj) local section = obj:section() if section=="m_fracture_e" then amk.spawn_item_in_inv("anom_remover",obj) end if section=="m_boar_e" then amk.spawn_item_in_inv("mutant_boar_leg",obj) amk.spawn_item_in_inv("mutant_boar_leg",obj) amk.spawn_item_in_inv("mutant_boar_leg",obj) end if section=="boar_weak" then amk.spawn_item_in_inv("mutant_boar_leg",obj) amk.spawn_item_in_inv("mutant_boar_leg",obj) amk.spawn_item_in_inv("mutant_boar_leg",obj) end if section=="boar_normal" then amk.spawn_item_in_inv("mutant_boar_leg",obj) amk.spawn_item_in_inv("mutant_boar_leg",obj) amk.spawn_item_in_inv("mutant_boar_leg",obj) end if section=="boar_strong" then amk.spawn_item_in_inv("mutant_boar_leg",obj) amk.spawn_item_in_inv("mutant_boar_leg",obj) amk.spawn_item_in_inv("mutant_boar_leg",obj) end if section=="m_burer_e" then amk.spawn_item_in_inv("mutant_burer_hand",obj) end if section=="burer_weak" then amk.spawn_item_in_inv("mutant_burer_hand",obj) end if section=="burer_normal" then amk.spawn_item_in_inv("mutant_burer_hand",obj) end if section=="burer_strong" then amk.spawn_item_in_inv("mutant_burer_hand",obj) end if section=="m_chimera_e" then amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) end if section=="chimera_weak" then amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) end if section=="chimera_normal" then amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) end if section=="chimera_strong" then amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) end if section=="electro_chimera" then amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) amk.spawn_item_in_inv("mutant_chimera_kogot",obj) end if section=="m_gigant_e" then amk.spawn_item_in_inv("mutant_psevdogigant_hand",obj) end if section=="m_gigant_normal" then amk.spawn_item_in_inv("mutant_psevdogigant_hand",obj) end if section=="gigant_normal" then amk.spawn_item_in_inv("mutant_psevdogigant_hand",obj) end if section=="gigant_strong" then amk.spawn_item_in_inv("mutant_psevdogigant_hand",obj) end if section=="m_poltergeist_e" then amk.spawn_item_in_inv("mutant_poltergeist_glas",obj) end if section=="m_poltergeist_normal" then amk.spawn_item_in_inv("mutant_poltergeist_glas",obj) end if section=="m_poltergeist_normal_tele" then amk.spawn_item_in_inv("mutant_poltergeist_glas",obj) end if section=="m_poltergeist_tele_outdoor" then amk.spawn_item_in_inv("mutant_poltergeist_glas",obj) end if section=="m_poltergeist_normal_flame" then amk.spawn_item_in_inv("mutant_poltergeist_glas",obj) end if section=="m_poltergeist_strong_flame" then amk.spawn_item_in_inv("mutant_poltergeist_glas",obj) end if section=="m_snork_e" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="snork_weak" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="snork_normal" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="snork_strong" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="aes_snork" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="snork_arena" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="snork_indoor" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="snork_outdoor" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="snork_jumper" then amk.spawn_item_in_inv("mutant_snork_leg",obj) end if section=="m_zombie_e" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end if section=="zombie_weak" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end if section=="zombie_normal" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end if section=="zombie_strong" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end if section=="zombie_trup" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end if section=="zombie_trup2" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end if section=="zombie_blow" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end if section=="zombie_beee" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end if section=="zombie_immortal" then amk.spawn_item_in_inv("mutant_zombie_hand",obj) end end Изменено 19 Июня 2011 пользователем Ulman Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 19 Июня 2011 _Призрак_, вызываю из bind_monster так function generic_object_binder:death_callback(victim, who) ulman_monster_parts.spawn_parts(victim) Теперь уже не уверен, но вот как то что бы из за этого сейвы не загружались, как то странно. Да и вообще за основу немного брал ARC_diary, там в контроллёров так спавнилось: function monster_killed(obj,who) local obj_sect = obj:section() if obj_sect=="controller_tubeman" then amk.spawn_item_in_inv("sgus",obj) if not has_alife_info("kontroler_diary_info_17") then amk.spawn_item_in_inv("arc_diary_17", obj) end Поделиться этим сообщением Ссылка на сообщение
Ulman 5 Опубликовано 19 Июня 2011 У меня тоже вопрос по приёмнику, всё делал не по уроку, а методом тыка, всё работает, но вот только недавно заметил что при выстреле он не замолкает. Решил проверить по этому уроку, прописал логику такую, какая нужна, но он всё равно не замолкает, почему? Поделиться этим сообщением Ссылка на сообщение