Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
> Билдовая флудилка
Alex Ros
сообщение 13.02.2011, 02:40
Сообщение #581


Грандмастер
**************

Репутация:   482  
Группа: Участник
Сообщений: 1851
Регистрация: 22.08.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Отдельная флудилка по билдам в принципе давно напрашивается. Но захламлять аккуратные темы по билдам нет желания. Также нет желания поганить барную стойку, а там постоянно всплывает флуд по билдам. Поэтому, если никто не против, то можно открыть флудилку сугубо по билдам, сразу всем скопом. Желающих много попищать от восторга и наоборот негодования, как же так злобные разработчики все порезали, испортили и искромсали. Можно делать это здесь.
Запрещаются:
1)Посты, не относящиеся к тематике раздела.
2)Безграмотные посты, а так же посты, состоящие из одного слова или смайла.
Приятного общения!

Раздачи концепт-артов, видеороликов, и прочего за период разработки всех игр сталкер (в подписи)

Сообщение отредактировал RayTwitty - 12.01.2017, 21:42
Перейти в начало страницы
 
263 страниц V  « < 28 29 30 31 32 > »   
Начать новую тему
Ответов
Trollz0r
сообщение 02.04.2011, 10:27
Сообщение #582


Почти Мастер
***********

Репутация:   1357  
Группа: Участник
Сообщений: 1155
Награды: 5
Регистрация: 28.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 02.04.2011, 09:42) *
SciLexer.dll Чё й то?

Лексер SciTE, реализует подсветку .ltx файлов.
Цитата(Modera @ 02.04.2011, 09:42) *
Вот ешё обнаружил

Рабочие логи.


--------------------
Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
---------------
------------
----------
--------
------
----
--
Перейти в начало страницы
 
Билдоман
сообщение 02.04.2011, 12:38
Сообщение #583


Босс
********************

Репутация:   950  
Группа: Участник
Сообщений: 4230
Награды: 2
Регистрация: 27.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(_призрак_ @ 01.04.2011, 21:54) *
А что ты получишь при переходе на 2205?


Нормальный инвентарь, r1, множество мелких фич.

Цитата(Не_люблю_ztn @ 02.04.2011, 02:47) *
"Билд 5233"


Это qip. smile.gif


Modera,

У меня архив вообще не открывается. sad.gif Раз уж так, то перезалей, желательно в rar.


--------------------
I NEED A BRAAAAAAAAAAAAAAAAAAAAAAP!!!!11
Перейти в начало страницы
 
Modera
сообщение 02.04.2011, 13:24
Сообщение #584


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Билдоман, http://narod.ru/disk/9087904001/rat_1.rar.html
Перейти в начало страницы
 
Modera
сообщение 02.04.2011, 14:04
Сообщение #585


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


это просто крыса
Перейти в начало страницы
 
Modera
сообщение 02.04.2011, 14:24
Сообщение #586


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


"xrCore"build 1893, Sep 6 2004
При запуске Антивирус говорит что защита скрытым путём пытается установить драйвер, стоит ли это-го боятся?
Перейти в начало страницы
 
Не_люблю_ztn
сообщение 02.04.2011, 14:58
Сообщение #587


Продвинутый геймер
********

Репутация:   109  
Группа: Забанен
Сообщений: 476
Регистрация: 08.03.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Билдоман @ 02.04.2011, 12:38) *
Это qip. smile.gif

- То то я думаю что это 2013 год должен быть по алгоритму. laugh.gif


--------------------
"Спасииибо", админы за новый "статус", теперь сюда можно вообще не заходить.
...На самом деле всё сложнее и "хуже". © А. Мартынов.
Перейти в начало страницы
 
Trollz0r
сообщение 02.04.2011, 15:04
Сообщение #588


Почти Мастер
***********

Репутация:   1357  
Группа: Участник
Сообщений: 1155
Награды: 5
Регистрация: 28.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 02.04.2011, 15:24) *
Антивирус

Что за Антивирус с большой буквы? smile.gif
Не стоит.


--------------------
Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
---------------
------------
----------
--------
------
----
--
Перейти в начало страницы
 
Билдоман
сообщение 02.04.2011, 15:06
Сообщение #589


Босс
********************

Репутация:   950  
Группа: Участник
Сообщений: 4230
Награды: 2
Регистрация: 27.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(RedPython @ 02.04.2011, 16:04) *
Не стоит.


Кто-то года два назат написал на форуме: Чем открыть DDS-текстуры? А то этот paint.net. У меня не стоит. biggrin.gif


--------------------
I NEED A BRAAAAAAAAAAAAAAAAAAAAAAP!!!!11
Перейти в начало страницы
 
Modera
сообщение 03.04.2011, 10:55
Сообщение #590


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


"XrCore" build 1537, Sep 15 2003

Перейти в начало страницы
 
Васько
сообщение 03.04.2011, 11:04
Сообщение #591


Доктор Игровых Наук
*******************

Репутация:   533  
Группа: Участник
Сообщений: 3855
Награды: 4
Регистрация: 24.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Билдоман @ 02.04.2011, 16:06) *
Чем открыть DDS-текстуры?

Photoshop'ом smile.gif


--------------------


Перейти в начало страницы
 
Билдоман
сообщение 03.04.2011, 11:38
Сообщение #592


Босс
********************

Репутация:   950  
Группа: Участник
Сообщений: 4230
Награды: 2
Регистрация: 27.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Васько,

Ну я знаю чем их открыть. Просто когда-то кто то написал вот это: paint.net. У меня не стоит. smile.gif У кого-то даже в подписи было вроде.

Modera,

GSC такие GSC... сначала сделать отражение, а уже потом мост. laugh.gif


--------------------
I NEED A BRAAAAAAAAAAAAAAAAAAAAAAP!!!!11
Перейти в начало страницы
 
Modera
сообщение 03.04.2011, 11:55
Сообщение #593


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Билдоман, Потом эту же модель в сдк перевернуть и всё,кстати по подводному мосту можно ходить также можно полазить в отражении вышек smile.gif
Перейти в начало страницы
 
Привет, Андрей
сообщение 03.04.2011, 13:26
Сообщение #594


Дибил
*********************

Репутация:   823  
Группа: Забанен
Сообщений: 4891
Регистрация: 08.01.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Билдоман @ 02.04.2011, 15:06) *
У меня не стоит

Сочувствую biggrin.gif Modera, Че за хрень на последнем скрине? o_O.gif


--------------------
Если вы заботитесь о своём пищеварении — мой добрый совет: не говорите за обедом о большевизме и о медицине. И, боже вас сохрани, не читайте до обеда новости на gameru. Да и после обеда.
Перейти в начало страницы
 
Билдоман
сообщение 03.04.2011, 14:08
Сообщение #595


Босс
********************

Репутация:   950  
Группа: Участник
Сообщений: 4230
Награды: 2
Регистрация: 27.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Camblu,

Не мне сочувствуй. Это кто-то в старой флудилке писал. biggrin.gif


--------------------
I NEED A BRAAAAAAAAAAAAAAAAAAAAAAP!!!!11
Перейти в начало страницы
 
Modera
сообщение 03.04.2011, 15:25
Сообщение #596


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Camblu, Солдат на фоне восхода (отключил смену погоды) и прожектора.
Я там ешё скринов нашелкал могу скинуть всю папку

Сообщение отредактировал Modera - 03.04.2011, 15:27
Перейти в начало страницы
 
Modera
сообщение 05.04.2011, 18:51
Сообщение #597


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Профиксил xr_meet в 1893 теперь если ходить с оружием рядом с нпс они не становятся врагами но воозбше не обрашают внимания на актёра sad.gif зато понял как зделать так чтоб нпс в МП на игрока реагировали
Перейти в начало страницы
 
VEX
сообщение 05.04.2011, 19:20
Сообщение #598


Почти Игроман
*********

Репутация:   201  
Группа: Участник
Сообщений: 611
Награды: 4
Регистрация: 05.08.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 05.04.2011, 19:51) *
зато понял как зделать так чтоб нпс в МП на игрока реагировали

Работает??


--------------------
Cоветы,по какому либо делу стоит давать только тогда, когда умеешь делать это дело лучше того, кого пытаешься наставлять.
Перейти в начало страницы
 
Привет, Андрей
сообщение 05.04.2011, 19:29
Сообщение #599


Дибил
*********************

Репутация:   823  
Группа: Забанен
Сообщений: 4891
Регистрация: 08.01.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Modera, Просвети нас


--------------------
Если вы заботитесь о своём пищеварении — мой добрый совет: не говорите за обедом о большевизме и о медицине. И, боже вас сохрани, не читайте до обеда новости на gameru. Да и после обеда.
Перейти в начало страницы
 
Modera
сообщение 05.04.2011, 20:12
Сообщение #600


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Camblu, xr_meet.script - из за него сталкеры и рагируют на актёра
а в мп у нас мп актёр так?
Скрипт
----------------------------------------------------------------------------------------------------------------------
-- Схема встречи двух сталкеров
-- автор: Диденко Руслан (Stohe)
-- TODO:
----------------------------------------------------------------------------------------------------------------------

local sounds = {}

---------------------------------------------------------------------------------------------------------------------
--Evaluators
----------------------------------------------------------------------------------------------------------------------
-- Возвращает есть ли у нас контакт с другим сталкером
class "evaluator_contact" (property_evaluator)
function evaluator_contact:__init(storage) super()
self.a = storage
end
function evaluator_contact:evaluate()
-- Если мы - член группировки и видим кого-либо вооруженного или врага на территории группировки (отметить как гостя и сделать врагом)
if self.a.enabled == false then return false end

local actor = level.actor()

if actor then
if actor:alive() and
self.object:see(actor) and тоже не знаю может надо ту и на других строках с actor
self.object:position():distance_to(actor:position()) < self.a.distance
then
self.a.actor = nil
else
self.a.actor = actor на имя мп актора
end
else
self.a.actor = nil
end
-- if self.a.over == false then
-- printf("OVER TRU")
-- else
-- printf("OVER FALSE")
-- end

return self.a.actor ~= nil --'and self.a.over == false
end
-- имеет ли клиент оружие
class "evaluator_weapon" (property_evaluator)
function evaluator_weapon:__init(storage) super()
self.a = storage
end
function evaluator_weapon:evaluate()
local actor = level.actor()

if actor then
if actor:alive() and
self.object:see(actor)
then
return isWeapon(actor:active_item())
end
end
return false
end
-- ждать появления клиента
class "evaluator_wait" (property_evaluator)
function evaluator_wait:__init(storage) super()
self.a = storage
end
function evaluator_wait:evaluate()
return self.a.Buyer ~= nil
end
-- в диалоге ли мы или нет
class "evaluator_talk" (property_evaluator)
function evaluator_talk:__init(storage) super()
self.a = storage
end
function evaluator_talk:evaluate()
return self.object:is_talking()
end
-- боимся ли мы клиента
class "evaluator_afraid" (property_evaluator)
function evaluator_afraid:__init(storage) super()
self.a = storage
end
function evaluator_afraid:evaluate()
--if self.a.actor ~= nil then printf(" goodwill %d", self.object:goodwill(self.a.actor)) end
return false
end
-- принадлежим ли мы с клиентом к одной и той же группировке
class "evaluator_clan" (property_evaluator)
function evaluator_clan:__init(storage) super()
self.a = storage
end
function evaluator_clan:evaluate()
return true
end
-- находится ли клиент на территории моей группировки
class "evaluator_clan_zone" (property_evaluator)
function evaluator_clan_zone:__init(storage) super()
self.a = storage
end
function evaluator_clan_zone:evaluate()
return false
end

----------------------------------------------------------------------------------------------------------------------
--Actions
----------------------------------------------------------------------------------------------------------------------
-- Инициализация торговли
class "action_trade_init" (action_base)
function action_trade_init:__init (npc_name,action_name,storage) super (nil, action_name)
self.a = storage
end
function action_trade_init:initialize()
action_base.initialize(self)
self.object:set_node_evaluator()
self.object:set_path_evaluator()
self.object:set_desired_position()
self.object:set_desired_direction()

local bt = xr_motivator.trade_arhive[self.a.Seller:id()]:best_trader()

if self.a.Seller:relation(bt) ~= game_object.enemy and
self.a.enabled == true
then
self.a.begin_wait_to_see.begin = device():time_global()/1000

xr_position.setPosition(self.a.Seller, self.a.Seller:level_vertex_id())

self.a.Buyer = bt

--Отсылка на ПДА: мы согласны торговать.
self.a.Seller:send_pda_message(3, bt)
else
self.a.Seller:send_pda_message(5, bt)
end
xr_motivator.trade_arhive[self.a.Seller:id()]:remove(bt)
end
function action_trade_init:execute ()
action_base.execute (self)
end
function action_trade_init:finalize ()
action_base.finalize (self)
end

-- Ожидание появления покупателя
class "action_wait_for_buyer" (action_base)
function action_wait_for_buyer:__init (npc_name,action_name,storage) super (nil, action_name)
self.a = storage
end
function action_wait_for_buyer:initialize()
action_base.initialize(self)

self.object:set_node_evaluator()
self.object:set_path_evaluator()
self.object:set_desired_position()
self.object:set_desired_direction()

level.map_add_object_icon(self.object, 0)
self.object:set_item(object.idle, self.object:best_weapon())
self.object:set_movement_type(move.stand)
self.object:set_mental_state(anim.free)

self.act = {type = 1,
begin = nil,
time = 6}

self.anim = {idle = 0,
begin = nil,
maxidle = 5,
sumidle = 5,
rnd = 100,
lastanim = nil}

self.anim_s = {idle = 0,
begin = nil,
maxidle = 5,
sumidle = 3,
rnd = 80,
lastanim = nil}

self.sound_s = { rnd = 100,
maxidle = 5,
sumidle = 2,
themes = { "weather", "state", "hail" } }

self.sound_s = { rnd = 100,
maxidle = 7,
sumidle = 5,
themes = { "weather", "state", "wait" } }

end
function action_wait_for_buyer:execute ()
action_base.execute (self)

-- Проверка, видим ли мы актора или нет
if self.object:see(self.a.Buyer) == true then
-- смотрим на клиента
local pos = self.a.Buyer:position()
pos.y = pos.y + 1
self.object:set_sight(look.point, pos, 0)

-- секция анимации
xr_state.anim_update("idle", self.object)
-- надо изредка рукой махать
if (self.anim_s.begin == nil or
(device():time_global()/1000 - self.anim_s.begin) > self.anim_s.idle) then
if math.random(100) < self.anim_s.rnd then
xr_state.anim_update("hello", self.object)
end
self.anim_s.begin = device():time_global()/1000
self.anim_s.idle = math.random(self.anim_s.maxidle) + self.anim_s.sumidle
end


-- секция озвучки
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_s)
end
else
-- секция анимации
-- 1: если не отыгрываем никаких анимаций - то поворачиваемся в случайную сторону
-- 2: выжидаем, иногда отыгрывая какую либо анимацию
if self.act.type == 1 then
self.act.begin = device():time_global()/1000
self.act.type = 2

local dir = vector():set(math.random(10)-5, 0, math.random(10)-5)
self.object:set_sight(look.direction, dir, 0)
self.object:set_body_state(move.standing)
else
xr_state.anim_update("idle", self.object)

if (device():time_global()/1000 - self.act.begin) > self.act.time then
self.act.type = 1
end
end

-- секция озвучки
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_w)
end
end

-- проверять условия завершения ожидания
if xr_motivator.storage[self.object:id()].meet.actor ~= nil then
self.a.Buyer = nil
end
end
function action_wait_for_buyer:finalize ()
level.map_remove_object_icon(self.object)
action_base.finalize (self)
end

-- Приглашение к тороговле
class "action_wait" (action_base)
function action_wait:__init (npc_name,action_name, storage) super (nil, action_name)
self.a = storage

self.sound_w = { rnd = 80,
maxidle = 5,
sumidle = 2,
themes = { "weather", "state", "wait" } }

end
function action_wait:initialize()
action_base.initialize(self)
self.object:set_node_evaluator()
self.object:set_path_evaluator()
self.object:set_desired_position()
self.object:set_desired_direction()

self.object:set_body_state(move.standing)
self.object:set_movement_type(move.stand)
self.object:set_mental_state(anim.free)

self.object:set_item(object.deactivate, self.object:best_weapon())
self.object:enable_talk()
end
function action_wait:execute ()
-- нужно остановиться и посмотреть в сторону актора
local dir = self.a.actor:position():sub(self.object:position())

self.object:set_sight(look.direction, dir, 0)

-- Анимации
xr_state.anim_update("idle", self.object)

-- Звуки
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_w)
end
action_base.execute (self)
end
function action_wait:finalize ()
self.object:disable_talk()
xr_state.anim_update(nil, self.object)
action_base.finalize (self)
end

-- Болтовня
class "action_talk" (action_base)
function action_talk:__init (npc_name,action_name, storage) super (nil, action_name)
self.a = storage

self.sound_trstart = { rnd = 100,
maxidle = 1,
sumidle = 0,
themes = { "trade_yes" } }

self.sound_trend = { rnd = 100,
maxidle = 1,
sumidle = 0,
themes = { "talk_bye" } }
end
function action_talk:initialize()
action_base.initialize(self)
self.object:set_node_evaluator()
self.object:set_path_evaluator()
self.object:set_desired_position()
self.object:set_desired_direction()

self.object:set_body_state(move.standing)
self.object:set_movement_type(move.stand)
self.object:set_mental_state(anim.free)

if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_trstart)
end
self.object:set_item(object.deactivate, self.object:best_weapon())
end
function action_talk:execute ()
-- нужно остановиться и посмотреть в сторону актора
local dir = self.a.actor:position():sub(self.object:position())

self.object:set_sight(look.direction, dir, 0)

-- Анимации
xr_state.anim_update("idle", self.object)
action_base.execute (self)
end
function action_talk:finalize ()
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_trend)
end
xr_state.anim_update(nil, self.object)
action_base.finalize (self)
end

-- Типа спрячь пушку, чувак
class "action_weapon" (action_base)
function action_weapon:__init (npc_name,action_name, storage) super (nil, action_name)
self.a = storage

self.sound_e = { rnd = 100,
maxidle = 3,
sumidle = 2,
themes = { "threat_weap" } }

self.sound_f = { rnd = 100,
maxidle = 1,
sumidle = 0,
themes = { "talk_abuse" } }
end
function action_weapon:initialize()
action_base.initialize(self)
self.object:set_node_evaluator()
self.object:set_path_evaluator()
self.object:set_desired_position()
self.object:set_desired_direction()

self.object:set_body_state(move.standing)
self.object:set_movement_type(move.stand)
self.object:set_mental_state(anim.danger)

self.object:clear_animations()
xr_reactions.add_rule(self.object, "ignore")
end
function action_weapon:execute ()
self.object:set_item(object.idle, self.object:best_weapon())

-- нужно остановиться и посмотреть в сторону актора
local pos = self.a.actor:position()

local dir = self.a.actor:position():sub(self.object:position())
self.object:set_sight(look.direction, dir, 0)

-- если актер ближе какого-то радиуса - открывать огонь
if self.object:position():distance_to(self.a.actor:position()) < self.a.shoot_distance then
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_f)
end
self.object:set_relation(game_object.enemy, self.a.actor)
else
-- Звуки
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_e)
end
end
action_base.execute (self)
end
function action_weapon:finalize ()
xr_reactions.remove_rule(self.object, "ignore")
action_base.finalize (self)
end

-- Типа свали отсюда
class "action_afraid" (action_base)
function action_afraid:__init (npc_name,action_name, storage) super (nil, action_name)
self.a = storage
self.timer = 10*1000 -- задержка
self.begin = nil

self.sound_e = { rnd = 100,
maxidle = 5,
sumidle = 1,
themes = { "threat_back" } }

self.sound_f = { rnd = 100,
maxidle = 1,
sumidle = 0,
themes = { "talk_abuse" } }
end
function action_afraid:initialize()
action_base.initialize(self)
self.object:set_node_evaluator()
self.object:set_path_evaluator()
self.object:set_desired_position()
self.object:set_desired_direction()

self.object:set_body_state(move.standing)
self.object:set_movement_type(move.stand)
self.object:set_mental_state(anim.danger)

self.object:clear_animations()
xr_reactions.add_rule(self.object, "ignore")
self.begin = device():time_global()
end
function action_afraid:execute ()
self.object:set_item(object.idle, self.object:best_weapon())

if device():time_global() - self.begin > self.timer then
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_f)
end
self.object:set_relation(game_object.enemy, self.a.actor)
end

-- нужно остановиться и посмотреть в сторону актора
local dir = self.a.actor:position():sub(self.object:position())
self.object:set_sight(look.direction, dir, 0)

-- Звуки
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_e)
end

action_base.execute (self)
end
function action_afraid:finalize ()
xr_reactions.remove_rule(self.object, "ignore")
action_base.finalize (self)
end

-- Контакт с членом другой группировки за территорией группировки
class "action_contact_zoneout" (action_base)
function action_contact_zoneout:__init (npc_name,action_name, storage) super (nil, action_name)
self.a = storage
self.timer = 10*1000 -- задержка
self.begin = nil

self.sound_e = { rnd = 100,
maxidle = 5,
sumidle = 1,
themes = { "threat_back" } }

self.sound_f = { rnd = 100,
maxidle = 1,
sumidle = 0,
themes = { "talk_abuse" } }
end
function action_contact_zoneout:initialize()
action_base.initialize(self)
self.object:set_node_evaluator()
self.object:set_path_evaluator()
self.object:set_desired_position()
self.object:set_desired_direction()

self.object:set_body_state(move.standing)
self.object:set_movement_type(move.stand)
self.object:set_mental_state(anim.danger)

xr_reactions.add_rule(self.object, "ignore")
self.begin = device():time_global()
end
function action_contact_zoneout:execute ()
-- угрожать и прогонять
self.object:set_item(object.idle, self.object:best_weapon())

if device():time_global() - self.begin > self.timer then
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_f)
end
self.object:set_relation(game_object.enemy, self.a.actor)
end

-- нужно остановиться и посмотреть в сторону актора
local dir = self.a.actor:position():sub(self.object:position())
self.object:set_sight(look.direction, dir, 0)

-- Звуки
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_e)
end
action_base.execute (self)
end
function action_contact_zoneout:finalize ()
xr_reactions.remove_rule(self.object, "ignore")
action_base.finalize (self)
end

-- Контакт с членом другой группировки на территории группировки
class "action_contact_zone" (action_base)
function action_contact_zone:__init (npc_name,action_name, storage) super (nil, action_name)
self.a = storage

self.timer = 10*1000 -- задержка
self.begin = nil

self.sound_e = { rnd = 100,
maxidle = 5,
sumidle = 1,
themes = { "threat_back" } }

self.sound_f = { rnd = 100,
maxidle = 1,
sumidle = 0,
themes = { "talk_abuse" } }

self.sound_w = { rnd = 100,
maxidle = 1,
sumidle = 0,
themes = { "weather", "state", "threat_stop" } }
end
function action_contact_zone:initialize()
action_base.initialize(self)
self.object:set_node_evaluator()
self.object:set_path_evaluator()
self.object:set_desired_position()
self.object:set_desired_direction()

self.known = true -- Приглашенный ли он

if self.known then
self.object:set_body_state(move.standing)
self.object:set_movement_type(move.stand)
self.object:set_mental_state(anim.free)

self.object:set_item(object.deactivate, self.object:best_weapon())
self.object:enable_talk()
else
self.object:set_body_state(move.standing)
self.object:set_movement_type(move.stand)
self.object:set_mental_state(anim.danger)

xr_reactions.add_rule(self.object, "ignore")
self.begin = device():time_global()
end
end
function action_contact_zone:execute ()
self.object:set_item(object.idle, self.object:best_weapon())

-- если он неизвестный - прогонять
-- если он приглашенный - предостерегать
if self.known then
-- нужно остановиться и посмотреть в сторону актора
local dir = self.a.actor:position():sub(self.object:position())

self.object:set_sight(look.direction, dir, 0)

-- Анимации
xr_state.anim_update("idle", self.object)

-- Звуки
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_w)
end

else
if device():time_global() - self.begin > self.timer then
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_f)
end
self.object:set_relation(game_object.enemy, self.a.actor)
end
-- нужно остановиться и посмотреть в сторону актора
local dir = self.a.actor:position():sub(self.object:position())
self.object:set_sight(look.direction, dir, 0)
-- Звуки
if self.object:active_sound_count() == 0 then
xr_sound.sound_update(self.object, self.sound_e)
end
end
action_base.execute (self)
end
function action_contact_zone:finalize ()
if self.known then
self.object:disable_talk()
xr_state.anim_update(nil, self.object)
else
xr_reactions.remove_rule(self.object, "ignore")
end
action_base.finalize (self)
end


----------------------------------------------------------------------------------------------------------------------
-- Functions
----------------------------------------------------------------------------------------------------------------------
function disable_meet(npc)
if npc ~= nil and
is_object_online(npc:id()) == true
then
xr_motivator.storage[npc:id()].meet.enabled = false
end
end
function enable_meet(npc)
if npc ~= nil and
is_object_online(npc:id()) == true
then
xr_motivator.storage[npc:id()].meet.enabled = true
end
end

----------------------------------------------------------------------------------------------------------------------
-- binder
----------------------------------------------------------------------------------------------------------------------
function add_to_binder(object, char_ini)
local operators = {}
local properties = {}

local manager = object:motivation_action_manager()

properties["event"] = xr_evaluators_id.reaction
properties["wait_buyer"] = xr_evaluators_id.stohe_tradeseller_base + 1
properties["contact"] = xr_evaluators_id.stohe_meet_base + 1
properties["weapon"] = xr_evaluators_id.stohe_meet_base + 2
properties["afraid"] = xr_evaluators_id.stohe_meet_base + 3
properties["clan"] = xr_evaluators_id.stohe_meet_base + 4
properties["clan_zone"] = xr_evaluators_id.stohe_meet_base + 5
properties["talk"] = xr_evaluators_id.stohe_meet_base + 6
properties["need_punch"] = xr_evaluators_id.zmey_punch_base + 1

operators["wait_buyer"] = xr_actions_id.stohe_tradeseller_base + 2
operators["wait_trade"] = xr_actions_id.stohe_meet_base + 1
operators["weapon"] = xr_actions_id.stohe_meet_base + 2
operators["afraid"] = xr_actions_id.stohe_meet_base + 3
operators["contact_zone"] = xr_actions_id.stohe_meet_base + 4
operators["contact_zoneout"] = xr_actions_id.stohe_meet_base + 5
operators["talk"] = xr_actions_id.stohe_meet_base + 6

-- Evaluators
manager:add_evaluator (properties["wait_buyer"], this.evaluator_wait (xr_motivator.storage[object:id()].tradeseller))
manager:add_evaluator (properties["contact"], this.evaluator_contact (xr_motivator.storage[object:id()].meet))
manager:add_evaluator (properties["weapon"], this.evaluator_weapon (xr_motivator.storage[object:id()].meet))
manager:add_evaluator (properties["afraid"], this.evaluator_afraid (xr_motivator.storage[object:id()].meet))
manager:add_evaluator (properties["clan"], this.evaluator_clan (xr_motivator.storage[object:id()].meet))
manager:add_evaluator (properties["clan_zone"], this.evaluator_clan_zone (xr_motivator.storage[object:id()].meet))
manager:add_evaluator (properties["talk"], this.evaluator_talk (xr_motivator.storage[object:id()].meet))

-- Actions
local action = this.action_wait (object:name(),"action_wait", xr_motivator.storage[object:id()].meet)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(properties["contact"], true))
action:add_precondition (world_property(properties["afraid"], false))
action:add_precondition (world_property(properties["weapon"], false))
action:add_precondition (world_property(properties["clan"], true))
action:add_precondition (world_property(properties["talk"], false))
action:add_effect (world_property(properties["contact"], false))
manager:add_action (operators["wait_trade"], action)

action = this.action_talk (object:name(),"action_talk", xr_motivator.storage[object:id()].meet)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(properties["need_punch"], false))
action:add_precondition (world_property(properties["talk"], true))
action:add_effect (world_property(properties["talk"], false))
manager:add_action (operators["talk"], action)

action = this.action_afraid (object:name(),"action_afraid", xr_motivator.storage[object:id()].meet)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(properties["afraid"], true))
action:add_effect (world_property(properties["afraid"], false))
manager:add_action (operators["afraid"], action)

action = this.action_weapon (object:name(),"action_weapon", xr_motivator.storage[object:id()].meet)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(properties["weapon"], true))
action:add_effect (world_property(properties["weapon"], false))
manager:add_action (operators["weapon"], action)

action = this.action_contact_zone(object:name(),"action_contact_zone", xr_motivator.storage[object:id()].meet)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(properties["contact"], true))
action:add_precondition (world_property(properties["clan"], false))
action:add_precondition (world_property(properties["clan_zone"], true))
action:add_effect (world_property(properties["contact"], false))
manager:add_action (operators["contact_zone"], action)

action = this.action_contact_zoneout(object:name(),"action_contact_zoneout", xr_motivator.storage[object:id()].meet)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(properties["contact"], true))
action:add_precondition (world_property(properties["clan"], false))
action:add_precondition (world_property(properties["clan_zone"], false))
action:add_effect (world_property(properties["contact"], false))
manager:add_action (operators["contact_zoneout"], action)

-- Ожидание торговца
action = this.action_wait_for_buyer (object:name(),"action_wait_for_buyer", xr_motivator.storage[object:id()].tradeseller)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(properties["wait_buyer"], true))
action:add_precondition (world_property(properties["event"], false))
action:add_effect (world_property(properties["wait_buyer"], false))
manager:add_action (operators["wait_buyer"], action)

action = manager:action (stalker_ids.action_puzzle_solver)
action:add_precondition (world_property(properties["contact"], false))
action:add_precondition (world_property(properties["wait_buyer"], false))

if char_ini:section_exist("meet") == true then
if char_ini:line_exist("meet", "enabled") == true then
xr_motivator.storage[object:id()].meet.enabled = char_ini:r_bool("meet", "enabled")
end
if char_ini:line_exist("meet", "noweap") == true then
xr_motivator.storage[object:id()].meet.noweap = char_ini:r_bool("meet", "noweap")
end
end
end
function add_to_binder_pda(object, char_ini)
local operators = {}
local properties = {}

local manager = object:motivation_action_manager()

properties["trade_init"] = xr_evaluators_id.final_trade_init

operators["trade_init"] = xr_actions_id.stohe_tradeseller_base + 1

--Evaluators
manager:add_evaluator (properties["trade_init"], xr_evaluators.evaluator_trade_init(xr_motivator.storage[object:id()].tradeseller
))

-- Actions
local action = this.action_trade_init (object:name(),"action_trade_init", xr_motivator.storage[object:id()].tradeseller)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(properties["trade_init"], false))
action:add_effect (world_property(properties["trade_init"], true))
manager:add_action (operators["trade_init"], action)

if char_ini:section_exist ("tradeseller") == true then
if char_ini:line_exist("tradeseller", "enabled") == true then
xr_motivator.storage[object:id()].tradeseller.enabled = char_ini:r_bool("tradeseller", "enabled")
end
end
end

function override_meet(npc, flag)
xr_motivator.storage[npc:id()].meet.over = flag
end
Перейти в начало страницы
 
Shoкer
сообщение 05.04.2011, 21:40
Сообщение #601


Кандидат Игровых Наук
******************

Репутация:   2153  
Группа: Участник
Сообщений: 3488
Награды: 4
Регистрация: 27.07.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Modera
А ты проверял работоспособность? В данном случае здесь actor это не название секции из ltx а переменная
local actor = level.actor()

По идее она возвращает как раз игрока, но я во первых сомневаюсь что xr_meet вообще работает в МП, но если он всё же работает, то ковырять надо именно эту строчку.

А под нереагированием подразумевается, что они не разговаривают или разговаривают но не останавливаются?


--------------------
Мне просто нравятся синие буквы под сообщением.
Перейти в начало страницы
 

263 страниц V  « < 28 29 30 31 32 > » 
Ответить в данную темуНачать новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 12.05.2024, 06:26