меченый(стрелок) 5 Опубликовано 11 Января 2009 Этот кусок текста по идее должен был удерживать его на место: [smart_terrains]\nnone = true Но он почему-то все-равно уходит... Может кто-нибудь расскажет мне, почему? ДА я тоже так делал ,у меня Непись стоял на месте , а у других уходил в ближайший гулаг (хз. почему)...так что попробуй логику ему такую прописать... [smart_terrains] none = true [dont_spawn_loot] [logic] active = remark combat_ignore = combat_ignore [combat_ignore] [remark] anim = wait combat_ignore_cond = always по идее там где его заспавнишь он и будет стоять....т.е. у него усё время будет проигрываться анимация "стояния" Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 11 Января 2009 А куда у него мордочка будет направлена? А то будет тупо зыркать в стену... ты проверь .... Еслиб у мну был мод...я бы посмотрел ..но сейчас у меня инет не тот (безлимитный,скоростной...эээххх)..а через сотовый ..воть и не могу столько скачать Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 14 Января 2009 Класс! Спачибо, все работает (по крайней мере у меня он никуда не убегает, да и смотрит именно туда, куда надо! Отлично рад что помог ...ну то что Дима писал правильней..так просто правильней...мой вариант для тех кто спавнит через скрипт и хочет чтоб непесь стояла на месте...а если будешь спавнить через алл.спавн то лучше как Дима пишет Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 14 Января 2009 В общем вопрос такой: Как написать условие, чтобы если ГГ имел сразу несколько инфопоршней, то ему еще довался один новый инфопоршень (или просто как сделать скрипт, чтобы у ГГ есть все инфопоршни из перечисленных). ну к примеру так if db.actor:has_info("") and db.actor:has_info("") and db.actor:has_info("") and ..... then выдавать инфопоршинь end насчет этого : (или просто как сделать скрипт, чтобы у ГГ есть все инфопоршни из перечисленных) не понял.. растолкуй... я напишу как... Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 14 Января 2009 Я скажем пишу прикондишн для диалога, мне надо, чтобы если у ГГ есть все 3 инфопоршня, то разветвление в одну сторону, а если нет ВСЕХ (если нет вообще, есть 1, есть 2), то в другую сторону... ну как-то так: function check() if db.actor:has_info("") and db.actor:has_info("") and db.actor:has_info("") and ..... then return true else return false end Что делать потом знаешь это для первого варианта прекондишона ,для второго написать или разберешься ? Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 14 Января 2009 Да, спасибо. Вот еще тема: Я говорю с челом, получаю некий инфопоршень, а потом меня телепортирует на определенные координаты. Как это осуществить? именно на координаты на той локации где ГГ или на другую локацию??? Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 14 Января 2009 смотри споллер Скрытый текст --Смотреть-- --это биндер телепортов local teleport_binders ={} function abs_comp(a, if( a < then return (b - a) else return (a - end end function teleportate(x,y,z) local a = vector() a.x = x a.y = y a.z = z db.actor:set_actor_position(a) local snd_obj = xr_sound.get_safe_sound_object([[affects\tinnitus3a]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end function actor_update(delta) local i,v,acter_poz,s acter_poz = db.actor:position() for i, v in pairs(teleport_binders) do s = v.parametrs local obj = level.object_by_id( i ) if obj ~= nil then if s.teleporte ~= nil and s.teleporte ~= false then if ( time_global() <= s.time ) then teleportate(s.poz_x,s.poz_y,s.poz_z) if s.rotate ~= nil then db.actor:set_actor_direction(s.rotate) end s.teleporte = false end return end if (abs_comp(s.x, acter_poz.x)< v.parametrs.radius and abs_comp(s.z, acter_poz.z)< v.parametrs.radius and abs_comp(s.y, acter_poz.y)< v.parametrs.z_radius) then s["teleporte"] = true s["time"] = time_global() + 500 level.add_pp_effector ("teleport.ppe", 2006, false) end end end end function bind( obj ) obj:bind_object( restrictor_teleport( obj ) ) end class "restrictor_teleport" ( object_binder ) function restrictor_teleport:__init(obj, char_ini) super(obj) end function restrictor_teleport:net_spawn(data) local char_ini = system_ini() if self.teleport == true then teleport_binders[self.object:id()] = self self["parametrs"] = {} if char_ini:line_exist(self.section, "radius") then self.parametrs["radius"] = tonumber(char_ini:r_string(self.section, "radius")) else self.parametrs["radius"] = 2 end if char_ini:line_exist(self.section, "z_radius") then self.parametrs["z_radius"] = tonumber(char_ini:r_string(self.section, "z_radius")) else self.parametrs["z_radius"] = self.parametrs["radius"] end local s_obj = alife():object(self.object:id()) self.parametrs["x"] = tonumber(s_obj.position.x); self.parametrs["y"] = tonumber(s_obj.position.y); self.parametrs["z"] = tonumber(s_obj.position.z); self.parametrs["poz_x"] = tonumber(char_ini:r_string(self.section, "poz_x")) self.parametrs["poz_y"] = tonumber(char_ini:r_string(self.section, "poz_y")) self.parametrs["poz_z"] = tonumber(char_ini:r_string(self.section, "poz_z")) if char_ini:line_exist(self.section, "rotate") then self.parametrs["rotate"] = tonumber(char_ini:r_string(self.section, "rotate")) end end return true end function restrictor_teleport:net_destroy() teleport_binders[self.object:id()] = nil self.parametrs = nil object_binder.net_destroy(self) end function restrictor_teleport:reload(section) local char_ini = system_ini() self.section = section if char_ini ~= nil and char_ini:line_exist(self.section, "teleport") then self["teleport"] = true end end -это функция спавна local spawn_point1 = vector():set(db.actor:position ()) local obj = alife():create("название секции телепорта из zone_teleports.ltx",spawn_point1,db.actor:level_vertex_id,db.actor:game_vertex_id) --секция [имя секции]:zone_teleport teleport = standart script_binding = название биндера.bind ;Параметры нашего телепорта radius = 2 ;Высота захвата телепорта z_radius = 2 ;Куда телепортируемся (телепортация всегда идет в пределах карты) poz_x = poz_y = poz_z = ; Угол зрения при появлении. Если параметра нет то не меняется rotate = 1.5 ну и после диалога спавнишь тлепорт а потом удаляешь Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 14 Января 2009 Т.е. для каждого новогго телепорта мне надо будет создать новую секцию спавна? И еще сюда как писать: script_binding = название биндера.bind? нет не секцию спавна а секцию в фаиле .... script_binding = название того скрипта куда ты засунеш биндер телепортов... его надо вызывать в апдейте актёра....bind? Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 15 Января 2009 Nu i to ne slozhno . Поделиться этим сообщением Ссылка на сообщение