erlik Поправлю тебя немного:
Предметы, уже прописанные в ящики в all.spawn'е, можно удалять в любой момент игры.
Можно удалять несколькими вариантами, в зависимости от имеющихся под рукой параметров.
Если извесна секция ящика, то достаточно проверить объект(ы) с этой секцией и, найдя нужный, удалить из него ненужные предметы.
Можно и боле
Artos
Я почему то думал (неправильно получается), что итемсы позже спавнятся - и пока деревянный ящик не разобъешь - он пустой.
Но если нет - тогда действительно узнаем id ящика и ищем все итемсы, чей parent id совпадает с айди ящика.
Stalk15
Ну так я же приводил (вчера) методы оригинала для проверки патронов в магазине - их и используй.
-----------------------------
Все понял - а то сам запутался. Коли итемсы для содержимого ящика уже прописаны в allspawn - значит они как объекты уже в игре существуют - и значит их можно как найти, так и удалить.
А если они только в конфиге - тогда ящик пустой. И править нужно конфиг.
отредактировал(а) erlik: 04-07-2010 19:50 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Ты же сам уточнял: "если патроны прописаны в all.spawn'е ...".
Естественно, все что я писал относится к этому случаю. 'Много' патронов в ящике на вышке (Свалка) - именно этот случай.
При спавне 'по событию' - конечно всего лишь нужно подредактировать конфиг.
Ну или даже: отловив событие спавна в ящик 'из конфига' - из(от)менять его в зависимости от условий или намерений ...
erlik
Вчера?У нас наверно часовые пояса разные:-)
Вот этот метод?:get_ammo_in_magazine()
С ним, когда **5001c54314580bda8be6**000)
stope = true
end
else
stope = false
end
end
end
[/code]
Кто знает, в чем дело?В функции вроде как все правильно..
Artos, я попытался запустить, измененный тобой, скрипт, и он мне обнилил в логе его:
\xr_motivator.script:162: attempt to index global 'trups' (a nil value)[/spoi**5004c54314580bda8be6**motivator_binder:death_callback(victim, who)
trups.death(victim)[/code]
Сама функция:
[code]
local time = time_global()+2000
local idVictim --id жертвы
local bGive = false --событие
local pos = db.actor:position()
function death(victim)
if victim then
time = time_global()+2000
idVictim = victim:id()
end
end
[/code]
SkyLoader,$ Stalk15
Никогда не используйте при объявлении переменных в корне скрипта/модуля сложных конструкций, в которых вы не уверены существуют ли на момент инициализации скрипта.
Сорри, смогу подробнее ответить через час-другой, если еще останется необходимость.
У меня тоже всё заработало)
Грохнул ящик с халявными патронами как посоветовал erlik, функцию прицепил к вступительнуму диалогу Сидора.
Прикольно, скриптовые файлы регить нигде не надо, тупо в папку SCRIPT кидаешь и усё)
SkyLoader
Вот немножко другой вариант функции - срабатывает почти всегда (почему почти - сам выясняй)
Что именно тебе надо - я не совсем в **5001c54314580bda8be6**DefoltFlags()
bFlag = false
news_manager.send_tip(db.actor, "Объект не заспавнен", 0, "trader", 3000)
end
end
end
end [/code]
вызов функций
в function motivator_binder:death_callback(victim, who)
if who:id() == db.actor:id() then -- будут отслеживаться смерти только от ГГ death_timer(3,victim) -- взводим таймер на 3 сек и передаем юзердату жертвы
и в function motivator_binder:update(delta)
между блоками if then end hz()
Artos
под ночь уже честно говоря лень и комментить и форматировать :-)
------------------------------------------------------------------------
отформатировал (все одно как надо не получается).
отредактировал(а) erlik: 05-07-2010 10:07 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Что-то ты форматированием кодов стал пренебрегать ...
P.S. "Поленившись сейчас - завтра будешь сам расхлебывать и другим достанется".
Ты же сам даешь материал, который еще не раз будет цитироваться в топике и уж если ты поленился отформатировать - то те, для кого это и подавно оставят 'как есть'.
ИМХО, стОит и НЕ потворствовать лености и самим не подавать повода/примера.
SkyLoader
В твоем случае, если пог ошибки ругается на твой файл (как я понял - 'trups.script'), то или ты ошибся в имени файла или в этом файле есть синтаксическая ошибка или ... см.ниже.
Подобную конструкцию: local pos = db.actor:position()
в корне файла никогда не употребляй! Если при первом же обращении к твоему скрипт-файлу объект 'db.actor' НЕ будет определен (а для этого требуется и вся загрузка игры и инициализация актора), то это и будет блогировкой скрипта (вызов метода применительно к nil-объекту).
Подскажите пожалуйста почему если у меня такая функция:
local time_d = level.get_time_days()
news_manager.send_tip(db.actor, "%c[255,255,128,128]ПРИМЕР:\n%c[default]Вы уже"..time_d "дней в зоне", nil, nil, 30000)
Игра валится с логом:
Description : ....a.l.k.e.r. - &西&覦&覚 &覇&覨&覠&覧&覷&親&覠\gamedata\scripts\re.script:11: attempt to call local 'time_d' (a number value)
Кстати, кто нить помнит как у числа отбросить дробную часть? Или лучше даже как просто округлить
в файле script_sound.ltx в секции [talk_hello_rnd] изменить строку:
stalker = 1,waiting\wait_ ;talk\neutral_greeting\greeting_
на
stalker = 1,talk\neutral_greeting\greeting_
Люди как заспавнить транспорт? текстуры есть,звук тоже
Скажи, майор!
Кому в "зачет", что мы воюем?
Скажи, кому мы задолжали нашу жизнь?
И на кой черт ты лезешь сам под эти пули?
И на кой черт все нужно это нам? Скажи!
(с) Гордеев.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.