Když už se budete snažit přidávat novější zbraně, dbejte na dvě věci:
- Zbraně by měly mít logiku. Je totální zbytečnost rvát do hry rotační kulomety, raketomety s tlumičem nebo pistole střílející broky.
- Existují dvě verze zbraní, lišící se v modelech rukou. Původní, hodně nekvalitní a hranaté byly v originální hře, nové a hezčí (byť trochu zabugované) ve stylu Clear Sky nebo Call of Pripyat jsou dílem KingFridaye (Reanimation Project). Na originální modely rukou existuje zbraní víc a pokud nedychtíte skutečně po exotických kouscích, bohatě si vystačíte s povedenějšími modely z Reanimationu. Rozdíl můžete vidět na srovnávacích screenshotech.
Klasická verze rukou

Reanimation

Je lepší se rozhodnout ještě před samotným modifikováním, čemu vlastně dáte přednost. Ušetříte si pak spoustu problémů a ve výsledku bude jednotnost modelů působit mnohem lepším dojmem, než kdybyste měli na jedné polovině zbraní původní ruce a na další polovině už nové.
Tak, to bysme měli základ. Teď přejdeme k hlavnímu bodu, a to seznamu všech potřebných souborů. Předně je to funkční a pěkný model. Tady pozor, protože najít povedené zbraně dá opravdu zabrat a pokud modding myslíte aspoň trochu vážně, vyvarujte se používání zbraní z Arsenal Modu (pokud tedy ve hře nechcete mít pomačkané krabice nejasného původu). Modely mají příponu *.ogf a *.ogm, z nichž spoustu můžete najít na
AMK fóru (bohužel ve valné většině případů bez sebemenšího náhledu) a nebo na
FPSBanana. Stejně tak nutné je mít i textury, bez kterých je nám zbraň tak trochu k ničemu.
Pozor! Zbraně ze Stínu nejde kombinovat s Clear Sky a ani Call of Pripyat (a ani naopak)!U zbraní je ve valné většině i konfig, který je pro hru nezbytný. Teď si v kostce ukážeme, na co je třeba se zaměřit a co si eventuelně přepsat pro vlastní účely. Jako mustr nám poslouží konfig z Enfieldu L85. Pro tyhle účely si teď zkusíme přidat pušku AKM, což je nástupce legendárního AK-47.
===================================================
KONFIG - ZÁKLAD
===================================================[wpn_l85]:identity_immunities - Název zbraně, pod kterou se ve hře pak bude vyskytovat (například wpn_kalasnikov)
$spawn = "weapons\l85" - Spawn záznam, stejně jako minule si sem napíšeme vlastní název
class = WP_AK74 - Typ zbraně. Pro pušky platí většinou WP_AK74 nebo WP_LR300, pro pistole pak WP_PM nebo WP_WALTH. Když si chceme udělat automatickou pistoli, je potřeba k ní dodat popisek WP_AK74 a doplnit chybějící údaje z konfigů pro automatické zbraně (například launch_speed a další).
description - Popis co se zobrazí v inventáři, texty jsou v gamedata/config/text/cze/string_table_enc_weapons.xml
cost = 13000 - Cena
weapon_class = assault_rifle - Typ zbraně (shotgun, assault_rifle, sniper_rifle, heavy_weapon)
===================================================
REŽIMY STŘELBY A KAPACITA ZÁSOBNÍKŮ
===================================================ammo_mag_size = 30 - Velikost zásobníku
ammo_class = ammo_5.56x45_ap - Použítá munice (seznam je v gamedata/config/weapons/ weapons.ltx)
grenade_class = ammo_m209 - Granáty
fire_modes = 1, 3, -1 - Režim střelby: automaticky (1), dvouranná dávka (2), tříranná dávka (3), -1 (pojistka)
slot = 2 - Slot v inventáři, kde zbraň bude: pistolový slot (1), puškový slot (2). Dejte si pozor na velikost ikony. Pokud bude zbraňový slot menší než ikona, hra spadne!
===================================================
INVENTÁŘ
===================================================inv_name = wpn-l85 - Název v inventáři
inv_name_short = wpn-l85 - Název v inventáři (kratší - používá se jenom pro označení munice)
inv_weight = 5 - Váha v inventáři
inv_grid_width = 5 - Šířka ikony (víc informací o ikonách je v tématu
o tvorbě ikon)
inv_grid_height = 2 - Výška ikony
inv_grid_x = 0 - Pozice ikony - souřadnice X
inv_grid_y = 12 - Pozice ikony - souřadnice Y
Pozor! Velikost ikony musí být menší nebo stejná, jako velikost inventárního slotu. V opačném případě hra spadne.
===================================================
CHARAKTERISTIKA ZBRANÍ
===================================================fire_dispersion_base = 0.14 - Přesnost zbraně: menší hodnota = vyšší přesnost
control_inertion_factor = 1.35f - Koeficient ovládání zbraně: menší hodnota = nižší přesnost (pozor na problémy s kamerou, co jsem popisoval v
tomhle tématu)
cam_relax_speed = 5 - Za jak dlouho se zbraň po výstřelu vrátí do výchozí polohy
condition_shot_dec = 0.0005 - Rychlost poškození zbraně
hit_power = 0.54, 0.58, 0.61, 0.64 - Účinek střely (stačí jedna hodnota, v ukázce jsou odlišnosti pro každou jednotlivou herní obtížnost)
hit_impulse = 140 - Energie střely. Doporučuju nastavit hodnotu v řádu desítek (max. 50), jinak budou předměty a mrtvoly po zásadu odskakovat dozadu
hit_type = fire_wound - Druh poškození po zásahu (nechejte na fire_wound)
fire_distance = 400 - Dostřel zbraně (v metrech - vzhledem k hernímu přepočtu vzdáleností je potřeba nastavit hodnoty trochu níž, hlavně u pistolí)
bullet_speed = 950 - Rychlost letu náboje
rpm = 650 - Kadence zbraně
time_to_aim = 1.0 - Jak dlouho trvá přechod z klidu do stavu míření
silencer_hit_power = 0.5 - Účinnost zbraně s nasazeným tlumičem - nastavit trochu níž než normální hit_power
silencer_hit_impulse = 120 - Energie střely s nasazeným tlumičem - nastavit o trochu níž než normální hit_impulse
silencer_fire_distance = 380 - Dostřel zbraně s nasazeným tlumičem - nastavit o trochu níž než normální fire_distance
silencer_bullet_speed = 800 - Rychlost náboje s nasazeným tlumičem - nastavit o trochu níž než normální bullet_speed
===================================================
VZHLED, DOPLŇKY A HUD
===================================================hud = wpn_l85_hud - HUD sekce (označená zeleně)
visual = weapons\l85\wpn_l85.ogf - Vzhled zbraně (gamedata/meshes/weapons)
scope_status = 1 - Optika napevno (1), snímatelná (2), nemožnost nasazení (0)
silencer_status = 2 - Tlumič napevno (1), snímatelný (2), nemožnost nasazení (0)
grenade_launcher_status = 2 - Granátomet napevno (1), snímatelný (2), nemožnost nasazení (0)
zoom_enabled = true - Možnost míření
scope_zoom_factor = 30 - Velikost přiblížení (u pistolí je výchozí hodnota 50, bez zoomu stačí nastavit hodnotu 90, hodnota 15 zapříčiní čtyřnásobný zoom, hodnota 30 zajistí dvojnásobný zoom)
scope_texture = wpn\wpn_crosshair_lr300 - Textura optiky (gamedata/textures/wpn)
scope_name = wpn_addon_scope - Název optiky (gamedata/config/weapons/weapons.ltx)
scope_x = 60 - Pozice ikony optiky v inventáři - posunem do mínusu se ikona posune doleva
scope_y = -2 - Pozice ikony optiky v inventáři - posunem do mínusu se ikona posune nahoru
silencer_name = wpn_addon_silencer - Název tlumiče (gamedata/config/weapons/weapons.ltx)
silencer_x = 190 - viz. scope_x
silencer_y = 10 - viz. scope_y
grenade_launcher_name = wpn_addon_grenade_launcher_m203 - Název granátometu
grenade_launcher_x = 128 - viz. scope_x
grenade_launcher_y = 28 - viz. scope_x
===================================================
ZVUKY
===================================================snd_draw = weapons\generic_draw, 0.5, 1 - Zvuk cvaknutí závěru po vytažení zbraně
snd_holster = weapons\generic_holster, 0.35 - Zvuk schování zbraně
snd_shoot = weapons\t_l85_shot - Zvuk střelby
snd_empty = weapons\gen_empty, 0.35 - Zvuk střelby naprázdno
snd_reload = weapons\l85_reload - Zvuk nabíjení
snd_shoot_grenade = weapons\gen_grenshoot - Zvuk výstřelu z granátu
snd_reload_grenade = weapons\gen_grenload - Zvuk nabíjení granátometu
snd_switch = weapons\groza_switch - Zvuk přepnutí režimu střelby / granátometu
snd_silncer_shot = weapons\silshot\556nato-2 - Zvuk výstřelu s nasazeným tlumičem
- Hodnoty za cestou ke zvuku slouží ke dvěma věcem:
- První hodnota určuje míru hlasitosti (0.5 = 50%, 1 = 100%)
- Druhá hodnota určuje prodlevu v přehrání zvuku (v sekundách)
[wpn_l85_hud] - HUD sekce - musí korespondovat s dřív zmíněným názvem
fire_point = 0,0,-0.5 - Informace
tadyfire_point2 = 0,0,-0.5position = 0.15,-0.06,-0.02 - Pozice zbraně v rukou (x, y, z)
- Hodnota X víc do mínusu = zbraň se posune doleva
- Hodnota Y víc do mínusu = zbraň se posune dolu
- Hodnota Z víc do mínusu = zbraň se oddálí od obrazovky
visual = weapons\l85\wpn_l85_hud.ogf - Vzhled modelu zbraně (gamedata/meshes/weapons)
===================================================
POZICE ZBRANĚ
===================================================zoom_offset = -0.15,0.06,-0
zoom_rotate_x = 0
zoom_rotate_y = 0
- Informace
tadyzoom_hide_crosshair = true
- Nastavuje, jestli se během míření schová zaměřovač
===================================================
POKRAČUJEME
===================================================Všechny názvy "l85" musíme samozřejmě přepsat podle toho, jak chceme, aby se zbraň jmenovala. Na ukázku si zbraň pojmenujeme třeba "akm". Konfig tedy v sobě nebude mít popisy k Enfieldu, ale zcela nové (pro přehlednost jsem konfig zkrátil a vypíšu sem jenom ty hlavní řádky):
Kód:
[wpn_akm]:identity_immunities
$spawn = "weapons\akm"
description = desc_akm
inv_name = wpn_akm
inv_name_short = wpn_akm
hud = wpn_akm_hud
visual = weapons\akm\wpn_akm.ogf
[wpn_akm_hud]
visual = weapons\akm\wpn_akm_hud.ogf
Soubor pak uložíme do složky gamedata/config/weapons pod názvem
w_akm.ltx.
Tak... když máme tuhle část z krku, otevřeme si v gamedata/config/weapons soubor
weapons.ltx a pod poslední záznam
#include na začátku souboru dopíšeme další -
#include "w_akm.ltx". Název musí korespondovat s názvem souboru ve weapons složce!
Teď už jenom zůstává si zbraň někam dodat - ať už
k překupníkům nebo do skrýše, případně za odměnu. Stejně tak musíme ještě dodat ke zbrani nový rank. To uděláme snadno v adresáři gamedata/config/mp. Otevřeme si soubor
mp_ranks.ltx a hned v první sekci
[mp_item_groups] si všimneme rozdělení pistolí, munice a pušek. V našem případě nás bude zajímat právě sekce pušek, na jejíž konec dopíšeme
mp_wpn_akm. Teď srolujeme kousek níž a do všech zbývajících rank sekcí (což jsou
[rank_0],
[rank_1],
[rank_2],
[rank_3] a
[rank_4]) dopíšeme to samé -
mp_wpn_akm. Změny uložíme.
Ranky jsou ve hře potřeba ze dvou důvodů - jednak hra rozliší, co jsme to vlastně přidali a druhak se po odhození zbraně nestane, že by se NPCčka zasekly a zíraly do blba (pokud hrajete s crackem, tak hra bez správného ranku rovnou spadne).
Ještě ale nekončíme. Teď si v adresáři gamedata/config/misc otevřeme soubor death_generic.ltx a podle toho, jakou jsme ke zbrani dali munici, dopíšeme název zbraně i do patřičné sekce. Dejme tomu, že jste si zvolili klasickou sovětskou munici ráže 5.45x39 mm, kterou používá i standardní AK-74. Srolujeme tudíž na řádek
ammo_5.45x39_ap a na poslední místo dopíšeme náš nový Kalašnikov (
wpn_akm). Zbraně od sebe oddělujeme čárkou. To samé provedeme i u odstavce
ammo_5.45x39_fmj, změny uložíme a zapneme hru.
===================================================
UNIKÁTNÍ ZBRANĚ
===================================================Pokud nechcete šachovat s obsahem konfigů a o nové modely nemáte zájem, můžete si udělat unikátní zbraň - ta bude stejná, jako nějaká už existující (jenom s rozdílem vlastností, což si můžete sami nadefinovat). Stačí si otevřít soubor unique_items.ltx v adresáři gamedata/config/misc a podívat se na styl zápisu stávajících speciálních zbraní. Výhodou je to, že nemusíte nic zapisovat do weapons.ltx, stačí jenom stejně jako minule dopsat funkční rank. Pro příklad uvedu Walther P99 na munici ráže 9x18 mm, co je i v normální hře:
Kód:
[wpn_walther_m1]:wpn_walther ;pro munici 9x18
$spawn = "weapons\uniq\wpn_walther_m1"
description = enc_weapons1_wpn-walther_m1
inv_name = wpn-walther_m1
inv_name_short = wpn-walther_m1
ammo_class = ammo_9x18_fmj, ammo_9x18_pmm
condition_shot_dec = 0.00001 ; 0.00015 - default
inv_grid_x = 11
inv_grid_y = 21
cost = 3200
hit_power = 0.30, 0.34, 0.37, 0.40
silencer_hit_power = 0.30
Pokud si budete chtít udělat jinou variantu, která by kupříkladu střílela náboje .45 ACP, měla menší zásobník a větší účinek, stačí si vytvořit novou odnož Walthera a zapsat všechny odlišnosti. Název zbraně zvolte takový, co se v souboru nevyskytuje - například wpn_walther_45. Ikona a většina vlastností zůstane beze změny a ve výsledku tak dostaneme něco na tenhle způsob:
Kód:
[wpn_walther_45]:wpn_walther
$spawn = "weapons\uniq\wpn_walther_45"
description = enc_weapons1_wpn-walther_45
inv_name = wpn-walther_45
inv_name_short = wpn-walther_45
ammo_class = ammo_11.43x23_fmj, ammo_11.43x23_hydro
ammo_mag_size = 10
inv_grid_x = 11
inv_grid_y = 21
cost = 5000
hit_power = 0.6
silencer_hit_power = 0.55
Jak vidíte, stačí tedy změnit jenom název zbraně - popisek za hranatou závorkou nechte tak jak je (tudíž
wpn_walther). Hra díky tomu pozná, že jde jenom o nějakou variantu už existující zbraně. Pak už si jenom dodělejte název, popisek, upravte cenu a pokud budete chtít, tak i tu ikonku. Toť vše...