Перейти к контенту

Рекомендуемые сообщения

Этот кусок текста по идее должен был удерживать его на место:

[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

по идее там где его заспавнишь он и будет стоять....т.е. у него усё время будет проигрываться анимация "стояния" :D

Поделиться этим сообщением


Ссылка на сообщение
А куда у него мордочка будет направлена? А то будет тупо зыркать в стену...

ты проверь :)....

Еслиб у мну был мод...я бы посмотрел ..но сейчас у меня инет не тот (безлимитный,скоростной...эээххх)..а через сотовый :)..воть и не могу столько скачать :)

Поделиться этим сообщением


Ссылка на сообщение
Класс! Спачибо, все работает (по крайней мере у меня он никуда не убегает, да и смотрит именно туда, куда надо!

Отлично рад что помог :)...ну то что Дима писал правильней..так просто правильней...мой вариант для тех кто спавнит через скрипт и хочет чтоб непесь стояла на месте...а если будешь спавнить через алл.спавн то лучше как Дима пишет :)

Поделиться этим сообщением


Ссылка на сообщение
В общем вопрос такой: Как написать условие, чтобы если ГГ имел сразу несколько инфопоршней, то ему еще довался один новый инфопоршень (или просто как сделать скрипт, чтобы у ГГ есть все инфопоршни из перечисленных).

ну к примеру так

if db.actor:has_info("") and db.actor:has_info("") and db.actor:has_info("") and ..... then

выдавать инфопоршинь

end

насчет этого : (или просто как сделать скрипт, чтобы у ГГ есть все инфопоршни из перечисленных) не понял.. растолкуй... я напишу как...

Поделиться этим сообщением


Ссылка на сообщение
Я скажем пишу прикондишн для диалога, мне надо, чтобы если у ГГ есть все 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

Что делать потом знаешь;)

это для первого варианта прекондишона ,для второго написать или разберешься ? :)

Поделиться этим сообщением


Ссылка на сообщение
Да, спасибо. Вот еще тема: Я говорю с челом, получаю некий инфопоршень, а потом меня телепортирует на определенные координаты. Как это осуществить?

именно на координаты на той локации где ГГ или на другую локацию???

Поделиться этим сообщением


Ссылка на сообщение

смотри споллер

 

Скрытый текст --Смотреть--

--это биндер телепортов

 

local teleport_binders ={}

function abs_comp(a,B)

if( a < B) then

return (b - a)

else

return (a - B)

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

 

 

ну и после диалога спавнишь тлепорт

а потом удаляешь

Поделиться этим сообщением


Ссылка на сообщение
Т.е. для каждого новогго телепорта мне надо будет создать новую секцию спавна? И еще сюда как писать: script_binding = название биндера.bind?

нет не секцию спавна а секцию в фаиле ....

script_binding = название того скрипта куда ты засунеш биндер телепортов... его надо вызывать в апдейте актёра....bind?

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
  • Куратор(ы) темы:

×
×
  • Создать...