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

[SoC] Ковыряемся в файлах


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

Перевел две группы НПС на созданные гулаги, но где-то накосячил, т.к. все они просто стоят на месте. Кто разбирается, посмотрите, может я чего и не увидел (мобы из гулагов временно вырезаны, работают нормально):

 

local t = {}



function load_job(sj, gname, type, squad, groups)

-- Группа Алекса

if type == "generators_alex_squad" then
t = { section = "logic@generators_alex_squad_alex",
idle = 0,
prior = 1, state = {0},
squad = squad,
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_alex"
end
}
table.insert(sj, t)
t = { section = "logic@generators_alex_squad_werewolf",
idle = 0,
prior = 1, state = {0},
squad = squad,
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_werewolf"
end
}
table.insert(sj, t)
t = { section = "logic@generators_alex_squad_taurus",
idle = 0,
prior = 2, state = {0},
squad = squad,
online = true,
in_rest = "", out_rest = "generators_monolith_base",
redicate = function(obj_info)
return obj_info.name == "generators_taurus"
end
}
table.insert(sj, t)
end

-- База "Монолита"

if type == "generators_monolith_base" then
t = { section = "logic@generators_monolith_base_commander",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_commander"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_door_guard",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_door_guard"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_barrikada_guard_1",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_barrikada_guard_1"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_barrikada_guard_2",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_barrikada_guard_2"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_perimetr_guard_1",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_perimetr_guard_1"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_perimetr_guard_2",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_perimetr_guard_2"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_prisoner_guard",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_prisoner_guard"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_sniper_1",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_sniper_1"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_sniper_2",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_sniper_2"
end
}
table.insert(sj, t)
t = { section = "logic@generators_monolith_base_sniper_3",
idle = 0,
prior = 1, state = {0},
online = true,
in_rest = "", out_rest = "",
redicate = function(obj_info)
return obj_info.name == "generators_monolith_base_sniper_3"
end
}
table.insert(sj, t)
end

end

function load_states(gname, type)

if type == "generators_alex_squad" then
return function(gulag)
if has_alife_info("back_to_alex_squad") then
return 0
end
end
end

if type == "generators_monolith_base" then
return function(gulag)
return 0
end
end

end


--------------------------------------------------------------------------
-- Dynamic ltx
--------------------------------------------------------------------------
function load_ltx(gname, type)
return nil
end

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)

if gulag_type == "generators_alex_squad" then
return npc_community == "stalker"
end

if gulag_type == "generators_monolith_base" then
return npc_community == "monolith"
end

return false
end

function checkMonster(npc_community, gulag_type)
return false
end

 

 

[spoiler='gualg.ltx

;-- Группа Алекса:

 

; Алекс
[logic@generators_alex_squad_alex]
active = walker@alex_wait_actor
on_death = alex_squad_death

 

[walker@alex_wait_actor]
path_walk = generators_alex_squad_alex_walk_1
path_look = generators_alex_squad_alex_look_1
invulnerable = true
meet = meet@alex_meet_1
danger = danger_condition@alex
on_info  = {+save_taurus} walker@alex_after_start_task
on_info2 = {+save_taurus_alternative} walker@alex_after_start_alternative_task
on_info3 = {+taurus_dead} walker@alex_after_taurus_dead

 

[meet@alex_meet_1]
meet_state = 30| hello@talk_hello| 8| wait@wait| 3| ward@wait
meet_state_wpn = 30| hello@talk_hello| 8| wait@wait| 3| ward@wait
victim = 30| actor
victim_wpn = 30| actor
use = true
use_wpn = true
meet_dialog = {-save_taurus} gen_alex_start_dialog

 

[walker@alex_after_start_task]
path_walk = generators_alex_squad_alex_walk_1
path_look = generators_alex_squad_alex_look_2
invulnerable = true
meet = meet@alex_meet_2
danger = danger_condition@alex
on_info = {+back_to_alex_squad_complite} walker@alex_after_complite_task
on_info2 = {+taurus_dead} walker@alex_after_fail_task

 

[meet@alex_meet_2]
meet_state = 10| wait@wait| 3| ward@wait
meet_state_wpn = 10| wait@wait| 3| ward@wait
victim = 10| actor
victim_wpn = 10| actor
use = true
use_wpn = true
meet_dialog = {+save_taurus -back_to_alex_squad_complite} gen_alex_taurus_save_in_progress_dialog

 

[walker@alex_after_start_alternative_task]
path_walk = generators_alex_squad_alex_walk_1
path_look = generators_alex_squad_alex_look_1
invulnerable = true
meet = meet@alex_meet_3
danger = danger_condition@alex
on_info = {+back_to_alex_squad_complite} walker@alex_after_complite_task

 

[meet@alex_meet_3]
meet_state = 10| wait@wait| 3| ward@wait
meet_state_wpn = 10| wait@wait| 3| ward@wait
victim = 10| actor
victim_wpn = 10| actor
use = true
use_wpn = true
meet_dialog = {+save_taurus_alternative -back_to_alex_squad_complite} gen_alex_taurus_dead_hello_dialog

 

[walker@alex_after_complite_task]
path_walk = generators_alex_squad_alex_walk_1
path_look = generators_alex_squad_alex_look_2
invulnerable = true
meet = meet@alex_meet_4
danger = danger_condition@alex

 

[meet@alex_meet_4]
meet_state = 10| wait@wait| 3| ward@wait
meet_state_wpn = 10| wait@wait| 3| ward@wait
victim = 10| actor
victim_wpn = 10| actor
use = true
use_wpn = true
meet_dialog = {+back_to_alex_squad_complite -save_taurus_task_talk_to_alex_complite} gen_alex_taurus_safety_dialog, {+save_taurus_task_talk_to_alex_complite} gen_alex_hello_dialog

 

[walker@alex_after_fail_task]
path_walk = generators_alex_squad_alex_walk_1
path_look = generators_alex_squad_alex_look_2
invulnerable = true
meet = meet@alex_meet_5
danger = danger_condition@alex

 

[meet@alex_meet_5]
meet_state = 10| wait@wait| 3| ward@wait
meet_state_wpn = 10| wait@wait| 3| ward@wait
victim = 10| actor
victim_wpn = 10| actor
use = true
use_wpn = true
meet_dialog = {+taurus_dead +save_taurus -taurus_dead_talk_to_alex_complite} gen_alex_taurus_dead_dialog, {+taurus_dead_talk_to_alex_complite} gen_alex_taurus_dead_hello_dialog

 

[walker@alex_after_taurus_dead]
path_walk = generators_alex_squad_alex_walk_1
path_look = generators_alex_squad_alex_look_1
invulnerable = true
meet = meet@alex_meet_6
danger = danger_condition@alex

 

[meet@alex_meet_6]
meet_state = 10| wait@wait| 3| ward@wait
meet_state_wpn = 10| wait@wait| 3| ward@wait
victim = 10| actor
victim_wpn = 10| actor
use = true
use_wpn = true
meet_dialog = {+taurus_dead -save_taurus -taurus_dead_talk_to_alex_alternative_complite} gen_alex_taurus_dead_alternative_dialog, {+taurus_dead_talk_to_alex_alternative_complite} gen_alex_taurus_dead_hello_dialog

 

[danger_condition@alex]
ignore_distance            = 30
ignore_distance_grenade    = 30
ignore_distance_corpse     = 0
ignore_distance_sound      = 30
danger_inertion_time_hit   = 1

 

; Вервольф
[logic@generators_alex_squad_werewolf]
active = remark@werewolf_wounded
combat_ignore = combat_ignore@alex_squad
danger = danger_condition@werewolf
on_death = alex_squad_death

 

[remark@werewolf_wounded]
anim = wounded_heavy
combat_ignore_cond = always
meet = no_meet

 

[danger_condition@werewolf]
ignore_distance            = 30
ignore_distance_grenade    = 30
ignore_distance_corpse     = 0
ignore_distance_sound      = 30
danger_inertion_time_hit   = 1

 

; Таурус (пленный)
[logic@generators_alex_squad_taurus]
active = walker@monolith_base_taurus_prisoner
on_death = taurus_death
combat_ignore = combat_ignore@alex_squad

 

[walker@monolith_base_taurus_prisoner]
path_walk = generators_alex_squad_taurus_prisoner_walk
path_look = generators_alex_squad_taurus_prisoner_look
invulnerable = true
combat_ignore_cond = always
meet = no_meet
on_info = {+monolith_base_destroy} walker@monolith_base_taurus_need_help

 

[walker@monolith_base_taurus_need_help]
path_walk = generators_alex_squad_taurus_walk_1
path_look = generators_alex_squad_taurus_look_1
combat_ignore_cond = {!actor_enemy !fighting_actor}
meet = meet@taurus_meet_1
on_info = {+back_to_alex_squad} walker@taurus_back_to_alex_squad

 

[meet@taurus_meet_1]
meet_state = 10| hello@talk_hello| 8|wait
meet_state_wpn = 10| hello@talk_hello| 8|wait
victim = 10| actor
victim_wpn = 10| actor
use = true
use_wpn = true
meet_dialog = {+save_taurus} gen_taurus_save_dialog, {-save_taurus} gen_taurus_save_alternative_dialog

 

[walker@taurus_back_to_alex_squad]
path_walk = generators_alex_squad_taurus_walk_2
path_look = generators_alex_squad_taurus_look_2
combat_ignore_cond = {!actor_enemy !fighting_actor}
meet = no_meet
on_signal = arrive | walker@alex_squad_taurus_after_safety

 

[walker@alex_squad_taurus_after_safety]
path_walk = generators_alex_squad_taurus_walk_3
path_look = generators_alex_squad_taurus_look_2
meet = meet@taurus_meet_2
on_info = {+save_taurus_task_talk_to_taurus_complite} walker@alex_squad_taurus_after_complite_task

 

[meet@taurus_meet_2]
use = true
use_wpn = true
meet_dialog = {+back_to_alex_squad_complite +save_taurus} gen_taurus_after_save_dialog, {+back_to_alex_squad_complite +save_taurus_alternative} gen_taurus_after_save_alternative_dialog

 

[walker@alex_squad_taurus_after_complite_task]
path_walk = generators_alex_squad_taurus_walk_3
path_look = generators_alex_squad_taurus_look_2
meet = meet@taurus_meet_3

 

[meet@taurus_meet_3]
use = true
use_wpn = true
meet_dialog = {+save_taurus_task_talk_to_taurus_complite} gen_taurus_hello_dialog

[taurus_death]
on_info = %+taurus_dead +take_taurus_pda%

;--------------------------------------------
[combat_ignore@alex_squad]

 

[alex_squad_death]
on_info = %+alex_squad_dead%
;--------------------------------------------

 

;-- База "Монолита":

 

;-- Командир базы
[logic@generators_monolith_base_commander]
active = walker@generators_monolith_base_commader
on_death = death@generators_monolith_base_commader
combat_ignore = combat_ignore@generators_monolith_base

 

[walker@generators_monolith_base_commader]
path_walk = generators_monolith_base_commander_walk
path_look = generators_monolith_base_commander_look
no_retreat = true

 

[death@generators_monolith_base_commader]
on_info = %+monolith_base_commander_dead%

 

;-- Охранник у двери в лабораторию Х-8
[logic@generators_monolith_base_door_guard]
active = walker@generators_monolith_base_door_guard
on_death = death@generators_monolith_base_door_guard
combat_ignore = combat_ignore@generators_monolith_base

 

[walker@generators_monolith_base_door_guard]
path_walk = generators_monolith_base_door_guard_walk
path_look = generators_monolith_base_door_guard_look

 

[death@generators_monolith_base_door_guard]
on_info = %+monolith_base_door_guard_dead%

 

;-- Снайпер-1
[logic@generators_monolith_base_sniper_1]
active = camper@generators_monolith_base_sniper_1
on_combat = combat@generators_monolith_base_snipers
on_death = death@generators_monolith_base_sniper_1
combat_ignore = combat_ignore@generators_monolith_base

 

[camper@generators_monolith_base_sniper_1]
path_walk = generators_monolith_base_sniper_1_walk
path_look = generators_monolith_base_sniper_1_look
sniper = true

danger = danger_condition@generators_monolith_base_snipers

 

[death@generators_monolith_base_sniper_1]
on_info = %+monolith_base_sniper_1_dead%

 

;-- Снайпер-2
[logic@generators_monolith_base_sniper_2]
active = camper@generators_monolith_base_sniper_2
on_combat = combat@generators_monolith_base_snipers
on_death = death@generators_monolith_base_sniper_2
combat_ignore = combat_ignore@generators_monolith_base

 

[camper@generators_monolith_base_sniper_2]
path_walk = generators_monolith_base_sniper_2_walk
path_look = generators_monolith_base_sniper_2_look
sniper = true
danger = danger_condition@generators_monolith_base_snipers

 

[death@generators_monolith_base_sniper_2]
on_info = %+monolith_base_sniper_2_dead%

 

;-- Снайпер-3
[logic@generators_monolith_base_sniper_3]
active = camper@generators_monolith_base_sniper_3
on_combat = combat@generators_monolith_base_snipers
on_death = death@generators_monolith_base_sniper_3
combat_ignore = combat_ignore@generators_monolith_base

 

[camper@generators_monolith_base_sniper_3]
path_walk = generators_monolith_base_sniper_3_walk
path_look = generators_monolith_base_sniper_3_look
sniper = true
danger = danger_condition@generators_monolith_base_snipers

 

[death@generators_monolith_base_sniper_3]
on_info = %+monolith_base_sniper_3_dead%

 

;-- Охранник-1 у баррикад
[logic@generators_monolith_base_barrikada_guard_1]
active = walker@generators_monolith_base_barrikada_guard_1
on_death = death@generators_monolith_base_barrikada_guard_1
combat_ignore = combat_ignore@generators_monolith_base

 

[walker@generators_monolith_base_barrikada_guard_1]
path_walk = generators_monolith_base_barrikada_guard_1_walk
path_look = generators_monolith_base_barrikada_guard_1_look

 

[death@generators_monolith_base_barrikada_guard_1]
on_info = %+monolith_base_barrikada_guard_1_dead%

 

;-- Охранник-2 у баррикад
[logic@generators_monolith_base_barrikada_guard_2]
active = walker@generators_monolith_base_barrikada_guard_2
on_death = death@generators_monolith_base_barrikada_guard_2
combat_ignore = combat_ignore@generators_monolith_base

 

[walker@generators_monolith_base_barrikada_guard_2]
path_walk = generators_monolith_base_barrikada_guard_2_walk
path_look = generators_monolith_base_barrikada_guard_2_look

 

[death@generators_monolith_base_barrikada_guard_2]
on_info = %+monolith_base_barrikada_guard_2_dead%

 

;-- Охранник-1 внутреннего периметра базы
[logic@generators_monolith_base_perimetr_guard_1]
active = walker@generators_monolith_base_perimetr_guard_1
on_death = death@generators_monolith_base_perimetr_guard_1
combat_ignore = combat_ignore@generators_monolith_base

 

[walker@generators_monolith_base_perimetr_guard_1]
path_walk = generators_monolith_base_perimetr_guard_1_walk
path_look = generators_monolith_base_perimetr_guard_1_look

 

[death@generators_monolith_base_perimetr_guard_1]
on_info = %+monolith_base_perimetr_guard_1_dead%

 

;-- Охранник-2 внутреннего периметра базы
[logic@generators_monolith_base_perimetr_guard_2]
active = walker@generators_monolith_base_perimetr_guard_2
on_death = death@generators_monolith_base_perimetr_guard_2
combat_ignore = combat_ignore@generators_monolith_base

 

[walker@generators_monolith_base_perimetr_guard_2]
path_walk = generators_monolith_base_perimetr_guard_2_walk
path_look = generators_monolith_base_perimetr_guard_2_look

 

[death@generators_monolith_base_perimetr_guard_2]
on_info = %+monolith_base_perimetr_guard_2_dead%

 

;-- Охранник пленника
[logic@generators_monolith_base_prisoner_guard]
active = walker@generators_monolith_base_prisoner_guard
on_death = death@generators_monolith_base_prisoner_guard
combat_ignore = combat_ignore@generators_monolith_base

 

[walker@generators_monolith_base_prisoner_guard]
path_walk = generators_monolith_base_prisoner_guard_walk
path_look = generators_monolith_base_prisoner_guard_look

 

[death@generators_monolith_base_prisoner_guard]
on_info = %+monolith_base_prisoner_guard_dead%

;--------------------------------------------
[combat@generators_monolith_base_snipers]
combat_type = monolith

 

[danger_condition@generators_monolith_base_snipers]
danger_expiration_time = 60000
danger_inertion_time =  90000

 

[combat_ignore@generators_monolith_base]
combat_ignore_cond = {=check_fighting(10010)}

;--------------------------------------------

 

 

З.Ы. Если 1 НПС относящийся к одному гулагу принудительно должен находиться некоторое время на территории другого (играет роль пленного), ему нужно создавать отдельное место в этом гулаге, или он никуда не уйдет? При необходимости добавлю секции из all.spawn.

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

Ссылка на комментарий

 

 

Пиши так: use_sound = interface\inv_detach_addon

эффект тот-же - не воспроизводится звук. Похоже Вы напутали с use_sound, видимо в ТЧ этот параметр конфига не работает.


 

 

ему нужно создавать отдельное место в этом гулаге, или он никуда не уйдет?

Если в логике прописано сидеть и не рыпаться - не уйдет. И пофиг в каком гулаге ему это прописано...

Посмотри пример с Шустрым на АТП на Кордоне(оригинал).

Ссылка на комментарий
Похоже Вы напутали с use_sound, видимо в ТЧ этот параметр конфига не работает.

Уверен? Если я так говорю, значит я сам проверял.

 

Может путь надо указывать с папки sounds: sounds\use_item\antirad_pills. Просто делал давно, и точно не помню как надо писать путь до звука.

 

Вспомнил, видел такое в Хабар моде, давно было, сам пользовался, потом забыл со временем.

Изменено пользователем Anonim
Ссылка на комментарий

Ахмед, AndreySol

Я вопрос с привязкой звуков к использованию предметов решала так:

 

1. В папке gamedata\scripts создаешь новый скриптовый файл zvuki_items.script

local snd_obj

function use_sound_itemz(obj)

local sound_table = {

['bread'] = [[inventory\inv_food]],

['kolbasa'] = [[inventory\inv_food]],

['medkit'] = [[inventory\inv_medic]],

['energy_drink'] = [[inventory\inv_drinking]],

['bandage'] = [[inventory\inv_bandage]],

['matras'] = [[inventory\inv_sleeping]]}

local snd = sound_table[obj:section()]

if snd then

if snd_obj and snd_obj:playing() then snd_obj:stop() end

snd_obj = xr_sound.get_safe_sound_object(snd)

snd_obj:play_at_pos(db.actor, vector(), 0, sound_object.s2d)

end

 

Это основной скрипт, сюда можно по анологии добавлять любые предметы

2. В gamedata\scripts\bind_stalker дописываем

function actor_binder:use_object(obj)

zvuki_items.use_sound_itemz(obj)

end

3. Проверяем, чтобы в указанной папке звуков (gamedata\sounds\inventory) были нужные нам звуки.

 

Все, при неоднократном съедании предмета старый звук глушится и отыгрывается новый.

 

Кто автор метода, простите, не знаю.

Ссылка на комментарий

Lanta87. там ещё нужно дописать :

в функцию function actor_binder:net_destroy() :

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

в функцию actor_binder:reinit():

self.object:set_callback(callback.use_object, self.use_object, self)
Ссылка на комментарий

Привет всем,_у меня случился стопор на последних парах выхода мода._Не могу решить проблемку(((_Суть заключается в том, что я добавил в игру много артов,_и решил прописать их в аномалии,_получилось по 12 артов на аномалию,_ну получается, что я прописал их, чтобы выпадали из аномалии, но выпадают только первые 3 арта и все,_остальные ни в какую,_если убрать первые три и прописать другие, то появляются те, которыми заменил.роблема в том, что мне надо, чтобы выпадали все 12 в случайном порядке, а не только первые 3.

Изменено пользователем Kirgudu
Ссылка на комментарий

 

 

что мне надо чтобы выпадали все 12 в случайном порядке а не только первые 3

Нужно всем 12 артам выставить равные шансы. Только нужно помнить, что сумма всех шансов, не должна превышать единицу.

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

Вообще-то я белая и пушистая...

Ссылка на комментарий

Привет всем!

Столкнулся с проблемкой. Нужно сделать так, что при использовании предмета в инвентори он не пропадал сразу, а пропадал, скажем, после трех использований. Я так понял, что нужно организовать счетчик, и при каждом использовании увеличивать значение переменной на единицу, а потом спавнить предмет в рюкзак по новой, пока значение счетчика не станет равным трем. А вот как сохранить эту переменную, чтобы при сейв-лоаде ее значение не потерялось?

Сталкер - наше всё!

Ссылка на комментарий

Способов куча на самом деле. Просто смотреть эту тему + скриптование и справочник по функциям и классам. И выбирать, какой подходит.

Ссылка на комментарий

 

 

Нормальный способ один, написать в конфиге предмета

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


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

 

Dennis_Chikin

А можно примерчик, самый простенький, для ознакомления?

Сталкер - наше всё!

Ссылка на комментарий

Например, xr_logic.pstor_store(). Или в нетпакет. Или создать специальное хранилище через factory. Или, если предмет уникален - через infoportion.

Ссылка на комментарий

Появление предмета в инвентаре - это случаем не "function actor_binder:on_item_take (obj)" из bind_stalker.script?


 

 

Например, xr_logic.pstor_store(). Или в нетпакет.

То есть АМК-шные функции get_invbox_data и set_invbox_data надо пользовать? Или они работают только для инв. ящика?

Сталкер - наше всё!

Ссылка на комментарий

1. Да.

2. Формат нетпакета для каждого класса свой. Но это не значит, что данные нужно хранить именно в этом предмете.

 

И, да, pstor - это для онлайна. Нетпакет - преимущественно для офлайна (хотя можно и в онлайне).

Ссылка на комментарий

Повесил в бинд_сталкер вызов функции

function take_sigaret(pid)


if obj:section() = "имя_секции_предмета" then
-- что-то делаем
end
end

 

 

ловлю вылет. Наверно неправильно синтаксис пишу, но не знаю как правильно.

 

Ну и откуда здесь должен взяться obj ? А во-вторых, таки да, синтаксис. Идем на lua.org, берем компилятор, и проверяем им. Документация лежит там же. dc


Ну хоть вызов функции-то правильный?

ogsm_quests.take_sigaret(obj)

 


Вроде разобрался, но вот вопрос, правильно ли я сохраняю свою переменную?

function is_sigaret(npc, item)
local kolvo
local section = item:section()
if section == "sigaret" then
kolvo = 20
xr_logic.pstor_store(db.actor, kolvo, 20)
end
end

 

 

Просто с pstor ни разу не разбирался. Вылета нет, но как-то не по себе, не знаю, работает она или нет?

 

"но как-то не по себе" - и это - правильное ощущение. Разбираемся дальше. dc

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

Сталкер - наше всё!

Ссылка на комментарий

NiKi BoY,

в папке gamedata\config\text\rus выбираешь нужный файл с описаниями и непосредственно перед текстом вставляешь %c[нужный цвет]:

Медицинский набор, которым можно осуществлять лечение раненых товарищей. Может использоваться до трех раз.\n%c[255,0,255,0]Комплектация:\n%c[default]Набор "Юный портной"\nНабор "Пилим и строгаем"\nОбезболивающее (крепость не ниже 54 град.)\nБиблия.

 

 

Вот варианты цветов

%c[255,0,255,0] - зеленый шрифт

 

%c[255,255,128,128] - розовый

 

%c[255,227,114,12] - оранжевый

 

%c[255,255,1,1] - красный

 

%c[255,243,174,29] - желтый

 

%c[255,1,255,255] - бирюзово-голубой

 

%c[default] - основной белый, если дописываешь после опр. цвета

 

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

 

А конкретно по строке "потерян предмет", сейчас порылась поисковиком Notepad++  в папке с текстами, ничего подобного не нашла. Забавно, в игре-то используется.. Если найду, отпишусь))

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

 

 

string id="general_out_item", string id="general_in_item" в файле string_table_level_tips.xml
Там же и про деньги и прочее.
Изменено пользователем Korpus
Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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