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

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


Svoboда

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

(изменено)

Возможно ли заставить мутанта постоянно охотиться только за Гг??

Изменено пользователем ZeeK

Не соответствует. N6260

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


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

Я писал свой вопрос, но внятного ответа не получил(или не понял :huh: )

Как в такой логике в конце отпустить НПС в симуляцию?

[logic]

active = remark@start

 

[meet]

close_anim = nil

close_snd_hello = nil

close_snd_bye = nil

close_victim = actor

far_distance = 10

far_anim = ward

far_victim = actor

trade_enable = false

use = {!actor_enemy} true

allow_break = false

meet_on_talking = false

abuse = false

 

[remark@start]

anim = hello_wpn

target = story | actor

gather_items_enabled = false

help_wounded_enabled = false

corpse_detection_enabled = false

on_info = {+start_dialog_complete} remark@go_away

on_info2 = {=dist_to_actor_ge(25)} %+actor_running_out%

on_actor_dist_le = 5 | remark@wait

meet = no_meet

 

[remark@wait]

target = story | actor

gather_items_enabled = false

help_wounded_enabled = false

corpse_detection_enabled = false

on_info = {+start_dialog_complete} remark@go_away

on_info2 = {=dist_to_actor_ge(30)} %+actor_running_out%

meet = meet

 

 

 

[remark@go_away]

active = nil

 

Не соответствует. N6260

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


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

Здрасьте, народ. Собрал функцию облучения гг радиацией при порченном костюме, но как обычно с первого раза не заработало, а ошибок я что то не замечаю. Подскажите, плиз :rolleyes:

function check_outfit_condition()
    if db.actor:item_in_slot(7) ~= nil and db.actor:item_in_slot(7):section() == "scientific_outfit" and db.actor:item_in_slot(7):condition() <=0.80 and level.name()=="zaton" then --когда костюм можно чинить (состояние больше или равно 80%)
        db.actor.radiation = 0.05
        local news_text = "%c[255,160,160,160]".."Дягтерев:".."\\n".."%c[default]".."Внимание! Разгерметизация! Фильтры костюма не справляются!"
        local news_caption = game.translate_string("st_tip")
        local texture = "ui_inGame2_Hero"
        db.actor:give_game_news(news_caption, news_text, texture, 1000, 5000)
elseif not db.actor:item_in_slot(7):section() == "scientific_outfit" and level.name()=="zaton" then 
        db.actor.radiation = 0.1
        local news_text = "%c[255,160,160,160]".."Дягтерев:".."\\n".."%c[default]".."Пора умирать, упс..."
        local news_caption = game.translate_string("st_tip")
        local texture = "ui_inGame2_Hero"
        db.actor:give_game_news(news_caption, news_text, texture, 1000, 5000)
    end
end

 

 

Используй теги "Код" и "Спойлер". Cyclone

Не соответствует. N6260

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


Ссылка на сообщение
твой код будет рабоатать, если у тебя надет комбез "Сева" и ты находишься на Затоне, причём независимо от его состояния. Если в слоте вообще не будет комбеза

Shredder на это и было нацелено. То есть, написано верно будет, если заменить

 if db.actor:item_in_slot(7) ~= nil and db.actor:item_in_slot(7):section() == "scientific_outfit" and db.actor:item_in_slot(7):condition() <=0.80 and level.name()=="zaton"

на

 if db.actor:item_in_slot(7):section() == "scientific_outfit" and db.actor:item_in_slot(7):condition() <=0.80 and level.name()=="zaton"

??

 

 

 

Не соответствует. N6260

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


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

_Призрак_

Вы вызываете аж 3 раза движковую функцию. Которая тоже время требует на выполнение. Притом такой код как выше выглядит не красиво. Почему не написать так:

Ну может потому, что как понял, так и написал? Не все здесь имеют глубокие познания в программировании, чтобы понимать, как упрощенней записать функцию

 

Во-первых, ты в разделе "Школа ..." и тебе подсказали, так зачем оправдывать свои незнания/недопонимания?

Во-вторых, не нужно путать элементарные знания с "губокими", тебе подсказали простейшее, не требующее даже средних знаний.

--/Artos

Изменено пользователем Artos

Не соответствует. N6260

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


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

День добрый, комрады. 
Ковыряю ЧН, смотрю схему ограбления на блокпостах на Свалке. Там в sr.robbery вызывается схема с изъятием всего инвентаря у Гг через     db.actor:inventory_for_each(get_actor_inv)

Возникает вопрос: нельзя сделать изъятие по классу снаряжения, чтобы изымали автомат\пистолет\броню и т.д.?

Не соответствует. N6260

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


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

Kirgudu

Закомментировано после патча 1.5.03, я же хочу вернуть оригинальную схему с доработками.

Сейчас остановился, на том, что изменил схему, чтобы она не изымала конкретные виды объектов через

 local function transfer_object_item(item)
        if item:section() ~= "wpn_binoc" and item:section() ~= "wpn_knife" and item:section() ~= "device_torch" and item:section() ~= "wpn_g36" then

        db.actor:transfer_item(item, inv_box_1) 

Но не могу придумать как сделать, чтобы вместо item:section() ~= "wpn_g36"  и т.д. вид оружия брался из таблицы, что то типо item:section() ~= "wpn_table", чтобы не увеличивать размеры кода. Никто не подскажет код?

Не соответствует. N6260

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


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

Из огня да в полымя, с твоим кодом вылетает с такой аргументацией:

xr_logic: can't call sr_robbery.set_scheme()
Arguments     : LUA error: ....А.Л.К.Е.Р. - Чистое Небо\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil)
 
Сам я сделал в стиле совета Jurok, но тоже столкнулся с проблемами:
local table = {
                                        "wpn_colt1911_up2",
                                        "wpn_g36",
                                        }
 
for k,v in pairs(table) do
        if item:section() ~= v then

С таким кодом не изымается у ГГ объект из таблицы, если он только там один прописан. Если же их 2 и более, то изымается все.

Изменено пользователем ZeeK

Не соответствует. N6260

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


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

Вечер добрый. Еще раз прошу помощи с sr_robbery для ЧН: никак не могу создать таблицу, чтобы объекты проще было вносить, пытался разными способами, но почему то и не вылетает и не срабатывает, если в таблице более одного объекта. Начал уже тупо копировать-вставить по одному объекту в основную функцию в стиле

 

local function transfer_object_item(item)

if item:section() ~= "wpn_beretta" and

item:section() ~= "wpn_colt1911" and
item:section() ~= "wpn_desert_eagle" and
item:section() ~= "wpn_fort" and
item:section() ~= "wpn_hpsa" and
item:section() ~= "wpn_pb" and
item:section() ~= "wpn_pm" and
item:section() ~= "wpn_walther" and
item:section() ~= "novice_outfit" and
item:section() ~= "bandit_outfit" and
item:section() ~= "specops_outfit" and
item:section() ~= "military_outfit" and
item:section() ~= "stalker_outfit" and
item:section() ~= "scientific_outfit" and
item:section() ~= "exo_outfit" and
item:section() ~= "svoboda_light_outfit" and
item:section() ~= "svoboda_heavy_outfit" and
item:section() ~= "svoboda_exo_outfit" and
item:section() ~= "cs_light_outfit" and
item:section() ~= "cs_heavy_outfit" and
item:section() ~= "dolg_outfit" and
item:section() ~= "dolg_heavy_outfit" and
item:section() ~= "wpn_g36" then
db.actor:transfer_item(item, inv_box_1)
end
end
inv_box_1 = level_object_by_sid (718)
db.actor:inventory_for_each(transfer_object_item)

 

 

Но так получится огромная функция, да и работы прибавится. Вот также ссылка на Ядиск с файлом - https://yadi.sk/d/3VlWC2cGpwFud - м.б. кому то будет интересно изучить текущее состояние.

Изменено пользователем ZeeK

Не соответствует. N6260

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


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

 

 

повторный спавн (переход в онлайн) НПС происходит не в прописанной точке path = aes2_osoznanie_walk_particle как это было при первом спавне, а в точке из которой он ушел в оффлайн

 

Что мешает создать для каждого телепорта по индивидуальному НПС и подменять их по очереди?


 

 

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

 

Раз ты собираешься делать потом спавн из скрипта, то сделай, что при заходе в рестриктор дается инфопоршень, а в скрипте при получении поршня спавнится НПС в координатах достаточных, чтобы ГГ мог увидеть этот спавн перед собой"

Не соответствует. N6260

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


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

Могу только предполагать: поскольку пути path_walk имеют контрольные точки, по которым следует нпс, например

[bloodsucker_02_way_1]

points = p0,p1
p0:name = wp00
p0:position = 98.0355453491211,0.780927002429962,216.506912231445
p0:game_vertex_id = 54232
p0:level_vertex_id = -1
p0:links = p1(1)

p1:name = wp01
p1:position = 93.8923492431641,1.38035702705383,225.457122802734
p1:game_vertex_id = 90
p1:level_vertex_id = 191120



То нпс пока не вернется на первую точку т.к. она уже пройдена и он уже стоит на второй и должен закончить ее. По крайней мере сколько я в ЧН\ЗП не убегал\возвращался к нпс они никогда свою работу не начинали с начала, все время с той точки, где они ушли оффлайн.

Не соответствует. N6260

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


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

 А если так?:

 

 

Нет, загружается, но во время диалога вылет, причем такой, который в поиске гугл по сталкеру и не попадается "bad argument #2 to 'find' (string expected, got table)"

Изменено пользователем ZeeK

Не соответствует. N6260

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


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

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

AMK-Team.ru

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