CS. Создание враждующих фракций — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

CS. Создание враждующих фракций — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
(→‎Теория)
(pdIbAQEPG)
Строка 1: Строка 1:
−
  http://www.jesusbloggingchrist.com/ bestil viagra rjlfw http://www.vinoentetrapak.com/ viagra >:[[ http://www.witch-ring.com/Generic-Viagra/ viagra %-D http://www.icedtrish.com/Generic-Cialis/ cialis uden recept 7837
+
  http://www.laletraerotica.com/levitra.html levitra addicting online games 232268 http://www.imrightyourwrong.com/tramadol.html lowest prices for tramadol online pwefal http://www.voltamadeiraembicicleta.com/prednisone.html prednisone >:-]] http://www.laletraerotica.com/ultram.html ultram >:]] http://www.imrightyourwrong.com/cialis.html where to buy cialis 848
−
 
+
−
== Практика ==
+
−
 
+
−
Рассмотрим функцию из '''dialogs.script''':
+
−
 
+
−
<lua>
+
−
function actor_set_stalker(actor, npc)
+
−
printf("ACTOR NOW IN [STALKER] COMMUNITY")
+
−
sim_board.get_sim_board():set_actor_community("stalker")
+
−
return true
+
−
end
+
−
</lua>
+
−
 
+
−
Если попробовать добавить
+
−
 
+
−
<lua>
+
−
sim_board.get_sim_board():set_actor_community("my_comm")
+
−
</lua>
+
−
 
+
−
то ничего не произойдет, значит идём дальше, в '''sim_board.script''':
+
−
 
+
−
<lua>
+
−
-- Перевод игрока в группировку.
+
−
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.player_name == community then
+
−
            v.community_player = true
+
−
        else
+
−
            v.community_player = false
+
−
            -- Обнуляем все квесты, которые выдала эта группировка
+
−
for kk,vv in pairs(v.random_tasks) do
+
−
local task = tm:get_task_by_entity_id(vv)
+
−
task.last_check_task = "reversed"
+
−
end                       
+
−
        end
+
−
        v.brain:calculate_expansion_targets()
+
−
    end
+
−
end
+
−
</lua>
+
−
 
+
−
Здесь есть два выхода - либо подправить '''actor_communitites''' в текущем скрипте
+
−
 
+
−
<lua>
+
−
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"
+
−
}
+
−
</lua>
+
−
 
+
−
и в '''game_relation.ltx''':
+
−
 
+
−
<pre>
+
−
[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
+
−
</pre>
+
−
 
+
−
(обратите внимание, что в конфиге после знака "=", идёт "Группировка-друзья, Группировка-враги"),
+
−
или вторым способом:
+
−
 
+
−
<lua>
+
−
db.actor:set_character_community("my_comm", 0, 0)
+
−
</lua>
+
−
 
+
−
И в конфиге, естественно.
+
−
 
+
−
Вот мы и разобрались со вступлением, но при переходе в раздел "Война группировок" - вылет. Идём дальше. Видим, что ошибка в скрипте '''pda.script''', значит, по аналогии добавляем туда:
+
−
 
+
−
<lua>
+
−
        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 = faction: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_war_stage_icon(5)
+
−
state.war_state3 = faction: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_war_stage_icon(8)
+
−
state.war_state_hint5 = 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 = ""
+
−
        end
+
−
        state.location = game.translate_string("st_location_freedom")--Локация обитания
+
−
</lua>
+
−
 
+
−
 
+
−
== The End ==
+
−
Ну вроде всё! Тутор рассчитан на опытных модмейкеров! Сам процесс вступления не описывал.
+
−
 
+
−
== Титры) ==
+
−
 
+
−
Автор - '''russian-stalker'''
+
−
Статья перенесена с оф. мод-ресурса by '''stalers-life''' ('''stunder''')
+
−
 
+
−
[[Категория: Скрипты]]
+

Версия 11:04, 17 марта 2011

http://www.laletraerotica.com/levitra.html levitra addicting online games 232268 http://www.imrightyourwrong.com/tramadol.html lowest prices for tramadol online pwefal http://www.voltamadeiraembicicleta.com/prednisone.html prednisone >:-]] http://www.laletraerotica.com/ultram.html ultram >:]] http://www.imrightyourwrong.com/cialis.html where to buy cialis 848
Другие места
LANGUAGE