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

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


Svoboда

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

, а можешь сказать на практике зачем это нужно? Я никак не пойму где подобное может понадобится. Вместо method(obj) писать obj:method()? Явно же не для подобного.

Изменено пользователем Сталкер-Стрелок

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


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

@Михаил Мега черьв, тут система ивентов-сигналов, если не хочешь использовать ее - читай тутор, если с ней, то смотри как интятся скрипты и подключай свой, на мотив:

event('item_use'):register(func) 

 

и далее

 

function func(e)

-- action

end

 

где е - вышеуказанная тобою таблица.

Изменено пользователем Сталкер-Стрелок

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


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

@UnLoaded, возможно вот так:

local u_quit, b_quit = "unbind quit", "bind quit kESCAPE"

 

get_console():execute(u_quit)

...

get_console():execute(b_quit)

 

Правда зачем тебе сохранять условные константы мне не ясно.

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


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

@abramcumner, ну их тогда и указывать, или я чего не понял? В любом случае они же должны в каком-то массиве хранится.

Изменено пользователем Сталкер-Стрелок

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


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

@abramcumner, она разве не из $game_config$ грузит? Т.е. я имею ввиду использовать getFS() (но он не читает такие файлы). Еще есть класс COptionsManager, через который это можно сделать, в целом он с этим и работает на самом деле.

 

 

 

Так ведь структура не ltx-кая, навряд-ли прочтет что-то.

Можно распарсить в массив ключ значение.

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


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

Номера аи-нод статичны? Как получить номер нужной ноды (всяких выкрутасов с позицией не предлагать, неточно работает)?

 

Наверное вопрос даже так стоит: как получить размеры ноды? Она же не всегда 0.7 на 0.7.

Изменено пользователем Сталкер-Стрелок

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


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

@Zander_driver, твои претензии совершенно не уместны :facepalm: , к примеру я вообще поста не видел. Сам разобрался - молодец, но все же подскажу свой вариант:

                local vdis = actor_position:distance_to(vpos)
			local function check()
			local function in_f( v1, v2 )
				return  (math.acos((v1.x*v2.x + v1.y*v2.y + v1.z*v2.z)/(math.sqrt(v1.x*v1.x + v1.y*v1.y + v1.z*v1.z )*math.sqrt(v2.x*v2.x + v2.y*v2.y + v2.z*v2.z)))*57.2957)
			end
			local yaw = in_f(device().cam_dir, vpos:sub(db.actor:position()))
			return yaw < 35
			end
                if vdis < scan_distance and check() then
                    table.insert(vertex_bufer, {current_vertex, vpos})
                end

С таким отношением отпадает всякое желание вести сотрудничество.

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


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

@Outfater, твой вопрос некорректен, советую почитать что-нибудь по рестрикторам, конкретно обрати внимание на обработку конфига логики, я думаю вопрос разрешится.

 

@Zander_driver, в параллельной теме как-раз это обсудили вот только что, по-моему даже с готовым примером. Общно, нужно полю fixed_bones присвоить основную кость и записать кастом дату, что-бы не шумело.

  • Спасибо 1

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


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

@Zander_driver, если речь только о проверке биндера, то ты же сам что-то такое изобретал, можно заваливать игру если объект биндера не подает признаков жизни. Вставь abort куда нужно (например можешь в ините ставить булево поле о инициировании, и если его нет заваливать игру), и в целом будет решено. Если цель выявить некорректные скрипты как файлы с различными модулями, то есть хороший вариант с песочницей на мотив ЗП, который не пропускает таких инвалидов. Если хочется перебирать, разумно будет составить таблицу биндеров и итерироваться по ней, там объектов будет наверняка меньше 65т.

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


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

 

 

у нас сам файл = nil. не будет никакого инита.

Ты меня не понял. Флаг добавляешь в инит биндера, если он появляется у объекта - биндер существует, нет - валишь игру. Я не об объекте биндера.

 

 

а поподробнее, в чем принцип?

Да тут, понимаешь, в двух словах не пояснишь, возьми готовый вариант и попробуй погонять корректные и некорректные скрипты, поймешь алгоритм где заваливается работа этой системы. Какие конкретно у тебя цели я не знаю, но у меня, например, вполне симпатично все работает.

 

 

а на основе чего ее составить?

Очевидно на основе твоих биндеров, биндер выступает, к примеру, значением таблицы, ты проверяешь не только сам файл на nil, но сразу и биндер. Проверяешь не на объекте, а обычным луа, на как-раз таки ошибки этого синтаксиса, т.е. опуская саму функцию биндинга. Надеюсь понятно объяснил.

 

Извини, ухожу.

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


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

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