karavan
Мда-а-а ... как же запущено ...
Тебе это:
get_my_func(obj:id()) --/ вызов 'своей' функции с передачей ей ID-болта
ничего не говорит???
Тебе на блюдечке дали нужный тебе 'айди предмета', осталось только вместо get_my_func подставить имя твоей функции, о которой ты не поминаешь, а в ней самой прописать входящим аргументом этот идентификатор.
Ты что кидаешь болты пачками, чтобы составлять таблицы? blackraven6
Не очеь въехал в суть твоего вопроса.
Аналогичен ли колбек 'take' для болта и для, к примеру, калаша?
Сейчас не помню, но если болт может быть 'поднят', то естественно аналогичен. А свойство быть поднятым/таскаемым - вроде как в 'system.ltx', а (не)запрет на поднятие - в конфиге самого болта (can_take).
Artos Видишь ли фишка в чем. В самом конфиге болта нет такой строчки, которая бы блокировала поднятие его как предмета. Ну просто нет там этого пресловутого can_take = false. Значит запрет где-то еще... Может же он быть в классе по дефалту прописан?
Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
blackraven6
Я же написал - свойство быть таскаемым/поднимаемым - в 'system.ltx' (секция [[ph_capture_visuals]])!
Ну а если этого свойства нет, то отсутствие в конфиге болта (что означает дефолтное - можно подобрать!) - не обрабатывается, т.к. нет самого свойства.
(но могу ошибаться в чем-то, давно с болтом разбирался ...)
Artos Я ж и говорю, что с таким не работал никогда. Вот и обратился к специалисту за помощью.
Ну хорошо. допустим Айди брошеного на землю болта получен. Лично мне надо его заменить на артефакт или сделать так что бы выбрасывался артефакт, а не болт. Знаю что есть возможность тупо заменить модель болта на модель артефакта, но это не то. Нужен именно предмет с характеристиками артефакта.
Как вообще произвести чтение Айди, а потом замену его на земле или в воздухе?
Artos Ну я конечно попробую в системс прописать, но он скорее всего если и будет что-то делать, так только притягиваться к экрану как в модах "потоскай мутантов и предметы". Но попытка не пытка.
Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
karavan
Если НЕ знаешь и/иль не понимаешь - всегда формулируй суть/цель, а не свои кусочные предполагалки.
Если тебе нужно чтобы при броске болта на земле оказывался бы артефакт, то так и задавай вопрос, а не "как мне получить айди болта".
С**50016ea8aab1bb10eeba**obj = alife():object(obj:id()) --/ серверный объект-болт
if se_obj then
local vPos, iLvid, iGvid = se_obj.position, se_obj.m_level_vertex_id, se_obj.m_game_vertex_id
alife():release(se_obj, true) --/ удаляем болт
alife():create("my_artefact", vPos, iLvid, iGvid) --/ спавним арт
end
end
end
[/code]
А не подскажете случайно как сделать так чтобы после соответствующей фразы диалога(пусть это будет оскорбление)волк менял своё отношение к ГГ с нейтрала на врага, вот!!!????
АЛЯ lost world 3
И если не трудно можно все по шагам расписать я в этом деле новенький!!!!:)
А И ЕЩЁ ВОПРОСИК КАК СДЕЛАТЬ ЧТОБЫ БОЛТОМ МОЖНО БЫЛО УБИТЬ!!!???
отредактировал(а) Леха_КаКтус: 12-08-2010 04:32 GMT3 час.
Artos Спасибо. Все же ты мастер.
Только все же хотелось бы сделать бросок-подмену из БРОСКА болта. В твоей функции замена срабатывает действительно из выбрасывания на землю, т.е. нажатия на кнопку "G", а вот при броске болта на растояние ничего не происходит.
Создаю новые переходы. Присваиваю стори айди, прописываю их в game_story_ids, метки прописываю в level_tasks.script. Но метки почему - то не вешаются! переходы работают, а метки повеиться на них не хотят. От чего еще могут зависить метки, как исправить данный тупик?
function proceed()
if db.actor == nil then
return
end
for k, v in pairs( level_scripts ) do
v.proceed()
end
if db.actor:has_info("autojump_enabled") then
local jname = jump_level_by_name[level.name()]
if jname ~= nil then
get_console():execute("flush")
get_console():execute("jump_to_level "..jname)
end
end
end
function autojump()
db.actor:give_info_portion("autojump_enabled")
end
function process_info_portion(info_id)
if db.actor == nil then
return
end
for k, v in pairs( level_scripts ) do
if v.process_info_portion(info_id) then
return
end
end
end
function add_location(sid, location, hint)
local sim = alife()
if sim then
local obj = sim:story_object(sid)
if obj then
if hint then
level.map_add_object_spot(obj.id, location, hint)
else
level.map_add_object_spot(obj.id, location, "")
end
end
end
end
function remove_location(sid, location)
local sim = alife()
if sim then
local obj = sim:story_object(sid)
if obj and level.map_has_object_spot(obj.id, location) then
level.map_remove_object_spot(obj.id, location)
end
end
end
function remove_location_safe(sid, location)
local sim = alife()
if sim then
local obj = sim:story_object(sid)
if obj then
for a = 1, level.map_has_object_spot(obj.id, location), 1 do
level.map_remove_object_spot(obj.id, location)
end
end
end
end
function is_map_spot_present(sid, location)
local sim = alife()
if sim then
local obj = sim:story_object(sid)
if obj and level.map_has_object_spot(obj.id, location) ~= 0 then
return true
end
end
return false
end
function add_lchanger_location()
local sim = alife()
if sim then
-- escape
local obj = sim:story_object(91)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_garbage")
end
local obj = sim:story_object(19854)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход на припять")
end
local obj = sim:story_object(19853)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход на юпитер")
end
local obj = sim:story_object(19852)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход на затон")
end
local obj = sim:story_object(19851)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход в путепровод")
end
local obj = sim:story_object(19850)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход в лабу x8")
end
local obj = sim:story_object(19849)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход в мертвый город")
end
local obj = sim:story_object(19900)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход в подземку агропрома ЧН")
end
local obj = sim:story_object(19901)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход в предбанник")
end
local obj = sim:story_object(19902)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход на старую свалку")
end
local obj = sim:story_object(19903)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход на старый янтарь")
end
local obj = sim:story_object(19904)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "переход на старые болота")
end
-- garbage
obj = sim:story_object(191)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_agroprom")
end
obj = sim:story_object(192)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_agroprom")
end
obj = sim:story_object(193)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_escape")
end
obj = sim:story_object(194)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_bar")
end
obj = sim:story_object(195)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_darkvalley")
end
obj = sim:story_object(196)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_darkvalley")
end
-- Kostya_levels
local obj = sim:story_object(11501)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Рыжий Лес")
end
obj = sim:story_object(11502)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Пещеру")
end
obj = sim:story_object(11503)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Пещеру")
end
obj = sim:story_object(11504)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_garbage")
end
obj = sim:story_object(11505)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_agroprom")
end
obj = sim:story_object(11506)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Лесную Чащу")
end
obj = sim:story_object(11507)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_garbage")
end
obj = sim:story_object(11508)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_darkvalley")
end
obj = sim:story_object(11509)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_military")
end
obj = sim:story_object(11510)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Логово")
end
obj = sim:story_object(11511)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Лесную Чащу")
end
obj = sim:story_object(11512)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_yantar")
end
obj = sim:story_object(11513)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Лесную Чащу")
end
obj = sim:story_object(11514)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Лесную Чащу")
end
obj = sim:story_object(11515)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Логово")
end
obj = sim:story_object(11516)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На АТП")
end
obj = sim:story_object(11517)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Рыжий Лес")
end
obj = sim:story_object(11518)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Потерянную Деревню")
end
obj = sim:story_object(11519)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Генераторы")
end
obj = sim:story_object(11520)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Генераторы")
end
obj = sim:story_object(11521)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Припять")
end
obj = sim:story_object(11522)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Варлаб")
end
obj = sim:story_object(11524)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На АТП")
end
obj = sim:story_object(11525)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Лиманск")
end
obj = sim:story_object(11526)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Радар")
end
obj = sim:story_object(11527)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Забытый Лес")
end
obj = sim:story_object(11528)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Рыжий Лес")
end
obj = sim:story_object(11529)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Лиманск")
end
obj = sim:story_object(11530)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Госпиталь")
end
obj = sim:story_object(11531)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Госпиталь")
end
obj = sim:story_object(11532)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Потерянную Деревню")
end
obj = sim:story_object(11534)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Болото")
end
obj = sim:story_object(11535)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Болото")
end
obj = sim:story_object(11536)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Болото")
end
obj = sim:story_object(11537)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Кордон")
end
obj = sim:story_object(11538)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Кордон")
end
obj = sim:story_object(11539)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Агропром")
end
obj = sim:story_object(11540)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "На Склады")
end
obj = sim:story_object(11541)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "В Рыжий Лес")
end
-----------------------------
-- agroprom
obj = sim:story_object(391)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_garbage")
end
obj = sim:story_object(392)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_garbage")
end
-- darkvalley
obj = sim:story_object(415)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_garbage")
end
obj = sim:story_object(416)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_garbage")
end
obj = sim:story_object(417)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_escape")
end
-- rostok
obj = sim:story_object(608)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_yantar")
end
-- bar
obj = sim:story_object(592)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_military")
end
obj = sim:story_object(593)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_garbage")
end
obj = sim:story_object(594)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "bar_rostok")
end
-- military
obj = sim:story_object(771)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_bar")
end
obj = sim:story_object(773)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_radar")
end
-- yantar
obj = sim:story_object(925)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_rostok")
end
-- radar
obj = sim:story_object(1007)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_pripyat")
end
obj = sim:story_object(1008)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_military")
end
-- pripyat
obj = sim:story_object(833)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_radar")
end
obj = sim:story_object(832)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_aes")
end -- новый переход
obj = sim:story_object(41400)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_jupiter_underground")
end
-- новый переход
obj = sim:story_object(41401)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_jupiter_underground")
end
-- новый переход
obj = sim:story_object(41402)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_jupiter_underground")
end
-- новый переход
obj = sim:story_object(41403)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_jupiter_underground")
end
-- новый переход
obj = sim:story_object(41404)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_jupiter_underground")
end
-- новый переход
obj = sim:story_object(41405)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_jupiter_underground")
end
-- новый переход
obj = sim:story_object(41406)
if obj then
level.map_add_object_spot(obj.id, "level_changer", "to_jupiter_underground")
end
end
end
function set_task_state(id_state, id_task, id_subtask)
if db.actor then
db.actor:set_task_state(id_state, id_task, id_subtask)
end
end
function notify_new_task()
end
Не смотри на то что названия в ковычках одинаковые... Я просто делал копи пастом, только стори айди менял. В любом случае не от этого зависит
Хочу сделать реальный кодовый замок на нычки.
То что сделано в моде кодовый замок - это всего лишь его имитация - замок спавнится в нычку и она типа становится protected от npc -(хотя пишут что и с замками тырят :-).
Лично мне нужно это не для защиты от npc - а наоборот - от ГГ.(чтобы тайники легкой добычей не были - поэтому сначала пойди и найди, а потом еще попробуй открой, да при этом не подорвись).
Суть затруднения в чем - вызвать при юзе нычки менюшку набора кода проблем вроде как нет.
Код будет генерится скриптом - уровень сложности пока обдумывается.
А вот как сделать чтобы инвентарь ящика не открывался при юзе? Нужно ведь чтобы содержимое ящика реально при юзе был недоступно. (вариант с удалением ящика и спавна такого же, но неивентарного разумеется тоже рассматривается, но может есть вариант попроще и пооптимальнее ?)
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Не дать обыскивать тайник/ящик - довольно просто.
Взгляни в Симбионе на создание фейкового рюкзачка, предназначенного для 'технологических' целей. Он точно такой же как и тот, который у самого ГГ.
Требуется только переклчить логику (см. inventory_fake_box.ltx) - 'nonscript_usable = false'.
Ну а после 'открытия' замочка - можно и вернуть 'true'.
Подразумевается конечно, что придется менять кастом-дату нычки теми же нет-пакетами ...
karavan
Как уже прокомментировал singapur22 о том, что бросок болта по сути - выстрел, не поддающийся обработке штатными коллбекам или иными методами.
Навскидку: требуется мониторить наличие активного болта в руках ГГ, его исчезновение из рук и 'из ГГ' с условием 'не исчез из игры' - т.е. собственно определение события бросок по косвенным признакам. Ну а далее - дело техники ... :-)
Artos Я попробовал прописать в системс. Не помогает. Болт валяется когда наводишь мышку появляется надпись Поднять предмет и т.д Сколько не нажимал кнопку - не поднимается. Значит блок не там.
Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
erlik По существу, у ящиков используется логика ph_idle. Попробуй прописать предварительную логику ph_code. Я конечно сомневаюсь, что сработает. Но кто его знает?!
----------------------------
Хех! Работает! :-)
отредактировал(а) singapur22: 12-08-2010 16:53 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
А существует ли альтернативный способ вешания метки на точки пеерхода между локациями? Мои новые созданные переходы не хотят отображаться на карте по старому способу.:prankster:
Stalk15 Я с этим разбираюсь. ph_code многое не поддерживает. Даже везде используемое on_info в данной схеме не читается. Странно конечно, но думаю разберёмся с данной проблемой.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15, нечто с подобным я столкнулся, только со схемой sr_no_we**50016ea8aab1bb10eeba**
code = 55555
on_code = ph_idle %+esc_kill_strelok_done%[/code]
Artos, я приехал и сейчас пытаюсь найти тот Мини-фикс Симбиона размером в 9Мб, о котором ты мне сказал. Пока не могу найти. Второй раз качаю фикс, но в файле m_net_utils нигде нету Set_Data_Stalker. Можно ссыль?
Stalk15 :-cool) Здорово! Только таким методом, я (ты) смог метку повесить на эти переходы... А я уж думал придется рисовать их вручную на глоб.карте:sarcastic:
Artos, singapur22
Огромное спасибо за наводки :-)
Нашел правда наиболее оптимальный способ set_nonscript_usable(boolean) - работает в обе стороны. Artos как раз твой пост заставил вспомнить об этом методе - как т**50016ea8aab1bb10eeba**)
oCBox:set_nonscript_usable(false)
end
Надпись обыскать ящик остается как есть, а вот залезть в него уже нельзя.
-- а так разблокировать
function YesUsable(oCBox)
oCBox:set_nonscript_usable(true)
end
[/code]
всех нюансов конечно еще не проверил - но это наиболее простой вариант на мой взгляд.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
У меня вроде как легкий вопрос, но что-то не могу понять.Вот я заспавнил рестриктор, при в ходе в него что-то происходит, так вот как сделать, чтоб что-то происходило, когда ГГ вышел из зоны рестриктора?
singapur22 помоему там ньюансик существует, вроде как
on_actor_outside = ... ;при выходе
работает всегда, тобешь не зависет входил ли гг в него (хотя я могу ошибатся)
Last Day Mod Team work |==>>>ПОСЛЕДНИЙ ДЕНЬ
Кто понял с первого раза,
Тот ловит музу,
Когда каждая фраза
Ломает все сразу.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.