Пользователей: 0
Гостей: 222
Всего: 222

» Подробно
» Сегодня


Привет, Гость!

Ник


Пароль


Запомнить?




» Добавить в избранное

» Сделать стартовой

Главная
Форум
Обзор игры
Мир Зоны
Файлы
Галерея
Разное






Форумы > Архив > Склад > Вопросы и ответы (ТЧ по 11.09.10)

Страница 2 из 69«12345 »Последняя
Быстрый переход:


 

Автор Сообщение
Dietrich2009
[1] Странник
Онлайн статус=0  Профиль    




Посты: 219
Откуда: Kiev
Занятие: Моддинг для S.T.A.L.K.E.R.
Возраст: 14

17-07-2010 00:25 GMT3 часа #1293346   Split
VITOSSSSS function wpn_toz ()
alife():create("wpn_toz",vector():set(Координаты),1542,2799)
end


Vitоs
[1] Banned
Онлайн статус=0  Профиль    




Посты: 467
Откуда: Колхоз :D
Занятие: Бaмбук...
Возраст: 27

17-07-2010 00:35 GMT3 часа #1293353   Split
А кaк отключить у НПС ''глaз нa зaтылкe''.


GOLDERY
[1] Странник
Онлайн статус=0  Профиль    




Посты: 67
Откуда:
Занятие:
Возраст: 34

24-12-2011
17-07-2010 00:37 GMT3 часа #1293357   Split
VITOSSSSS скачать можешь тут же на Сталкер портале Stels mod а можешь редактировать характеристки в ltx


Dietrich2009
[1] Странник
Онлайн статус=0  Профиль    




Посты: 219
Откуда: Kiev
Занятие: Моддинг для S.T.A.L.K.E.R.
Возраст: 14

17-07-2010 01:00 GMT3 часа #1293378   Split
VITOSSSSS config\creatures\m_stalker.ltx
[stalker_vision_danger]
min_view_distance = 0.7 ; коэффициент, который множится на eye_range, в зависимости от угла
max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла
visibility_threshold = 120.0 ; значение, при достижении суммой которого объект считается видимым
always_visible_distance = 0.2
time_quant = 0.001
decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам
velocity_factor = 0.5
luminocity_factor = 0.5 ; фактор освещения (только для Актёра)
transparency_threshold = 0.4 ; 0.25


Колотун
[1] Странник
Онлайн статус=0  Профиль    




Посты: 62
Откуда:
Занятие:
Возраст: 29

17-07-2010 08:08 GMT3 часа #1293469   Split
КerYa
А вот с файлом death_manager поподробнее можно? Что ты там такого прописал?

добавлено спустя 3 часа 28 минут

Чуваки! Как или с помощью какой проги можно "сфотать" иконку нового оружия?
Поставить как я знаю а сфотать?

добавлено спустя 3 минут

Fantom2323
Спасибо за помощь но с логикой тоже не помогло
потом как нить соберусь с мыслями и сделаю этого торговца от и до!

Сообщение было успешно отредактировано Колотун (17-07-2010 08:08 GMT3 часа, назад)

lehapark39
[1] Странник
Онлайн статус=0  Профиль    




Посты: 17
Откуда: Заволжск
Занятие: Музыка, моды к сталкеру
Возраст: 31

25-07-2010
17-07-2010 09:57 GMT3 часа #1293535   Split
чуваки помогите плиз хочу сделать чтоб можно было у торговцев деньги в долг брать , как в амк можно вытащить метку и рюкзак , как мне поставить метку на карте на какого нить персонажа или просто в любом месте на карте!!!


Vitоs
[1] Banned
Онлайн статус=0  Профиль    




Посты: 467
Откуда: Колхоз :D
Занятие: Бaмбук...
Возраст: 27

17-07-2010 12:48 GMT3 часа #1293589   Split
Пaрни подскaжитe кaк зaспaвнить чeрeз скрипт кровососa нa Кордонe.


Dietrich2009
[1] Странник
Онлайн статус=0  Профиль    




Посты: 219
Откуда: Kiev
Занятие: Моддинг для S.T.A.L.K.E.R.
Возраст: 14

17-07-2010 13:08 GMT3 часа #1293594   Split
VITOSSSSS function spawn_krovossos ()
alife():create("m_bloodsucker_e",vector():set(Координаты),1542,2799)
end


КerYa
[1] Странник
Онлайн статус=0  Профиль    




Посты: 131
Откуда: Евпатория
Занятие: Комп,Яхтинг,Море!!!!
Возраст: 122

04-08-2010
18-07-2010 18:54 GMT3 часа #1293614   Split
Вот Колотун:
Файл game relations
[game_relations]

;реальное разделение на группы репутаций на шкалы

rating = novice, 300, experienced, 600, veteran, 900, master

monster_rating = weak, 400, normal, 800, strong

reputation = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent



;шкалы для вывода названий вместо чисел

;рейтингов, репутаций и благосклонности в интерфейсе

rating_names = novice, 300, experienced, 600, veteran, 900, master

reputation_names = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent

goodwill_names = enemy, -400, indifferent, 500, friendly



;пороговые значения для отношения персонажей

attitude_neutal_threshold = -400 ;когда attitude меньше значения, то выставляется ALife::eRelationEnemy

attitude_friend_threshold = 500 ;когда attitude меньше значения, то выставляется ALife::eRelationNeutral, иначе ALife::eRelationFriend



;константы, которые присвоят скриптовые функции set_relation для personal goodwill

goodwill_enemy = -1000

goodwill_neutal = 0

goodwill_friend = 1000



;названия группировок

communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16, dark_stalker, 17





; отношение персонажа к актеру (или другому NPC) вычисляется по формуле

; attitude = personal_goodwill + //личное отношение персонажа к актеру (если раньше не встречались, то 0)

; community_goodwill + //отношение группировки персонажа лично к актеру (если раньше контактов не было, то 0)

; community_to_community + //отношение группировки персонажа к группировке актера из [communities_relations]

; reputation_goodwill + //отношение репутации персонажа к репутации актера из [reputation_relations]

; rank_goodwill //отношение ранга персонажа к рангу актера из [rank_relations]



[communities_relations]

; |actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg |freedom|bandit |zombied|strange|trader |arena_enemy|greh|clear_sky|clear_sky|dark_stalker

;=================================================================================================================================

actor = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -50, 0

actor_dolg = 0, 0, 0, 0, -5000, -500, -5000, 5000, 600, -5000, -5000, -5000, 0, 0, -50, 0

actor_freedom = 0, 0, 0, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, -50, 0



stalker = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -50, 0

monolith = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, 5000, 5000, -5000, 0, -50, 0

military = -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, -5000, -5000, -5000, 0, 0, -50, 0

killer = -5000, -5000, 0, -5000, -5000, -5000, 5000, -5000, -5000, -5000, 0, -5000, -5000, 0, -50, 0

ecolog = 0, 600, -5000, 0, -5000, 1000, -5000, 5000, 500, -5000, -500, -5000, 0, 0, 0 , 0

dolg = 0, 600, -5000, 0, -5000, -500, -5000, 5000, 5000, -5000, -5000, -5000, 0, 0, 0 , 0

freedom = 0, -5000, 600, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, 0 , 0

bandit = -5000, -5000, 0, -5000, -5000, -500, 0, -5000, -5000, 0, 0, -5000, -5000, 0, -50, 00, 0

zombied = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -50, 0

stranger = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -500, -5000, 0, 0, 0 , 0

trader = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0

arena_enemy = -5000, -5000, -5000, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, 0, 0 , 0

dark_stalker = 0, 0, 0, 0, -7600, -8000, -9000, 0, 0, 0, -9000, -90000, 0, 0, 0, 60000



[rank_relations]

; novice, experienced, veteran, master

;================================================================

novice = 0, 0, 0, 0

experienced = 0, 0, 0, 0

veteran = 0, 0, 0, 0

master = 0, 0, 0, 0







[reputation_relations]

; terrible, very_bad, bad, neutral, good, very_good, excellent

;================================================================

terrible = 0, 0, 0, 0, 0, 0, 0

very_bad = 0, 0, 0, 0, 0, 0, 0

bad = 0, 0, 0, 0, 0, 0, 0

neutral = 0, 0, 0, 0, 0, 0, 0

good = 0, 0, 0, 0, 0, 0, 0

very_good = 0, 0, 0, 0, 0, 0, 0

excellent = 0, 0, 0, 0, 0, 0, 0





;

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

;



;коэффициенты "сочувствия" группировок

;после воздействия на одного из членов группировки

;goodwill его распространится на остальных членов группировки

;с определенным коэффициентом

[communities_sympathy]

dark_stalker = 0.0

actor = 0.0

actor_dolg = 0.0

actor_freedom = 0.0

stalker = 0.0

monolith = 0.0

military = 0.0

killer = 0.0

ecolog = 0.0

dolg = 0.1

freedom = 0.1

bandit = 0.0

zombied = 0.0

trader = 0.0

stranger = 0.0

arena_enemy = 0.0



;

;очки рейтинга, получаемые за убийство персонажа

;с определенным статусом

[rank_kill_points]

novice = 0

experienced = 0

veteran = 0

master = 0



;очки рейтинга, репутации и доброжелательности начисляемые

;в зависимости от совершенного действия

[action_points]

personal_goodwill_limits = -1000, 1000

community_goodwill_limits = -3000, 1000

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

free_friend_attack_goodwill = -2500

free_neutral_attack_goodwill = -1000

free_enemy_attack_goodwill = 0



danger_friend_attack_goodwill = -200

danger_neutral_attack_goodwill = -200

danger_enemy_attack_goodwill = 0



free_friend_attack_reputation = -20

free_neutral_attack_reputation = -10

free_enemy_attack_reputation = 0



danger_friend_attack_reputation = 0

danger_neutral_attack_reputation = 0

danger_enemy_attack_reputation = 0

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

;(с) мин. время через которое снова будет зарегистрировано

;сообщение об атаке на персонажа, и соответственно вычтеся attack_goodwill и attack_reputation

;(работает аналогично и при помощи другим персонажам в бою)

min_attack_delta_time = 3



friend_kill_goodwill = -1000

neutral_kill_goodwill = -1000

enemy_kill_goodwill = 0

community_member_kill_goodwill = -1000



;убийство члена группировки отражается на отношении

;группировки (умножается на communities_sympathy)



friend_kill_reputation = -40

neutral_kill_reputation = -15

enemy_kill_reputation = 0



;

; помощь актера персонажу во время боя

;

fight_remember_time = 10 ;(c) время которое про драку будет помнить реестр



friend_fight_help_goodwill = 200

neutral_fight_help_goodwill = 200

enemy_fight_help_goodwill = 0



friend_fight_help_reputation = 10

neutral_fight_help_reputation = 10

enemy_fight_help_reputation = 0



;свойства, которые изменяются у сталкеров в

;зависимости от их ранга

;коэффициенты линейно интерполируются для рангов от 0 (novice) до 100 (experienced)









[ranks_properties]

immunities_novice_k = 1.0

immunities_experienced_k = 1.0



visibility_novice_k = 1

visibility_experienced_k = 1



dispersion_novice_k = 1.0

dispersion_experienced_k = 0.1





; диапазон изменения рангов при регистрации в новом смарт террейне

[smart_terrain_rank_change]

min = 1

max = 30



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; for monsters

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



[monster_communities]

;номера team которые присваиваются соответствующим видам

;255 - команда не задается

communities = actor, 255, human, 255, arena_monstr, 39, boar, 40, bloodsucker, 41, flesh, 42, dog, 43, pseudodog, 44, cat, 45, chimera, 46, giant, 47, zombie, 48, burer, 49, controller, 50, poltergeist, 51, snork, 52, fracture, 53, bird, 54, rat, 55, tushkano, 56



[monster_relations]

; [1] друг, [0] нейтрал, [-1] враг, [-2] злейший враг

; actor,human,arena_monstr, boar, bloodsucker, flesh, dog, pseudodog, cat, chimera, giant, zombie, burer, controller, poltergeist, snork, fracture, bird, rat, tushkano

;==========================================================================================================================================================================

actor = 1, 1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1

human = 0 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1

arena_monstr= -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

boar = -2, -2, 0, 1, -1, 0, -1, -1, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0

bloodsucker = -2, -2, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

flesh = -2, -1, 0, 0, -1, 1, -1, -1, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0

dog = -2, -1, 0, -1, 0, -1, 1, 0, 0, 0, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0

pseudodog = -2, -1, 0, -1, 0, -1, 0, 1, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0

cat = -2, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

chimera = -2, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

giant = -2, -1, 0, -1, 0, -1, -1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0

zombie = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0

burer = -2, -2, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0

controller = -2, -2, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0

poltergeist = -2, -1, 0, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0

snork = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0

fracture = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0

bird = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0

rat = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0

tushkano = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1


Файл death manager


--' Ключем является группировка персонажа. Значением является таблица, содержашая имена секций предметов.
local item_by_community = {}

--' Зависимости в спауне предметов. Предмет спауниться только если есть хотя бы один из зависимых.
local item_dependence = {}

--' Множители и минимаксы для выпадения вещей в зависимости от уровня
local mul_by_level = {}
local count_by_level = {}

--' Предметы, которые нельзя удалять (квестовые например)
local always_keep_item = {}

--' Предметы, относящиеся к патронам. Их надо спаунить другим методом.
local ammo_sections = {}

local death_ini = ini_file("misc\\death_generic.ltx")


function init_drop_settings()
local community_list = { "stalker", "dolg", "freedom", "bandit", "military", "zombied", "ecolog", "killer", "monolith", "arena_enemy", "actor_dolg" , "dark_stalker" }

for k,v in pairs(community_list) do
--' Необходимо заполнить таблицу
item_by_community[v] = {}
if death_ini:section_exist(v) then
local n = death_ini:line_count(v)
local id, value = "", ""
for i=0,n-1 do
result, id, value = death_ini:r_line(v,i,"","")
item_by_community[v][id] = 100*tonumber(value)
end
end
end

--' Заполняем таблицу зависимостей
local n = death_ini:line_count("item_dependence")
local id, value = "", ""
for i=0,n-1 do
result, id, value = death_ini:r_line("item_dependence",i,"","")
item_dependence[id] = {}
local vvv = parse_names(value)
for k,v in pairs(vvv) do
item_dependence[id][v] = true
end
end

--' Множители и минимаксы для выпадения вещей в зависимости от уровня
local level_name = level.name()

if not death_ini:section_exist(level_name) then
level_name = "default"
end

local n = death_ini:line_count(level_name)
local id, value = "", ""
for i=0,n-1 do
result, id, value = death_ini:r_line(level_name,i,"","")
mul_by_level[id] = tonumber(value)
end

local item_count_section = "item_count_" .. level.get_game_difficulty()
local n = death_ini:line_count(item_count_section)
for i=0,n-1 do
result, id, value = death_ini:r_line(item_count_section,i,"","")
--' Нужно распарсить value в два значения
local t = parse_nums(value)
if t[1] == nil then
abort("Error on [death_ini] declaration. Section [%s], line [%s]", item_count_section, tostring(id))
end
local min = t[1]
local max = t[2]
if max == nil then
max = min
end

if mul_by_level[id] == nil then
mul_by_level[id] = 0
end

min = tonumber(min) * mul_by_level[id]
max = tonumber(max) * mul_by_level[id]

count_by_level[id] = {min = min, max = max}
end

--' Предметы, которые нельзя удалять (квестовые например)
local n = death_ini:line_count("keep_items")
for i=0,n-1 do
result, id, value = death_ini:r_line("keep_items",i,"","")
if value == "true" then
always_keep_item[id] = true
end
end

--' Предметы, относящиеся к патронам. Их надо спаунить другим методом.
ammo_sections = {}
local n = death_ini:line_count("ammo_sections")
local id, value = "", ""
for i=0,n-1 do
result, id, value = death_ini:r_line("ammo_sections",i,"","")
ammo_sections[id] = true
end
end



class "drop_manager"
function drop_manager:__init(npc)
self.npc = npc
self.dropped = false
end
function drop_manager:save(packet)
packet:w_bool(self.dropped)
end
function drop_manager:load(packet)
self.dropped = packet:r_bool()
end
function drop_manager:create_release_item()
if self.dropped == true then
return
end
self.dropped = true

--' Запускаем итератор на удаление предметов
self.npc:iterate_inventory(keep_item, self.npc)


--' Проверка на отсутствие спауна лута
local ini = self.npc:spawn_ini()

if ini and ini:section_exist("dont_spawn_loot") then
return
end

--' Доспавниваем необходимое количество итемов:
--' Необходимо составить список объектов которые могут быть заспавнены для персонажа
local spawn_items = item_by_community[self.npc:character_community()]
for k,v in pairs(spawn_items) do
--' По каждому объекту необходимо получить зависимости
if check_item_dependence(self.npc, k) == true then
--' По каждому объекту необходимо получить количество
local number = math.ceil(math.random(count_by_level[k].min, count_by_level[k].max))
--' Необходимо заспавнить нужное количество.
create_items(self.npc, k, number, v)
end
end
end

--' Функция вызывается для каждого предмета, если вернет false то предмет удалится.
function keep_item(npc, item)
local section = item:section()

if section == "bolt" then
return
end

if always_keep_item[section] == true then
return
end

local item_id = item:id()
local item_in_slot = npc:item_in_slot(1)
if item_in_slot ~= nil and
item_in_slot:id() == item_id
then
item:unload_magazine()
--' Тут надо уменьшить кондишн оружия
item:set_condition((math.random(15)+75)/100)
return
end
item_in_slot = npc:item_in_slot(2)
if item_in_slot ~= nil and
item_in_slot:id() == item_id
then
item:unload_magazine()
--' Тут надо уменьшить кондишн оружия
item:set_condition((math.random(15)+75)/100)
return
end
npc:mark_item_dropped(item)
alife():release(alife():object(item:id()), true)
end

--' Функция спавнит необходимое число предметов
function create_items(npc, section, number, rnd)
--'printf("create %s of %s", tostring(number), tostring(section))
if ammo_sections[section] == true then
if number > 0 then
se_respawn.create_ammo(section,
npc:position(),
npc:level_vertex_id(),
npc:game_vertex_id(),
npc:id(),
number)
end
else
for i=1,number do
--' Проверяем вероятность появить каждый объект в отдельности
if math.random(100) <= rnd then
alife():create(section,
npc:position(),
npc:level_vertex_id(),
npc:game_vertex_id(),
npc:id())
end
end
end
end


--' Функция проверяет есть ли хоть один из зависимых объектов у персонажа
function check_item_dependence(npc, section)
if item_dependence[section] == nil then
return true
end

local d_flag = true
for k,v in pairs(item_dependence[section]) do
local obj = npc:object(k)
if obj ~= nil and npc:marked_dropped(obj) ~= true then
return true
end
d_flag = false
end

return d_flag
end

добавлено спустя 12 минут


Парни, какой фал отвечает за насзвание клавиш в игре.

Сообщение было успешно отредактировано Cos (18-07-2010 18:54 GMT3 часа, назад)

Darien Fx
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1372
Откуда:
Занятие:
Возраст: 30

17-07-2010 14:48 GMT3 часа #1293663   Split
КerYa
Спрячь свою бодягу под спойлер.
Цитата
Парни, какой фал отвечает за насзвание клавиш в игре.

Конкретней вопрос ставь, хрен поймёшь какое название имеешь ввиду. user.ltx посмотри.


Gun12
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 773
Откуда: СССР
Занятие: Всё, что заставляет напрягать серое вещество
Возраст: 51

17-07-2010 23:13 GMT3 часа #1294161   Split
Колотун
Хватит мучать логику. Давай лучше помучаем голову
Смотри.
У тебя в секции спавна записано :
Код:
[2217]
...
section_name = stalker
...

Заметь, stalker.
Всех торговцев брать не буду, для простоты понимания посмотри какая секция у того же Петренко?
А секция называется
Код:
section_name = stalker_trader

Смотрим файл m_stalker.ltx. Там есть две интересные для тебя записи.
Вот что записано для секции stalker:
Код:
[stalker]:common_ph_friction_params_on_npc_death
...
can_select_items = on
...
use_single_item_rule = on
...

А вот что для секции stalker_trader :
Код:
[stalker_trader]:stalker
...
use_single_item_rule = off
can_select_items = off

Делай выводы.


sevitov_yura
[1] Странник
Онлайн статус=0  Профиль    




Посты: 79
Откуда: Брест
Занятие: программирую на С++, Delphi;модостр.;велоспорт;радиоэлектроника
Возраст: 30

17-07-2010 23:52 GMT3 часа #1294197   Split
подскажите, как сделать проверку попадания солнечного света на ГГ?


Колотун
[1] Странник
Онлайн статус=0  Профиль    




Посты: 62
Откуда:
Занятие:
Возраст: 29

18-07-2010 08:29 GMT3 часа #1294462   Split
КerYa
Зачем нужно было писать такой длинный отчет по всем файлам, когда я попросил только файл death_manager!
Ну да ладно! В death_manager у тебя вроде все в порядке прописал новую группировку.

А вот интересен мне еще один файл который ты возможно упустил - это xr_statistic.script


Чтобы при убийстве непися новой группировки игра не вылетала в xr_statistic.script,

после строки:

zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,

пишешь

dark_stalker_novice = 1, dark_stalker_experienced = 2, dark_stalker_veteran = 3, dark_stalker_master = 4,


Попробуй должно помочь!
P.S. Когда пишешь что то объемное кидай все под спойлер!

добавлено спустя 7 минут

Gun12
Спасибо огромное! Я этого даже не приметил! Хотя...
была такая мысля заменить секцию. Но потом подумал, что вряд ли это поможет так как я окончательно его снес! Буду нового делать именно так и поступлю! Уверен это обязательно поможет!

Еще раз огромное спасибо!

Сообщение было успешно отредактировано Колотун (18-07-2010 08:29 GMT3 часа, назад)

Byurrer
[1] Странник
Онлайн статус=0  Профиль    




Посты: 82
Откуда: А зачем?
Занятие: Модинг Сталкера ТЧ, и много чего еще ...
Возраст: 31

18-07-2010 08:40 GMT3 часа #1294463   Split
Как заспавнить мертвого НПС или моба? (через скрипт) Как я понял мертвый НПС это офлайн а живой онлайн, так?


Колотун
[1] Странник
Онлайн статус=0  Профиль    




Посты: 62
Откуда:
Занятие:
Возраст: 29

18-07-2010 11:47 GMT3 часа #1294540   Split
Никто не знает этого лога опять же при создании торговца:

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: ...shadow of chernobyl\gamedata\scripts\xr_logic.script:868: bad argument #1 to 'gfind' (string expected, got nil)


Byurrer
[1] Странник
Онлайн статус=0  Профиль    




Посты: 82
Откуда: А зачем?
Занятие: Модинг Сталкера ТЧ, и много чего еще ...
Возраст: 31

18-07-2010 12:47 GMT3 часа #1294553   Split
Колотун этот лог значит что: shadow of chernobyl\gamedata\scripts\xr_logic.script в этом скрипте на 868 строчке аргумент 'gfind' не получил никакое значение! Такие ошибки возникают при неправильно составленной логике, были такие, внимательно просмотри еще раз код!

добавлено спустя 15 минут

panama4444 открываешь файл config\creatures\actor.ltx далее ищешь строчки которые начинаются на
Код:
actor_immunities_gd...

вместо троеточия сложность на которой играешь! И ниже blem значения иммунитета, меняешь на 0 и ГГ бессмертен!

Сообщение было успешно отредактировано Byurrer (18-07-2010 12:47 GMT3 часа, назад)

Darien Fx
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1372
Откуда:
Занятие:
Возраст: 30

18-07-2010 14:20 GMT3 часа #1294567   Split
Byurrer
Неправильно понял, хотя тебе 2 раза объяснили про он / офф.
Код:
local npc = alife():create(...)
npc.health = 0

Трупом станет не мгновенно, но для глаза незаметно.
Если он не дальше 150 метров (дальность устанавливается в alife.ltx, switch_distance) от тебя, то в онлайне.
Ты имеешь ввиду вывести список названий итемов из рюкзака в окно?

Сообщение было успешно отредактировано Darien Fx (18-07-2010 14:20 GMT3 часа, назад)

Byurrer
[1] Странник
Онлайн статус=0  Профиль    




Посты: 82
Откуда: А зачем?
Занятие: Модинг Сталкера ТЧ, и много чего еще ...
Возраст: 31

18-07-2010 13:30 GMT3 часа #1294575   Split
Darien Fx спасибо! Попробую! Тогда если НПС виден (в любом состоянии) то он онлайн если же не виден то офлайн?

добавлено спустя 19 минут

Darien Fx ясно! Еще раз спасибо вроде понял!

добавлено спустя 9 минут

Вот еще вопрос: вот создал свое окно а как в него вывести весь инвентарь?

Сообщение было успешно отредактировано Byurrer (18-07-2010 13:30 GMT3 часа, назад)

Чувак на болоте
[1] Странник
Онлайн статус=0  Профиль    




Посты: 87
Откуда: Волгодонск
Занятие: мастер 3д моделей, так же рулю в СДК)_)
Возраст:

03-07-2011
18-07-2010 15:02 GMT3 часа #1294721   Split
Люди помогите скачал локу Припять из ЗП с вашего сайта а он вылетает с логом что ему нужны деревья. Из какой задницы я ему эти деревья достану?!?!?!??!?!!


Byurrer
[1] Странник
Онлайн статус=0  Профиль    




Посты: 82
Откуда: А зачем?
Занятие: Модинг Сталкера ТЧ, и много чего еще ...
Возраст: 31

18-07-2010 15:54 GMT3 часа #1294769   Split
Darien Fx ну можно и так, но вот я щас делаю апгред оружия (по реалистичным параметрам мне его один мастер военного дела дал) дак вот я хочу чтоб можно было открыть инвентарь полностью со всеми вещами!


БаЛаБоЛ
[10] Житель
Онлайн статус=0  Профиль    



skill issue

Посты: 5064
Откуда: Промышленный район нанотехнологий
Занятие: FORTNITE, драка за батон
Возраст: 30

28-03-2017
18-07-2010 16:52 GMT3 часа #1294803   Split
Какое значение поставить в wound_incarnation_v, чтобы здоровье регенерировалось как-то так:

Хотел анимацию плавно сделать, да как-то не получилось..


P.S. в конфиге actor.LTX такая строчка есть..


userbar
Саня Стрелок
[1] Странник
Онлайн статус=0  Профиль    




Посты: 130
Откуда: Нижний Новгород
Занятие: Музыка, гитара, писательство, история
Возраст: 28

16-03-2012
18-07-2010 18:36 GMT3 часа #1294887   Split
Ребят, вопрос у меня имеется. Как сделать так, чтобы в начале игры, после видеоролика, игра начиналась с эффекта головокружения (типа как перед сном в лабораториях).


aqraccy
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 1455
Откуда: из Обломовки я.
Занятие: Старший редактор/переводчик для CallofDutyNews.ru
Возраст: 29

15-06-2012
18-07-2010 19:40 GMT3 часа #1294934   Split
Здрасьте,

Вопрос по скриптам. Хочу написать скрипт, чтобы при выкидывании постолета из рук (кнопочкой "g" иди из инвентаря командой "Выбросить"), при условии, что у ГГ есть еще один пистолет, то он брал новый пистолет в руки автоматически.

Вот попытался набросать что-то типа (xD). Некоторые строки могут быть неправильными, т.к не на своем компе, пишу команды по памяти, но основные момент учтены.

В общем в bind_stalker.script написал колбэк (вроде так называется) на свой мод, чтобы работал всегда.

Прописал строку aqra_mod:aqra_update(delta) (куда именно я знаю, но за неимением сталкера, сделаю этот шаг позже. Если что не так, просьба исправить.

Дальше сам скрипт:

local aqra = 0

function aqra.update(delta)
aqra = 1
if aqra == 1 then aqra_mod
end
end

function aqra_mod()
local pistol = db.actor:item_in_slot(2)
return pistol ~= nill and db.actor:object("table") ~= nill

local table = {
"wpn_pm"
"wpn_pb"
"wpn_beretta"
"wpn_hpsa"
"wpn_fort"
}

if true then -- я нупка в скриптах, можно ли так, я не знаю. В общем здесь нужна команда, чтобы в слот пистоля вставился один из пистолов из таблы "table".

local pistol_change = math.random(table.getn(table))

--Здесь нужна команда чтобы переменная "pistol_change" встал в слот пистолета. Просьба помочь!

end
end
end
end



Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

18-07-2010 21:30 GMT3 часа #1294987   Split
aqraccy
1. Чтобы не нагружать игру излишними вызовами, удобнее вставить твою проверку в 'on_item_drop' (function actor_binder:on_item_drop (obj)). Т.о. твоя проверка будет вызываться только при потере какого-либо предмета актором.

2. Проверив потерю именно пистолета (например по class_id для потерянного obj), и проверив наличие какого-либо пистолета (например из таблицы или итерацией инвентаря) у актора - выбрать(запомнить) желаемый пистолет.

3. Вставить выбранный пистолет в слот можно, удалив его у актора и заспавнив его обратно в рюкзак актора. Пистолет автоматом встанет в пустой слот.

Прим: При вызове из апдейта актора - при любом выкладывании предмета из пистолетного слота (т.е. слот пустой) у тебя будет автоматом вкладываться в слот имеющийся ... Тебе это надо?

Сообщение было успешно отредактировано Artos (18-07-2010 21:30 GMT3 часа, назад)

aqraccy
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 1455
Откуда: из Обломовки я.
Занятие: Старший редактор/переводчик для CallofDutyNews.ru
Возраст: 29

15-06-2012
18-07-2010 21:37 GMT3 часа #1295004   Split
Artos

Да, именно так. Это может пригодиться во время затяжной перестрелки. Например я сижу за укрытием, опрокинутой колонной например. Стреляю из Автомата, патроны кончились, беру пистолет, патроны кончились. У меня есть запасной, но пока я его вытащу, пройдет уйма времени. Да и нажать клавишу i при этом удерживая Shift + C, да плюс мышью выбрать пистолет... В общем было бы удобно.

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

Огромное спасибо за отзыв!


waran
[1] Странник
Онлайн статус=0  Профиль    




Посты: 99
Откуда: за кордоном
Занятие: две дочурки, ПК, автотюнинг и дрифт.
Возраст: 47

20-07-2009
18-07-2010 21:50 GMT3 часа #1295014   Split
Кто подскажет : как "прикрутить" звук ( ogg ешку) сервомоторов к экзоскелету при хождении ГГ в нём?
при беге конечно же звук (т.к. идёт нагрузка) должен меняться .


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

18-07-2010 22:24 GMT3 часа #1295042   Split
aqraccy
То, для чего ты затеял - по сути чит.
в 'bind_stalker.script' добавляем:
Код:
function actor_binder:on_item_drop (obj)
  ...
  aqra.update(obj)
end

в 'aqra.script' вставляем что-то типа:
Код:
function update(oItem)
  if obj and isWeapon(obj) then --/ проверка потери именно оружия
    if not db.actor:item_in_slot(2) then --/ проверка пустого пистолетного слота
      --/ итерация по списку пистолетных секций
      for k,v in pairs({"wpn_pm","wpn_pb","wpn_beretta","wpn_hpsa","wpn_fort"}) do
        if db.actor:object(v) then --/ проверка имеет ли данный пистолет
          local obj_se = alife():jbject(db.actor:object(v):id) --/ серверный объект
          if obj_se then
            alife():release(obj_se, true) --/ удаляем
            alife():create(v, db.actor:positiom(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) --/ спавним в рюкзак актору
          end
        end
      end
    end
  end
end

Естественно НЕ проверял на оЧепятки и на корректность...


waran
А в чем загвоздка?
Проверяешь в апдейте актора надетость именно экзы и запускаешь периодически проигрыш нужного звука ...

Сообщение было успешно отредактировано Artos (18-07-2010 22:24 GMT3 часа, назад)

aqraccy
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 1455
Откуда: из Обломовки я.
Занятие: Старший редактор/переводчик для CallofDutyNews.ru
Возраст: 29

15-06-2012
18-07-2010 22:16 GMT3 часа #1295056   Split
Artos

Огромное спасибо! Буду проверять.

А почему чит?


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

18-07-2010 22:33 GMT3 часа #1295066   Split
aqraccy
Неписи и так безмозглы, и экономя время актора на обязательных для реальной ситуации операциях (достать из рюкзака запасное оружие), ты их еще более делаешь уязвимыми ...

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


P.S. Кобура - это и есть пистолетный слот. Не может быть в руках пистолет и в кобуре - запасной!
'Разгрузка' - это уже иное ...
Раз ставил сам точность НПС 95%, вроде как усложняя игру, то ... странновато выглядит 'облегчение' от рутинных операций.
Ну да это уже - на вкус и цвет ... Не вижу повода для флуда.
Хм, Сяк еще не сделал NLC6, а к моду уже аддоны ваяют ...


aqraccy
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 1455
Откуда: из Обломовки я.
Занятие: Старший редактор/переводчик для CallofDutyNews.ru
Возраст: 29

15-06-2012
18-07-2010 22:35 GMT3 часа #1295072   Split
Artos

У меня просто стоит вероятность попадания НПС 95%. Это и есть их мозги :). А пистолет запасной у меня в кобуре на бедре)

Кстати видел NLC 6 разгрузку. Так вот можно сделать так, чтобы если положить запасной пугач, то тогда бы срабатывал мой апдейт, точнее твой. :) Тогда по честному!


Но ведь можно носить две кобуры. Или в карман класть.


А мы люди такие)

Сообщение было успешно отредактировано aqraccy (18-07-2010 22:35 GMT3 часа, назад)



Форумы > Архив > Склад > Вопросы и ответы (ТЧ по 11.09.10)

Страница 2 из 69«12345 »Последняя


Эта тема закрыта, публикация новых сообщений недоступна.



???????@Mail.ru Rambler's Top100
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2024 «Stalker-Portal.ru»