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

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

 

61561952a1.png

Тема посвящена моддингу на платформе Зов Припяти.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.

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


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

Policai Кто сказал, что это будет частью геймплея? Мне нужно это по сюжету.

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


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

Кто сказал, что это будет частью геймплея? Мне нужно это по сюжету.

А сюжет не часть гейплея? Что нужно сделать чтоб ты не смог подпрыгнуть? 3 варианта, сломаны ноги, голова упирается в потолок или на горбу 200 кило веса... )) 


0000.png

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


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

Кто сказал, что это будет частью геймплея? Мне нужно это по сюжету.

Не спорь, это бесполезно


bffa70a0076a8122ca8fab46460e0d91.png
и True Stalker еще там...

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


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

Не спорь, это бесполезно

Верно..))) :classic_rolleyes:


0000.png

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


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

как можно присвоить кондишн броне и оружию при попадании в инвентарь гг? 


76561198152189716.png

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


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

ian98 

local obj = db.actor:object("stalker_outfit") -- твой предмет
    if obj ~= nil then
        obj:set_condition(0.09) -- состояние предмета (9%)
    end

 

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


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

Chiliaz а куда вставлять-то? В свой скрипт и на on_item_take в bind_stalker?

 


76561198152189716.png

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


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

ian98 да хоть куда. Если выдаешь предметы в диалоге, то в <action>, если вызываешь через рестриктор, то в xr_effects.

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


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

Chiliaz А я не очень понимаю, это только для сталкерского комбеза? Пробовал сделать 

Спойлер

function set_weapon_condition()
local obj = db.actor:object("wpn_pm") -- твой предмет
    if obj ~= nil then
        obj:set_condition(0.09) -- состояние предмета (9%)
    end

 

вешал на он итем тейк. Вылет словил. 

И еще вопрос, можно ли сделать как-то так?

Спойлер

function set_weapon_condition()
local obj = isWeapon(item) and isOutfit(item)
		if isWeapon(item)  and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) then
		set_weapon_drop_condition(item)
		return
	end

	if isOutfit(item) then
		set_weapon_drop_condition(item)
		return
	end

function set_weapon_drop_condition(item)
	local condition  = (math.random(99)+1)/100
	if item:condition() > 0.99 then
		item:set_condition(condition)	
	end
end

 

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

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

76561198152189716.png

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


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

ian98 если надо изменить состояние оружия выпадающего с трупов тогда надо копать death_manager и менять функцию set_weapon_drop_condition(item)

local condition  = (math.random(40)+40)/100 -- целостность оружия от 0 до 40%

Если надо поменять для всего оружия которое попадает в рюкзак к ГГ тогда в функцию actor_binder:on_item_take (obj) из bind_stalker, добавляем

if isWeapon(obj) and not(get_clsid(obj)==clsid.wpn_grenade_rgd5_s or get_clsid(obj)==clsid.wpn_grenade_f1_s) then
obj:set_condition(0.09)
end

 

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

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


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

Chiliaz не вылетает, уже хорошо, правда ничего не происходит. Я на тч пробую, но думал, что с зп в этом смысле все одинаково. Видно не очень.


76561198152189716.png

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


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

ian98 всё работает и на тч и на зп

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


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

vader_33 вот блин, а у меня ничего не происходит. Вот это должно работать? Мне бы так. Здесь первая меняет состояние, а вторая функция должна, вроде как, разрешать это делать только один раз. Я вот прям вот это и вставлял в он итем тейк. Ничего не происходит.

Спойлер

function set_weapon_condition()
local obj = isWeapon(item) and isOutfit(item)
		if isWeapon(item)  and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) then
		set_weapon_drop_condition(item)
		return
	end

	if isOutfit(item) then
		set_weapon_drop_condition(item)
		return
	end

function set_weapon_drop_condition(item)
	local condition  = (math.random(99)+1)/100
	if item:condition() > 0.99 then
		item:set_condition(condition)	
	end
end

 

проверил скрипт чекером. Он мне сказал, что не хватает end в конце. Поставил. Проверил. Все ок. В bind stalker подключил скрипт название_скрипта.название_функции() и ничего не происходит:(

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

76561198152189716.png

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


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

ian98 объект не передается в функцию


Дополнено 0 минут спустя
26 минут назад, ian98 сказал:

а вторая функция должна, вроде как, разрешать это делать только один раз

вторая как раз и меняет, тут нет того, что разрешает что-то делать один раз. 

Функции isOutfit в тч нету, если она у вас не добавлена - вылетит

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

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


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

vader_33 добавлена. В скрипт _g.script.

Спойлер

function isOutfit(object)
    local id = get_clsid(object)
    if id == nil then return false end

    if id == equ_stalker_s then return true
    elseif id == clsid.equ_stalker then return true
    elseif id == clsid.equ_scientific then return true
    elseif id == clsid.equ_military then return true
    elseif id == clsid.equ_exo then return true
    else return false end
end

 

Ну как же, состояние предмета изменится только, если оно выше 99, т.е один раз. Или нет? Ну понятно, что предмет, который дважды получил состояние 100 - дважды получит случайное состояние от 1 до 99, но в тч нет ремонта, кроме бага с артами, но и сет из 5 артефактов еще надо собрать.

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

76561198152189716.png

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


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

ian98 я подумал, что имелась в виду проверка на предметы актора, что отработает функция один раз только при поднятии предмета, а не на все предметы актора. А так да, пойдет. Можно одну проверку сделать и на оружие и на костюмы 

if (isWeapon(item)  and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) )  or isOutfit(item) then

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

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


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

vader_33 Да, только у меня вылетает. С последним вариантом. Что-то с ним не так.


76561198152189716.png

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


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

ian98 а что в логе?

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


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

vader_33 так, ошибся, вылета нет, но и не работает ничего.

Сейчас вот так выглядит.

Спойлер

function set_weapon_condition()
local obj = isWeapon(item) and isOutfit(item)
		if isWeapon(item)  and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) or isOutfit(item) then
		set_weapon_drop_condition(item)
		return
	end

function set_weapon_drop_condition(item)
	local condition  = (math.random(99)+1)/100
	if item:condition() > 0.99 then
		item:set_condition(condition)	
	end
    end
end

 

 


76561198152189716.png

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


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

ian98 в set_weapon_condition() объект надо передавать


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

ian98 и условие неправильно скопировали

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


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

vader_33 

Спойлер

function set_weapon_condition()
local obj = isWeapon(item) and isOutfit(item)
		if (isWeapon(item)  and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) )  or isOutfit(item) then
		set_weapon_drop_condition(obj)
		return
	end

function set_weapon_drop_condition(obj)
	local condition  = (math.random(99)+1)/100
	if item:condition() > 0.99 then
		item:set_condition(condition)	
	end
    end
end

 

 


76561198152189716.png

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


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

ian98 в первую функцию function set_weapon_condition(), которая в биндере прописана. Из биндера передавать в нее. Откуда условие на оружие и броню должно брать item? function set_weapon_condition(item) . local obj = isWeapon(item) and isOutfit(item) вообще не нужен, сразу с функции берите item

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

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


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

vader_33 аааааа, зачем(

Спойлер

function set_weapon_condition(obj)
local obj = isWeapon(item) and isOutfit(item)
		if (isWeapon(item)  and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) )  or isOutfit(item) then
		set_weapon_drop_condition(item)
		return
	end

function set_weapon_drop_condition(item)
	local condition  = (math.random(99)+1)/100
	if item:condition() > 0.99 then
		item:set_condition(condition)	
	end
    end
end

 

 

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

76561198152189716.png

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


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

ian98 
 

Спойлер



function set_weapon_condition(item)
	if (isWeapon(item)  and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) )  or isOutfit(item) then
		set_weapon_drop_condition(item)
	end
end

function set_weapon_drop_condition(item)
	local condition  = (math.random(99)+1)/100
		if item:condition() > 0.99 then
			item:set_condition(condition)	
		end	
end


 

 

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


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

vader_33 

function set_weapon_condition()
		if (isWeapon(item)  and not(get_clsid(item)==clsid.wpn_grenade_rgd5_s or get_clsid(item)==clsid.wpn_grenade_f1_s) )  or isOutfit(item) then
		set_weapon_drop_condition(item)
		return
	end

function set_weapon_drop_condition(item)
	local condition  = (math.random(99)+1)/100
	if item:condition() > 0.99 then
		item:set_condition(condition)	
	end
    end
end

 


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

vader_33 vader_33 все равно не работает, блин...


76561198152189716.png

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


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

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

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

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

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

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

Войти

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

Войти

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

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