How to create a group? (S.T.A.L.K.E.R.: Shadow of Chernobyl)
Establishment of new groupA new group
Today we will create a new group. Let's call it, say, Wind. It does not matter.
Practice:
Basic level
1. To start game_relations.ltx and in the relationship table groups at the end and in the title add the name of his group, and the coefficients of the attitudes of the other groups. Also, don't forget to register her own attitude towards other factions:
[communities_relations]
;|actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg |freedom|bandit |zombied|strange|trader|arena_enemy|wind|
;================================================= ================================================== ==============================
actor = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
actor_dolg = 0, 0, 0, 0, -5000, -500, -5000, 5000, 600, -5000, -5000, -5000, 0, 0, -5000
actor_freedom = 0, 0, 0, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, -5000, 0
stalker = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
monolith = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, 5000, 5000, -5000, 0, -5000, 0
military = -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, -5000, -5000, -5000, 0, 0, -5000, 0
killer = -5000, -5000, 0, -5000, -5000, -5000, 5000, -5000, -5000, -5000, 0, -5000, -5000, 0, -5000, 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, -5000, 0
zombied = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, 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
arena_enemy = -5000, -5000, -5000, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, 0, 0, 0
wind = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
Also, change this line to include the name and number groupings:
;the names of the groups
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 wind, 18,
And counting row by row starting at the top. Although there is a small nuance. The first three lines - the numbering starts from zero, with the other groups she is going as it should. For wind put up 18 as we this group separated from the others.
Further, in [communities_sympathy] in the end add the grouping factor and sensibility - smaller it is, the smaller the ratio of the group will change for you in General:
[communities_sympathy]
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
wind = 0.0
2. After that, the file death_manager*****are you searching for ipt string local community_list and in parenthesis add the name of his group:
init_drop_settings function()
local community_list = { stalker, dolg, freedom, bandit, military, zombied, ecolog, killer, monolith,
arena_enemy, actor_dolg, wind }
3. In the file death_items_by_communities.ltx write [x]:stalker (instead of x - the name of your group):
[...]
af_dummy_spring = 0
af_fuzz_kolobok = 0
;Food
vodka = 0
[arena_enemy]
[actor_dolg]
[wind]: stalker
bread = 0
kolbasa = 0
vodka = 0
energy_drink = 0.3
4. If provided by the fighters spawn new groups in se_respawn*****ipt prescribed in local simMaxCount = { after lines with zombified stalkers line:
wind_novice = 20, wind_regular = 20, wind_veteran = 20, wind_master = 6,
5. When killing NPC new factions, the game will not fail xr_statistic*****ipt
after the line:
zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,
write
dark_stalker_novice = 1, dark_stalker_experienced = 2, dark_stalker_veteran = 3, dark_stalker_master = 4,
6. Well character_desk_x.xml select any NPC (or group) change the group in their:
esc_wolf_name
ui_npc_u_stalker_neytral_balon_1
esc_wolf_bio
esc_wolf
wind
[...]
7. To the character in the column Group show wind and Wind, register the corresponding line in the file string_table_general.xml:
The wind
Loner
[...]
8. There is the opportunity to create for our new group where they will go (*_terrain to take from m_stalker.ltx):
That is, for example, there is a section:
[stalker_terrain]
255,000,255,255
008,001,255,255 ;Allowed to go in dangerous places on the bar
012,001,255,255 ;Allowed to walk on dangerous places for Military
Then you can create a new, similarly:
[wind_terrain]
255,000,255,255
008,001,255,255 ;Allowed to go in dangerous places on the bar
012,001,255,255 ;Allowed to walk on dangerous places for Military
010,001,255,255 ;Allowed to go in dangerous places on the amber
Here, obviously, are the coordinates of the level. For each level there is its initial coordinate.
Advanced level:
This method is quite primitive. It's not a full group. We need the appropriate dialogue, the possibility of obtaining quests and joining the group, unique NPC.
Quests:
Add quests that need to be executed for grouping. Yet, simple tasks common types.
First, insert in the list of dialogs of the character of the following line:
[something]_dialog
[something]_reward
Examples: tm_trader_dialog, tm_wolf_dialog...
Attention! The method is not verified.
We added the branch dialog Got a job?, and branch to reward for the quest/abandon them. Now let's register in task_manager.ltx set of new jobs [list]
[...]
;--------Wind------------------------
;----------Kill Stalker----
wind_kill_stalker
;----------Find Item----
wind_find_item
[...]
;tasks for Wind
[wind_find_item]
type = find_item
community = actor
text = [link to the text story to the customer about the job]
description = [link to text description of the task]
parent = [name NPC client]
target = scientific_outfit
reward_money = 5000
reward_reputation = +5
reward_rank = 4
reward_item = wpn_sig_m1
time = 86400
[wind_kill_stalker]
type = kill_stalker
community = actor
text = [link to the text story to the customer about the job]
description = [link to text description of the task]
parent = [name NPC client]
target = sim_stalker_master_master
reward_money = 4000
reward_reputation = +5
reward_rank = 9
reward_item = ammo_5.56x45_ap, ammo_5.56x45_ap, ammo_5.56x45_ap
time = 86400
Do not forget to include descriptions of tasks to text arrays. Read more about how to edit the task_manager.ltx, read the lesson on similar quests.
Yes, and register themselves branches of the dialogues in the file dialogs.xml. Here is an example of how this is done for tasks, Debt:
task_manager.init_dolg_task_dialog
task_manager.init_dolg_reward_dialog
task_manager.has_active_vendor_tas k
Consequently, we go to where string task_manager.init_dolg_task_dialog in task_manager*****ipt:
init_dolg_task_dialog function(dlg)
get_random_task():init_task_dialog(dlg, dolg)
By analogy we do with our Wind.
Join the group:
We realize the possibility of joining the group.
Prescription in dialogs*****ipt such action's:
-----------------------------------------------------------------------------------
-- Community
-----------------------------------------------------------------------------------
[...]
actor_set_wind function (actor, npc)
printf (ACTOR NOW IN COMMUNITY WIND
if db.actor then
db.actor:set_character_community (actor_wind, 0, 0)
end
return true
end
Then, create the dialogue and make it the phrase with the action'th species actor_set_wind. Suggest to study the lesson on dialogue.
[edit]
New NPC
All of the above it is best to hang on to a new, unique character. The way the spawn are described here.
The computed coordinates
Found on one forum, quite interesting.
How to get the coordinates for the spawn of an object or NPC. This script was found on some forum, tested and working the spawn function has the form
alife():create(section,position,levelvertex,gameve rtex)
Where:
section - the name of the/what spawnin
position levelvertex,gamevertex coordinates, the vertex position of the object, and the sector map.
Write in detail how very PRO100 to know:
Go, pre-unpacked, in the directory gamedata/scripts/ And there in the file ui_main_menu*****ipt at the end add this:
function main_menu:OnButton_credits_clicked()
local text
local vid
local gvid
local a = vector()
local text
a = db.actor:position()
vid = db.actor:level_vertex_id()
gvid = db.actor:game_vertex_id()
text = Position:\\nX= ..a.x..\\nY= ..a.y..\\nZ= ..a.z..\\nlevel_vertex= ..vid..\\ngame_vertex_id= ..gvid
news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
Now go to the place (or feet or demorecorder), where spawnin object, go to the game menu, and click on the CREATORS (CREDITS) - according to our eyes does not appear any list creators, and we'll hear a beep, then go into the game menu and in the message line indicate all the information. All F12 or on paper.
supposedly great but why you can certainly have some fun and create a group that attacks one and all (like monolith ) but they are just a huge number and go on all maps (the proposal to consider from the jokes seriously, please do not take)
I created everything is fine made me eject!!!
And Yes it would be good to create a group...
Works if you'd do the right thing,take the same Wind Il clear sky created,and the texts of the build take!
I normally created.however, there is a problem with the new npc but you can take and old.if th write
nikitiooz if you're talking about game_relations.ltx it lies at the following address: config\creatures
So you want to create a new group but don't know how, then this article is for you.
1. Decide how you want to name your group well, for example the Anarchists.
2. In the file game_relations.ltx you need to add the group:
A) In a relationship table:
[communities_relations]
;|actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg |freedom|bandit |zombied|strange|trader|arena_enemy| anarhist |
;=====
actor = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
actor_dolg = 0, 0, 0, 0, -5000, -500, -5000, 5000, 600, -5000, -5000, -5000, 0, 0, -5000
actor_freedom = 0, 0, 0, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, -5000, 0
stalker = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
monolith = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, 5000, 5000, -5000, 0, -5000, 0
military = -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, -5000, -5000, -5000, 0, 0, -5000, 0
killer = -5000, -5000, 0, -5000, -5000, -5000, 5000, -5000, -5000, -5000, 0, -5000, -5000, 0, -5000, 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, -5000, 0
zombied = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, 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
arena_enemy = -5000, -5000, -5000, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, 0, 0, 0
anarhist = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
b) in the below communities:
;the names of the groups
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, anarhist, 18,
C) section communities_sympathy add:
[communities_sympathy]
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
anarhist = 0.0
3) death_manager.looking for script a string local community_list and add your gruppirovku brackets:
init_drop_settings function()
local community_list = { stalker, dolg, freedom, bandit, military, zombied, ecolog, killer, monolith,
arena_enemy, actor_dolg, anarhist }
4) In the file death_items_by_communities.ltx write:
af_dummy_spring = 0
af_fuzz_kolobok = 0
;Food
vodka = 0
[arena_enemy]
[actor_dolg]
[anarhist]: stalker
bread = 0
kolbasa = 0
vodka = 0
energy_drink = 0.3
5) spawning groups of fighters in se_respawn.script writing local simMaxCount = {after a zombie:
anarhist_novice = 20, anarhist_regular = 20, anarhist_veteran = 20, anarhist_master = 6,
6) when killing NPCs, new factions, the game will not fail xr_statistic.script after lines with zombies:
zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,
write:
anarhist _stalker_novice = 1, anarhist _stalker_experienced = 2, anarhist _stalker_veteran = 3, anarhist _stalker_master = 4,
6) Now character_desk_x.xml select any NPC and see:
stalker
Write:
anarhist
7) To the group was displayed as an Anarchist will have to register it in the file string_table_general.xml:
< string_table>
< string id=anarhist>
< text>Anarchists< /text>
< /string>
8) and of course membership in our new group, for this you need a script dialogs.script, in it write:
-----------------------------------------------------------------------------------
-- Community
-----------------------------------------------------------------------------------
[...]
actor_set_anarhist function (actor, npc)
printf (ACTOR NOW IN [anarhist] COMMUNITY)
if db.actor then
db.actor:set_character_community (actor_anarhist, 0, 0)
end
return true
end
Well, insert this function in the dialogue.All.
Article written Byurrer