Creating Factions And Unique NPCs
From Mod Wiki
Revision as of 16:52, 12 July 2008 (edit) Don Reba (Talk | contribs) (New page: ==Creating new factions== This is a short tutorial i on making factions its extracted from the russian wiki and i have edited it so that those who cant speak russian or was having a hard ...) ← Previous diff |
Revision as of 16:53, 12 July 2008 (edit) (undo) Don Reba (Talk | contribs) m (Creating Factions And Unique NPC's moved to Creating Factions And Unique NPCs) Next diff → |
Revision as of 16:53, 12 July 2008
Creating new factions
This is a short tutorial i on making factions its extracted from the russian wiki and i have edited it so that those who cant speak russian or was having a hard time understanding it can now do this, that plus i could never find a tutorial on how to do this.
I assume you have already extracted the DB's
We will make a faction called wind
1. To start, open game_relations.ltx and relations factions to the table at the end of the title and add the name of the factions and its relations ratios from other factions. Also, do not forget to register its own attitude to other groups:
[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, adding there name and number groupings:
titles factions communities 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,
add wind into the communites_sympahy section
[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, in a file death_manager.script line looking for local community_list in parentheses and add the name of your group:
function init_drop_settings() local community_list = { "stalker", "dolg", "freedom", "bandit", "military", "zombied", "ecolog", "killer", "monolith", "arena_enemy", "actor_dolg", "wind" }
3. 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 ;Еда vodka = 0 [arena_enemy] [actor_dolg] [wind]: stalker bread = 0 kolbasa = 0 vodka = 0 energy_drink = 0.3
4. If respavn provides a new group of fighters, in se_respawn.script set in local simMaxCount = (row after row with zombified stalkers:
wind_novice = 20, wind_regular = 20, wind_veteran = 20, wind_master = 6,
5. Write the faction in xr_statistic.script as follows just under the zombied lines:
zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,
write
wind_novice = 1, wind_experienced = 2, wind_veteran = 3, wind_master = 4
6. in character_desk_x.xml choose any NPC (or group) and changing its community:
<!---esc_wolf---> <specific_character id="esc_wolf" team_default = "1"> <name>esc_wolf_name</name> <icon>ui_npc_u_stalker_neytral_balon_1</icon> <bio>esc_wolf_bio</bio> <class>esc_wolf</class> <community>wind</community> [...]
7. To have character in the "Grouping" not to show "wind", and "Wind", record put the following at the top the file under the lines shown in bold in file string_table_general.xml:
<?xml version="1.0" encoding="windows-1251" ?> <string_table> <string id="wind"> <text>wind</text> </string> <string id="actor"> <text>wind</text> </string> [...]
Your new faction should now be working and whoever you changed will now be part of that faction you can replace wind with whatever you want them to be called.
Creating new unique npc's
This is the way to do it if spawing the NPC from the all.spawn and its also needed to keep him there this is how i spawned blade in my LITZ mod
the things below don't show the slashs it just takes them away so don't copy and paste it all as it wont work
I Really hope this helps you
you have to edit quite a few files:
Config>Text>ENG:
Stable_bio_name.xml
Config>Gameplay:
NPC_Profile.xml Character_desc_escape
Config>Cretures:
m_stalker.ltx
scripts or Config>scripts not sure which one
Change the according gulag script EG:gulag_escape
and then you would have to edit the all.spawn to accomadate and spawn him
(shows example of blade My character from my LITZ mod)
m_stalker.ltx
[esc_blade]:stalker character_profile = esc_blade visual = actorsdolgstalker_do_nauchniy.ogf corpse_visual = actorsdolgstalker_do_nauchniy.ogf immunities_sect = stalker_immunities
thats placed at the bottom
Character_desc_escape.XML
<!-------------------------------------esc_blade-------------------------------------------------------> <specific_character id="esc_blade" team_default = "1"> <name>esc_blade_name</name> <icon>ui_npc_u_stalker_do_nauchniy</icon> <bio>esc_blade_bio</bio> <class>esc_blade</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <rank>820</rank> <reputation>840</reputation> <money min="2000" max="5000" infinitive="0"></money> <snd_config>characters_voicehuman_03dolg</snd_config> <crouch_type>0</crouch_type> <visual>actorsdolgstalker_do_nauchniy</visual> <supplies> [spawn] n wpn_walther n ammo_9x19_pbp = 1 n wpn_groza n ammo_9x39_ap = 1 n ammo_9x39_sp5 = 1 n ammo_vog-25p = 2 n #include "gameplaycharacter_items.xml" n #include "gameplaycharacter_food.xml" n #include "gameplaycharacter_drugs.xml" </supplies> #include "gameplaycharacter_criticals_6.xml" #include "gameplaycharacter_dialogs.xml" <start_dialog>hello_dialog</start_dialog> </specific_character>
NPC_Profile.XML
<character id="esc_blade"> <class>esc_blade</class> </character>
Stable_bio_name
<string id="esc_blade_name"> <text>Blade</text> </string> <string id="esc_blade_bio"> <text>The leader of the Duty camp near the military outpost, his good leadership skills and tactics won Duty the camp and overthrew the Bandits</text> </string>
(shows all.spawn section for blade):
[870] ; cse_abstract properties section_name = stalker name = esc_blade position = 109.19536590576, 7.1485390663147, 0.9805214738846 direction = 0.0445535257458687,-0.000645029998850077,0.0144814234226942 ; cse_alife_trader_abstract properties money = 5000 character_profile = esc_blade ; cse_alife_object properties game_vertex_id = 119 distance = 3.5 level_vertex_id = 410518 object_flags = 0x==bf custom_data = <<END [smart_terrains] none = true END ; cse_visual properties visual_name = actorsdolgstalker_do_nauchniy ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 5 health = 2 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 2 upd:timestamp = 0x6d6d695f upd:creature_flags = 0x75 upd osition = -210.632614135742,-20.050708770752,-142.461120605469 upd _model = 0 upd _torso = -0.000645029998850077,0.0445535257458687,0 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 5 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd rev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 1,0,0,2,0 predicate4 = 2,2,1,2 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties
Apart from the gulag scripts thats pretty much it i belive however if i missed something out im sure someone will point it out and correct it or even explain it better
Hope this helped you please tell me if this worked for you.