А в модах такого большого нету чтоб мне по размерам подходило (стволов многовато), но попробую через фотошоп ещё раз... кому интересно могу сам ui_icon_equip показать
-- Скрипт - Исследование локаций (Суть проблемы - при переходе на другую локацию, то с предыдущей разведанные объекты локаций исчезают, и их приходится разведывать снова )
Объекты локаций не отображаются на карте. Их надо разведывать самому, топая ножками в нужную сторону.
-- Апдейт доступности для симуляции. simulation_objects.get_sim_obj_registry():update_avaliability(alife():actor())
if not self.loaded then get_console():execute("dump_infos") self.loaded = true end treasure_manager.get_treasure_manager():update()
if not(primary_objects_filled) then ;тут я удалил строку: pda.fill_primary_objects() --Vergas ----------------------------ON--------------------------- search_of_locations.fill_primary_objects() --Vergas ----------------------------OFF-------------------------- primary_objects_filled = true end pda.fill_sleep_zones() --Vergas ----------------------------ON--------------------------- if primary_objects_filled then search_of_locations.find_primary_objects() end --Vergas ----------------------------OFF-------------------------- end ---------------------------------------------------------------------------------------------------------------------- function actor_binder:save(packet) --Vergas------------ON-------- vergas_lib.game_save() --Vergas------------OFF-------- set_save_marker(packet, "save", false, "actor_binder") object_binder.save(self, packet)
--Lotions from Vergas---------------------------- -- разведка объектов на локации ----------------------------------------------------- local primary_objects_tbl local value_if_not_found local time_find local delta_time = 6 local zone_radius = 50 --100
--заполняю переменную value_if_not_found value_if_not_found = "" for i = 1,54 do if i<54 then value_if_not_found = value_if_not_found.."0|" else value_if_not_found = value_if_not_found.."0" end end
find_tmp = vergas_lib.str_explode("|",vergas_lib.load_variable("find_locations", value_if_not_found),true) vergas_lib.del_variable("find_locations") --дополняю таблицу объектов for i = 1,table.getn(primary_objects_tbl) do primary_objects_tbl[i].find = tonumber(find_tmp[i]) end
--ставлю метки на карте for k,v in pairs(primary_objects_tbl) do local obj_id = get_story_object_id(v.target) if(obj_id) then if(obj_id and db.storage[obj_id] and db.storage[obj_id].object) then if v.find == 1 and level.map_has_object_spot(obj_id, v.hint)==0 then level.map_add_object_spot(obj_id, "primary_object", v.hint) end end end end time_find = time_global()/1000 end
function find_primary_objects() local current_time = time_global()/1000 if current_time - time_find < delta_time then return end time_find = current_time for k,v in pairs(primary_objects_tbl) do if v.find == 0 then local obj_id = get_story_object_id(v.target) if(obj_id) then if(obj_id and db.storage[obj_id] and db.storage[obj_id].object) then if (db.storage[obj_id].object:position():distance_to(db.actor:position())<=zone_radius and level.map_has_object_spot(obj_id, v.hint)==0) then level.map_add_object_spot(obj_id, "primary_object", v.hint) v.find = 1 send_new_object(game.translate_string(v.hint)) end end end end end end
function send_new_object(news_content) local news_caption news_caption = game.translate_string("st_mr_Dektyarev") news_content = "Найден новый объект района: "..news_content xr_sound.set_sound_play(db.actor:id(), "pda_tips") db.actor:give_game_news(news_caption, news_content, "ui_inGame2_PD_Svoy_paren", 0, 5000) end
function save_primary_objects() local str = "" for i = 1,table.getn(primary_objects_tbl) do if i<54 then str = str..tostring(primary_objects_tbl[i].find).."|" else str = str..tostring(primary_objects_tbl[i].find) end end vergas_lib.save_variable("find_locations", str) end
СЮДА ВНЁС ТОЛЬКО ТО, ЧТО НУЖНО ДЛЯ search_of_locations --Lotions from Vergas---------------------------- -- библиотека функций общего назначения ---------------------------------------------------- ----------------------Выгрузка переменных при записи игры-------------------------------- function game_save() search_of_locations.save_primary_objects() end ---------------------------------------------------------------------------------------- ------------------Сохранение переменных-------------------------------------- function save_variable(variable_name, value) --variable_name - имя переменной в которую сохраняю --value - переменная, которую сохраняю if value==nil then 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) --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) --variable_name - име ранее сохраненной и удаляемой переменной if db.storage[db.actor:id()].pstor[variable_name] then db.storage[db.actor:id()].pstor[variable_name] = nil end end -------------------------------------------------------------------------------- ----------------------разобрать строку на составляющие-------------------------- function str_explode(div,str,clear) --Разбивает инфо-строку на составляющие и выводит в виде таблицы -- div - разделитель -- str - разбираемая строка -- clear ставим равное true local t={} local cpt = string.find (str, div, 1, true) if cpt then repeat if clear then table.insert( t, trim(string.sub(str, 1, cpt-1)) ) else table.insert( t, string.sub(str, 1, cpt-1) ) end str = string.sub( str, cpt+string.len(div) ) cpt = string.find (str, div, 1, true) until cpt==nil end if clear then table.insert(t, trim(str)) else table.insert(t, str) end
return t end
function trim (s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end --------------------------------------------------------------------------------
Приветствую всех , попробвовал я использвовать компиляторы чн-зп для компиляции локации для тч как только запускаю компилятор появляется вот такая ошибка : Expression : assertion failed Function : Startup File : D:\prog_repository\sources\trunk\utils\xrLC\xrLC.cpp Line : 114 Description : XRCL_CURRENT_VERSION==version Скриншот компилятора: http://s2.ipicture.ru/uploads/20120703/INXGInFT.jpg
Здравствуйте, я новичок в моддинге и программировании и пока ничего в этом толком не смыслю, только имею смутные представления, но очень хотел бы научиться. Начал я учится буквально 4-5 дней назад и, разумеется, сразу же столкнулся с некоторыми неясностями (по крайней мере для меня). Надеюсь, вы мне сможете что-то подсказать и помочь. Начал я с изучения построения диалогов (на Сталкер Inside). Функции и назначения, такие как give_info, has_info, prediction и др. мне по сути ясны, но на практике я не могу понять где именно надо мне prediction, или в каких случаях надо прописывать (dont) has_info, а в каких нет. Не получается у меня смоделировать ситуацию, диалог. Помогите,плиз. Заранее огромное спасибо!
FaLcon, ооооу.. Компилятор для ЧН-ЗП, а ты ТЧ.. другие компиляторы ищи.. Faren, Ты взялся сразу не за самое лёгкое. Начни с конфигов. Я тебе предлагаю, пока просто читать туторы, с того же сталкер-инсайд. И пытаться делать все по туторам.. А понимание оно позже прийдет) Так что считаю читай туторы . Туторов по квестам очень много, думаю если ты их перечитаешь и будешь пробовать делать как там, все выйдет и ты поймёшь. Salem, По моему можно в скриптах(?). Точно можно в ал спауне. Вот тутор, правда он на ТЧ, но может чем то поможет: http://stalkerin.gameru.net/wiki/index.php?title=SoC._Respawn
Сообщение отредактировал Dietrich - Вторник, 03.07.2012, 15:54
Dietrich, да у меня компиляторов полно но компиляторы для зп-чн намного быстрее чем для тч вот и приходится использвовать зпшные , скажите что они не подходят обломитесь после компиляции посидеть с лайтмапами и все будет работать
Сообщение отредактировал FaLcon - Вторник, 03.07.2012, 15:56
Dietrich, да есть у меня эти компиляторы но дело в том что я компилю локацию для тч она будет компилиться 16-18 часов , а эта же локация зпшными компиляторами компилится за 10-11 часов думаю лучше немного помучиться а и с экономить время в дальнейшем .
вылет по ошибке на utils.script, строка 469. Как только убираю exlusive из логики смарта, сквад работает, только на произвольной логике(смотрит не туда, анимации всякие использует...)(ЗП)
P.S. Код писал по аналогии с Бородой.
Сообщение отредактировал Novellus - Вторник, 03.07.2012, 16:07
FaLcon, поверь, ты потратишь больше времени сидя за компьютером если будешь компилить компиляторами ЧН,ЗП и не факт что оно будет работать. А если поставишь ТЧ, можешь уйти и не трогать компьютер и без лишнего геморроя Novellus, кинь функцию в которую входит 469 строка
Сообщение отредактировал Dietrich - Вторник, 03.07.2012, 16:11
function get_scheme_by_section(section) local scheme = string.gsub(section, "%d", "") local at, to = string.find(scheme, "@", 1, true) if at and to then scheme = string.sub(scheme, 1, at - 1) end return scheme end
я так понял ошибка в схеме поведения НПС, то есть в его логике?! или в логике смарта?!
Сообщение отредактировал Novellus - Вторник, 03.07.2012, 16:18