Перейти к содержанию

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

 
 
51 минуту назад, vader_33 сказал:

Paradox27kms 

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


Дополнено 0 минут спустя

Paradox27kms и без game.translate_string

Я пока только понял так:

Спойлер

function ui_mm_mod:FillListOther()         
         local name
         local cost

         db.actor:iterate_inventory(function (tmp, item)
     local sect = item:section()
         if tbl[sect] then
             local name = game.translate_string(system_ini():r_string(sect, "inv_name"))
             local cost = r_string(sect, "cost"))
             self:AddItemToListOther(name, cost, sect)
         end                            
       end,obj)
end

и к тому же нужно зарегать запятую в списке а я хз как. Хочу чтобы список был реализован такими секциями например

АК-742у, 900 RU

ПМм, 500 RU

Гадюка-5, 700 RU

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Paradox27kms 

local inv_name = game.translate_string(system_ini():r_string(sect, "inv_name"))
local cost = system_ini():r_string(sect, "cost")
local name = inv_name..", "..cost
self:AddItemToListOther(name, cost, sect)

 


Дополнено 7 минуты спустя

Paradox27kms 

Спойлер

 

36 минут назад, Paradox27kms сказал:

 local name
  local cost

 

36 минут назад, Paradox27kms сказал:

  local name = game.translate_string(system_ini():r_string(sect, "inv_name"))
 local cost = r_string(sect, "cost"))

если один раз есть local что-то, второй раз не надо писать local, просто  name =.... Отдельно  local name обозначать в начале лучше только в случаях, когда несколько вариантов назначения name, в зависимости от условия. Если только одно условие назначения, и сразу же в этом условии происходит какое-то действие с этой переменной, то в начале функции  local name писать не нужно.

Либо так

function ui_mm_mod:FillListOther()         
         local name
         local cost

         db.actor:iterate_inventory(function (tmp, item)
     local sect = item:section()
         if tbl[sect] then
             name = game.translate_string(system_ini():r_string(sect, "inv_name"))
            cost = r_string(sect, "cost"))

             self:AddItemToListOther(name, cost, sect)
         end                            
       end,obj)
end

Либо так

function ui_mm_mod:FillListOther()         
         db.actor:iterate_inventory(function (tmp, item)
     local sect = item:section()
         if tbl[sect] then
             local name = game.translate_string(system_ini():r_string(sect, "inv_name"))
             local cost = r_string(sect, "cost"))
             self:AddItemToListOther(name, cost, sect)
         end                            
       end,obj)
end

 

Изменено пользователем vader_33
  • Аплодисменты 1

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 
8 часов назад, vader_33 сказал:

Paradox27kms 


local inv_name = game.translate_string(system_ini():r_string(sect, "inv_name"))
local cost = system_ini():r_string(sect, "cost")
local name = inv_name..", "..cost
self:AddItemToListOther(name, cost, sect)

 


Дополнено 7 минуты спустя

Paradox27kms 

  Скрыть контент

 

 

если один раз есть local что-то, второй раз не надо писать local, просто  name =.... Отдельно  local name обозначать в начале лучше только в случаях, когда несколько вариантов назначения name, в зависимости от условия. Если только одно условие назначения, и сразу же в этом условии происходит какое-то действие с этой переменной, то в начале функции  local name писать не нужно.

Либо так

function ui_mm_mod:FillListOther()         
         local name
         local cost

         db.actor:iterate_inventory(function (tmp, item)
     local sect = item:section()
         if tbl[sect] then
             name = game.translate_string(system_ini():r_string(sect, "inv_name"))
            cost = r_string(sect, "cost"))

             self:AddItemToListOther(name, cost, sect)
         end                            
       end,obj)
end

Либо так

function ui_mm_mod:FillListOther()         
         db.actor:iterate_inventory(function (tmp, item)
     local sect = item:section()
         if tbl[sect] then
             local name = game.translate_string(system_ini():r_string(sect, "inv_name"))
             local cost = r_string(sect, "cost"))
             self:AddItemToListOther(name, cost, sect)
         end                            
       end,obj)
end

 

Благодарю. Только в строке 

self:AddItemToListOther(name, cost, sect) - cost лишнее. И ещё не понятен момент с выдачей денег.

Спойлер

function ui_mm_mod:OnButton_list_other_clicked()
    if self.list_other:GetSize()==0 then return end

    local item = self.list_other:GetSelectedItem()     
         if item == nil then
            return
        end
     
    self.list_other:RemoveItem(item)
    local section = item.sect_item

    local obj = db.actor:object(section)
        if obj then
            local sobj = alife():object(obj:id())
            alife():release(sobj, true)
        end
end

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

Спойлер

function ui_mm_mod:OnButton_list_other_clicked()
    if self.list_other:GetSize()==0 then return end

    local item = self.list_other:GetSelectedItem()     
         if item == nil then
            return
        end
     
    self.list_other:RemoveItem(item)
    local section = item.sect_item

    local obj = db.actor:object("mp_wpn_pm")
        if obj then
            relocate_item_to_actor и.т.д
        end
end

 


Дополнено 34 минуты спустя
21 час назад, Contentic сказал:

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

В Повелителе Зоны есть вроде то что тебе нужно

Изменено пользователем Paradox27kms
  • Мастер! 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
Спойлер

function get_symbol_pos(str,num)
    if type(num) == "string" then
        num = string.byte(num)
    end
    for i = 1, #str do --перебираем строку
        if string.byte(str,i) == num then return i end
    end

return 0
end

 

  • Мастер! 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Paradox27kms 

local section = item.sect_item
local obj = db.actor:object(section)
	if obj then
		local sobj = alife():object(obj:id())
		local cost = system_ini():r_s32(section, "cost")
		--или local cost = tonumber(system_ini():r_string(section, "cost"))			
		alife():release(sobj, true)
		db.actor:give_money(cost)
	end

 

  • Аплодисменты 1

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 
12 минут назад, vader_33 сказал:

Paradox27kms 


local section = item.sect_item
local obj = db.actor:object(section)
	if obj then
		local sobj = alife():object(obj:id())
		local cost = system_ini():r_s32(section, "cost")
		--или local cost = tonumber(system_ini():r_string(section, "cost"))			
		alife():release(sobj, true)
		db.actor:give_money(cost)
	end

 

Благодарю) А можно сделать условие если не хватает у ГГ суммы на предмет то выполнялся скрипт, в моём случае вывод сообщения на экран (последнее я к счастью знаю как вывести :)) просто нужно выполнение скрипта 

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


Ссылка на сообщение
Поделиться на другие сайты
 

Paradox27kms if db.actor:money() < число then и дальше действие

  • Лайк 1

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

Да, я знаю что я нуб, но всё же: в каких файлах лежит иммунитет рандомных НПС? Перерыл creatures, на изменения в m_stalker.ltx игре пофигу, оружие из Сткопа как с двух пуль убивало, так и осталось. Хочу пулестойкость НПС повысить, и понижать урон в конфигах оружия очень не хочется. 



ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb,
Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате.

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


Ссылка на сообщение
Поделиться на другие сайты
 

AlNaz по-моему нужно менять это в неком файле с названием damage или damages. Плюс иммунитеты вшиты в скинах, это где-то в папке configs/models 

  • Спасибо 1

76561198152189716.png

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


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет! 

Есть три вопроса.

1. Что отвечает за дальность прорисовки мира? Как в атмосфере?

2. Какие текстуры отвечают за ЧАЭС на горизонте ( в небе типо )?

3. Что это за текстура призрак на фото?83984116_kordon_nedorabotka().thumb.jpg.2d5e08c80c79fb44d47534fd179dda0a.jpg


IMG-37f2f96c0f50da877397935e4895dd7a-V.j

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


Ссылка на сообщение
Поделиться на другие сайты
 
39 минут назад, TMM team сказал:

Какие текстуры отвечают за ЧАЭС на горизонте ( в небе типо )?

Это нарисовано на самом скай-боксе, которые разделены по часам. Для каждого скай-бокса, свой рисунок ЧАЭС и пр. того что отображается на горизонте. 

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


Ссылка на сообщение
Поделиться на другие сайты
 
1 минуту назад, Tolich сказал:

Это нарисовано на самом скай-боксе, которые разделены по часам. Для каждого скай-бокса, свой рисунок ЧАЭС и пр. того что отображается на горизонте. 

спасибо за ответ, буду искать

 

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

IMG-37f2f96c0f50da877397935e4895dd7a-V.j

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


Ссылка на сообщение
Поделиться на другие сайты
 
57 минут назад, TMM team сказал:

Что отвечает за дальность прорисовки мира? Как в атмосфере?

Папка gamedata\configs\environment\weathers\    там файлы пораметров погоды. По умолчанию смотрим af3_slight_  например af3_slight_clear_4 и т.д.  
Для каждого часа смотрим параметры far_plane и fog_distance

Дальность (fog_distance): при тумане обычно 150-300, в ясную 800-1000

 

57 минут назад, TMM team сказал:

Что это за текстура призрак на фото?

Вот чего не понял, где там призрак отображен?  Или ты имеешь ввиду как бы эффект линзы (шестигранника) от солнца?
 


Дополнено 2 минуты спустя
14 минут назад, TMM team сказал:

спасибо за ответ, буду искать

Да искать особо не надо. Открой любой скай-бокс, (для начала) ясную погоду, в дневное время (папка af3_clear) и посмотри фотошопом в самом низу любого фрагмента.


Дополнено 49 минуты спустя
19 часов назад, Hoperise сказал:

но стеклянный шкаф на базе ученых (именно стекла) сместились со своих мест

Скрин хоть покажи..

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Привет, подскажите как использовать эту функцию get_time_days(). Хочу изменить количество прожитых дней в зоне?

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


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, Tolich сказал:

Вот чего не понял, где там призрак отображен?  Или ты имеешь ввиду как бы эффект линзы (шестигранника) от солнца?

прямо, почти по центру в далеке, какое-то здания которого нет


IMG-37f2f96c0f50da877397935e4895dd7a-V.j

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 07.11.2021 в 15:30, TMM team сказал:

какое-то здания которого нет

Возможно оно есть в файле level_lods.dds  (смотрим gamedata\levels\  выбираем папку с соответствующей локацией)

Изменено пользователем Tolich
  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 06.11.2021 в 19:52, vader_33 сказал:

Paradox27kms 


local section = item.sect_item
local obj = db.actor:object(section)
	if obj then
		local sobj = alife():object(obj:id())
		local cost = system_ini():r_s32(section, "cost")
		--или local cost = tonumber(system_ini():r_string(section, "cost"))			
		alife():release(sobj, true)
		db.actor:give_money(cost)
	end

 

Привет а как в данном скрипте убрать проверку на нахождение предметов в инвентаре на просто предметы из списка? т.е убрать проверку окрашенную цветом и заменить её на предметы из списка (нужно для спавна в рюкзак гг как в повелителе зоны)

Спойлер

function ui_mm_mod:FillListOther()      
         local name

         db.actor:iterate_inventory(function (tmp, item)
     local sect = item:section()
         if tbl[sect] then
                 local inv_name = game.translate_string(system_ini():r_string(sect, "inv_name"))
                 local inv_weight = system_ini():r_string(sect, "inv_weight")
                 local cost = system_ini():r_string(sect, "cost")
                 local name = inv_name..", "..cost.."RU, "..inv_weight.."kg"
                 self:AddItemToListOther(name, sect)
         end                            
       end,obj)
end

Спойлер

    local section = item.sect_item

    local obj = db.actor:object(section)
        if obj then
            local sobj = alife():object(obj:id())
                local cost = tonumber(system_ini():r_string(section, "cost"))
            alife():release(sobj, true)
                        db.actor:give_money(cost)
        end

P.S мне нужно именно Вашим методом, так как другие рабочие способы я уже подсмотрел но там спавн только по тексту а он там должен быть на анг и конкретный по типу wpn_pm

Спойлер

function ui_mm_mod:OnButton_buy_clicked()
     if self.list_shop:GetSize()==0 then return end

     local item = self.list_shop:GetSelectedItem()

     if item == nil then
         self.file_caption:SetText("")
         self.file_data:SetText("")

         local r = self.picture:GetTextureRect()
         self.picture:InitTexture ("ui\\ui_noise")
         self.picture:SetTextureRect(Frect():set(r.x1,r.y1,r.x2,r.y2))

         return
     end
     local item_text = item.text:GetText()
     self.file_caption:SetText(item_text)
     self.file_caption:SetEllipsis(true)
     self.file_data:SetText(main_listbox(item_text))

     local r = self.picture:GetTextureRect()
         self.picture:InitTexture("ui\\ui_noise")
     self.picture:SetTextureRect(Frect():set(r.x1,r.y1,r.x2,r.y2))

     local id
     if self.check:GetCheck() then - это галочка (не обращайте внимания)
         id = db.actor:id()
     else
         id = -1
     end

     alife():create(item_text, db.actor:position(), 0, 0, id)

end

Спойлер

function ui_mm_mod:FillListShop(tbl)
    
    for i = 1, #tbl do
        self:AddItemToListShop(tbl)
    end
end

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Paradox27kms если я правильно понял

Спойлер

--если таблица вида
local tbl = {
		["секция"] = true,
		["секция2"] = true,
	}

function ui_mm_mod:FillListOther()      
    for i,v in pairs(tbl) do
	local inv_name = game.translate_string(system_ini():r_string(i, "inv_name"))
	local inv_weight = system_ini():r_string(i, "inv_weight")
	local cost = system_ini():r_string(i, "cost")
	local name = inv_name..", "..cost.."RU, "..inv_weight.."kg"
	self:AddItemToListOther(name, i)
	end                            
end

--если таблица такая
local tbl = {
		"секция",
		"секция2"
	}
			
function ui_mm_mod:FillListOther()      
    for i,v in pairs(tbl) do
	local inv_name = game.translate_string(system_ini():r_string(v, "inv_name"))
	local inv_weight = system_ini():r_string(v, "inv_weight")
	local cost = system_ini():r_string(v, "cost")
	local name = inv_name..", "..cost.."RU, "..inv_weight.."kg"
	self:AddItemToListOther(name, v)
	end                            
end

 

Спойлер

local section = item.sect_item
alife():create(section,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())

 

 

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

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

Как сделать так, чтобы симуляционные монстры не бегали по всей локации а были на одной какой-то территории?
Логика одного из симуляционных смартов (у меня на локации все симуляционные смарты сделаны по данной аналогии):

Спойлер

[smart_terrain]
squad_id = 8
max_population = 1
respawn_params = respawn@boars

[respawn@boars]
sim_boars

[sim_boars]
spawn_squads = simulation_boar
spawn_num = {!is_day} 1, 0

 

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


Ссылка на сообщение
Поделиться на другие сайты
 
1 минуту назад, liner сказал:

Как сделать так, чтобы симуляционные монстры не бегали по всей локации а были на одной какой-то территории?
Логика одного из симуляционных смартов (у меня на локации все симуляционные смарты сделаны по данной аналогии):

  Скрыть контент

[smart_terrain]
squad_id = 8
max_population = 1
respawn_params = respawn@boars

[respawn@boars]
sim_boars

[sim_boars]
spawn_squads = simulation_boar
spawn_num = {!is_day} 1, 0

 

Как вариант, создать эксклюзивные логики для них с ограничением mob_home

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


Ссылка на сообщение
Поделиться на другие сайты
 
40 минут назад, Neptun сказал:

Как вариант, создать эксклюзивные логики для них с ограничением mob_home

Проще же сделать эксклюзивный сквад монстров и со своим target_smart не? или вдобавок её дописать ему spawn_point. Да, разумеется если использовать единичный сквад....

Изменено пользователем Paradox27kms
  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Доброго времени суток! Перекомпилировал локацию Юпитер, все работает, но стеклянный шкаф на базе ученых (именно стекла) сместились со своих мест. Как можно это исправить?
 

Спойлер

ss_goro_11-07-21_19-55-08_(jupiter).thumb.jpg.a3005afac9a23e3601dfb60f960a65a0.jpgss_goro_11-07-21_19-54-38_(jupiter).thumb.jpg.990af2f957afe0d65d1db73d8bc1ab0b.jpgss_goro_11-07-21_19-54-29_(jupiter).thumb.jpg.202a9b892a3be16fff238356d0771f1a.jpgss_goro_11-07-21_19-54-25_(jupiter).thumb.jpg.805e654bf5c8c55fb4201b8b383e5b82.jpg

 

Если не ошибаюсь, то они должны быть единым .object объектом со всем бункером.

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 08.11.2021 в 15:34, vader_33 сказал:

Paradox27kms если я правильно понял

 

  добавление в список (Показать контент)


--если таблица вида
local tbl = {
		["секция"] = true,
		["секция2"] = true,
	}

function ui_mm_mod:FillListOther()      
    for i,v in pairs(tbl) do
	local inv_name = game.translate_string(system_ini():r_string(i, "inv_name"))
	local inv_weight = system_ini():r_string(i, "inv_weight")
	local cost = system_ini():r_string(i, "cost")
	local name = inv_name..", "..cost.."RU, "..inv_weight.."kg"
	self:AddItemToListOther(name, i)
	end                            
end

--если таблица такая
local tbl = {
		"секция",
		"секция2"
	}
			
function ui_mm_mod:FillListOther()      
    for i,v in pairs(tbl) do
	local inv_name = game.translate_string(system_ini():r_string(v, "inv_name"))
	local inv_weight = system_ini():r_string(v, "inv_weight")
	local cost = system_ini():r_string(v, "cost")
	local name = inv_name..", "..cost.."RU, "..inv_weight.."kg"
	self:AddItemToListOther(name, v)
	end                            
end

 

  спавн при клике (Показать контент)


local section = item.sect_item
alife():create(section,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())

 

 

 в данной функции значение section отсутствует следовательно при клике ничего не работает

function ui_mm_mod:FillListOther()

for i,v in pairs(tbl) do

local inv_name = game.translate_string(system_ini():r_string(i, "inv_name")) local inv_weight = system_ini():r_string(i, "inv_weight") local cost = system_ini():r_string(i, "cost")

local name = inv_name..", "..cost.."RU, "..inv_weight.."kg" self:AddItemToListOther(name, i) end end

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
48 минут назад, Paradox27kms сказал:

в данной функции значение section отсутствует следовательно при клике ничего не работает

в этой?

48 минут назад, Paradox27kms сказал:

local section = item.sect_item alife():create(section,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())

Как выложили кусок кода для изменения, так я и ответил

Спойлер

 

В 07.11.2021 в 16:19, Paradox27kms сказал:

    local section = item.sect_item

    local obj = db.actor:object(section)
        if obj then
            local sobj = alife():object(obj:id())
                local cost = tonumber(system_ini():r_string(section, "cost"))
            alife():release(sobj, true)
                        db.actor:give_money(cost)
        end

 

 

 


Дополнено 3 минуты спустя
В 07.11.2021 в 15:25, Contentic сказал:

подскажите как использовать эту функцию get_time_days()

level.get_time_days()

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

В беге за рассветом приближаешь свой закат

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


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет! Напомню, это ЗП.

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

Это как с кровососом, во время сценки с долговцем на агропроме. (в чистом небе).


IMG-37f2f96c0f50da877397935e4895dd7a-V.j

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу