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

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


Svoboда

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

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

Собственно сам вопрос как сделать чтобы он стоял так чтобы ГГ не мог пройти(ответ очевиден конечно заспавним его так...), но как сделать чтобы он отходил при получении поршня, т.е. если поршень получен, то при приближении ГГ к двери(ну в данном случаи к этому охраннику) он отходил, а когда ГГ прошёл в дверь, то возвращался, на место, и так же в обратном порядке.

 

 

Вот получилось что-то вроде этого

НПс заспавнил, дальше в

way_l01_escape.ltx

написал:

[top_top]
points = p0
p0:name = wp00|a=assault
p0:flags = 0x800
p0:position = 4.86052131652832,0.630123019218445,294.923675537109
p0:game_vertex_id = 186
p0:level_vertex_id = 281920

[see_see]
points = p0
p0:name = wp00
p0:flags = 0x800
p0:position = 4.86052131652832,0.630123019218445,294.923675537109
p0:game_vertex_id = 186
p0:level_vertex_id = 281920

 

ну и в логике:

 [logic]
active = remark
combat_ignore = combat_ignore

[remark]
anim = ward
combat_ignore_cond = always
no_move = true
target = actor
meet = no_meet
on_info = {+infos_1} walker@proxod

[walker@proxod]
on_actor_dist_le = 1
path_walk = top_top
path_look = see_ee

 

 

, но доделать не смог...=(

Помогите.

87728-stalker.gif

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


Ссылка на сообщение
(изменено)

Darien

ах вот оно что=)

я про вот это как раз и не понял...

..pos_mes.. .. .. =)

а 1 , это я уже тут на форуме так отредактировал...=)

Изменено пользователем ФеНиКс
87728-stalker.gif

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


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

Как будет выглядеть функция удаления опред. ствола и всех патронов опред. класса?

 

87728-stalker.gif

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


Ссылка на сообщение
(изменено)

как будет выглядеть функция удаления опред. кол-ва предметов с условием если их больше чем н-ое кол-во, то удаляем, но оставляем один предмет. ...

----------------

и всё же как удалить допустим 300 патронов?

Изменено пользователем ФеНиКс
87728-stalker.gif

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


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

TREWKO

По поводу фонарика....

Сделай таймер который запускается при использовании фонарика (включении выключении)...Отследить можно включение отключение?

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

87728-stalker.gif

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


Ссылка на сообщение
(изменено)

function dead_is_actor() --' на актор апдейте
  if db.actor and not db.actor:alive() and db.actor:dont_has_info("info_dox") then
    game.start_tutorial("x18_dream")
    db.actor:give_info_portion("info_dox")
  end
end

Почему не работает?

Тупо не работает и всё.

__________

И ещё вот такие вопросы.

Возможно сделать так чтобы при НПС с опр. предметом в руках он(НПС) убегал?

ведь существует паника у НПС как сделать это "чудо" через скрипт?

Изменено пользователем ФеНиКс
87728-stalker.gif

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


Ссылка на сообщение
(изменено)

По поводу кодовых замков как сделать код рандомным? т.е. код выбирался из таблицы и при выдачи поршня ГГ появлялся в виде сообщения.

А логика при этом должна выглядеть типа вот этого?

 

[logic]
active = ph_code

[ph_code]
code = 55551
on_code = nil %+sim_sim% 
code1 = 55552
on_code1 = nil %+sim_sim1% 
code2 = 55552
on_code2 = nil %+sim_sim2%

 

Скрипт:

local tabla = {
[1]="Код 55551", 
[2]="Код 55552", 
[3]="Код 55552"
}

local fs = false
function random_kod()
local pos = ""
if not fs then
pos = tabla[math.random(#tabla)] 
local news_text = "%c[255,255,1,1]Татар\\n+%c[255,1,255,1]"..pos.."%c[default]"
db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(249,893,83,47), 0, 2000)
fs = true 
end
if fs then
fs = false
end
end

 

все верно?

Изменено пользователем ФеНиКс
87728-stalker.gif

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


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

SkyLoader

tabla[math.random(#tabla)] -- то же самое...почти тоже самое. так что разницы нет.

87728-stalker.gif

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


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

Как сделать персональный Пда как в Sigerous Моде, скачать я не могу трафик не позволяет, но видел скриншоты этого ПДА, Не подскажите как такое в ТЧ сделать?

87728-stalker.gif

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


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

Возможно это обсуждалось, но я не нашёл.

по какой причине возникает этот лог:

LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:1196: bad argument #2 to 'format' (string expected, got nil)

87728-stalker.gif

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


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

Нашел способ избавится от требования убрать оружие при разговоре, но действует на всех поголовно.

87728-stalker.gif

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


Ссылка на сообщение
[zat_a1_actor_start_game_look]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 250.414016723633,18.2857513427734,528.658752441406
p0:game_vertex_id = 292
p0:level_vertex_id = 1395112


[zat_a1_actor_start_game_walk]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 258.208831787109,19.5830554962158,548.210571289063
p0:game_vertex_id = 292
p0:level_vertex_id = 1408873

87728-stalker.gif

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


Ссылка на сообщение
(изменено)

Zeek

вот рабочая ф-и я ей спавнел и монстров и НПСов.

function ka ()
alife():create("fracture_normal",vector():set(265.403,18.471,529.419),1420998,287)
end

Изменено пользователем Министр
87728-stalker.gif

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


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

Возможно как-то прописать логику машине не трогая нет пакеты? (чтобы можины было заспавнить элементарно через

alife():create(section,XYZ)

И добавка:

Возможно ли вывести на экран для каждого типа оружия свою рамку(где написано кол-во патронов и иконка коробки от них)

87728-stalker.gif

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


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

Можно ли сделать перебор "н"-ого кол-ва предметов. ну допустим их у нас 6 и все они разные.

Нам нужно сделать так: после троекратного(3 раза) использования любого из этих предметов повторное их использование блокируется на некоторое время.

Просто не знаю с чего начать... Подзабыл всё :blush:

87728-stalker.gif

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


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

self.object:set_callback(callback.inventory_info, self.info_callback, self)

 

Что значит выделенная строка?

Подчеркнутое я знаю это имя функции.

87728-stalker.gif

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


Ссылка на сообщение
(изменено)

С этим Понятно, теперь надо разобраться с этим...

 

В биндере прописал ко всем колбэкам:

self.object:set_callback(callback.use_object, self.stepen_prozorlivosti, self)

в отдельном файле:

function actor_binder:stepen_prozorlivosti(obj, who)
ogranichtel_zrachki.useobject(obj)
end

в файле:

ogranichtel_zrachki

local CntUseItem 
function useobject(obj)
local Item= {baton_b,conserva,vodka}
        if obj then 
if  Item[obj:section()] then
CntUseItem = CntUseItem +1
            if CntUseItem == 3 then
db.actor:give_info_portion("z1")
this.Timer_prof_32()
db.actor:drop_item(obj)
local tmpo = this.spawn_vs(obj:section())
news_manager.send_tip(db.actor,"Вы сыты",nil,nil,10000)
db.actor:transfer_item(obj,db.actor)
alife():release(tmpo)
                          end
  end
            end
end

local ono = false
local Timer_prof
function Timer_prof_32() --/ запуск таймера 
if not ono then
Timer_prof = time_global() + 1*70000
ono = true 
end
if ono and not Timer_prof then     
           ono = false
end
end

function Timer_prof_4() --/ вызывается из ':update' сталкер-биндера
if Timer_prof and Timer_prof < time_global() then --/ проверка текущего значения
Timer_prof = nil --/ выключаем таймер
db.actor:disable_info_portion("z1")
end
end


function spawn_vs(spawn_item,npc)
  if npc==nil then 
    npc=db.actor 
  end
  return alife():create(spawn_item, 
      npc:position(),
      npc:level_vertex_id(),  
      npc:game_vertex_id(),
      npc:id())
end

 

Функция просто не работает...

таймер само собой стоит на бинде, но до таймера дело не доходит... сообщение не выдается.

Изменено пользователем ФеНиКс
87728-stalker.gif

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


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

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

AMK-Team.ru

×
×
  • Создать...