Пользователей: 0
Гостей: 348
Всего: 348

» Подробно
» Сегодня


Привет, Гость!

Ник


Пароль


Запомнить?




» Добавить в избранное

» Сделать стартовой

Главная
Форум
Обзор игры
Мир Зоны
Файлы
Галерея
Разное






Форумы > Архив > Склад > Вопросы и ответы (ТЧ по 18.11.2010)

Страница 1 из 701234 »Последняя
Быстрый переход:


 

Автор Сообщение
Web Strikеr
[20] Сталкер
Онлайн статус=0  Профиль    



Я всё вижу...

Посты: 3925
Откуда: Балхаш сити
Занятие: Боевая тактика, Биатлон, Велоспорт
Возраст: 32

05-01-2010
18-11-2010 22:37 GMT3 часа #1342363   Split

Сообщение было успешно отредактировано dm.dav23 (18-11-2010 22:37 GMT3 часа, назад)

userbar
SkyLoader
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 755
Откуда: Москва
Занятие:
Возраст:

09-09-2011
11-09-2010 00:40 GMT3 часа #1342370   Split
Ыть...обновили наконец...
Artos, а почему все-таки, если таргет на неписи, то производится звук на актере? Это из за громкости 5.0=>2.0


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

11-09-2010 03:00 GMT3 часа #1342376   Split
SkyLoader
Подумай своей головою и не говори чушь!

Если позиция отыгрыгрывания звука на таргете то:
а) если таргет - актор, то и глупо спрашивать. На акторе и играет звук.
б) если таргет НЕ актор, то никак НА акторе звук не может отыгрываться. Актор (точнее игрок за монитором) может только слышать звук, идущий от позиции таргета (другого сталкера).
То, что тобою в динамиках/наушниках воспринимается как 'на акторе' (игрок слыщит все в игре с позиции актора):
- или зарегулирована громкость отыгрываемого звука ... (попробовать уменьшить с 5 до 1-2);
- или звук НЕ имеет затухания по дистанции (следует подправить через SDK);
- или ... греши на свои звуковуху/динамики/наушники.

(слишком вольные формулировки в словах приводят к недопониманиям ... как собеседника, так и самого говорящего!)

Сообщение было успешно отредактировано Artos (11-09-2010 03:00 GMT3 часа, назад)

АнархОПанк
[1] Странник
Онлайн статус=0  Профиль    




Посты: 998
Откуда:
Занятие:
Возраст:

11-09-2010 01:13 GMT3 часа #1342391   Split
Artos привет еще раз. Есть идея... Что если сделать убывание ХП при атаке кровососа постепенным?

local hp = db.actor.health
hp = -0.4

Вот это пойдет?


Gun12
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 773
Откуда: СССР
Занятие: Всё, что заставляет напрягать серое вещество
Возраст: 51

11-09-2010 01:41 GMT3 часа #1342419   Split
АнархОПанк
Бог знает что сказать по этому поводу?
В свете не совсем давних споров (см. со стр. 29 в архиве), относительно этого параметра, однозначно ответить даже боюсь как у тебя это сработает?
Например у меня одни результаты, у Artos-а другие, а какой у тебя результат получится - не знаю.


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

11-09-2010 03:01 GMT3 часа #1342428   Split
АнархОПанк
1. Не нужно пытаться делать ... чтобы лишь бы 'что-то' сделать.
2. Прежде чем думать 'как' сделать, и даже 'что' сделать, стОит определить 'для чего'? Т.е. вначале алгиритм, а уже потом его реализация.
Собственно абракадабра и в твоем вопросе: начинаешь о ХП (Hit Power), вроде как хит/сила хита, а продолжаешь про убывание (искусственное!) здоровья актора ... приводя притянутую за уши 'hp'.
К чему это я? Если кровосос 'засосал' жертву, то и ... высасывает кровь. Тут ХП (Hit Power - сила хита) или должна оставаться постоянной или наоборот нарастающей, т.е. от него здоровье актора - убывать.
Убывает здоровье и собственно от самих хитов, которыми кровосос притягивает жертву. Но там пока h.power = 1, что мало для отнятия здоровья. Зачем же искусственно отнимать здоровье у актора в непонятные моменты времени, когда просто увеличив h.power - с каждой 'подтяжкой' будет отниматься и здоровье.
Но ... я считаю нужно сделать отдельный хит жертве, не по апдейту самого хита-притягивания, а по таймеру анимации. Т.е. начал 'засос' - дали хит отнимающий здоровье, а не импульс притяжения. Второй раз "вкусил' - опять отнямется здоровье в зависимости от h.power.
Так что нет смысла искусственно управлять параметром здоровья, когда есть именно подходящий инструмент в виде хита.

Вот пробуй вариант-5 с управляемой силой хита и подправленным разворотом актора на кровососа:
Код:
    --/#+# 'засос кровососа' (v5.1) -------------------------------------------
    if self.object:clsid() == clsid.bloodsucker_s and self.object.health > 0.25 then
      local oTarget = self.object:get_enemy()
      if oTarget and IsStalker(oTarget) and self.object:see(oTarget) then
        --/ если у кровососа есть враг/цель и кровосос его видит то ...
        local iDist = self.object:position():distance_to(oTarget:position())
        if iDist <= 3 then --/ дистанция для анимации 'засоса'
          local iTime = time_global()
          local vDir = self.object:direction() --/ вектор взгляда кровососа
          local iHitPower = 0.1 --/ величина силы хита (для апдейта)
          local is_Actor = oTarget:id() == db.actor:id() --/ жертва == актор?
          --/ таймер для анимации и хита ...
          if (self.timer_anim or 0) < iTime then
            self.timer_anim = iTime + 2000 --/ таймер анимации ~ 2 сек
            if self.object:animation_count() > 0 then
              self.object:clear_animations()
            end
            self.object:add_animation("vampire_0", true) --/ варианты: "vampire_0" | "idle"
            --/ озвучка 'засоса'
            local oSnd = sound_object("monsters\\bloodsucker\\vampire_sucking")
            oSnd:play_no_feedback(self.object, sound_object.s2d, 0, vector(), 5.0)
            iHitPower = 15 --/ задаем силу хита (для снижения здоровья)
            self.pp_kiss = nil --/ сброс 'флага' постэффекта
            if is_Actor then
              --/ добавляем актору постэффект
              level.add_pp_effector("total_recall.ppe", game.time(), false) --/или "alcohol.ppe"
              --/ разворот актора на кровососа (нужно ли?)
              local vDirN = vector():set(vDir)
              oTarget:set_actor_direction(vDirN)
            end
          end
          --/ хит жертве (в течении времени таймера анимации ~2+2 сек)
          if (self.timer_hit or 0) < iTime and (self.timer_anim and self.timer_anim + 2000 >= iTime) then
            self.timer_hit = iTime + 500 --/ таймер хита ~ 0.5 сек
            local vDirHit = vector_rotate_y(vDir,179.0)
            local h = hit()
            h.draftsman = self.object
            h.direction = vDirHit --/ направление хита ('толкаем' на кровососа)
            h:bone("bip01_spine") --/ для учета 'брони'
            h.power     = iHitPower/iDist --/ чем ближе - тем больше 'отсасывает' здоровья
            h.impulse   = 120/iDist --/ чем ближе - тем сильнее 'засос' (притягивает)
            h.type      = hit.wound --/ как вариант: hit.strike
            oTarget:hit(h) --/ наносим хит жертве
          end
        end
      end
    end
    --/<-----------------------------------------------------------------------

Чуть подправил до варианта 5.1.
На этом пока закончил ковыряться с засосом. Далее подбирай значения хитов, звуки и постэффекты.

Сообщение было успешно отредактировано Artos (11-09-2010 03:01 GMT3 часа, назад)

Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
11-09-2010 17:21 GMT3 часа #1342601   Split
Народ подскажите пожалуйста мне.
Мне нужно выдать голосовое сообщение, (типа новость от сидора) после того как умрут все бандиты на АТП. Я так понял что это нужно функцию повесить на поршень из атп, только вот не кода функции, ни названия поршня я увы не знаю. Поможете товарищу, а?


blackraven6
[1] Странник
Онлайн статус=0  Профиль    



Черный Ворон

Посты: 625
Откуда: СПб
Занятие: Страйкбол. Мододел STALKER, Fallout 3. В КОМАНДУ НЕ ЗВАТЬ!!!
Возраст: 31

01-09-2010
11-09-2010 18:00 GMT3 часа #1342606   Split
Fantom2323 воспользуйся обратным поиском. Сначала найди как называется системное имя сообщения Петрухи о зачистке. Потом нади где оно записано.

Вопрос: Кажется кто-то находил способ убрать красную надпись при команде Demo_record 1. Не подскажите - как?

Artos ХП - это hit points\Health Power то бишь кол-во жизни. А пишешь что-то среднее, вот и получается вместо кол-ва жизни кол-во урона. Википедия труЪ. =)

Сообщение было успешно отредактировано blackraven6 (11-09-2010 18:00 GMT3 часа, назад)

userbar
Stalk15
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Занятие: Модю сталкера, полегоньку юзаю Visual Basic и Visual С#.
Возраст: 30

19-11-2012
11-09-2010 17:44 GMT3 часа #1342608   Split
Fantom2323
На инфопоршень esc_kill_bandits_quest_kill ставь вызов типа такой функции:
Код:
  local sidor_news = xr_sound.get_safe_sound_object([[путь до твоего звука]])
       sidor_news:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
           news_manager.send_tip(db.actor, "текст.", 0, "trader", 20000)


АнархОПанк
[1] Странник
Онлайн статус=0  Профиль    




Посты: 998
Откуда:
Занятие:
Возраст:

11-09-2010 18:07 GMT3 часа #1342620   Split
blackraven6 ни кто не находил. Значало жмешь демо_рекорд имя, пробелами ставишь точки по которым камера будет летать. Потом жмешь демо_плей имя.


Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
11-09-2010 18:20 GMT3 часа #1342627   Split
Раз уж про демо_рекорд заговорили, никто не знает из-за чего у меня при вводе этой команды иногда происходят безлоговые вылеты?


blackraven6
[1] Странник
Онлайн статус=0  Профиль    



Черный Ворон

Посты: 625
Откуда: СПб
Занятие: Страйкбол. Мододел STALKER, Fallout 3. В КОМАНДУ НЕ ЗВАТЬ!!!
Возраст: 31

01-09-2010
11-09-2010 18:44 GMT3 часа #1342633   Split
Fantom2323 может вписываешь неправильно. У меня такое было. Если хочешь просто пролетать напиши demo_record 1. И все.

добавлено спустя 43 секунд

АнархОПанк А надпись Пауза? Точно помню кто-то говорил, что убрал!

Сообщение было успешно отредактировано blackraven6 (11-09-2010 18:44 GMT3 часа, назад)

userbar
SkyLoader
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 755
Откуда: Москва
Занятие:
Возраст:

09-09-2011
11-09-2010 18:51 GMT3 часа #1342639   Split
АнархОПанк, вот медленный поворот. Тут координаты непися, но ты можешь поставить координаты сосыча.
Код:
local start_dir = device().cam_pos:getH()
if start_dir > math.pi then start_dir = start_dir - 2*math.pi end
local end_dir = npc:position():sub(device().cam_pos):getH()
local delta_dir = (end_dir - start_dir)
local start_time = game.time()
local time_interval = 5000
function cond()
    local cur_time = game.time()
    local dt = cur_time - start_time
    local dir = start_dir + dt* delta_dir / time_interval
    db.actor:set_actor_direction(-dir)
    if dt > time_interval then return true end
end
level.add_call(cond, function()end)


Цитата

malandrinus:
Дополнение:
Удобнее использовать не апдейт актора (хотя и можно), а функцию level.add_call. Это даст возможность установить периодическое действие, которое должно закончиться по определённому условию - как раз то, что в данном случае нужно.

Сообщение было успешно отредактировано SkyLoader (11-09-2010 18:51 GMT3 часа, назад)

Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

11-09-2010 19:24 GMT3 часа #1342648   Split
blackraven6
Уже устал повторять, что вопросы нужно задавать так, чтобы они были понятны другим! Вот и возникают недопонималки.

Использование абревиатур без глоссариев (толковалок-пояснялок) иль однозначного понимания всеми - приводит к потери времени и недопониманиям.
Кто узаконил абревиануру ХП/HP? общеприната ли она для однозначного толкования?
Стараюсь не читать википедии, хотя и рекомендую порою новичкам с них начинать.
Википедии пишут такие же как мы ... и нередко уровень пишушего модмейкера иль его манера излагать такова, что иль без слез читать нельзя иль больше тумана чем ясности вносит ...

HP - однозначное соответствие (по абревиатуре) параметру силы хита - 'Hit Power'.
А что за абракадабра - 'hit points'? Найдите мне в кодах игры такое буквосочетание! Его нет!
Что за абракадабра -'Health Power' (сила/власть здоровья)?
То, что 'силовые хиты' (hit.power), наносят урон здоровью и по сути именно они в основном и определяют уровень здоровья/состояния объекта в игре и приводит к жаргонариям:"Покалечить -> Нанести хит -> Нанести ХП".
Так что читая википедии нужно всеже и свою голову иметь! И не принимать на веру и тем более НЕ узаконивать для всех то, что слетело с языка у кого-то!

Так что остаюсь при своем мнении: 'hp' -> health power - притянутый за уши частный жаргонарий! (ИМХО!)

Сообщение было успешно отредактировано Artos (11-09-2010 19:24 GMT3 часа, назад)

blackraven6
[1] Странник
Онлайн статус=0  Профиль    



Черный Ворон

Посты: 625
Откуда: СПб
Занятие: Страйкбол. Мододел STALKER, Fallout 3. В КОМАНДУ НЕ ЗВАТЬ!!!
Возраст: 31

01-09-2010
11-09-2010 19:16 GMT3 часа #1342652   Split
Artos Да нет просто по жизни:
HP - кол-во жзни ИМХО должно быть health points но почему то часто идет именно health power
AP - очки действия action points
XP - опыт от expirience

Это впринципе общеупотребляемые сокращения по большей части для RPG.

В Fallout 3 HP обозвали ОЗ (очки здоровья), AP - ОД (очки действия).

А Хит это просто Хит. Он больше никуда не скоращается. Его кроме как до трех букв (не тех ) не сократить!


userbar
Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

11-09-2010 19:28 GMT3 часа #1342657   Split
blackraven6
Да все понятно ... Но опят талдычу, что в дискусии иль в вопросе не стОит увлекаться сокращениями (частными, местечковыми!), которые приводят к флуду переспрашиваний/уточнений иль к недопонималкам. Да и тут все же публичный ресурс и читают его НЕ только гуры по википедиям ...


blackraven6
[1] Странник
Онлайн статус=0  Профиль    



Черный Ворон

Посты: 625
Откуда: СПб
Занятие: Страйкбол. Мододел STALKER, Fallout 3. В КОМАНДУ НЕ ЗВАТЬ!!!
Возраст: 31

01-09-2010
11-09-2010 19:44 GMT3 часа #1342663   Split
Да это не с википедии (я про нее сказал потому что решил написать в ее поиске ХП и вышел сразу же на нужный ответ) просто общепринятое в игровой среде сокращение...
Ладно прикратим оффтоп, а то модераторы наедут. Я согласен про слишком частое использование сокращений кроме общепринятых (к которым я правда отношу ХП....). В общем надо просто использовать сокращения только если часто используешь один и тот же термин, а в конце сообщения писать расшифровки своих сокращений. Или допустим как в официальных документах:
- Кол-во жизни (в дальнейшем ХП)
- кол-во жихни (ХП)


userbar
АнархОПанк
[1] Странник
Онлайн статус=0  Профиль    




Посты: 998
Откуда:
Занятие:
Возраст:

11-09-2010 20:05 GMT3 часа #1342671   Split
Artos за версию 5.1 спасибо, огромное!

blackraven6 красные надписи сами уйдут при воспроизведении. Я искал уже по всему инету статьи (Хотел летать демо_рекордом и снимать фрапсом, но красные надписи мешали) все облазил, не одной статьи как убрать. Выходит это в движке.

SkyLoader Хм.. Спасибо!




Незнаю, попытайся поискать. Во всяком случае не на АМК не знают, и ни где вообще.

Сообщение было успешно отредактировано АнархОПанк (11-09-2010 20:05 GMT3 часа, назад)

blackraven6
[1] Странник
Онлайн статус=0  Профиль    



Черный Ворон

Посты: 625
Откуда: СПб
Занятие: Страйкбол. Мододел STALKER, Fallout 3. В КОМАНДУ НЕ ЗВАТЬ!!!
Возраст: 31

01-09-2010
11-09-2010 20:01 GMT3 часа #1342672   Split
Цитата
# АнархОПанк :
все облазил, не одной статьи как убрать. Выходит это в движке.



Мда не факт... Ладно если чего найду могу выложить...


userbar
Stalk15
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Занятие: Модю сталкера, полегоньку юзаю Visual Basic и Visual С#.
Возраст: 30

19-11-2012
11-09-2010 20:27 GMT3 часа #1342687   Split
Что в телах некоторых квестов означают теги:
<map_location_hidden>1</map_location_hidden>?
-----------------------------------------------------------------------------------
АнархОПанк
Это врятли.Метка при наличии таких тегов в квесте имеется.Тут что-то подобное, но другое, наверно.
Интересно, что в тегах цифры значат ...
КОроче мне надо точное значение этих тегов.Вдруг это полезная весчь, а я не знаю

Сообщение было успешно отредактировано Stalk15 (11-09-2010 20:27 GMT3 часа, назад)

АнархОПанк
[1] Странник
Онлайн статус=0  Профиль    




Посты: 998
Откуда:
Занятие:
Возраст:

11-09-2010 20:40 GMT3 часа #1342695   Split
Stalk15

Цитата
Зы. Забыл спросить, а шо значит вот это:
<map_location_hidden>1</map_location_hidden>
???


Пишешь и не знаешь? Смотри табличку story_ids в lua_help.script конкретно единичка это Escape_trader_self

Сообщение было успешно отредактировано АнархОПанк (11-09-2010 20:40 GMT3 часа, назад)

blackraven6
[1] Странник
Онлайн статус=0  Профиль    



Черный Ворон

Посты: 625
Откуда: СПб
Занятие: Страйкбол. Мододел STALKER, Fallout 3. В КОМАНДУ НЕ ЗВАТЬ!!!
Возраст: 31

01-09-2010
11-09-2010 21:20 GMT3 часа #1342735   Split
А вот про визуал аномалии с циклами анимации что нибудь выяснилось?

ЗЫ кто знает куда erlik пропал?


userbar
SkyLoader
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 755
Откуда: Москва
Занятие:
Возраст:

09-09-2011
11-09-2010 22:28 GMT3 часа #1342759   Split
blackraven6, я недавно видел мод с этой аномалией. То ли НС, то ли глобалка какая-то.

добавлено спустя 36 минут

Народ, у кого-нибудь есть кусок кода проверки на квестовых неписей?

Сообщение было успешно отредактировано SkyLoader (11-09-2010 22:28 GMT3 часа, назад)

Stalk15
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Занятие: Модю сталкера, полегоньку юзаю Visual Basic и Visual С#.
Возраст: 30

19-11-2012
11-09-2010 23:33 GMT3 часа #1342836   Split
А возможно как-нибудь опредилить, видит ли игрок на мониторе например Волка или нет?
Как такое можно исполнить?


SkyLoader
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 755
Откуда: Москва
Занятие:
Возраст:

09-09-2011
12-09-2010 00:11 GMT3 часа #1342856   Split
Darien Fx, по секциям или именам. Например Волк, Круглов и тд. просто времени много на это тратить надо, а есть готовые варианты.
Stalk15, db.actor:see(obj)


СидырыЧЪ
[1] Странник
Онлайн статус=0  Профиль    




Посты: 208
Откуда:
Занятие: Модмейкерство, автомобили, компьютер
Возраст: 29

03-05-2011
12-09-2010 01:03 GMT3 часа #1342890   Split
что значит этот вылет
Expression : fatal error
Function : IRender_Visual::Load
File : E:\stalker\patch_1_0004\xr_3da\FBasicVisual.cpp
Line : 58
Description : <no expression>
Arguments : Invalid visual

хотел добавить новую модель на основе энергетика и прописать ее предмету а вот сам предмет
[energy_drink2]:vodka
$spawn = "food and drugs\energy_drink"
inv_name = energy_drink_name
inv_name_short = energy_drink_short_name
visual = equipments\drink.ogf ;equipments\drink_stalker.ogf
description = enc_equipment_energydrink
cost = 180

inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 19 ;19 ;11
inv_grid_y = 7 ;7 ;0
inv_weight = 0.33

eat_health = 0
eat_satiety = 0
eat_power = 0.4
eat_alcohol = 0
eat_radiation = 0
wounds_heal_perc = 0
eat_portions_num = 1
eat_max_power = 0.2

attach_angle_offset = 0.000000, 0.000000, 0.000000
attach_position_offset = 0.087266, -0.078540, 0.052360
attach_bone_name = bip01_r_hand
auto_attach = false



Darien Fx
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1372
Откуда:
Занятие:
Возраст: 30

12-09-2010 01:44 GMT3 часа #1342912   Split
SkyLoader
Это не проблема, составляй таблицу со всеми именами, итерируй и проверяй. Сори, но это рутина, кому охота её писать за тебя?
db.actor:see(obj) - а вот это работать не будет, к сожалению.

Сообщение было успешно отредактировано Darien Fx (12-09-2010 01:44 GMT3 часа, назад)

SkyLoader
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 755
Откуда: Москва
Занятие:
Возраст:

09-09-2011
12-09-2010 02:06 GMT3 часа #1342932   Split
Darien Fx, просто эта работа уже сделана за другого, я пытаюсь найти ее.
А почему db.actor:see(obj) не сработает?


win win
[1] Странник
Онлайн статус=0  Профиль    




Посты: 258
Откуда: о_О
Занятие: сталкер
Возраст: 11

26-04-2012
12-09-2010 02:09 GMT3 часа #1342933   Split
СидырыЧЪ попробуй так

[energy_drink2]:vodka
$spawn = "food and drugs\energy_drink2"
inv_name = energy_drink2_name
inv_name_short = energy_drink_short_name
visual = equipments\drink_nonstop.ogf ;equipments\drink_stalker.ogf
description = enc_equipment_energydrink2
cost = 175

inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 19 ;19 ;11
inv_grid_y = 7 ;7 ;0 иконку сам настроишь
inv_weight = 0.3

eat_health = 0
eat_satiety = 0
eat_power = 1.0
eat_alcohol = 0
eat_radiation = 0
wounds_heal_perc = 0
eat_portions_num = 1
eat_max_power = 0.2

attach_angle_offset = 0.000000, 0.000000, 0.000000
attach_position_offset = 0.087266, -0.078540, 0.052360
attach_bone_name = bip01_r_hand
auto_attach = false

PS я не понел ты хотел добавить новый предмет или новую модель?


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

12-09-2010 11:12 GMT3 часа #1342988   Split
АнархОПанк , SkyLoader
Это вам для ... поддержания тонуса :
Код:
--/------------------------------------------------------------------
--/ Поворот камеры актора по направлению к позиции (vPos)
--/ [iTime] - продолжительность поворота (опционально)
--/ [iErr] - погрешность поворота (опционально)
--/------------------------------------------------------------------
function Actor_CamRotate(vPos,iErr,iTime)
  if not vPos then return end --/>
  if not iErr then iErr = 0.05 end --/ погрешность поворота
  local vPosCam = device().cam_pos --/ вектор направления взгляда актора
  local iAngleRun = vPosCam:getH() --/ начальный 'угол'
  local iAngleEnd = vPos:sub(vPosCam):getH() --/ конечный 'угол'
  local iAngleInt = iAngleEnd - iAngleRun --/ диапазон поворота (angle-interval)
  if math.abs(iAngleInt) <= iErr then
    return --/> поворот не требуется
  end
  local iPi = math.pi
  if iAngleRun > iPi then --/ > 180 град?
    if iAngleInt < 0 and iAngleInt > iPi then --/ реверс
      iAngleRun = iAngleRun - iPi*2
      iAngleInt = iAngleEnd - iAngleRun
    end
  elseif math.abs(iAngleInt) > iPi then --/ поворот > 180 град?
    if iAngleEnd > iPi then --/ реверс
      iAngleEnd = iAngleEnd - iPi*2
      iAngleInt = iAngleEnd - iAngleRun
    end
  end
  --/ определяем продолжительность поворота ('плавность')
  local iTimeInt = iTime --or iPi*1000 --/ time-interval (при iPi*1000 => ~3 сек)
  if math.abs(iAngleInt) <= iErr then
    return --/> поворот не требуется
  elseif not iTimeInt then --/ 'плавность' не задана
    iTimeInt = math.abs(iAngleInt *1000) --/ вращаем с пост.скоростью (~180град/3сек)
  end
  local iTimeRun = time_global()
  local iTimeEnd = iTimeRun + iTimeInt
  --/ поворот камеры актора
  local function CamRotate()
    local iTime = time_global()
    local iAngle = iAngleRun + iAngleInt *(iTime - iTimeRun)/iTimeInt
    db.actor:set_actor_direction(-iAngle) --/ задаем угол поворота (рад)
    if iTime > iTimeEnd then --/ проверка окончания времени
      return true --/> довернули (end call)
    end
  end
  --/ запуск call-функции поворота камеры актора
  level.add_call(CamRotate, function() end)
end
--/------------------------------------------------------------------

Для использования: заменить прежний 'поворот' на:
Код:
  this.Actor_CamRotate(self.object:position(), 0.05, 2000)

соответственно 'this' - не менять если биндер монстров или заменить на имя вашего файла-скрипта, куда поместите функцию поворота.
Погрешность '0.05' можно не указывать или изменить/загрубить ...
Плавность поворота '2000' - милисекунды времени за которое происходит поворот (не зависимо от угла поворота). Больше -> медленнее.
Если НЕ указывать - поворот с постоянной скоростью (~180град/3сек).



Stalk15 , SkyLoader
Oпять яркий пример 'как НЕ стОит спрашивать'!
Первый вопрошает чепуху: ... видит игрок за монитором?
- А если игрок просто отвернулся от монитора?
- А если в игре ночь без луны и ПНВ не включен и рядом нет фонариков?
- А ежели актор в кустики забежал и видимость листочком прикрыло?
- А ежели противогаз с мертвыми зонами обзора надел на актора (есть и такое в модах)?
- ... да много еще чего можно для сидящего за монитором придумать!
Все эти динамические и пр. преграды для видимости учитывать в игре врядли кто будет (если даже и возможно), так что ответ на твой вопрос в лучшем случае будет наполовину правильным.

Второй вообще прочитал вопрос невнимательно и игрока за монитором отождествляет с актором в игре ... (хотя ответ наиболее близок к 50%).
Глаза актора и глаза игрока - далеко не тождественны!
И, учитывая и выше приведенные динамические препятствия и учитывая дистанции ... то понятно, что
'db.actor:see(obj)' будет возвращать далеко не всегда то, что gamer:see ...

Вот и ... возникает флудильня-перевопрошалка в топике.


Сообщение было успешно отредактировано Artos (12-09-2010 11:12 GMT3 часа, назад)



Форумы > Архив > Склад > Вопросы и ответы (ТЧ по 18.11.2010)

Страница 1 из 701234 »Последняя


Эта тема закрыта, публикация новых сообщений недоступна.



???????@Mail.ru Rambler's Top100
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2024 «Stalker-Portal.ru»