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

Скриптование


Svoboда

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

@Kirgudu, от туда и подглядывал. Разница лишь в получении обьекта.

У ПЫС:

 

npc1 = level_object_by_sid(v)

И у меня;

 

 

local se_obj_1 = alife():object(id_kl7)

 

Думаю, отсюда и вылет - не тот тип обьекта передаю( а уж где серверный а где клиентский  - не знаю, честно :wacko: )

Но уверен - путаница именно в этом.

Не соответствует правилам.

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


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

P.S.S Пока кумекаю над функцией - увидел это

 

function monster_berserk(actor, npc)
npc:berserk()
end

 

 

Кхм... Еще одна пустышка-подарок ПЫС, или что-то рабочее?

Не соответствует правилам.

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


Ссылка на сообщение
В теме "Справочник...", кстати, можно найти много интересного.

Читал её. Очень много для себя узнал. 

 

Идем дальше. Получил я НПЦ по ид, как сказали выше. Поссорил. Итог - ржунимагу.

 

1.Первый стал агриться на меня, ГГ

2.Второй убил своего, которого должен был.

3.Третий и второй вместе в итоге подощли к первой жертве, один сорвался и убежал, а второй встал вплотную не к своей жертве, и начал вертеть прицелом в области головы жертвы. При этом я вообще ничего не понял - но одно ясно: xray решил просто меня потролить))))

 

З.Ы Конечно же я накосячил, своего добился, только появились новые огрешки, но их мы уже решим другими, более простыми способами)

 

И всеже - void berserk() - просто пустая функция? Её тупо зарегестрировали в классе?

Изменено пользователем CRAZY_STALKER666

Не соответствует правилам.

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


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

 

 

Я ее у себя худо-бедно починил, но она все равно работает не так, как задумывали разрабы,

 

Ок. Ок.

Открой секрет, пожалуйста - а как и что задумывали разрабы?

Не соответствует правилам.

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


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

db.actor:position() - что из себя представляет? X,Y,Z,Gv,Lv - я правильно понял?

Если я передаю в функцию позицую, а она (функция) не поддерживает передачу каждой координаты отдельно, мне нужно разбить мою позицию на составляющие, кое что с ними сделать... А как потом передать в функцию? Как их упаковать так сказать, чтобы исходный формат был как и у оригинала...

Надеюсь понятно обьяснил...

Не соответствует правилам.

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


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

@FonSwong, хоть я и немного понимаю в Lua, но что ЭТО мне даст - ахах непонятно :P

СЛОЖНА. НИПАНЯТНА

И что этот скрипт будет возвращать? Про то, что такое my_func - умолчу...

Хотя если расскажешь - как это работает - будет классно!

Не соответствует правилам.

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


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

Вернусь к своей проблеме. 

Я рисую партикл ТОЧНО по координатам игрока. Сам партикл - снежная завеса. И вот что имеем в итоге:

http://hostingkartinok.com/show-image.php?id=502b265350a69f9b32673fcf7a6a4cd0

Партикл рисуеться совсем не там, точне сказать - он сделан по другому...

 

А задача такова - что нужно правильно преобразовать координаты для ГГ, т.е прибавить(убавить) значения к X Y Z так, чтобы ГГ оказался в центре этой все завесы.

Рабочую функцию для преобразования координат уже привел @Kondr48 выше. Сам, сколько не вертелся, то снег выше, то ниже, то снова не там, хотя я представляю, как устроен 3д мир... Но что-то пока не выходит...

Не соответствует правилам.

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


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

 

 

высота в сталкере - это Y, а не Z

Помню. Но все равно, где-то ошибочки всегда...

Не соответствует правилам.

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


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

 

 

Тут надо переделывать партиклы и смещать партиклы в ту сторону, где нет партиклов.

 

Именно. Но переделать партикл - не в моей компетенции.

А от кости или от камеры работать - не прокатит. Нужно именно работать с координатами.


 

 

тогда просто сними координаты ГГ и в демо рекорде+rs_stats координаты снега и посчитай разницу. А при спавне будешь делать эту поправку.

 

Вроде так и делал. Но видимо у меня с математикой плохо ^_^

Не соответствует правилам.

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


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

 

 

У них также есть свои координаты.

Они мало отличны от позиции самого ГГ.

Тут проблема осовная вот какая - сам партикл по сути своей "кривой" - со смещенным центром отрисовки...

Не соответствует правилам.

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


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

 

 

править xr партиклов в партикл-эдиторе.

 

К сожалению использовать СДК возможности нет.

Не соответствует правилам.

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


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

 

 

как можно по ходу игры поменять имя ГГ и его иконку

Поднимал уже вопрос - в движок лезть...
Скриптами проблему не решим...

Не соответствует правилам.

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


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

 

 

на расстояние 10 метров. Не больше не меньше.

Как раз "==" тебе и нужно. Ни больше ни меньше ;)

Не соответствует правилам.

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


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

Требуеться убить несколько НПЦ. Пытаюсь так:

 

function all_kill()

local id_kl1 = my_sid.mil_mon_1 -- тут мы каждого получили
local id_kl2 = my_sid.mil_mon_2
local id_kl3 = my_sid.mil_mon_3
local id_kl4 = my_sid.unknown
local se_obj_1 = level.object_by_id(id_kl1) --- получили по ID
local se_obj_2 = level.object_by_id(id_kl2)
local se_obj_3 = level.object_by_id(id_kl3)
local se_obj_4 = level.object_by_id(id_kl4)
 
if se_obj_1 and se_obj_2 and se_obj_3 and se_obj_4 then
se_obj_1:kill(se_obj_1) --- а правильно ли так?
se_obj_2:kill(se_obj_2)
se_obj_3:kill(se_obj_3)
se_obj_4:kill(se_obj_4)
end
end

Но вылетает с ссылкой на _g.script. Проблема однозначно тут:

 

se_obj_1:kill(se_obj_1) --- а правильно ли так?

se_obj_2:kill(se_obj_2)
se_obj_3:kill(se_obj_3)
se_obj_4:kill(se_obj_4)

Но как правильно НПЦ передать - не знаю.

Не соответствует правилам.

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


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

 

 

Обычно переменные с названием se_obj подразумевают серверный объект. А функция level.object_by_id возвращает клиентский.

 

В контексте моей проблемы это роли не играет абсолютно, т.к стилистика для выбора названий - дело сугубо личное. Я мог бы его назвать mObject,iStalker и так далее. В функции эти имена имеют абсолютно символическое значение, после end они перестают использоваться где либо, а если вся функция на 100 процентов рабочая - то какой смысл ассоциировать их с серверным,клиентским обьектом, тем более что разницу я между ними понимаю только фигурально(одно работает на стороне сервера, другое клиента)...

Не соответствует правилам.

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


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

 

 

кастомные объекты для сохранения большого объёма данных.

А поподробнее можно про это?

  • Нравится 1

Не соответствует правилам.

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


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

Такая проблема: вот логика НПЦ

 

 

 

 
[logic]
active = remark@1
on_hit = hit
 
[remark@1]
target = actor
no_move = true
 
[remark@2]
target = actor
no_move = true
 
[hit]
on_info = {+gauss_online} remark@2 %+sar_brut_death =make_suicide%
on_info2 = %+sar_brut_death =make_suicide%

Вот сама функция, которая должна выполняться:

 

function make_suicide(actor, npc)

news_manager.send_tip(db.actor, "триггер смерти", nil, nil, 20000)
npc:kill(npc)
end

 

Но она не выполняться. Ни одно из условий в hit не работет. Как так то?


UPD1. Такое дело - НПЦ бессмертный, ему выставлены конфиги иммунитета наподобие Сахарова. Делаю вывод - хиты просто по нему не проходят. Сделал его смертным - всё заработало. Нашел xr_hit.script дабы сделать передачу id стрелка, даже если дамаг = 0. Что я там только не делал, даже в xr_motivator заглянул. Не помогло, хотя там есть строчки с комментариями мол дамага 0, игнорим... А что-то сделать нужно!

Не соответствует правилам.

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


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

Ребятки, проконсультируйте. Тут совсем нетривиальная проблема.

В отдельном файле объявил переменную.

 

Допустим в test_scr объявил -  local test = 0

Из другого в теле какой-либо функции : test_scr.test = 1

В итоге после проверки всё равно test равен 0

Где я ошибся?

Не соответствует правилам.

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


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

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