Теорія
Для мого мода мені знадобилося зробити нове угруповання. Власне, для початку ви повинні створити своє угруповання. Не люблю теорій, перейдемо одразу до практики!
Практика
Розглянемо функцію з 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
Ну начебто все! Тутор розрахований на досвідчених модмейкерів! Сам процес вступу не описував.