Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
serega-gamer 0 Опубликовано 9 Марта 2011 Поделиться Опубликовано 9 Марта 2011 (изменено) Доброго времени суток всем.Народ помогите пожалуйста вот такое у меня дело,я скачал и одаптировал к своему моду АИ вертолётов в нём есть такая штука как ПЗРК дак вот суть проблемы в том что в скрипте ПЗРК можно указать только одну секцию оружия а мне нужно несколько в общем около 20 я пытался зделать это сам вот посмотрите что я сделал не так function get_dir_to_obj(self_pos,obj_pos) return obj_pos:sub(self_pos):normalize() end function get_dir_to_obj_2d(self_pos,obj_pos) self_pos.y = 0 obj_pos.y = 0 return obj_pos:sub(self_pos):normalize() end function get_sun_dir() --читаем погоду из конфига. local h = level.get_time_hours() -- игровое вчеря, Ч local m = level.get_time_minutes() -- игровое время, М if h >= 22 or h < 5 then return vector():set(0,-1,0) -- если ночь, считаем, что солнце прямо внизу. Вертолетов там точно не летает, мешать наведению не будет. end local ini = system_ini() local weather = level.get_weather() -- тип погоды local weather_sect = ini:r_string("weathers", weather) -- секция погоды, соответствующая типу local h1 = h + 1 if string.find(weather,"indoor") or weather == "sarkofag" or (weather == "yantar" and not ini:section_exist(yantar_06)) then h = 0 h1 = 12 end local weather_time, time_sect, sun_dir, split, sav, sah, sav1, sah1 if h < 10 then weather_time = "0"..tostring(h)..":00:00" else weather_time = tostring(h)..":00:00" end -- какой час погоды в текущей секции if weather_time == "24:00:00" then weather_time = "00:00:00" end time_sect = ini:r_string(weather_sect, weather_time) -- секция текущей погоды на данный час sun_ang = ini:r_string(time_sect,"sun_dir") split = string.find(sun_ang,",") sav = tonumber(string.sub(sun_ang,1,split-1)) sah = tonumber(string.sub(sun_ang,(split+1),string.len(sun_ang))) if h1 < 10 then weather_time = "0"..tostring(h1)..":00:00" else weather_time = tostring(h1)..":00:00" end if weather_time == "24:00:00" then weather_time = "00:00:00" end time_sect = ini:r_string(weather_sect, weather_time) -- секция текущей погоды на данный час sun_ang = ini:r_string(time_sect,"sun_dir") split = string.find(sun_ang,",") sav1 = tonumber(string.sub(sun_ang,1,split-1)) sah1 = tonumber(string.sub(sun_ang,(split+1),string.len(sun_ang))) if sah1 > 180 and sah < 180 then sah1 = sah1 - 360 end local sun_ang_v = sav + m*(sav1-sav)/60 local sun_ang_h = sah + m*(sah1-sah)/60 local s = vector():set(0,0,-1) local hdir = vector_rotate_y (s, sun_ang_h) local vdir = math.tan(sun_ang_v* -0.017453292519943295769236907684886) local sun_dir = vector():set(hdir.x,vdir,hdir.z) --:normalize() return sun_dir end function see_target(obj,target) return obj:see(target) end function lock_heli_actor() local sun_dir = get_sun_dir() local self_pos = db.actor:position() local self_dir = device().cam_dir local heli_pos, heli_actor_dir local heli_sun_angle, heli_actor_angle local actor_sun_angle = yaw_degree3d(sun_dir,self_dir) local lock_priority, lock_id = 0,nil if actor_sun_angle <= 20 then --захват солнца в любом случае return "sun" end for k,v in pairs(db.heli) do --if see_target(db.actor,v) then --если вертолет виден, разбираемся дальше, нет - и говорить не о чем. if v:get_helicopter():isVisible(db.actor) then --если вертолет виден, разбираемся дальше, нет - и говорить не о чем. local target_info = get_target_info(v:section()) heli_pos = v:position() heli_pos.y = heli_pos.y + target_info.engine_h heli_actor_dir = get_dir_to_obj(self_pos,heli_pos) heli_actor_angle = yaw_degree3d(heli_actor_dir,self_dir) if heli_actor_angle <= 10/target_info.evu then -- если ПЗРК смотрит в сторону вертолета, иначе точно не захватится heli_sun_angle = yaw_degree3d(heli_actor_dir,sun_dir) local lp = 1000/(heli_pos:distance_to(self_pos))*(math.cos(heli_actor_angle*0.017453292519943295 769236907684886))^2/target_info.evu if heli_sun_angle > 20 then -- если вертолет не под солнцем, то его можно захватить, иначе потеряется на фоне солнца if lp > lock_priority then lock_priority = lp lock_id = v:id() end end end end end return tostring(lock_id) end function check_lock(missile,self_pos,self_dir,sun_dir) -- local sun_dir = get_sun_dir() -- local self_pos = db.actor:position() -- local self_dir = device().cam_dir local heli_pos, heli_missile_dir local heli_sun_angle, heli_missile_angle local missile_sun_angle = yaw_degree3d(sun_dir,self_dir) local lock_priority, lock_id = 0,nil if missile_sun_angle <= 20 then --захват солнца в любом случае return "sun" end for k,v in pairs(db.heli) do --if see_target(db.actor,v) then --если вертолет виден, разбираемся дальше, нет - и говорить не о чем. if missile:isVisible(v) then --если вертолет виден, разбираемся дальше, нет - и говорить не о чем. local target_info = get_target_info(v:section()) heli_pos = v:position() heli_pos.y = heli_pos.y + target_info.engine_h heli_missile_dir = get_dir_to_obj(self_pos,heli_pos) heli_missile_angle = yaw_degree3d(heli_missile_dir,self_dir) if heli_missile_angle <= 20/target_info.evu then -- если вертолет в поле зрения ГСН, иначе точно не захватится. Угол обзора снижается при наличии ЭВУ heli_sun_angle = yaw_degree3d(heli_missile_dir,sun_dir) local lp = (heli_pos:distance_to_sqr(self_pos))*(math.cos(heli_missile_angle*0.017453292519 943295769236907684886))^2/target_info.evu if heli_sun_angle > 20 then -- если вертолет не под солнцем, то его можно захватить, иначе потеряется на фоне солнца if lp > lock_priority then lock_priority = lp lock_id = v:id() end end end end end return tostring(lock_id) end function get_target_info(section) local target_info = {} target_info.evu = read_string(section, "evu", 1) -- экранно-выхлопное устройство, цифра - во сколько раз снижается заметность target_info.lipa = read_string(section, "lipa", 0) -- станция помех "Липа", max расстояние, на к-рое исказится позиция. target_info.flares = read_string(section, "flares", 0) -- система выброса тепловых ловушек target_info.engine_h = read_string(section, "engine_h", 2.7) -- высота двигателя return target_info end function launch_actor() local target = lock_heli_actor() if target ~= "nil" then spawn.missile(db.actor:position().x,db.actor:position().y,db.actor:position().z, db.actor:level_vertex_id(),db.actor:game_vertex_id(),target ) end end local pzrk_status = 0 local pzrk_active_timer = nil local beep = 0 --local snd_lock = xr_sound.get_safe_sound_object([[material\$500]]) local snd_lock = xr_sound.get_safe_sound_object([[detectors\contact_8]]) local snd_lock_length = snd_lock:length() local snd_launch = xr_sound.get_safe_sound_object([[weapons\rpg7_shoot]]) local snd_power = xr_sound.get_safe_sound_object([[weapons\generic_close]]) local launch_time = nil local empty = nil local ammo_total = 0 --db.actor:object("hunters_toz") function update() local wpn_tab = {"wpn_igla","wpn_nan2_igla"} local wpn = weapon:section() if string.find(wpn,wpn_tab[name]) then sect = wpn_tab[name] -- break -- end -- end -- if device().fov < 35 then local pos = db.actor:position() local dir = db.actor:direction() pos.x = pos.x + 0.1*dir.z pos.z = pos.z - 0.1*dir.x pos.y = pos.y + 1.85 local target = lock_heli_actor() if target ~= "nil" and pzrk_status == 2 then if time_global() > beep then snd_lock:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) beep = time_global() + snd_lock_length end else end if pzrk_status == 0 and wpn:get_ammo_in_magazine() == 1 then --до подготовки к пуску ammo_total = wpn:get_ammo_total() -- пока не пытались готовиться к пуску, смотрим, сколько было боеприпасов. elseif pzrk_status == 0 and wpn:get_ammo_in_magazine() == 0 then --первый выстрел - подготовка к пуску --запуск системы охлаждения ГСН и гироскопа происходит в ЛЮБОМ случае, независимо от наличия захвата цели. wpn:set_ammo_elapsed(1) pzrk_status = 1 pzrk_active_timer = time_global() + 40000 -- время работы источника питания не менее 40 с. snd_power:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) elseif pzrk_status == 1 then --ждем 5 с, пока ракета готовится к пуску if wpn:get_ammo_in_magazine() == 0 then --пуск невозможен wpn:set_ammo_elapsed(1) end if time_global() > (pzrk_active_timer - 35000) then --через 5 с ракета раскочегарилась, переходим в следующий режим pzrk_status = 2 end if wpn:get_ammo_total() == ammo_total + 1 then --к-во боеприпасов увеличилось на 1, значит пытались разрядить, а не активировать. --qqq("unloaded") wpn:set_ammo_elapsed(0) pzrk_status = 5 launch_time = time_global() end elseif pzrk_status == 2 and wpn:get_ammo_in_magazine() == 0 then --второй выстрел - пуск if target ~= "nil" then -- если есть захват, блокировка пуска снимается -- local pos = device().cam_pos -- local dir = device().cam_dir local sun_dir = get_sun_dir() if target == "sun" then target_pos = vector() target_pos.x = pos.x + 5000*sun_dir.x target_pos.y = pos.y + 5000*sun_dir.y target_pos.z = pos.z + 5000*sun_dir.z else target_obj = level.object_by_id(tonumber(target)) target_pos = target_obj:position() end spawn.missile(pos,db.actor:level_vertex_id(),db.actor:game_vertex_id(),target,0, target_pos,dir,sun_dir) snd_launch:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) pzrk_status = 3 launch_time = time_global() else wpn:set_ammo_elapsed(1) end elseif pzrk_status == 2 and wpn:get_ammo_in_magazine() == 1 then -- если источник питания сдох, а ракета так и не выпущена, она пропадает if time_global() > pzrk_active_timer then --qqq("timer_up") wpn:set_ammo_elapsed(0) pzrk_status = 3 launch_time = time_global() end elseif pzrk_status == 3 and time_global() > launch_time + 2100 then --empty = alife():create("igla_tube_empty",vector():set(db.actor:position().x,db.actor:position().y+2,db.actor:positi on().z+2),db.actor:level_vertex_id(),db.actor:game_vertex_id()) empty = alife():create("igla_tube_empty",pos,db.actor:level_vertex_id(),db.actor:game_vertex_id()) snd_power:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) pzrk_status = 4 pzrk_active_timer = nil elseif pzrk_status == 4 then local tube = level.object_by_id(empty.id) if tube then tube:set_const_force(vector():set(dir.z,0,-dir.x), 300, 150) pzrk_status = 5 end elseif pzrk_status == 5 and wpn:get_ammo_in_magazine() == 1 then pzrk_status = 0 end -- end --qqq("pzrk: status = "..pzrk_status.." active_timer = "..tostring(pzrk_active_timer).." time = "..time_global()) end end function read_string(section, value, default) if system_ini():line_exist(section,value) then return system_ini():r_float(section,value) else return default end end function dir_front(dir) return dir:normalize() end function dir_right(dir) return vector():set(dir.z,0,-1*dir.x):normalize() end function dir_up(dir) local dir_xz = vector():set(dir.x,0,dir.z):magnitude() -- проекция вектора dir на горизонтальную плоскость local dir_xz1 = vector():set((-1*dir.x) ,0,(-1*dir.z)):set_length(dir.y) return vector():set(dir_xz1.x ,dir_xz,dir_xz1.z):normalize() end function offset_to_global(pos,dir,off) local dir_front = dir_front(dir) local dir_up = dir_up(dir) local dir_right = dir_right(dir) pos.x = pos.x + dir_right.x*off.x + dir_up.x*off.y + dir_front.x*off.z pos.y = pos.y + dir_right.y*off.x + dir_up.y*off.y + dir_front.y*off.z pos.z = pos.z + dir_right.z*off.x + dir_up.z*off.y + dir_front.z*off.z return pos end я сменил это local wpn = db.actor:item_in_slot(db.actor:active_slot()) if wpn and wpn:section() == "wpn_igla" then на это local wpn_tab = {"wpn_igla","wpn_nan2_igla"} local wpn = weapon:section() if string.find(wpn,wpn_tab[name]) then sect = wpn_tab[name] кто что знает помогите плиззззз!!!!! Строгое предупреждение от модератора Куфзук Пишем грамотно, без запятых читать это - весьма проблематично!!! И про спойлеры не забываем! Кстате, суть проблемы друдно улавима! Ты лишь написал, что ты криво адаптировал АИ вертолетов, ну, а что не вышло или вышло ты же упустил. Ко всему, есть тема: AI вертолетов, где ты уже бывал, т.е. о ней знаешь. Ты чего - издеваешься!? Нарушение пунктов правил: 2.1.2 и 2.5 Добавлено через 14 мин.: Я написал что адапртировал я нормально просто мне секций несколько прописать надо и всё!!!!!!! Изменено 9 Марта 2011 пользователем Куфзук Реклама любых модов бесплатно на моём сайте писать в личку Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-574657
_Призрак_ 11 Опубликовано 9 Марта 2011 Поделиться Опубликовано 9 Марта 2011 Все гораздо проще: local wpn = db.actor:item_in_slot(db.actor:active_slot()) if wpn and (wpn:section() == "wpn_igla" or wpn:section() == "wpn_pm" or wpn:section() == "wpn_knife") then Freedom Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-574661
@"StreloK" 2 Опубликовано 9 Марта 2011 Поделиться Опубликовано 9 Марта 2011 (изменено) Люди может кто помочь с логикой? Нужно сделать что бы НПС требовал у ГГ убрать оружие из рук, а в случае неубора в течении 10 секунд начинал в него стрелять, после того как ГГ его убирает переходил в другое состояние (после убора НЕПись бьёт ГГ прикладом). Я начал делать так - [smart_terrains] none = true [logic] active = remark@base meet = meet [remark@base] anim = threat_heli no_move = true target = actor meet = meet on_actor_dist_ge_nvis = 8|walker on_info = {+info_ybral}remark@ybral [meet] meet_state = 10|threat_heli meet_state_wpn = 10|threat_heli victim = 10|actor victim_wpn = 10|actor use = true use_wpn = true [remark@ybral] anim = punch snd = cit_jail_guard_sneer meet = meet@punch target = actor on_signal = sound_end| %=run_cam_effector(fatigue)% on_actor_dist_ge_nvis = 8|walker [meet@punch] meet_state = 10|threat_heli meet_state_wpn = 10|threat_heli victim = 10|actor victim_wpn = 10|actor use = true use_wpn = true [walker] path_walk = agr_soldier_sniper_1_walk path_look = agr_soldier_sniper_1_look Но незнаю как собственно реализовать требование убрать оружие. Может кто помочь? Глянь на вики: >>Click Me<< Куфзук Добавлено через 133 мин.: Куфзук можешь подсказать что не так? Сделал вот такую логику, а НПСу а он вообще ничего неделает (только по валк-пути ходит) и на то есть оружие у ГГ или нет ему до фени. [smart_terrains] none = true [logic] active = walker@base combat_ignore = combat_ignore [walker@base] path_walk = agr_soldier_spesnaz_1_walk path_look = agr_soldier_spesnaz_1_look meet = meet on_actor_dist_ge_nvis = 80|walker on_info = {+info_ybral}remark@ybral [meet] meet_state = 50| {+info_yberi} threat_fire %=killactor%, walk@ {+info_yberi} talk_abuse, wait | 10 | walk %+info_yberi%; wait | 2 | threat;state meet_state_wpn = 50| {+info_yberi} threat_fire %=killactor%, threat@ {+info_yberi} talk_abuse, wait victim = 10|actor victim_wpn = 10|actor use = false use_wpn = false [remark@ybral] anim = punch snd = cit_jail_guard_sneer meet = meet@punch target = actor on_signal = sound_end| %=run_cam_effector(fatigue)% on_actor_dist_ge_nvis = 8|walker [meet@punch] meet_state = 10|threat_heli meet_state_wpn = 10|threat_heli victim = 10|actor victim_wpn = 10|actor use = false use_wpn = false [walker] path_walk = agr_soldier_spesnaz_1_walk path_look = agr_soldier_spesnaz_1_look [combat_ignore] combat_ignore_cond = always А инфопоршень info_ybral, ты как выдаешь? Ты здесь возможно ошибку допустил, у тебя в мите выдаеться инфопоршень info_yberi. Сообщение от модератора Куфзук Без дабл постов, пожалуйста! А может кто подсказать-как можно сделать чтобы НПС про получении инфопоршня подбегали к ГГ? Изменено 10 Марта 2011 пользователем Куфзук Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-574770
STARTS 0 Опубликовано 9 Марта 2011 Поделиться Опубликовано 9 Марта 2011 (изменено) Доброго времени суток! Столкнулся с проблемой в ЗП! self.kBackGround = CUIStatic() self.kBackGround:SetWindowName("kBackGround") self.kBackGround:SetAutoDelete(true) self.kBackGround:InitTexture("ui\\amk_transmutator") self.kBackGround:SetTextureRect(Frect():set(3,7,531,262)) self.kBackGround:Init(3,7,531,262) self:AttachChild(self.kBackGround) В ЗП нет self.kBackGround:Init(3,7,531,262) как его заменить? --------------------------------------------------------------- serega-gamer, попробуй так local wpn = db.actor:item_in_slot(db.actor:active_slot()) tab = {"wpn_1", "wpn_2", "дальше_веапоны"} for k,v in pairs (tab) do if wpn and wpn:section()== v then sect = v end end Не уверен что правильно, но мысль ты уловил)) Изменено 9 Марта 2011 пользователем STARTS Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-574803
serega-gamer 0 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 (изменено) Ага STARTS спасибо Строгое предупреждение от модератора Куфзук За нежелание придерживаться ОБЩИХ правил форума - рид на трое суток. Изменено 10 Марта 2011 пользователем Куфзук Реклама любых модов бесплатно на моём сайте писать в личку Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-574969
midichs 1 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 (изменено) Подскажите, что это такое: Specified story object is already in the Story registry! ???(появилось после добавления точки перехода в спавн) Появилося в логе? Если да, то где же лог? А так вообще, то у тебя story_id, который ты присвоил своему переходу, просто занят. Куфзук Изменено 10 Марта 2011 пользователем Куфзук Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575051
stunder 13 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 midichs, данный SID уже используется Мод "Жесть" В команду Two Team ("Жесть") требуется моделлер. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575052
midichs 1 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 Вот лог, наверное конфликт с модом проводники? [error]Expression : no_assert [error]Function : CALifeStoryRegistry::add [error]File : D:\xray-svn\xr_3da\xrGame\alife_story_registry.cpp [error]Line : 30 [error]Description : Specified story object is already in the Story registry! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575076
stunder 13 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 midichs, тебе же уже ответили. Скорее всего, ибо какой-то SID используется несколько раз. Мод "Жесть" В команду Two Team ("Жесть") требуется моделлер. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575077
ColR_iT 171 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 @"StreloK", ну для начала скажу, что инфопоршни доступны только для actora. Ну а вообще, тебе как это сделать нужно, какая ситуация? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575109
@"StreloK" 2 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 Изменяюсь за даблпост. Ситуация-ГГ входит в рестриктор то выдаёт инфопоршень, непись появляется за углом (в онлайне) и подбегает к ГГ. Можно-ли такое сделать? Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575117
stunder 13 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 Да, возможно. Ставь условие спавна на инфопоршень. http://www.stalkerin.gameru.net/wiki/index...8.D1.8F_spawner Мод "Жесть" В команду Two Team ("Жесть") требуется моделлер. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575126
@"StreloK" 2 Опубликовано 10 Марта 2011 Поделиться Опубликовано 10 Марта 2011 stunder как делать спавн при получении инфопоршеня я знаю. А как сделать чтобы он (нпс) подошёл к ГГ? Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575129
Gandifil 0 Опубликовано 11 Марта 2011 Поделиться Опубликовано 11 Марта 2011 1 вопрос: Люди скажите, как исправить двойной вызов функции? А то у меня какая-то ерунда. Если я использую спальный мешок: 1)Если меченный хочет спать то окошко появляется два раза. 2)Если не хочет спать, то появляется два сообщения и спавнится в инвентарь два мешка. Так же с модом медленных аптечек тоже самое: 1)Если Меченный не хавал до этого аптечки, то он излечивается и 1 раз появляется сообщение что "меченный не может лечится двумя аптечками". Спавниться одна аптечка(то есть без расстраты). 2)Если хавал, то два сообщения и две аптечки в инвентарь(то есть уже излишек) Что с этим делать? Дурак знает как затеять драку, умный знает как победить в драке, мудрец знает как избежать драки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575230
Painter 3 582 Опубликовано 11 Марта 2011 Поделиться Опубликовано 11 Марта 2011 @"StreloK", это уже в all.spawn лезть нужно. Портфолио Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575285
STARTS 0 Опубликовано 11 Марта 2011 Поделиться Опубликовано 11 Марта 2011 Gandifil Код для начала кинь, а потом уже люди посмотрят и скажут) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575308
=VENOM= 51 Опубликовано 11 Марта 2011 Поделиться Опубликовано 11 Марта 2011 Jurok, для того, чтобы непись подошёл к игроку в "олспон" лезть ни к чему. Это исключительно настройка логики. Подскажу - юзайте схему follower, а для @"StreloK" - схема и соответствующая модификация xr_attendant практически готова - только отшлифую ещё пару функций, и в ЛС отбарабаню . Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575358
Gandifil 0 Опубликовано 11 Марта 2011 Поделиться Опубликовано 11 Марта 2011 Вот мои скрипты Вот моя папка со скриптами. Только укажите в чем моя ошибка - там такое кол-во модов....Мог че нибудь и пропустить. Дурак знает как затеять драку, умный знает как победить в драке, мудрец знает как избежать драки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575371
AKKK1 6 Опубликовано 11 Марта 2011 Поделиться Опубликовано 11 Марта 2011 =VENOM= Подошел в смысле на конкретную точку где гг кабы должен быть ? Или туда где гг находтся в данный момент ? ( на другой локе к примеру). Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575467
=VENOM= 51 Опубликовано 11 Марта 2011 Поделиться Опубликовано 11 Марта 2011 Нет, это для сценок нападения на игрока - онлайн. Схема follower всё обсчитывает автоматически, её нужно только чуть-чуть подрихтовать. Поэтому непись пойдёт не туда, где игрок "должен быть", а прямо к игроку, даже если пытаться уйти от непися. Ну, а дельше всё зависит от фантазии разработчика ... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/79/#findComment-575499
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти