Creating Factions And Unique NPCs

From Mod Wiki

(Difference between revisions)
Jump to: navigation, search
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.

Personal tools