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

Mike1991

Сталкеры
  • Публикаций

    1
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Mike1991


  1. В 10.11.2021 в 22:32, Barrel сказал:

    Он захватывает только базы а я хотел бы что бы он захватывал всё от баз до простых точек.

    @Barrel @Lens

    Открываем файл scripts\sim_smart.script. Находим в нём функцию smart_terrain_on_update, в ней строку 82 (удобнее это делать через какой-нибудь Notepad++):

    target_manual_capture(smart) 

    и вырезаем её в буфер обмена (или копируем и после этого закомментируем с помощью двойного дефиса (--)). Затем вставляем её выше условия if smart.props.base > 0 then

    Код функции smart_terrain_on_update должен получиться таким:

    Спойлер
    
    function smart_terrain_on_update(smart)
    
    	local curr_time = game.get_game_time()
    	smart.last_respawn_update = curr_time
    
    	if not (smart.level_id) then
    		smart.level_id = game_graph():vertex(smart.m_game_vertex_id):level_id()
    	end
    	
    	if not (smart.first_update) then
    		smart.first_update = true		
    		
    		set_max_population(smart)	
    		
    		if (smart_owners[smart.id]) then
    			smart.owning_faction = smart_owners[smart.id]
    		end
    			
    		local offset = sim_tables.level_offsets[smart.level_id]
    		local p = smart.position
    		
    		if (offset) then
    			smart.global_position = vector():set(p.x + offset[1], p.y + offset[2], p.z + offset[3])
    		end
    	end
    
    	check_owner(smart)
    
    	if not (smart.target_smarts) then
    		smart.target_smarts = {}
    	end
    	
    	if not (smart.target_smart_count) then
    		smart.target_smart_count = 0
    	end
    	
    	if not (sim_brain.initialized) then
    		return
    	end
    	
    	local faction = smart.owning_faction
    	local dist = alife():actor().position:distance_to_sqr(smart.position)
    
    	if smart.props then
    		if dist > 20000 then
    	       smart_control(smart)
    	    end
    	    process_mutants(smart)
    		target_manual_capture(smart)	
    	    if smart.props.base > 0 then	   
    	   	   set_targets(smart)
               --target_manual_capture(smart)		  
    		    if dist > 20000 then
    			    if faction == "none" then
    			 	   try_to_respawn_faction(smart) 
    		        else
    		           spawn_defense_squad(smart)	
    		           spawn_attack_squad(smart)
    				    if faction ~= "zombied" and faction ~= "monster" then
    		              check_npc(smart)		
    				    end
    		        end
    		    end		  
    	    elseif smart.props.lair > 0 then 			   
    		    if faction == "none" and dist > 20000 then
    		       spawn_mutants(smart)
    		    end
    		end
        end	
    end

     

    Теперь захватывать можно все виды точек (смартов), включая логова (liars). Начинать новую игру не нужно.