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

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


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

Ник


Пароль


Запомнить?




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

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

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






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

Страница 2 из 58«12345 »Последняя
Быстрый переход:


 

Автор Сообщение
Леня_Агитатор
[1] Странник
Онлайн статус=0  Профиль    




Посты: 40
Откуда: Чита
Занятие: Модострой по Сталкеру ТЧ
Возраст:

05-06-2010 18:27 GMT3 часа #1262793   Split
blackraven6 Спасибо, я там нашел про иконку вируса, но как сделать для моих сигарет?
В скриптах я полный нуб! Я понял что и где писать, а вот как быть с этим:
Теперь придумываем, где будет выдываться (включаться) инфопоршен вируса, реализовываем и любуемся результатом.


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



Черный Ворон

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

01-09-2010
05-06-2010 18:36 GMT3 часа #1262797   Split
Леня_Агитатор Почитай статьи по модификации Интерфейса. Были у кого то в журнале помоему. Да и по интернету полно.

Artos
Ну видишь ли в этой теме постоянно сидит не так много опытных. Если разговаривать только про сложные вещи - тема быстро превратиться в чат для 5-6 человек. Не надо кидаться в крайности. Во всем должен быть балланс. К тому же каждая игра строится на логике автора. То что очевидно для одного человека не очевидно для другого.


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




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

05-06-2010 18:42 GMT3 часа #1262805   Split
blackraven6
Не переворачиай слова и смысл. Никто не говорит о том, что в топике место только сложным вопросам.
Говорится о том, что в топике НЕ место банальным вопросам, которые десятки-сотни раз разжеваны и в топике и в различных ФАК'ах, статьях.
И ты слишком заблуждаешься насчет чата по сложным вопросам. Именно по банальностям происходит чат, а по более интересным/сложным вопросам - пишут отвечают единицы, читают десятки!
И, уже повторюсь, чем больше 'тупых банальностей' - тем меньше тут 'опытных', т.е. тех, кто действительно может дать качественный ответ.


karavan
[3] Новобранец
Онлайн статус=0  Профиль    




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

08-05-2013
05-06-2010 18:47 GMT3 часа #1262807   Split
Artos Как изменить вот эту функцию:



-- Функция проверки если кто-то рядом возле ГГ
function Check_Distanse()
if not Dictanse then Dictanse = 3 end
local PositionActor = db.actor:position()

local function Compare(id)
local obj = level.object_by_id(id)
if obj and IsStalker(obj) and obj:alive() and obj.health > 0.1 then
if obj:position():distance_to(PositionActor) <= Dictanse then
news_manager.send_tip(db.actor, "Кабан близко от ГГ", 0, "default", 8000)

end
end
end

if obj_id then --/ если задан id конкретного сталкера
Compare(obj_id)
else --/ иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end
end



Создав проверку если рядом с ГГ находится Кабан (boar_weak) то выдавать сообщение.


Прощу прощения за неоформатированный текст. Похоже отформатировать неполучается из-за Internet Explorer`а...



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



Черный Ворон

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

01-09-2010
05-06-2010 18:47 GMT3 часа #1262814   Split
Artos
опять же перед тем как задать вопрос я ищу в яндексе ответ. Из 10 вопросов 7 решаются через пару минут (или тестов), два находят ответ в интернете а один я задаю тут. А между единицами это не чат? Когда мастера по-настоящему начинают спорить - это на долго.


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




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

05-06-2010 19:14 GMT3 часа #1262824   Split
karavan
Ну во-первых, собственно коды приведенные тобою уже являются и созданной проверкой и 'выдавалкой' сообщения.
Тобою недопонять только то, что в приведеннм куске использованы 'внешние' необязательные переменные (obj_id и Dictanse), которые (если нужны) следует использовать в качестке входящих аргументов для функции:
Код:
function Check_Distanse(obj_id,Dictanse)

где obj_id - идентификатор проверяемого кабана, Dictanse - проверяемая дистания до кабана.
Если использовать без этих аргументов, то и лаги обеспечены, если вызывать относительно часто и дистанция жестко задана 3-мя метрами.

P.S. сорри, упустил смысл вопроса, сейчас исправлюсь.
В исходном варианте происходит проверка на "Сталкер ли проверяемый объект" ( IsStalker(obj) )?
Тебе нужно по сути заменить это на проверку "Кабан ли это"?
Вспоминаем/смотрим как можно сформулировать эту проверку!
если не помнишь см.тут
get_clsid(obj) == clsid.boar_s



blackraven6
Пора прекращать этот оффтопик. Для себя я сделал выводы:
- отвечать на твои вопросы - необязательно, они больше вызваны ленью.
- следует ли вообще читать/отвечать в этом топике, если и ответы будут 'похоронены' подобными сиюминутными банальностями? Да собственно от чтения толку - nil.

Конечно ты (и подобные тебе участники) в этом топике не 'все', но чем таких больше - тем таких как 'я' меньше. Делай сам выводы ...

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

karavan
[3] Новобранец
Онлайн статус=0  Профиль    




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

08-05-2013
05-06-2010 19:09 GMT3 часа #1262832   Split
Artos Я понимаю что всё есть, только мне через obj_id не подходит мне нужна проверка именно по имени Кабана т.е. [boar_weak]

Догадываюсь что это делается примерно вот так:
local boar_w = "boar_weak"

А дальше сама проверка
...
if boar_w then
...
news_manager.send_tip(db.actor, "Кабан близко от ГГ", 0, "default", 8000)
end

Но хочу увидить пример от специалиста.


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




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

05-06-2010 19:59 GMT3 часа #1262846   Split
karavan
Я бы делал все же несколько иначе, т.к. высока неоптимальность данной функции/проверки относительно ресурсов. Преребирать все идентификаторы объектов игры - далеко не самое хорошее решение.
Ну а ежели "хочется видеть", то вот вариант 'без привязки к контексту' с очищеннми излишками:
Код:
--/ Функция проверки если кто-то рядом возле ГГ
function Check_Distanse_to_Boars()
  local PositionActor = db.actor:position()
  for id=1,65534 do
    local obj = level.object_by_id(id)
    if obj and get_clsid(obj) == clsid.boar_s and obj.alive and obj:alive() then
      if obj:position():distance_to(PositionActor) <= 3 then
        news_manager.send_tip(db.actor, "Кабан близко от ГГ", 0, "default", 8000)
      end
    end
  end
end

Возможно более подходящим будет этот вариант, где проверяются только онлайновые объекты:
Код:
function Check_Distanse_to_Boars()
  local PositionActor = db.actor:position()
  for id,o in pairs(db.storage)  do
    local obj = level.object_by_id(id)
    if obj and get_clsid(obj) == clsid.boar_s and obj.alive and obj:alive() then
      if obj:position():distance_to(PositionActor) <= 3 then
        news_manager.send_tip(db.actor, "Кабан близко от ГГ", 0, "default", 8000)
      end
    end
  end
end
Или с твоим "странноватым" условием:
Код:
function Check_Distanse_to_Boars()
  local PositionActor = db.actor:position()
  for id=1,65534 do
    local obj = level.object_by_id(id)
    if obj and obj:section() == "boar_weak" and obj:alive() then
      if obj:position():distance_to(PositionActor) <= 3 then
        news_manager.send_tip(db.actor, "Кабан близко от ГГ", 0, "default", 8000)
      end
    end
  end
end

Вероятно следует вспомнить, что кабаны даже в оригинальной игре бывают не только "boar_weak", а еще и "_normal" и "_strong" (не говоря о модах)!

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

FLIKER
[3] Новобранец
Онлайн статус=0  Профиль    




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

14-02-2012
05-06-2010 19:20 GMT3 часа #1262853   Split
Не подскажите , поставил туман ,но он у меня всегда стоит ,Как сделать чтобы оно менялось?


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




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

05-06-2010 19:29 GMT3 часа #1262860   Split
FLIKER
Сделай чтобы 'оно' сменялось, а не стояло.
Ты опять думаешь, что то что ты у себя 'вставил' могут прочитать НЕтелепаты?


FLIKER
[3] Новобранец
Онлайн статус=0  Профиль    




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

14-02-2012
05-06-2010 19:30 GMT3 часа #1262870   Split
Artos
НУ вот кусок из файла weather_default_dynamic.ltx
[sect_amk_clear_clear_0]
23:00:00 = default_weather_clear_00
00:00:00 = default_weather_clear_00
01:00:00 = default_weather_clear_01
02:00:00 = default_weather_clear_01

[sect_amk_clear_pasmurno_0]
23:00:00 = default_weather_clear_00
00:00:00 = default_weather_clear_00
01:00:00 = default_weather_pasmurno_01
02:00:00 = default_weather_pasmurno_01

[sect_amk_clear_rain_0]
23:00:00 = default_weather_clear_00
00:00:00 = default_weather_clear_00
01:00:00 = default_weather_rain_01
02:00:00 = default_weather_rain_01

[sect_amk_clear_groza_0]
23:00:00 = default_weather_clear_00
00:00:00 = default_weather_clear_00
01:00:00 = default_weather_groza_01
02:00:00 = default_weather_groza_01

[sect_amk_pasmurno_clear_0]
23:00:00 = default_weather_pasmurno_00
00:00:00 = default_weather_pasmurno_00
01:00:00 = default_weather_clear_01
02:00:00 = default_weather_clear_01

[sect_amk_pasmurno_pasmurno_0]
23:00:00 = default_weather_pasmurno_00
00:00:00 = default_weather_pasmurno_00
01:00:00 = default_weather_pasmurno_01
02:00:00 = default_weather_pasmurno_01

[sect_amk_pasmurno_rain_0]
23:00:00 = default_weather_pasmurno_00
00:00:00 = default_weather_pasmurno_00
01:00:00 = default_weather_rain_01
02:00:00 = default_weather_rain_01

[sect_amk_pasmurno_groza_0]
23:00:00 = default_weather_pasmurno_00
00:00:00 = default_weather_pasmurno_00
01:00:00 = default_weather_groza_01
02:00:00 = default_weather_groza_01

[sect_amk_rain_clear_0]
23:00:00 = default_weather_rain_00
00:00:00 = default_weather_rain_00
01:00:00 = default_weather_clear_01
02:00:00 = default_weather_clear_01

[sect_amk_rain_pasmurno_0]
23:00:00 = default_weather_rain_00
00:00:00 = default_weather_rain_00
01:00:00 = default_weather_pasmurno_01
02:00:00 = default_weather_pasmurno_01

[sect_amk_rain_rain_0]
23:00:00 = default_weather_rain_00
00:00:00 = default_weather_rain_00
01:00:00 = default_weather_rain_01
02:00:00 = default_weather_rain_01

[sect_amk_rain_groza_0]
23:00:00 = default_weather_rain_00
00:00:00 = default_weather_rain_00
01:00:00 = default_weather_groza_01
02:00:00 = default_weather_groza_01

[sect_amk_groza_clear_0]
23:00:00 = default_weather_groza_00
00:00:00 = default_weather_groza_00
01:00:00 = default_weather_clear_01
02:00:00 = default_weather_clear_01

[sect_amk_groza_pasmurno_0]
23:00:00 = default_weather_groza_00
00:00:00 = default_weather_groza_00
01:00:00 = default_weather_pasmurno_01
02:00:00 = default_weather_pasmurno_01

[sect_amk_groza_rain_0]
23:00:00 = default_weather_groza_00
00:00:00 = default_weather_groza_00
01:00:00 = default_weather_rain_01
02:00:00 = default_weather_rain_01

[sect_amk_groza_groza_0]
23:00:00 = default_weather_groza_00
00:00:00 = default_weather_groza_00
01:00:00 = default_weather_groza_01
02:00:00 = default_weather_groza_01

[sect_amk_clear_clear_1]
00:00:00 = default_weather_clear_01
01:00:00 = default_weather_clear_01
02:00:00 = default_weather_clear_02
03:00:00 = default_weather_clear_02

[sect_amk_clear_pasmurno_1]
00:00:00 = default_weather_clear_01
01:00:00 = default_weather_clear_01
02:00:00 = default_weather_pasmurno_02
03:00:00 = default_weather_pasmurno_02

[sect_amk_clear_rain_1]
00:00:00 = default_weather_clear_01
01:00:00 = default_weather_clear_01
02:00:00 = default_weather_rain_02
03:00:00 = default_weather_rain_02

[sect_amk_clear_groza_1]
00:00:00 = default_weather_clear_01
01:00:00 = default_weather_clear_01
02:00:00 = default_weather_groza_02
03:00:00 = default_weather_groza_02

[sect_amk_pasmurno_clear_1]
00:00:00 = default_weather_pasmurno_01
01:00:00 = default_weather_pasmurno_01
02:00:00 = default_weather_clear_02
03:00:00 = default_weather_clear_02

[sect_amk_pasmurno_pasmurno_1]
00:00:00 = default_weather_pasmurno_01
01:00:00 = default_weather_pasmurno_01
02:00:00 = default_weather_pasmurno_02
03:00:00 = default_weather_pasmurno_02




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




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

05-06-2010 19:39 GMT3 часа #1262877   Split
FLIKER
Не нужно именно мне задавать вопрос(ы). Вряд ли мне это интересно и буду отвечать.
"weather_default_dynamic.ltx" - это только конфиг и, если даже в нем не только туман, то за смену возможных вариантов отвечает не (только) этот конфиг.
Тому, кто захочет/сможет ответить по твоей ошибке потребуется все, что ты менял. А возможно и не только, т.к. в топике в основном вопросы по оригинальным кодам игры, а ты залез в динамическую погоду "АМК-мода".


Xray23
[10] Житель
Онлайн статус=0  Профиль    




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

05-06-2010 20:17 GMT3 часа #1262897   Split
Скачал Winter mod установил в папку с игрой а он не работает!!! Подскажите что надо сделать


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




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

05-06-2010 20:51 GMT3 часа #1262919   Split
Xray23 как установил?...и вообще почитай-ка F.A.Q.


karavan
[3] Новобранец
Онлайн статус=0  Профиль    




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

08-05-2013
05-06-2010 20:55 GMT3 часа #1262926   Split
Artos
У меня вопрос по поводу Электро Химеры.


В bind_monster.script

В функции
function generic_object_binder:hit_callback(obj, amount, local_direction, who, bone_index)

Есть секция Электо-Химеры, в которой описан её хит по ГГ.

if obj:section()=="electro_chimera" and time_global()>(self.charge_time or 0)+3000 then
amk_particle.amk_particle({particle="anomaly2\\electra2_blast",pos=obj:bone_position("bip01_spine"),sound="anomaly\\electra_blast1"})
local dist = db.actor:position():distance_to(obj:bone_position("bip01_spine"))
if dist < 20 then
local h = hit()
h.impulse = 0
h.draftsman = db.actor
h.direction = vector():set(0,0,0)
h:bone("bip01_spine")
h.power = 1/dist
h.type = hit.strike
db.actor:hit(h)
h.power = 15/dist
h.type = hit.shock
db.actor:hit(h)
end
self.charge_time=time_global()
end

Сдесь насколько я понимаю наносится хит в радиусе 20 метров в зависимости от растояния, т.е. чем дальше находишся тем безопасней.

Вопрос вот в чем возможно ли нанести хит по ГГ и/или НПС только в направлении взгляда монстра? Т.е. куда монст смотрит туда и хитует. Это первое.
Второе, Электро-химера при атаке проигрывает партикл аномалии Электра и этот партикл проирывается во все стороны. Возможно ли задать направление проигрывания партикла в зависимости от взгляда Монстра (Например партикл аномалии Жарка). Т.е. Куда монстр смотит в ту сторону и направлен партикл аномалии Жарка.

Итого что нужно:
1)Нужно что бы хит по ГГ или НПС наносился в направлении взгляда монстра?
2)Нужно что бы партикл аномалии Жарка проигрывался в направлении взгляда монстра?


Спрашиваю у тебя поскольку наверное спросить больше не у кого.
Возможно ты в знаеш ответ.


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




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

05-06-2010 21:00 GMT3 часа #1262930   Split
karavan может не так скажу, но надо определить айди монстра и определить его дирекцию, ну а дальше дело техники


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




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

05-06-2010 21:25 GMT3 часа #1262953   Split
karavan
Во-первых, не только я могу дать ответ. Не отнимай возможности дать ответ и другим!
Во-вторых, "нужно" и ли нет - решать тебе. Это уже из области мнений/предпочтений, а не технической возможности/реализации. Мой ответ на подобное: "НЕ нужно, но возможно."

Хит наносится в направлении (т.е. хит имеет вектор, "направление удара/повреждения"), а вот партиклы отыгрываются только по позиции (относительно точки).

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

Ну и конечно векторно отыграть патрикл не выйдет, если только не прибегнуть к варианту "перемещаемой позиции" для отыгрывания. А вот, определив объект в направлении взгляда и именно на нем отыграть партиклы, вполне можно.

Повторю, ИМХО электро-химера остается химерой и поражает ударом/разрывом. Электро-разряды у нее - фоновое поражение по затухающему радиусу.


karavan
[3] Новобранец
Онлайн статус=0  Профиль    




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

08-05-2013
05-06-2010 21:39 GMT3 часа #1262973   Split
Artos Я не против если и кто-то другой ответит на мой вопрос.

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

Я спрашиваю про электро-химеру потому, что это рабочий пример, а вот как создать проигрывание партикла и хит по направлению взгляда монстра (т.е. если монстр увидил НПС или ГГ и НПС или ГГ находится в радиусе 20 метров от монстра, то проиграть партикл в направлении НПС или ГГ которого атакует Монстр и нанести хит в том же направлении) я не знаю и хотелось бы узнать от знающего человека.
Другими словами получить рабочий пример.

P.S.: Вся загвоздка в том что я не знаю прописать направление по взгляду Монстра.


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




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

05-06-2010 21:44 GMT3 часа #1262985   Split
karavan получи айди монстра и узнавай его дирекцию(направление взгляда), а жарку по моему горизонтально развернуть не удастся...хотя нет, в х16 вроде бы и горизонтальная есть


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




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

05-06-2010 22:13 GMT3 часа #1263007   Split
karavan
Тогда не задавай адресных вопросов
и, имея ввиду 'нечто' иное, не формулируй так: "У меня вопрос по поводу Электро Химеры"

Рабочих примеров того, что ты один имеешь ввиду и никто другой не знает - вероятно или нет или невозможно подсказать.
Косвенно могу предпроложить, что рабочими примерами могут быть ... только например грави-пушка, принцип которой именно на "направлении взгляда".
Чуть позже попробую дать тебе что-то применительное к "электро-химере". Но попробуй сам хоть что-то "накопать".
Разворачивать же "жарку" - увольте ребята. Проще или заспавнить какой-нить объект и, включив на нем отыгрыш партиклов, "кинуть" куда нужно. Или, как уже писал выше, использовать перемещаемую "от и до" позицию отыгрыша партиклов.
Иначе какой-то огнемет/змей-горыныч получается ...

Struck
Ты не совсем прав, одного направления взгляда недостаточно. Направление взгляда - вектор, т.е. луч! Не факт, что в векторе 'direction' будет объект, а не в метре (паре-тройке метров) от этого вектора.
Тут требуется сравнение с некоторой погрешностью векторов 'направления взгляда' с 'направлением до объекта'. Если еще учесть зависимость от расстояния до объекта (а если он не один?!) - не очень тривиальная задачка для многих 'начинающих' модмейкеров.


Николай ФеНиКс
[10] Житель
Онлайн статус=0  Профиль    




Посты: 1493
Откуда: От Туда!
Занятие: Мотоциклы =)
Возраст: 29

15-01-2011
05-06-2010 22:38 GMT3 часа #1263044   Split
вопросик созрел...
верна ли эта функция или напортачил, определение по стори ай ди НПСа
local soObj = alife():story_object(006)
local bFlag = false --/ флаг-триггер, для однократности выполнения условия/функции

function Check_Distanse()
if bFlag then return end --/ на выход. т.к. уже отработано
if not Dictanse then Dictanse = 6 end
local PositionActor = db.actor:position()

local function Compare(id)
local obj = level.object_by_id(id)
if obj and IsStalker(obj) and obj:alive() and obj.health > 0.1 then
if obj:position():distance_to(PositionActor) <= Dictanse then
bFlag = true
news_manager.send_tip(db.actor, "рядом кто-то есть", 0, "default", 8000)

end
end
end

if obj_id then --/ если задан id конкретного сталкера
Compare(obj_id)
else --/ иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end
end


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




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

05-06-2010 23:27 GMT3 часа #1263081   Split
Николай ФеНиКс
Уже неоднократно говорилось в топике:
"Оформляйте вопросы/ответы должным образом,
с использованием различных тегов форума!
"
В простейшем случае, чтобы удобно было читать, следует применять для кодов соответствующий им тег: [cоde]...[cоde] (символ 'о' - тут заменен на транслит, дабы было видно). Используйте доступную опцию в окне написания/редактирования поста!
В более сложных, когда хочется расцветить и т.п. - применяйте неразрывные пробелы ( [ _ ]) или иные средства.
Читать/понимать коды сплошняком - самим же неудобно!!!

По сути вопроса:
Ответь сам на вопрос: "Каким образом 'эта функция' у тебя связана с 'определение по стори ай ди НПСа'?"

И никогда не выполняй каких-либо определений для переменных, связанных с объектами игры, ДО момента их гарантированного появления в игре.
Коды модулей/скриптов считываются, как правило, в самом начале игры (точнее при первом же к ним обращении, обычно до спавна объектов!), т.о. твое определение (в корне скрипта!) для переменной:
Код:
local soObj = alife():story_object(006)
или заведомо будет равно 'nil' или же вообще приведет к "нестарту игры", т.к. alife() также в момент старта игры еще не существует.

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

karavan
[3] Новобранец
Онлайн статус=0  Профиль    




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

08-05-2013
05-06-2010 23:28 GMT3 часа #1263096   Split
Что вообще такое направление взгляда НПС и монстров? Где его хоть смотреть?


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




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

06-06-2010 05:58 GMT3 часа #1263103   Split
karavan
Тебе подобные куски кодов:
Код:
h.direction = oNPC:direction()
Код:
local  Direction = oNPC:direction()

- ничего не напоминают?

Николай ФеНиКс
Если ты объяснишь ЧТО ты хочешь написать, то возможно кто-то сможет/захочет ответить КАК написать ...

P.S. Я же пояснил, что твой вопрос не имеет смысла, т.к. следов какой-либо зависимости тобою написанного и функции - не обнаруживается.

Плз, подчищайте 'пустые', никому не нужные посты (если конечно не преследуется цель 'набивания' постов).

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

Николай ФеНиКс
[10] Житель
Онлайн статус=0  Профиль    




Посты: 1493
Откуда: От Туда!
Занятие: Мотоциклы =)
Возраст: 29

15-01-2011
05-06-2010 23:54 GMT3 часа #1263127   Split
Ладно тогда вот так:
Код:
local soObj = alife():story_object(006)
local Obj_Id = soObj.id --/ искомый id (айди) объекта
local bFlag = false --/ флаг-триггер, для однократности выполнения условия/функции

function Check_Distanse(Obj_Id)
if bFlag then return end --/ на выход. т.к. уже отработано
if not Dictanse then Dictanse = 6 end
local PositionActor = db.actor:position()

local function Compare(id)
local obj = level.object_by_id(id)
if obj and IsStalker(obj) and obj:alive() and obj.health > 0.1 then
if obj:position():distance_to(PositionActor) <= Dictanse then
bFlag = true
news_manager.send_tip(db.actor, "рядом кто-то есть", 0, "default", 8000)

end
end
end

if obj_id then --/ если задан id конкретного сталкера
Compare(obj_id)
else --/ иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end
end


userbar
karavan
[3] Новобранец
Онлайн статус=0  Профиль    




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

08-05-2013
06-06-2010 00:00 GMT3 часа #1263134   Split
Artos А, понял. А как тогда быть с хитом в этом направлении?


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




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

06-06-2010 00:34 GMT3 часа #1263142   Split
Николай ФеНиКс
М-да-а-а, хочется крепко выругаться и игнорировать дальнейшее ...
может на примере дойдет ....

local soObj = alife():story_object(006) --/ недопустимо в 99% случаев
local Obj_Id = soObj.id --/ искомый id (айди) объекта --/ см. выше
local bFlag = false --/ флаг-триггер, для однократности выполнения условия/функции
Код:
function Check_Distanse(Obj_Id)
  if bFlag then return end --/ на выход. т.к. уже отработано
    if not Dictanse then Dictanse = 6 end
    local PositionActor = db.actor:position()
   
    local function Compare(id)
      local obj = level.object_by_id(id)
      if obj and IsStalker(obj) and obj:alive() and obj.health > 0.1 then
        if obj:position():distance_to(PositionActor) <= Dictanse then
          bFlag = true
          news_manager.send_tip(db.actor, "рядом кто-то есть", 0, "default", 8000)
      end
    end
  end
 
  if obj_id then --/ если задан id конкретного сталкера
    Compare(obj_id)
  else --/ иначе перебираем всех на локации
    for id=1,65534 do
      Compare(id)
    end
  end
end

Какая-либо взаимосвязь soObj, Obj_Id и функции Check_Distanse(Obj_Id) , кроме бессмысленного аргумента на входе, который никак не обрабатывается этой функцией(!), отсутствует.
Автор кода пытается методом "тыка" что-то получить от скриптов ...
Удачи 'дотыкать'! ->

Ма-а-аленькая подсказка: Регистр в именах переменных/функций/... имеет большОе значение. Но выделенное оранжевым все равно все подобные потуги сведет на нет.
(убери хотя бы в спойлер ...)


karavan
Так ведь:
Код:
h.direction = oNPC:direction()
- это и есть установка направления хита в направлении 'взгляда'. Замени 'oNPC' -> oMonster иль oElectroChimera (а для конкретно твоего случая - obj), если тебе удобнее для понимания.

Просто в твоем исходном варианте:
Код:
h.direction = vector():set(0,0,0)
- хит направлен в 'никуда' (стоИт вектор-заглушка), т.к. 'удар током' не имеет направления.

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

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




Посты: 477
Откуда: Tamboff
Занятие: Мотоциклы, программирование
Возраст:

26-06-2011
06-06-2010 03:42 GMT3 часа #1263248   Split
Artos хотел спросить у вас (но если кто-то другой знает ответ отписывайтесь), правда он немного не по теме, но я обещаю что когда получу ответ потрусь. Вообщем я хотел перенести модель бронежелета из ТЧ в ЗП. Я открыл модель, добавил туда 2 кости (рут_сталкер и бип_01) через милку, открыл модель в сдк, добавил несколько пунктов в Motion reference (поставил галки напротив critical_hit_grup_1 - 7, stalker_animation, stalker_scenario_animation, stalker_scripts_animation, stalker_smart_cover_animation) и вставил модель в игру. Но у меня появилась проблема - когда по актору стреляют, актор не получает хит! Пули тупо проходят сквозь актора! Вообщем подскажите что я делал не так? (Кстати благодаря этой ошибке я придумал новый бронежилет!)


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




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

06-06-2010 05:51 GMT3 часа #1263256   Split
Ma$ter
В твоих словах "когда по актору стреляют, актор не получает хит!" похоже есть некорректность, т.к. не может НЕ быть хита (если конечно не палить мимо актера). Иное дело когда хит все же есть, но ... 'голого' актера можно убить и 'слабым' хитом, а можно и обессмертить, одев в 'бессмертный' костюм.
Прим: Хит - величина повреждения/удара, которая должна быть применена к объекту (нанести повреждение/удар). Хит по актору/неписю может быть поглощен костюмом, в этом случае хит наносит повреждение объекту 'костюм'.

Может я не прав, т.к. предполагаю вопрос НЕ по бронику/костюму для актора, а по визуалу для сталкеров (неписей).
Возможно твоя ошибка (как впрочем и многих других) в том, что путается модель бронежилета актера с визуалом для сталкеров. Это совершенно разные объекты/вещи. То, что может быть надето актером никоем образом не может быть надето на сталкеров, как и наоборот. Т.о. на актора ты одеваешь не 'сделанный' тобою бронежилет, а что-то иное.

Если предположение с визуалом ошибочно, то возможна другая причина: твой костюм получился с 'бессмертными' resistance и/или damage , т.е. некорректные секции параметров иммунитетов/стойкости к повреждениям в параметрах модели костюма/броника (особенно смущает "critical_hit_grup_1 - 7"?).
Сорри, по вопросам обработки модели в милках/СДК - это не ко мне, тут я ... пока еще дилетант чтобы давать правильные ответы (мелкие правки делаю HEX'ом).

Ну а фраза "Пули тупо проходят сквозь актора!" - как-то навевает мысли о твоей фантазии, даже если ты пользуешься замедлением времени и видом 'сбоку'.

Подтирать посты не стОит, если они несут информативный характер и могут быть полезны другим.

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

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




Посты: 477
Откуда: Tamboff
Занятие: Мотоциклы, программирование
Возраст:

26-06-2011
06-06-2010 19:13 GMT3 часа #1263300   Split
Цитата
Ну а фраза "Пули тупо проходят сквозь актора!" - как-то навевает мысли о твоей фантазии, даже если ты пользуешься замедлением времени и видом 'сбоку'

дело в том что я подходил вплотную к новичку с обрезом, и когда он в меня пальнул на экране не повились красные отметки о том что по мне стреляют. Даже в бронежилете со 100% защитой от пуль, когда в тебя стреляют, появляются красные отметки с какой стороны по тебе стреляют. Поэтому предположение что
Цитата

Если предположение с визуалом ошибочно, то возможна другая причина: твой костюм получился с 'бессмертными' resistance и/или damage , т.е. некорректные секции параметров иммунитетов/стойкости к повреждениям в параметрах модели

я считаю ошибочнм, но вот это
Цитата
Может я не прав, т.к. предполагаю вопрос НЕ по бронику/костюму для актора, а по визуалу для сталкеров (неписей).
Возможно твоя ошибка (как впрочем и многих других) в том, что путается модель бронежилета актера с визуалом для сталкеров. Это совершенно разные объекты/вещи. То, что может быть надето актером никоем образом не может быть надето на сталкеров, как и наоборот. Т.о. на актора ты одеваешь не 'сделанный' тобою бронежилет, а что-то иное.


я считаю вполне возможнным т.к. бронежилет перносил не я, а мне просто дали модель. вполне возможно что что-то тут напортачили. Вообщем Артос спасибо тебе

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

оказываеся тот кто занимался переносом все-таки смог умереть в этом костюме. правда умер он только тогда когда подорвался на гранате
[error]Expression : assertion failed
[error]Function : CPHActivationShape::Create
[error]File : D:\prog_repository\sources\trunk\xrPhysics\PHActivationShape.cpp
[error]Line : 177
[error]Description : _valid( start_pos )

Что то совсем ничерта не понимаю. Сейчас портул костюм монолитовца, он у меня работает нормально. А вот костюм новичка глючит

АП:

Оказалось надо было просто настроить кости. Как настраивать кости можно узнать на сталкер вики. Всем спасибо

Сообщение было успешно отредактировано Ma$ter (06-06-2010 19:13 GMT3 часа, назад)



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

Страница 2 из 58«12345 »Последняя


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



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

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