iDreD 5 Опубликовано 16 Марта 2010 Алл.спаун - наше всё. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 18 Марта 2010 Запнулся на элементарнейшем скрипте : function have_tema_eda2() return sak.have_item_namber("bread",20) ~= false or return sak.have_item_namber("konserva",10) ~= false then end Что не так то? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 18 Марта 2010 function have_tema_eda2() return sak.have_item_namber("bread",20) ~= false or sak.have_item_namber("konserva",10) ~= false end end Так? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 9 Апреля 2010 Кто это сказал ? Зачем тогда файлы в конфигс\миск (вроде)? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 18 Апреля 2010 Скачай xrSpawner последней версии. Это для ТЧ. Там уже все машины описаны как секции для алл.спауна. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 18 Апреля 2010 http://www.amk-team.ru/forum/index.php?showtopic=8355 Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 25 Апреля 2010 (изменено) Эм... Ты про пунктик "Что можешь интересного рассказать"? Эти диалоги ДАЛЕКО, не динамические... Прописаны в gamedata\config\gameplay\character_dialogs.xml. Добавлено через 48 мин.: Возник вопрос: можно ли использовать такую конструкцию? --Локальная переменная содержащая монстров которые спаунятся на локации где попало. local spawned_mutants = { "pseudodog", "bloodsucker", "zombie_strong"} --Функция спаунющая мутантов где попало. function spawn_m() alife():create(spawned_mutants[math.random(3)], vector():set(x,y,z),lv,gv) end local x = { "190" "453" "532"} local y = { "10" "15" "2"} local z = { "867" "564" "345"} local lv = { "100" "143" "200"} local gv = { "432" "564" "246"} Или я в очередной раз извращаюсь как могу? Если да, то как мне сделать рандомный выбор координат из предложенных? Изменено 25 Апреля 2010 пользователем кровоSTALKER Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 25 Апреля 2010 (изменено) Ещё создал --Локальная переменная содержащая в себе имена профилей сталкеров подлежащих удалению. local deleted_stalkers = {"gar_seriy", "gar_hellcar", "gar_bandit_leader"} --Функция берущая имена профилей НПС из локальной переменной и удаляющая их. function delete_s() alife():release(deleted_stalkers) end вызываемую level_tasks.add_lchanger_location() self.bCheckStart = false end if level.name() == "l02_garbage" then pioners.delete_s() end end end но вылетает с таким FATAL ERROR [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: ... publishing\s.t.a.l.k.e.r\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) stack trace: В чём проблема? Изменено 25 Апреля 2010 пользователем кровоSTALKER Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 25 Апреля 2010 Хм... А как id получить? Добавлено через 6 мин.: Тоесть, примерно local deleted_stalkers = {"gar_seriy", "gar_hellcar", "gar_bandit_leader"} function delete_s() local se_obj = alife():object(deleted_stalkers) if se_obj then alife():release(se_obj, true) end end функция? Но и она не работает... Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 25 Апреля 2010 Суть вопроса ты не пояснил. Сказал рандомные, а хз какие именно. Сори за офтоп. Строгое предупреждение от модератора n6260 ХЗ - есть слово ругательное. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 3 Июня 2010 function start_taimer() --при запуске этой функции запуститься таймер игровово времени с именем dialog, amk.g_start_timer("dialog",0,0,1) --время 0 дней, 0 часов, 1 мин. end открываем amk.script ищем function __do_timer_action в конец добавляем if select_string=="dialog" then --имя таймера db.actor:give_info_portion("info_dialog_taimer") --по истечению таимера выдаем поршен new_kardon.shustryi_sms() --или сработает функция end В файле bind_stalker.script в функцию function actor_binder:update(delta) добавляем (перед последним end) amk.actor_update(delta) local timers={} local g_timers={} local timer_trigger=nil function actor_update(delta) if not timer_trigger then timer_trigger=game.time() end if timer_trigger<=game.time() then timer_trigger=game.time()+1000 check_timers() end end function start_timer(name,delay,action) if not delay then return false end if not action then action = "" end local time = game.time() --time in seconds since 1970 local a=1 while db.storage[db.actor:id()].pstor["xt"..a] do a=a+1 if a>100 then return false end end save_variable("xt"..a, name) save_variable("xd"..a, time+delay*1000*system_ini():r_float("alife","time_factor")) save_variable("xp"..a, action) return true end function g_start_timer(name,delay_d,delay_h,delay_m,action) local time = level.get_time_days()*60*24+level.get_time_hours()*60+level.get_time_minutes() --time in game minutes if delay_d==nil or delay_h==nil or delay_m==nil then return false end if action==nil then action = "" end local a=1 while db.storage[db.actor:id()].pstor["gt"..a] do a=a+1 if a>100 then return false end end save_variable("gt"..a, name) save_variable("gd"..a, time+delay_d*60*24+delay_h*60+delay_m) save_variable("gp"..a, action) return true end function check_timers() local tmp for a=1,100,1 do tmp=load_variable("xt"..a,nil) if tmp~=nil then __timer_found(a) end end for a=1,100,1 do tmp=load_variable("gt"..a,nil) if tmp~=nil then __g_timer_found(a) end end end function __timer_found(idx) local time = game.time() --time in seconds since 1970 local name,params if load_variable("xd"..idx, nil)<=time then name=load_variable("xt"..idx, nil) params=load_variable("xp"..idx, nil) del_variable("xt"..idx) del_variable("xd"..idx) del_variable("xp"..idx) oau_reason=name.." "..params __do_timer_action(name,params) return true end return false end function __g_timer_found(idx) local gtime = level.get_time_days()*60*24+level.get_time_hours()*60+level.get_time_minutes() --time in game minutes local name,params if load_variable("gd"..idx, nil)<=gtime then name=load_variable("gt"..idx, nil) params=load_variable("gp"..idx, nil) del_variable("gt"..idx) del_variable("gd"..idx) del_variable("gp"..idx) oau_reason=name.." "..params __do_timer_action(name,params) return true end return false end function __do_timer_action(select_string,params_string) if select_string=="name_taimer" then --имя таймера my_file.my_function() --функция которая сработает по истичению end end function save_variable(variable_name, value) if value==nil then amk.mylog("saving nil into "..variable_name) del_variable(variable_name) else xr_logic.pstor_store(db.actor, variable_name, value) end end function load_variable(variable_name, value_if_not_found) return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found) end function del_variable(variable_name) if db.storage[db.actor:id()].pstor[variable_name] then db.storage[db.actor:id()].pstor[variable_name] = nil end end by max_max_08. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 9 Июня 2010 Как выглядит проверка на количество репутации у ГГ к опр. группировке? Нужно для прекондишна в диалог. Добавлено через 33 мин.: И ещё, как прибавить актору радиацию по средствам скрипта? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 9 Июня 2010 Хм... Странно, не работает. function add_radiation_from_vintorez() if db.actor:active_item() == "wpn_vintorez_m2" then db.actor.radiation = 0.1 end end Мне нужно если юзается этот итем ((мой винторез) тоесть если он в слоте под оружие) то прибовляется радиация. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 12 Июня 2010 ~<Red>~, function spawn_vintorez() alife():create("имя_нпс_из_файла_character_descr_***",vector():set(-179.04676818848,9.4119186401367,76.59033203125),582891,145) end Где *** имя локации. (-179.04676818848,9.4119186401367,76.59033203125),582891,145) Координаты. В нашём случае спаун на затоне в одном из домов сгоревшего хутора. И через какой инфопоршень его желательно вызывать?Хм... Это как? Вызвать функцию можешь из диалога тегом <action>имя_скрипта.имя_функции_спауна</action> Всё. ЗЫ: И вот это прочти. Много нового узнаешь. Добавлено через 5 мин.: А как удалить предмет из инвентаря скриптом? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 12 Июня 2010 А, да, сори, опечатка . Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 14 Июня 2010 Подскажите пожалуйста, АМК таймеры от ТЧ подойдут к ЗП? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 22 Июня 2010 Хотел спросить - как остановить постоянный вызов функции в бинд_сталкере? Ну тоесть, имею функцию: if db.actor:object("digger_pda") then db.actor:give_info_portion("find_instr") news_manager.send_tip(db.actor, "digger_tip", 10, "stalker", 10000) local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\scenario\military\digger_msg]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end Это добро сидит у меня на апдейтере в бинд_сталкер. Когда я подбираю нужный мне предмет то получаю занятный результат в виде постоянно приходящих сообщений и постоянно проигрываемой звуковой дорожки. Подскажите пожалуйста - как быть? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 22 Июня 2010 Нее, я решил проблему старым добрым методом - инфопоршнями). Вот функция, может кому пригодится: if db.actor:object("digger_pda") then db.actor:give_info_portion("find_instr") if has_alife_info("find_instr") and not has_alife_info("script_info") then news_manager.send_tip(db.actor, "digger_tip", 0, "stalker", 10000) local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\scenario\military\digger_msg]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) db.actor:give_info_portion("script_info") end end Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 22 Июня 2010 ФеНиКс, я думаю, может можно как-то прицепить это всё на on_item_use? Тоесть при юзании гитары (а ты думал я не догадаюсь?) неписям в радиусе (?) 2-3 метров от тебя даётся задание воспроизводить реплику. Я не знаю - спроси вон у знающих . Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 22 Июня 2010 Kirag, заюзаю . Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение