Пользователей: 1
Гостей: 345
Всего: 346

» Подробно
Привет, гость!








Автор Сообщение
karavan
    
Посты: 940
Откуда:
Возраст:
24-08-2010 23:28 GMT3 час. #1328427   
Помогите пожалуйста, разобраться с метками.
Вобщем вот в чем дело хочу заспавнить НПС с меткой, а потом убрать с него метку скриптом.
Вот так спавню с меткой:
function metka_on()
local obj = alife():create("npc_test",vector():set(69,-3,-137),341318,160)
if obj then
level.map_add_object_spot(obj.id, "user", "Метка на НПС")
end
end

Вот так пытаюсь убрать:
function metka_off()
local obj = alife():object("npc_test")
if obj then
if level.map_has_object_spot(obj.id, "user") then
level.map_remove_object_spot(obj.id, "user")
end
end
end

Не получается убрать метку с НПС. Как убрать метку с НПС?


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
24-08-2010 23:43 GMT3 час. #1328440   
karavan
obj.id -то бишь айди - надо запоминать\сохранять.
А ты пытаешься заново определить своего npc и надеешься, что здесь if obj then будет true - а ты поставь в это место вывод мессиджа, чтобы понять - проверка проходит или нет - и все поймешь.
Так что или сделай своему неписю сид(можно легко через нетпакет ему его записать - не используя allspawn) или запоминай полученный при спавне айди (записать айдишку можно в pstor - примеров записи в pstor в геймдате хватает).


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
karavan
    
Посты: 940
Откуда:
Возраст:
25-08-2010 00:01 GMT3 час. #1328452   
erlik Понимаю что туплю или просто не знаю как. Возился с метками более полугода назад и всё забыл. Да честно сказать это мои не единственные попытки снять метку с НПС.
Про то что Айди нету для снятия то же догадывался.
Короче если можеш помоги.
Пытался записывать в таблицу Айди НПС с меткой:
local ids = {}
function metka_on()
local obj = alife():create("npc_test",vector():set(69,-3,-137),341318,160)
table.insert(ids, obj.id)
if obj then
level.map_add_object_spot(obj.id, "user", "Метка на НПС")
end
end

А вот как правельно прочитать с таблицы не знаю.


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
25-08-2010 00:23 GMT3 час. #1328464   
karavan
Прочитать твою айдишку - если она там всего одна в таблице - можно так
ids[1] -- то есть значение таблицы с индексом 1
если не одна - тогда итерацией -
for k, v in pairs (ids) do
local id = v -- в переменную id и будут поочередно(но не по порядку - для порядка нужно ipairs использовать) попадать все записанные значения из таблицы
end
в таблицу записать можно и так
ids[obj.id] = true -- true в этом случае значение формальное - вместо него все, что угодно можно ставить.
тогда айдишка - если делать перебор таблицы - будет значением k
for k, v in pairs (ids) do
local id = k
end

Но таблицу нужно еще сохранять через нетпакет - иначе все ее данные будут потеряны при сейв\лоаде.
Гораздо проще нужное значение просто в pstor эктора записать:
xr_logic.pstor_store(db.actor,"id",айдишка) --"id" это произвольное строковое имя ключа - второй аргумент собственно значение переменной, которое нам надо сохранить.
считать можно так
local id = xr_logic.pstor_retrieve(db.actor,"id")
И все :-)

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

Блин - какого фига у меня иконка никак не вставляется с альфой - че то совсем забыл как это делается...
Делаю выделение белым - а она просто исчезает.

отредактировал(а) erlik: 25-08-2010 00:31 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
25-08-2010 00:59 GMT3 час. #1328472   
erlik
Может координаты прописал не те?


karavan
    
Посты: 940
Откуда:
Возраст:
25-08-2010 01:15 GMT3 час. #1328476   
erlik Спасибо уже есть продвижения.
А как очистить таблицу local ids = {} ?
--------------------------------------
Еще не совсем понял как прочитать записаное значение xr_logic.pstor_store(db.actor,"id",ids) из нет пакета?

local ids = {}
function metka_on()
local obj = alife():create("npc_test",vector():set(69,-3,-137),341318,160)
table.insert(ids, obj.id)
xr_logic.pstor_store(db.actor,"id",ids)
if obj then
level.map_add_object_spot(obj.id, "user", "Метка на НПС")
end
end

Это нужно создать отдельную функцию и биндить её?

function poket()
local id = xr_logic.pstor_retrieve(db.actor,"id")
end

Или я вообще все не правельно понял. :-(

отредактировал(а) karavan: 25-08-2010 01:46 GMT3 час.

Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
25-08-2010 08:41 GMT3 час. #1328591   
karavan
Можно так поставить и уда


Новые фишки для сталкера(см. журнал)
Череп Долговец
    
Посты: 286
Откуда:
Возраст:
25-08-2010 08:51 GMT3 час. #1328600   
Народ! Расскажите как исправлять скелет у НПС из Сталкера Зов Припяти, для Сталкера SoC.


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
25-08-2010 09:03 GMT3 час. #1328612   
Stalk15 Это самый ПЛОХОЙ вариант. Подобная итерация долж**50146ea8aab1bb10eeba**ode]local sobj = alife():object("esc_wolf")[/code]

В данном случае мы получим серверный объект волка. Как с ним работать дальше, думаю объяснять не надо. :-)

karavan При каких условиях метка должна ставиться, а при каких сниматься?

отредактировал(а) singapur22: 25-08-2010 09:27 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
25-08-2010 09:26 GMT3 час. #1328638   
singapur22
Ну да, знаю.Просто написал, вдруг крайний случай будет:-)

Череп Долговец
На сталкер-вики есть статья, которая тебе нужна.Почитай её.

отредактировал(а) Stalk15: 25-08-2010 11:04 GMT3 час.

Новые фишки для сталкера(см. журнал)
Gider
    
Посты: 18
Откуда: Кропоткин
Возраст:
25-08-2010 09:51 GMT3 час. #1328659   
Народ как сделать так чтобы фонарик можно было вешать на пояс?
При дописании строк:
belt = true
move_to_ruck = true
Ничего не происходит, а если поменять слот с 9 на 8 то фонарик фешается на пояс, но не работает


МалышоГ
    
Посты: 5
Откуда:
Возраст: 30
25-08-2010 10:22 GMT3 час. #1328693   
подскажите нубу - я скачиваю любой билд игры - что нужно чтоб поиграть в него? напишите в личку подробно пожалста


karavan
    
Посты: 940
Откуда:
Возраст:
25-08-2010 10:38 GMT3 час. #1328710   
singapur22 Для начала вот две небольшие функции с метками.
Ставим метку:

local ids = {}
function test_metka_on()

local obj = alife():create("test_save", vector():set(69,-3,-137),341318,160)
table.insert(ids, obj.id)
if obj then
level.map_add_object_spot(obj.id, "user", "Метка")
end
local tbl = amk.read_stalker_params(obj)
-- tbl.sid = 481543 -- id
tbl.health = 0.01
tbl.updhealth = 0.01
amk.write_stalker_params(tbl, obj)

news_manager.send_tip(db.actor, "Спавним на Карту", 0, nil, 5000)
end

Убираем метку:
function test_metka_off()
for k, v in pairs (ids) do
local id = v
level.map_remove_object_spot(id, "user")
news_manager.send_tip(db.actor, "Убираем метку", 0, nil, 5000)
end
end

Условия:
Метка на НПС после его спавна и вешания на него этой метки, должна быть на нем до тех пор пока эту мекту не захотим убрать. Т.Е. до момента вызова второй функции.
При сейв-лоаде, метка на НПС должна сохраняться и соответственно убиратся после вызова функции.

Еще есть один момент. Метка на НПС должна висеть только в том случае если он жив, а если умер то сниматся с него. За это я еще не брался но скорей всего что сдесь понадобится отдельная функция которую нужно биндить. Условия же наличия мекти на НПС те же. До востребования.


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
АнархОПанк
    
Посты: 998
Откуда:
Возраст:
25-08-2010 10:56 GMT3 час. #1328733   
МалышоГ Билд - это отдельная игра. Ее не нужно класть поверх ТЧ, ЧН, ЗП. Извлекай в любую папку, и запускай батник. Обычно это батники в названии которых присутсвуют слова START. Батник знаешь что такое?


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
25-08-2010 11:08 GMT3 час. #1328747   
karavan В принципе, то что ты написал вполне рабочее, но... Я так понимаю, ты собираешься работать не над одним нпс, раз использовал таблицу для сохранения идов. Ну и как ты в этом случае собираешься снимать метку с отдельного нпс, а не со всех сразу?
Ещё раз спрашиваю. Какие условия снятия метки? Тоесть, при каких условиях должна вызываться функция test_metka_off() ???


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
25-08-2010 11:17 GMT3 час. #1328758   
karavan
Ну если ты сид своему NPC сделал - тогда таблицы нафиг не нужны. И pstor тоже - туда кстати надо было не таблицу записывать, а полученный obj.id.
Хотя может туда и табличку можно записать - не пробовал.

И метку лучше ставь серверную level.map_add_object_spot_[gre**50016ea8aab1bb10eeba** if level.map_has_object_spot( nid , "user") then -- проверяем висит ли метка
level.map_remove_object_spot( nid "user") --убираем нафиг
news_manager.send_tip(db.actor, "Убираем метку", 0, nil, 5000)
end
end
end [/code]
можно и по другому - делать проверку на апдейте if not obj:alive() then - где obj - клиентский объект NPC.
---------------------------------------------------------------------------------------------------------------------------
Ты действительно поясни - а собственно скока у тебя NPC на которых ты собираешься вешать метки и прочие условия.

отредактировал(а) erlik: 25-08-2010 11:27 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
25-08-2010 11:27 GMT3 час. #1328774   
Нашел в одной статье это:

Привязка сталкера к конкретной позиции ( к vertex_id)

xr_position.setPosition(obj, position)
obj – обжект сталкера, обычно это self.object
position – vertex_id ноды, к которой он будет привязан.
Если вам нужно, чтобы в каком то экшине он был в данной позиции, то нужно сделать:
action:add_precondition (world_property(properties["position"], true))
где properties["position"] = xr_evaluators_id.position

Ни чоё не понял.Что за vertex_id ноды?И вообще тут правильно написано?И это тоже непонятно:"obj – обжект сталкера, обычно это self.object"


Новые фишки для сталкера(см. журнал)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
25-08-2010 13:05 GMT3 час. #1328865   
Stalk15

vertex_id ноды -- собственно имелись ввиду левел_вертексы

"obj – обжект сталкера, обычно это self.object" -- а тут что не понятно? То и имеется ввиду "клинтский объект сталкера", тобишь как вы уже привыкли = "npc".


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
karavan
    
Посты: 940
Откуда:
Возраст:
25-08-2010 13:07 GMT3 час. #1328866   
singapur22 Пока рассматриваю только одного НПС. Таблицу использую для того что бы спавнить НПС с меткой и удалять метку с НПС через время, т.е. последовательность такая:
1) Спавнится НПС-с меткой.
2) Снимаем метку
2.1) Снимаем метку если НПС мертв.
2.2) Снимаем метку с НПС, через диалог.
Эта последовательность будет повторятся. Т.е. проходить не один раз.
Условий вызова функции test_metka_off() два:
1) Через диалог с НПС, с которого нужно снять метку.
2) Снять метку при смерти НПС.

Нужно что бы метка оставалась на НПС после сейв-лоада.

erlik Спасибо за пример. Но пожалуй мне не совсем подходит использование death_callback в файле xr_motivator. Хотелось бы как-то по проще. Сид ставил просто как вариант. Хотя кто знает может я еще не понял суть примера.


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
25-08-2010 13:37 GMT3 час. #1328888   
karavan

Пока рассматриваю только одного НПС
Ну и на кой чёрт тебе таблица? Достаточно будет одной переменной. И итерация уже не понадобится. Это раз.
Второе. Тебе erlik уже объяснил ка**50036ea8aab1bb10eeba**


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Fantom2323
    
Посты: 778
Откуда: 25 RUS
Возраст: 29
25-08-2010 14:47 GMT3 час. #1328983   
singapur22, karavan, erlik
Вы все ещё решаете глобальные вопросы? :-) Молодцы, а мне можете помочь? ;-)

Мне нужно научиться делать новые точки переходов с локу на локу при помощи алл.спавна. Можете мне кинуть статью какую нибудь, пожалуйста, а я в долгу не останусь :-beer) И ещё желательно можно к этой же статье дать заметку о том чтобы точка пути появлялась только после диалога.


Новый проект в разработке, ищи в моём журнале.
В теории - всё легко, а вот на деле - гораздо сложнее.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
25-08-2010 14:48 GMT3 час. #1328984   
singapur22
Спасибо.
Там походу не правильно все на

отредактировал(а) Stalk15: 25-08-2010 14:56 GMT3 час.

Новые фишки для сталкера(см. журнал)
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 30
25-08-2010 15:00 GMT3 час. #1329004   
Реально ли отследить запуск машины?
Т.е. если машину Завели, то...выполнение действия.

И ещё Момнет erlik на 20-30 стр. выкладывал скрин летающей машины...

Вот Как ты так сделал? =) читать всю тему не имею возможности.


Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
25-08-2010 15:02 GMT3 час. #1329006   
Stalk15
Ибо в оригинале такого файла нет.
Николай ФеНиКс
Массу увеличить, при спавне подскочит хрен знает на сколько метров.


Fantom2323
    
Посты: 778
Откуда: 25 RUS
Возраст: 29
25-08-2010 15:06 GMT3 час. #1329011   
Stalk15
Так просто? :lok5) Хе хе, да это же 15 минутная работа, ура! Ну конечно за это спасибо, а вот если я не ошибаюсь на переход же ещё нужно метку повесить чтоб на карте было видно. Верно? Как это сделать?


Новый проект в разработке, ищи в моём журнале.
В теории - всё легко, а вот на деле - гораздо сложнее.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
25-08-2010 15:08 GMT3 час. #1329017   
Выложил в журнал тестовую версию мода "Рандомные тайники" - версия на данный момент хардовая - так как нет системы подсказок для подбора шифра к закодированным схронам.
Все это пока в разработке - а то что есть можете уже потестить :-)
-------------------------------------------------------------------------
Fantom2323
Через allspawn переходов не делал ни разу(через скрипт меня вполне устраивает) - хотя там по моему ничего сложного нет - делаешь секцию по аналогии с имеющимися и правишь цифры. Статьи на данную тему не нашел.

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

Николай ФеНиКс
Как сделал? Тестируй методы физики - и узнаешь. Но управлять машиной нельзя - она у меня либо просто поднимается\опускается либо прыгает по пологой кривой. Для управления нужен во первых математический алгоритм для движения +куча кнопок с каллбеками на нажатие - и без кейлоггера тут никак не обойтись. У меня каллбеки только на ЛКМ и ПКМ.

отредактировал(а) erlik: 25-08-2010 15:14 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
25-08-2010 15:22 GMT3 час. #1329030   
Stalk15

а то они у меня в оффлайне сбегают
Я сам уже не помню как гулаги настраивать. Чтоб всё вспомнить, нужна практика. Посему помочь пока не смогу. Но на сколько я помню, проблема в настройках гулага, к которому они привязаны.


Fantom2323
Вот пример создания перехода:


Только пример не полный. Нужно ещё указать куда переместить актора при нажатии "отмена". Если данный поинт не задать, то ...
Или отключить вопрос о разрешении перехода.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
25-08-2010 15:23 GMT3 час. #1329032   
Fantom2323
А, про метку забы сказать.Надо переходу сто**50016ea8aab1bb10eeba**18.3,0.22,-3.0 --/ ГГ
dest_direction = 0,0,0
dest_level_name = l08_yantar --/Левел, где игрок должен появится
dest_graph_point = start_actor_01[/code]

Потом в скрипт level_tasks прописать:
[code]obj = sim:story_object(9999)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Болото")
end[/code]


singapur22
Гляну еще какая у стандартных гулагов логика, мож что найду.Еще когда НПС онлайн, он возращается на место, типа хочет сбежать пока ГГ не видит:-)


Новые фишки для сталкера(см. журнал)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
25-08-2010 15:31 GMT3 час. #1329039   
Stalk15 Могу только посоветовать. Не нужно пытаться копировать гулаги из АМК. Самый простой способ создания гулагов (без лишних накруток) находится в файле gulag_escape.script
А точнее, лагерь новичков. По его аналогии и делай.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Fantom2323
    
Посты: 778
Откуда: 25 RUS
Возраст: 29
25-08-2010 15:33 GMT3 час. #1329043   
Stalk15
Ещё раз спасибо! :-) Ты просто чудо-мастер ;-) Ах да и вот ещё:

Как мне убрать эти убогие анимации ПЫСов, чтобы осталась только картинка:


Новый проект в разработке, ищи в моём журнале.
В теории - всё легко, а вот на деле - гораздо сложнее.


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


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

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