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

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


Svoboда

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

(изменено)

кровоSTALKER а можешь по подробнее про тот способ который ты предложил геймдатовцу?

Я пробовал удалять и тут же спавнить через скрипт прямо во время игры (скрипт работает при определенных условия через биндер) но эт не выход ведь если играть с снимаемым прицелом то он не спавнить на калаше к примеру!

 

Тогда по другому вопрос поставлю если на этот нет ответа:

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

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

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


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

Stalk15 нет нет с этим мне все понятно, пробовал получилось (спасибо что откликнулся) я не знаю как заспавнитьь ак с снимаемым но одетым прцелом, вот что меня интересует!!!

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


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

кровоSTALKER я этот вопрос задаю не первый раз и все путают! Надо чтоб спавнился с снимаемым апгрейдом в руках у ГГ!!! У неписей это все ясно тут ничего сложного, но вот с ГГ!!!

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


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

кровоSTALKER я не восклицаю а уточняю этим что мне нужно! Спасибо спрошу!

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


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

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

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


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

malandrinus спасибо, понял, но вот еще вопрос правда я его уже задавал ... о веж!

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

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


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

кровоSTALKER а по подробнее о подмене скажи пожалуйста!

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


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

кровоSTALKER боольшое тебе спасибо за скрипт, подбросил ты мне идейку, а этот способ подмены к сожалению я знаю, и за счет него и хочу сделать! Похоже сменить файл конфига оружия во время игры ни как не получиться также как и визуал по настоящему, выход только этот способ RE спавна, буду пробовать, результаты выложу сюда (ну в отдельную тему) спасибо вам большое что откликнулись, много где искал но ответа ... но теперь получил!!!

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


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

Здравствуйте! Возник такой вопрос: вот я сделал свое окно, для ремонта, активируется при разговоре с Сидоровичем, и там кнопки, 1слот 2 слот и броня, и вот как сделать чтоб при нажатии на одну из кнопок появлялась иконка выбранного оружия или брони? Как прописать такую команду, скрипт?

Или если так не получиться то как можно в это новое окно вывести весь инвентарь?

 

Добавлено через 5 мин.:

malandrinus тож хочу внести свою копейку, мне всегда нравились скрипты, но почему то обычный спавн иногда тупо не срабатывает! Все проверю все правильно, пытаюсь заспавнить и нифига! Наверное просматриваю ошибку ...

 

Добавлено через 50 мин.:

У меня получилось сделать вывод, но через ж... путем условий и появления кнопок при выполнении этого условия, но как сделать по более так сказать приличней, мож есть такой метод ... или там еще ченить?

Строгое предупреждение от модератора n6260
За завуалируваную ругать следующий раз будет "адекватное наказание". Это я про твое "ж...".

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


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

В lua_help не нашел такого ...

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

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


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

Извините тупанул ... условия срабатывают и иконка появляется, но возможно ли както подругому, более проще вывести иконку?

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

--mag_list_prugina_tormoz

 

 

function hud()

level.start_stop_menu(hud_ui(get_hud()), true)

end

 

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

class "hud_ui" (CUIScriptWnd)

 

function hud_ui:__init(owner) super()

self.owner = owner

self:InitControls()

self:InitCallBacks()

end

 

function hud_ui:__finalize()

end

 

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

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

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

function hud_ui:InitControls()

self:Init(0,0,1024,768)

local hud = CScriptXmlInit()

hud:ParseFile("upgrade.xml")

hud:InitStatic("background", self)

self:Register(hud:Init3tButton("slot_1", self),"slot_1")

self:Register(hud:Init3tButton("slot_2", self),"slot_2")

self:Register(hud:Init3tButton("slot_3", self),"slot_3")

 

self:Register(hud:Init3tButton("mag_1", self),"mag_1")

self:Register(hud:Init3tButton("mag_2", self),"mag_2")

self:Register(hud:Init3tButton("mag_3", self),"mag_3")

 

self:Register(hud:Init3tButton("list_1", self),"list_1")

self:Register(hud:Init3tButton("list_2", self),"list_2")

self:Register(hud:Init3tButton("list_3", self),"list_3")

 

self:Register(hud:Init3tButton("prugina_1", self),"prugina_1")

self:Register(hud:Init3tButton("prugina_2", self),"prugina_2")

self:Register(hud:Init3tButton("prugina_3", self),"prugina_3")

 

self:Register(hud:Init3tButton("tormoz_1", self),"tormoz_1")

self:Register(hud:Init3tButton("tormoz_2", self),"tormoz_2")

self:Register(hud:Init3tButton("tormoz_3", self),"tormoz_3")

self:Register(hud:Init3tButton("quits", self),"quits")

end

 

 

function hud_ui:InitCallBacks()

self:AddCallback("slot_1", ui_events.BUTTON_CLICKED, self.slot_1, self)

self:AddCallback("slot_2", ui_events.BUTTON_CLICKED, self.slot_2, self)

--self:AddCallback("slot_3", ui_events.BUTTON_CLICKED, self.slot_3, self)

self:AddCallback("quits", ui_events.BUTTON_CLICKED, self.quits, self)

end

 

 

function hud_ui:slot_1()

level.start_stop_menu(hud_slot_1(get_hud()), true)

self:quits()

end

 

function hud_ui:slot_2()

level.start_stop_menu(hud_slot_2(get_hud()), true)

self:quits()

end

 

--[[function hud_ui:slot_3()

level.start_stop_menu(hud_slot_3(get_hud()), true)

self:quits()

end]]

 

function hud_ui:quits()

self:GetHolder():start_stop_menu(self,true)

end

 

 

 

--Окно

--для

--апгрейда

--оружия в

--1 слоте

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

class "hud_slot_1" (CUIScriptWnd)

 

function hud_slot_1:__init(owner) super()

self.owner = owner

self:S1Controls()

self:S1CallBacks()

end

 

function hud_ui:__finalize()

end

 

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

function hud_slot_1:S1Controls()

self:Init(0,0,1024,768)

local hud = CScriptXmlInit()

hud:ParseFile("upgrade.xml")

hud:InitStatic("background", self)

self:Register(hud:Init3tButton("slot_1", self),"slot_1")

self:Register(hud:Init3tButton("slot_2", self),"slot_2")

self:Register(hud:Init3tButton("slot_3", self),"slot_3")

 

 

self:Register(hud:Init3tButton("mag_1", self),"mag_1")

self:Register(hud:Init3tButton("mag_2", self),"mag_2")

self:Register(hud:Init3tButton("mag_3", self),"mag_3")

 

 

self:Register(hud:Init3tButton("list_1", self),"list_1")

self:Register(hud:Init3tButton("list_2", self),"list_2")

self:Register(hud:Init3tButton("list_3", self),"list_3")

 

 

self:Register(hud:Init3tButton("prugina_1", self),"prugina_1")

self:Register(hud:Init3tButton("prugina_2", self),"prugina_2")

self:Register(hud:Init3tButton("prugina_3", self),"prugina_3")

self:Register(hud:Init3tButton("quits", self),"quits")

 

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

local weapon = db.actor:item_in_slot(1)

if weapon ~= nil then

local wpn = weapon:section()

 

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

if

string.sub(wpn,1,7) == "wpn_pm_" then

self:Register(hud:Init3tButton("pm_",self),"pm_")

 

elseif

string.sub(wpn,1,7) == "wpn_pb_" then

self:Register(hud:Init3tButton("pb_",self),"pb_")

 

elseif

string.sub(wpn,1,12) == "wpn_beretta_" then

self:Register(hud:Init3tButton("beretta_",self),"beretta_")

 

elseif

string.sub(wpn,1,13) == "wpn_colt1911_" then

self:Register(hud:Init3tButton("colt1911_",self),"colt1911_")

 

 

elseif

string.sub(wpn,1,17) == "wpn_desert_eagle_" then

self:Register(hud:Init3tButton("desert_eagle_",self),"desert_eagle_")

 

 

elseif

string.sub(wpn,1,9) == "wpn_fort_" then

self:Register(hud:Init3tButton("fort_",self),"fort_")

 

 

elseif

string.sub(wpn,1,9) == "wpn_hpsa_" then

self:Register(hud:Init3tButton("hpsa_",self),"hpsa_")

 

 

elseif

string.sub(wpn,1,11) == "wpn_sig220_" then

self:Register(hud:Init3tButton("sig220_",self),"sig220_")

 

elseif

string.sub(wpn,1,12) == "wpn_walther_" then

self:Register(hud:Init3tButton("walther_",self),"walther_")

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

else return end

else return end

end

 

 

function hud_slot_1:S1CallBacks()

self:AddCallback("slot_1", ui_events.BUTTON_CLICKED, self.slot_1, self)

self:AddCallback("slot_2", ui_events.BUTTON_CLICKED, self.slot_2, self)

--self:AddCallback("slot_3", ui_events.BUTTON_CLICKED, self.slot_3, self)

self:AddCallback("quits", ui_events.BUTTON_CLICKED, self.quits, self)

 

end

 

function hud_slot_1:slot_1()

level.start_stop_menu(hud_slot_1(get_hud()), true)

self:quits()

end

 

function hud_slot_1:slot_2()

level.start_stop_menu(hud_slot_2(get_hud()), true)

self:quits()

end

 

--[[function hud_slot_1:slot_3()

level.start_stop_menu(hud_slot_3(get_hud()), true)

self:quits()

end]]

 

function hud_slot_1:quits()

self:GetHolder():start_stop_menu(self,true)

end

 

 

 

 

 

--Окно

--для

--апгрейда

--оружия в

--2 слоте

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

class "hud_slot_2" (CUIScriptWnd)

 

function hud_slot_2:__init(owner) super()

self.owner = owner

self:S2Controls()

self:S2CallBacks()

end

 

function hud_ui:__finalize()

end

 

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

function hud_slot_2:S2Controls()

self:Init(0,0,1024,768)

local hud = CScriptXmlInit()

hud:ParseFile("upgrade.xml")

hud:InitStatic("background", self)

self:Register(hud:Init3tButton("slot_1", self),"slot_1")

self:Register(hud:Init3tButton("slot_2", self),"slot_2")

self:Register(hud:Init3tButton("slot_3", self),"slot_3")

 

 

self:Register(hud:Init3tButton("mag_1", self),"mag_1")

self:Register(hud:Init3tButton("mag_2", self),"mag_2")

self:Register(hud:Init3tButton("mag_3", self),"mag_3")

 

 

self:Register(hud:Init3tButton("list_1", self),"list_1")

self:Register(hud:Init3tButton("list_2", self),"list_2")

self:Register(hud:Init3tButton("list_3", self),"list_3")

 

 

self:Register(hud:Init3tButton("prugina_1", self),"prugina_1")

self:Register(hud:Init3tButton("prugina_2", self),"prugina_2")

self:Register(hud:Init3tButton("prugina_3", self),"prugina_3")

 

 

self:Register(hud:Init3tButton("tormoz_1", self),"tormoz_1")

self:Register(hud:Init3tButton("tormoz_2", self),"tormoz_2")

self:Register(hud:Init3tButton("tormoz_3", self),"tormoz_3")

self:Register(hud:Init3tButton("quits", self),"quits")

 

 

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

local weapon = db.actor:item_in_slot(2)

if weapon ~= nil then

local wpn = weapon:section()

 

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

 

if string.sub(wpn,1,11) == "wpn_abakan_" then

self:Register(hud:Init3tButton("abakan_", self),"abakan_")

 

elseif

string.sub(wpn,1,9) == "wpn_ak74_" then

self:Register(hud:Init3tButton("ak74_",self),"ak74_")

 

elseif

string.sub(wpn,1,10) == "wpn_ak74u_" then

self:Register(hud:Init3tButton("ak74u_",self),"ak74u_")

 

elseif

string.sub(wpn,1,9) == "wpn_bm16_" then

self:Register(hud:Init3tButton("bm16_",self),"bm16_")

 

elseif

string.sub(wpn,1,11) == "wpn_fn2000_" then

self:Register(hud:Init3tButton("fn2000_",self),"fn2000_")

 

elseif

string.sub(wpn,1,8) == "wpn_g36_" then

self:Register(hud:Init3tButton("g36_",self),"g36_")

 

elseif

string.sub(wpn,1,10) == "wpn_lr300_" then

self:Register(hud:Init3tButton("lr300_",self),"lr300_")

 

elseif

string.sub(wpn,1,10) == "wpn_groza_" then

self:Register(hud:Init3tButton("groza_",self),"groza_")

 

elseif

string.sub(wpn,1,11) == "wpn_sig550_" then

self:Register(hud:Init3tButton("sig550_",self),"sig550_")

 

elseif

string.sub(wpn,1,20) == "wpn_wincheaster1300_" then

self:Register(hud:Init3tButton("wincheaster1300_",self),"wincheaster1300_")

 

elseif

string.sub(wpn,1,8) == "wpn_svd_" then

self:Register(hud:Init3tButton("svd_",self),"svd_")

 

elseif

string.sub(wpn,1,8) == "wpn_svu_" then

self:Register(hud:Init3tButton("svu_",self),"svu_")

 

 

elseif

string.sub(wpn,1,10) == "wpn_mac10_" then

self:Register(hud:Init3tButton("mac10_",self),"mac10_")

 

elseif

string.sub(wpn,1,13) == "wpn_vintorez_" then

self:Register(hud:Init3tButton("vintorez_",self),"vintorez_")

 

elseif

string.sub(wpn,1,8) == "wpn_val_" then

self:Register(hud:Init3tButton("val_",self),"val_")

 

elseif

string.sub(wpn,1,10) == "wpn_spas12_" then

self:Register(hud:Init3tButton("spas12_",self),"spas12_")

 

elseif

string.sub(wpn,1,8) == "wpn_l85_" then

self:Register(hud:Init3tButton("l85_",self),"l85_")

 

elseif

string.sub(wpn,1,10) == "wpn_toz34_" then

self:Register(hud:Init3tButton("toz34_",self),"toz34_")

 

elseif

string.sub(wpn,1,8) == "wpn_mp5_" then

self:Register(hud:Init3tButton("mp5_",self),"mp5_")

 

elseif

string.sub(wpn,1,9) == "wpn_rpg7_" then

self:Register(hud:Init3tButton("rpg7_",self),"rpg7_")

 

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

else return end

else return end

end

 

 

function hud_slot_2:S2CallBacks()

self:AddCallback("slot_1", ui_events.BUTTON_CLICKED, self.slot_1, self)

self:AddCallback("slot_2", ui_events.BUTTON_CLICKED, self.slot_2, self)

--self:AddCallback("slot_3", ui_events.BUTTON_CLICKED, self.slot_3, self)

self:AddCallback("quits", ui_events.BUTTON_CLICKED, self.quits, self)

 

end

 

 

function hud_slot_2:slot_1()

level.start_stop_menu(hud_slot_1(get_hud()), true)

self:quits()

end

 

function hud_slot_2:slot_2()

level.start_stop_menu(hud_slot_2(get_hud()), true)

self:quits()

end

 

--[[function hud_slot_2:slot_3()

level.start_stop_menu(hud_slot_3(get_hud()), true)

self:quits()

end]]

 

function hud_slot_2:quits()

self:GetHolder():start_stop_menu(self,true)

end

 

 

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

Извините если кому чем помешал ... просто эта проблема меня уже неделю мучает ... вернее я ее и она меня ...

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

Вот еще вопрос назрел вот это совмещение строк:

"wpn_".."mag_1"

ну это я так к примеру написал, но можно ли сделать удаление символа?

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

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


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

Мужики выручайте застрял по полной! Проблема такова, я сделал смарт-террейн по статье на инсайде, вот что у меня получаеться в коде:

[logic@esc_bandits_smart_terrain_bandit1_walker]

active = walker@esc_bandits_smart_terrain_bandit1

 

[walker@esc_bandits_smart_terrain_bandit1]

path_walk = bandit1_walk

danger = danger_condition@esc_bandits_smart_terrain

def_state_moving1 = patrol

def_state_moving2 = patrol

def_state_moving3 = patrol

meet = no_meet

 

 

[logic@esc_bandits_smart_terrain_bandit1_kamp]

active = kamp@esc_bandits_smart_terrain_bandit1

 

[kamp@esc_bandits_smart_terrain_bandit1]

center_point = bandit_kamp

path_walk = bandit_kamp_task

 

 

[logic@esc_bandits_smart_terrain_bandit2_walker]

active = walker@esc_bandits_smart_terrain_bandit2

 

[walker@esc_bandits_smart_terrain_bandit2]

path_walk = bandit2_walk

path_look = bandit2_look

danger = danger_condition@esc_bandits_smart_terrain

 

 

[logic@esc_bandits_smart_terrain_bandit2_sleeper]

active = sleeper@esc_bandits_smart_terrain_bandit2

 

[sleeper@esc_bandits_smart_terrain_bandit2]

path_main = bandit2_sleep

wakeable = false

 

 

[logic@esc_bandits_smart_terrain_bandit3_walker]

active = walker@esc_bandits_smart_terrain_bandit3

 

[walker@esc_bandits_smart_terrain_bandit3]

path_walk = bandit3_walk

path_look = bandit3_look

 

[danger_condition@esc_bandits_smart_terrain]

ignore_distance_corpse = 0

ignore_distance = 0

 

 

[871]; сам смарт

; cse_abstract properties

section_name = smart_terrain

name = esc_bandits_smart_terrain

position = -179.694000,-2.288012,-53.680004

direction = 0.062321275472641,0.00316426996141672,0.0140644172206521

 

; cse_alife_object properties

game_vertex_id = 68

distance = 4.19999980926514

level_vertex_id = 70925

object_flags = 0xffffffbe

custom_data = <<END

[smart_terrain]

type = esc_bandits_smart_terrain

capacity = 3

squad = 1

groups = 5

respawn = esc_respawn_inventory_box_0000

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 4.5480751991272

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

 

 

[872];НПСы для смарта

; cse_abstract properties

section_name = stalker

name = esc_kancler

position = -179.694000,-2.288012,-53.680004

direction = 0,0,0

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = esc_senya

 

; cse_alife_object properties

game_vertex_id = 68

distance = 0

level_vertex_id = 70925

object_flags = 0xffffffbf

custom_data = <<END

[smart_terrains]

esc_bandits_smart_terrain = true

END

story_id = 10020

 

; cse_visual properties

visual_name = actors\soldier\soldier_beret_1

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 1

g_group = 5

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = -179.694000,-2.288012,-53.680004

upd:o_model = 0

upd:o_torso = 0.0280130300670862,0,0.999607563018799

upd:g_team = 0

upd:g_squad = 1

upd:g_group = 5

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 1,2,2,1,2

predicate4 = 0,1,1,1

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

[873]

; cse_abstract properties

section_name = stalker

name = esc_kancler

position = -179.694000,-2.288012,-53.680004

direction = 0,0,0

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = esc_senya

 

; cse_alife_object properties

game_vertex_id = 68

distance = 0

level_vertex_id = 70925

object_flags = 0xffffffbf

custom_data = <<END

 

[smart_terrains]

esc_bandits_smart_terrain = true

END

story_id = 10021

 

 

; cse_visual properties

visual_name = actors\soldier\soldier_beret_1

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 1

g_group = 5

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = -179.694000,-2.288012,-53.680004

upd:o_model = 0

upd:o_torso = 0.0280130300670862,0,0.999607563018799

upd:g_team = 0

upd:g_squad = 1

upd:g_group = 5

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 1,2,2,1,2

predicate4 = 0,1,1,1

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

 

[874]

; cse_abstract properties

section_name = stalker

name = esc_kancler

position = -179.694000,-2.288012,-53.680004

direction = 0,0,0

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = esc_senya

 

; cse_alife_object properties

game_vertex_id = 68

distance = 0

level_vertex_id = 70925

object_flags = 0xffffffbf

custom_data = <<END

 

[smart_terrains]

esc_bandits_smart_terrain = true

END

story_id = 10022

 

 

; cse_visual properties

visual_name = actors\soldier\soldier_beret_1

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 1

g_group = 5

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = -179.694000,-2.288012,-53.680004

upd:o_model = 0

upd:o_torso = 0.0280130300670862,0,0.999607563018799

upd:g_team = 0

upd:g_squad = 1

upd:g_group = 5

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 1,2,2,1,2

predicate4 = 0,1,1,1

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

 

 

[bandit1_walk]

points = p0,p1

p0:name = name00

p0:position = -175.667084,-4.136031,-47.569859

p0:game_vertex_id = 71

p0:level_vertex_id = 74841

p0:links = p1(1)

 

p1:name = name01

p1:position = -168.147858,-4.774074,-45.499973

p1:game_vertex_id = 68

p1:level_vertex_id = 65072

p1:links = p0(1)

 

 

 

[bandit_kamp]

points = p0

p0:name = name00

p0:position = -179.694000,-2.288012,-53.680004

p0:game_vertex_id = 68

p0:level_vertex_id = 70925

 

 

 

[bandit_kamp_task]

points = p0

p0:name = name00

p0:position = -175.667084,-4.136031,-47.569859

p0:game_vertex_id = 71

p0:level_vertex_id = 74841

 

 

 

[bandit2_walk]

points = p0,p1

p0:name = name00

p0:position = -175.667084,-4.136031,-47.569859

p0:game_vertex_id = 71

p0:level_vertex_id = 74841

p0:links = p1(1)

 

p1:name = name01

p1:position = -180.488449,-1.720561,-3-62.376045

p1:game_vertex_id = 68

p1:level_vertex_id = 70256

p1:links = p0(1)

 

 

[bandit2_look]

points = p0

p0:name = name00

p0:position = -179.694000,-2.288012,-53.680004

p0:game_vertex_id = 68

p0:level_vertex_id = 70925

 

 

[bandit2_sleep]

points = p0

p0:name = name00

p0:position = -180.488449,-1.720561,-3-62.376045

p0:game_vertex_id = 68

p0:level_vertex_id = 70256

 

[bandit3_walk]

points = p0,p1

p0:name = name00

p0:position = -180.488449,-1.720561,-3-62.376045

p0:game_vertex_id = 68

p0:level_vertex_id = 70256

p0:links = p1(1)

 

p1:name = name01

p1:position = -175.667084,-4.136031,-47.569859

p1:game_vertex_id = 71

p1:level_vertex_id = 74841

p1:links = p0(1)

 

 

[bandit3_look]

points = p0

p0:name = name00

p0:position = -179.694000,-2.288012,-53.680004

p0:game_vertex_id = 68

p0:level_vertex_id = 70925

 

 

 

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

...

if type == "esc_bandits_smart_terrain" then

t = {section = "logic@esc_bandits_smart_terrain_bandit1_walker",

idle = 0,

timeout = 0,

prior = 100,

state = {0},

squad = squad,

group = groups[1],

position_threshold = 100,

online = true,

in_rest = "",

out_rest = ""}

table.insert(sj, t)

 

t = {section = "logic@esc_bandits_smart_terrain_bandit1_kamp",

idle = 0, timeout = 0, prior = 100, state = {1},squad = squad,

group = groups[1], position_threshold = 100, online = true, in_rest = "",

out_rest = ""}

table.insert(sj, t)

 

 

t = {section = "logic@esc_bandits_smart_terrain_bandit2_walker",

idle = 0, prior = 5, state = {0}, squad = squad, group = groups[1],

in_rest = "", out_rest = ""}

table.insert(sj, t)

 

 

t = {section = "logic@esc_bandits_smart_terrain_bandit2_sleeper",

idle = 0, prior = 5, state = {1}, squad = squad, group = groups[1],

in_rest = "", out_rest = ""}

table.insert(sj, t)

 

 

t = {section = "logic@esc_bandits_smart_terrain_bandit3_walker",

idle = 0, prior = 5, state = {0, 1}, squad = squad, group = groups[1],

in_rest = "", out_rest = ""}

table.insert(sj, t)

end

...

...

function load_states(gname, type)

...

 

if type == "esc_bandits_smart_terrain" then

return function(gulag)

if not db.actor then

return gulag.state

end

if level.get_time_hours() >= 5 and level.get_time_hours() <= 22 then

return 0 -- переключает всех мутантов/нпс на дневную работу

else

return 1 -- ереключает всех мутантов/нпс на ночную работу

end

end

end

 

...

...

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)

 

 

if gulag_type == "esc_bandits_smart_terrain" then

return npc_community == "dolg"

end

...

 

 

 

 

 

И НПС спавняться прям на месте смарта и стоят а потом уходят в сторону лагеря новичков и вылет с логм:

 

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: c:\s.t.a.l.k.e.r\gamedata\scripts\state_mgr.script:145: C stack overflow

 

 

 

 

Я понял что эта ошибка значит переполнение стека в скрипте (указанном) на 145 строке, как я понял подробнее это НПС переходят в смарт и не могут найти там работу либо смарт принимает их но число выше указанного (кол-ва людей)! И не могут они никак принять это смарт либо он их, помогите пожалуйста разобраться мне с этой проблемой!

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

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


Ссылка на сообщение
Kolmogor спасибо конечно, но я уж разобрался ... тупанул и задавал обычные вейпоинты, указывая поинты путей ... а надо было имя_смарта..поинт! А долговцев я прописал в комьюнити профилей созданных НПС!

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


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

malandrinus как сделать чтоб он не удалялся это я понял как, но как добавить свои строчки в контекстное меню (правая кнопка мыши) к примеру строчку "сделать" и при нажатии на нее выполнялся мой скрипт:

upgr_1.script

Или как назначить на использование предмета свой скрипт?

Заранее спасибо!

 

Добавлено через 2 мин.:

Scarabay да дело не в юзабельности предмета, а использовании своего скрипта при использовании этого предмета! Все в чем вся проблема, думал думал и никак не могу найти где это прописать!

 

И во еще вопрос: как можно через скрипт определить что игра началась и лока загружена?

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

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


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

Garry_Galler спасибо! Но вот вопрос к твоему ответу: как я понял это идет проверка на калбэк юзанья?

db.actor:set_callback(callback.use_object,         this.OnUseActorObject)

И вот:

function OnUseObject(obj, who)

Аргументы, следуя логическим размышлениям означают obj - юзенный объект, who - кто (но кто это?)?

Извините за тупые вопросы но меня это интересует!

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

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


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

Мужики возник вопрос: как отследить последний воспроизведенный НПСом звук? Я конечно понимаю что это все происходит в xr_sound.script в функции:

 

function play_sound(npc, themes, timeout)
--// а именно на строке:
--// для входных
npc:play_sound(snd.into_id, 1, 0, 1, 0, db.sound[npc_id].last_snd[snd.into_id]+1)

--// для рандомных
npc:play_sound(snd.rnd_id, timeout+1, timeout, 1, 0, s)
...

 

Но само воспроизведение звука немного не ясно ... тут испоьзуеться вроде такой метод:

    function play_sound(number, number, number, number, number, number);

И все агрументы являються числами, и не могу понять что эти числа занчат, кто знает помогите пожалуйста!

 

Еще пробовал просто вместо npc ставить db.actor либо переопределял ГГ как объект но все-равно не хочет воспроизводить звук возле ГГ. НПС проверял так:

if type(npc) == 'number' then
news_manager.send_tip(db.actor,"НПС = числу",0,"project_sip",10000)
elseif type(npc) == 'table' then
news_manager.send_tip(db.actor,"НПС = таблице",0,"project_sip",10000)
elseif type(npc) == 'string' then
news_manager.send_tip(db.actor,"НПС = строке",0,"project_sip",10000)
else
news_manager.send_tip(db.actor,"НПС = чему-то другому",0,"project_sip",10000)
end

Ставил сразу после воспроизведения звука. Выводит: "НПС = чему-то другому". Также копался в sound_theme.script но так и не нашел как формируеться название звука. Надеюсь на вашу помощь :)

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


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

bogdan.dm, на счет выбросов не знаю, а вот про спавн рандомных артов могу подсказать, тебе нужен к примеру такой скрипт:

 

function random_spawn()
local tab_art = {} -- сюда запишешь все секции артефактов, отсюда возьмешь artefacts.ltx
local sect_art = tab_art[math.random(1,#tab_art)]
alife():create(sect_art, вертексы и координаты сам пропиши)
end

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


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

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

hud:InitSpinText("list", self)

И правда он инициализирует маленькую фигню со стрелками, но текста внутри нее нету, а как сделать внутри нее текст и растянуть ее?

Пробовал так:

hud:InitSpinText("list", self):SetTextST("Модернизация оружия")

Вылетает и пишет что метод не применим ... Заранее спасибо!

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


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

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

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


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

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

AMK-Team.ru

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