Сповіщення
Очистити все

Створення ворожої фракції


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
7 місяців тому
 

Теорія

Для мого мода мені знадобилося зробити нове угруповання. Власне, для початку ви повинні створити своє угруповання. Не люблю теорій, перейдемо одразу до практики!

Практика

Розглянемо функцію з dialogs.script :

 
function actor_set_stalker ( actor, npc ) 
	printf ( "ACTOR NOW IN [STALKER] COMMUNITY" ) 
	sim_board.get_sim_board ( ) :set_actor_community ( "stalker" ) 
	return  true 
end
 

Якщо спробувати додати

 
sim_board.get_sim_board ( ) :set_actor_community ( "my_comm" )
 

то нічого не станеться, значить йдемо далі, в sim_board.script :

 
-- Переведення гравця у групування. 
function sim_board:set_actor_community ( community ) 
    ---- Встановлюємо групування гравця 
    db.actor:set_character_community ( actor_communitites [ community ] , 0 , 0 ) 
	local tm = task_manager.get_task_manager ( )
 
    for k,v in  pairs ( self.players )  do 
        if v.community_player 
            = true else 
            v.community_player = false -- Обнуляємо всі квести, які видало це угруповання for kk ,vv in pairs ( v. random_tasks ) do local task = tm : 
				_ _ _ _ 
        _ _ _ _ _
        
            
			  
				
			                        
        
    

 

Тут є два виходи – або підправити actor_communitites у поточному скрипті

 
local actor_communitites = { 
        csky = "actor_csky" ,
        dolg = "actor_dolg" ,
        freedom = "actor_freedom" ,
        bandit = "actor_bandit" ,
        stalker = "actor_stalker" ,
        none = "actor" ,
        zombied = "zombied" ,
        monolith = "monolith" ,
        my_comm = "my_comm" 
}
 

і в game_relation.ltx :

 
[ actor_communities ]
 actor            = actor, actor 
actor_csky       = csky, renegade 
actor_bandit     = bandit, stalker 
actor_dolg       = dolg, freedom 
actor_freedom 	 = freedom, dolg 
actor_stalker 	 = stalker, bandit 
my_comm          = my_comm, bandit
 
[ pda_rank_communities ]
dolg
freedom
stalker
bandit
csky
renegade
my_comm
 

(зверніть увагу, що в конфізі після знака "=", йде "Угруповання-друзі, Угруповання-вороги"), або другим способом:

 
db.actor:set_character_community ( "my_comm" , 0 , 0 )
 

І в конфізі, звісно.

Ось ми і розібралися зі вступом, але при переході до розділу "Війна угруповань" - виліт. Йдемо далі. Бачимо, що помилка в скрипті pda.script , значить, за аналогією додаємо туди:

 
        elseif ( state.faction_id== "freedom" )  then 
        state.name = game.translate_string ( "ui_st_name_freedom" ) 
        state.icon = "freedom_wide" 
        state.icon_big = "freedom_big" 
        if faction ~= nil  then 
        	state.target = get_war_target_title ( ) 
        	state.target_desc = faction:get_war_target_descr ( ) 
        else 
        	state.target = "" 
        	state.target_desc = "" 
        end 
        state.location = game.translate_string ( "st_location_freedom" )
 
        state.war_state1 = faction:get_war_stage_icon ( 4 ) state.war_state_hint1 
        = faction:get_war_stage_icon ( 4 ) 
		state.war_state2 = faction :get_war_stage_icon ( 5 ) 
		state.war_state_hint2 = faction : 
		get: get_war_stage_icon ( 6 ) 
		state.war_state_hint3 = faction:get_war_stage_icon ( 6 ) state.war_state4 
		= faction:get_war_stage_icon ( 7 ) state.war_state_hint4 
		= faction: get_war_stage_icon ( 
		7 ) state.war_state5 = 
		faction:get faction:get_war_stage_icon ( 8 )
 
--Наша частина 
    elseif ( state.faction_id== "my_comm" )  then 
        state.name = game.translate_string ( "ui_st_name_freedom" ) --Ім'я нашого угруповання у війні угруповань 
        state.icon = "freedom_wide"  --Іконка в інвентарі 
        state. icon_big = "freedom_big"  --Іконка у війні угруповань 
        if faction ~= nil  then 
        	state.target = faction:get_war_target_title ( ) state.target_desc = 
        	faction:get_war_target_descr ( ) 
        else 
        	state.target = " "
         
        	state.target_desc 
         = .location = game.translate_string ( "st_location_freedom" ) --Локація проживання
 

 

The End

Ну начебто все! Тутор розрахований на досвідчених модмейкерів! Сам процес вступу не описував.


   
Цитата